Esempio n. 1
0
        public void TestSetAndDeleteNetworkSecurityRule()
        {
            using (var undoContext = UndoContext.Current)
            {
                undoContext.Start();
                using (NetworkTestBase _testFixture = new NetworkTestBase())
                {
                    // setup
                    string securityGroupName     = _testFixture.GenerateRandomNetworkSecurityGroupName();
                    string securityGroupLabel    = _testFixture.GenerateRandomName();
                    string securityGroupLocation = _testFixture.DefaultLocation;
                    string ruleName                 = _testFixture.GenerateRandomName();
                    string action                   = "Allow";
                    string sourceAddressPrefix      = "*";
                    string sourcePortRange          = "*";
                    string destinationAddressPrefix = "*";
                    string destinationPortRange     = "*";
                    int    priority                 = 500;
                    string protocol                 = "TCP";
                    string type = "Inbound";

                    // action
                    _testFixture.CreateNetworkSecurityGroup(securityGroupName, securityGroupLabel, securityGroupLocation);
                    _testFixture.SetRuleToSecurityGroup(
                        securityGroupName,
                        ruleName,
                        action,
                        sourceAddressPrefix,
                        sourcePortRange,
                        destinationAddressPrefix,
                        destinationPortRange,
                        priority,
                        protocol,
                        type);

                    // assert
                    NetworkSecurityGroupGetResponse response = _testFixture.NetworkClient.NetworkSecurityGroups.Get(securityGroupName, "full");
                    Assert.Equal(securityGroupName, response.Name);
                    Assert.Equal(securityGroupLabel, response.Label);
                    Assert.Equal(securityGroupLocation, response.Location);
                    Assert.NotEmpty(response.Rules.Where(r => string.Equals(r.Name, ruleName)));

                    NetworkSecurityRule rule = response.Rules.First();
                    Assert.Equal(ruleName, rule.Name);
                    Assert.Equal(sourceAddressPrefix, rule.SourceAddressPrefix);
                    Assert.Equal(sourcePortRange, rule.SourcePortRange);
                    Assert.Equal(destinationAddressPrefix, rule.DestinationAddressPrefix);
                    Assert.Equal(destinationPortRange, rule.DestinationPortRange);
                    Assert.Equal(priority, rule.Priority);
                    Assert.Equal(protocol, rule.Protocol);
                    Assert.Equal(action, rule.Action);
                    Assert.Equal(type, rule.Type);

                    // action
                    _testFixture.NetworkClient.NetworkSecurityGroups.DeleteRule(securityGroupName, ruleName);
                    NetworkSecurityGroupGetResponse afterDeleteGetRuleresponse = _testFixture.NetworkClient.NetworkSecurityGroups.Get(securityGroupName, "full");
                    Assert.Empty(afterDeleteGetRuleresponse.Rules.Where(r => string.Equals(r.Name, ruleName)));
                }
            }
        }
Esempio n. 2
0
 /// <summary>
 /// Converts the <see cref="sourceValue" /> parameter to the <see cref="destinationType" /> parameter using <see cref="formatProvider"
 /// /> and <see cref="ignoreCase" />
 /// </summary>
 /// <param name="sourceValue">the value to convert into an instance of <see cref="NetworkSecurityRule" />.</param>
 /// <returns>
 /// an instance of <see cref="NetworkSecurityRule" />, or <c>null</c> if there is no suitable conversion.
 /// </returns>
 public static object ConvertFrom(dynamic sourceValue)
 {
     if (null == sourceValue)
     {
         return(null);
     }
     try
     {
         NetworkSecurityRule.FromJsonString(typeof(string) == sourceValue.GetType() ? sourceValue : sourceValue.ToJsonString());
     }
     catch
     {
         // Unable to use JSON pattern
     }
     try
     {
         return(new NetworkSecurityRule
         {
             Name = sourceValue.Name,
             Description = sourceValue.Description,
             Resources = NetworkSecurityRuleResourcesTypeConverter.ConvertFrom(sourceValue.Resources),
         });
     }
     catch
     {
     }
     return(null);
 }
    private static CreateVirtualNetworkResult CreateVirtualNetwork(string suffix, ResourceGroup resourceGroup)
    {
        var virtualNetwork = new VirtualNetwork($"vnet-{suffix}", new VirtualNetworkArgs
        {
            AddressSpaces     = { "10.0.0.0/16" },
            ResourceGroupName = resourceGroup.Name
        });

        var subnet = new Subnet("apps", new SubnetArgs
        {
            ResourceGroupName  = resourceGroup.Name,
            VirtualNetworkName = virtualNetwork.Name,
            AddressPrefixes    =
            {
                "10.0.1.0/24",
            }
        });

        var nsg = new NetworkSecurityGroup($"nsg-{suffix}", new NetworkSecurityGroupArgs
        {
            ResourceGroupName = resourceGroup.Name,
        });

        var nsgSshAllowInbound = new NetworkSecurityRule("ssh-allow-inbound", new NetworkSecurityRuleArgs
        {
            Priority                 = 1001,
            Direction                = "Inbound",
            Access                   = "Allow",
            Protocol                 = "Tcp",
            SourcePortRange          = "*",
            DestinationPortRange     = "22",
            SourceAddressPrefix      = "*",
            DestinationAddressPrefix = "*",
            NetworkSecurityGroupName = nsg.Name,
            ResourceGroupName        = resourceGroup.Name,
        });

        return(new CreateVirtualNetworkResult
        {
            NetworkSecurityGroupId = nsg.Id,
            SubnetId = subnet.Id
        });
    }