Esempio n. 1
0
        internal static NetworkSecurityGroupListResult DeserializeNetworkSecurityGroupListResult(JsonElement element)
        {
            Optional <IReadOnlyList <NetworkSecurityGroupData> > value = default;
            Optional <string> nextLink = default;

            foreach (var property in element.EnumerateObject())
            {
                if (property.NameEquals("value"))
                {
                    if (property.Value.ValueKind == JsonValueKind.Null)
                    {
                        property.ThrowNonNullablePropertyIsNull();
                        continue;
                    }
                    List <NetworkSecurityGroupData> array = new List <NetworkSecurityGroupData>();
                    foreach (var item in property.Value.EnumerateArray())
                    {
                        array.Add(NetworkSecurityGroupData.DeserializeNetworkSecurityGroupData(item));
                    }
                    value = array;
                    continue;
                }
                if (property.NameEquals("nextLink"))
                {
                    nextLink = property.Value.GetString();
                    continue;
                }
            }
            return(new NetworkSecurityGroupListResult(Optional.ToList(value), nextLink.Value));
        }
Esempio n. 2
0
        NetworkSecurityGroup IOperationSource <NetworkSecurityGroup> .CreateResult(Response response, CancellationToken cancellationToken)
        {
            using var document = JsonDocument.Parse(response.ContentStream);
            var data = NetworkSecurityGroupData.DeserializeNetworkSecurityGroupData(document.RootElement);

            return(new NetworkSecurityGroup(_armClient, data));
        }
        public async Task UsageTest()
        {
            var subscription = await ArmClient.GetDefaultSubscriptionAsync();

            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location      = TestEnvironment.Location;
            var    resourceGroup = await CreateResourceGroup(resourceGroupName);

            string networkSecurityGroupName = Recording.GenerateAssetName("azsmnet");
            NetworkSecurityGroupData networkSecurityGroup = new NetworkSecurityGroupData()
            {
                Location = location,
            };

            // Put Nsg
            var networkSecurityGroupCollection = resourceGroup.GetNetworkSecurityGroups();
            var putNsgResponseOperation        = await networkSecurityGroupCollection.CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroup);

            Response <NetworkSecurityGroupResource> putNsgResponse = await putNsgResponseOperation.WaitForCompletionAsync();;

            Assert.AreEqual("Succeeded", putNsgResponse.Value.Data.ProvisioningState.ToString());

            Response <NetworkSecurityGroupResource> getNsgResponse = await networkSecurityGroupCollection.GetAsync(networkSecurityGroupName);

            // Query for usages
            AsyncPageable <NetworkUsage> usagesResponseAP = subscription.GetUsagesAsync(getNsgResponse.Value.Data.Location.Replace(" ", string.Empty));
            List <NetworkUsage>          usagesResponse   = await usagesResponseAP.ToEnumerableAsync();

            // Verify that the strings are populated
            Assert.NotNull(usagesResponse);
            Assert.True(usagesResponse.Any());

            foreach (NetworkUsage usage in usagesResponse)
            {
                Assert.True(usage.Limit > 0);
                Assert.NotNull(usage.Name);
                Assert.True(!string.IsNullOrEmpty(usage.Name.LocalizedValue));
                Assert.True(!string.IsNullOrEmpty(usage.Name.Value));
            }
        }
Esempio n. 4
0
        protected async Task initialize()
        {
            ArmClient    armClient    = new ArmClient(new DefaultAzureCredential());
            Subscription subscription = await armClient.GetDefaultSubscriptionAsync();

            ResourceGroupCollection rgCollection = subscription.GetResourceGroups();
            // With the collection, we can create a new resource group with an specific name
            string        rgName        = "myRgName";
            AzureLocation location      = AzureLocation.WestUS2;
            ResourceGroup resourceGroup = await rgCollection.CreateOrUpdate(true, rgName, new ResourceGroupData(location)).WaitForCompletionAsync();

            this.resourceGroup = resourceGroup;

            //1. create NetworkSecurityGroup
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = AzureLocation.WestUS2,
            };
            string networkSecurityGroupName = "myNetworkSecurityGroup";
            var    networkSecurityGroup     = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(true, networkSecurityGroupName, networkSecurityGroupData);

            //2. create Route table
            RouteTableData routeTableData = new RouteTableData()
            {
                Location = AzureLocation.WestUS2,
            };
            string routeTableName = "myRouteTable";
            var    routeTable     = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(true, routeTableName, routeTableData);

            //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable)
            var vnetData = new VirtualNetworkData()
            {
                Location     = AzureLocation.WestUS2,
                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = { "10.10.0.0/16", }
                },
                Subnets =
                {
                    new SubnetData()
                    {
                        Name          = "ManagedInstance",
                        AddressPrefix = "10.10.2.0/24",
                        Delegations   =
                        {
                            new Delegation()
                            {
                                ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql"
                            }
                        },
                        RouteTable = new RouteTableData()
                        {
                            Id = routeTable.Value.Data.Id.ToString()
                        },
                        NetworkSecurityGroup = new NetworkSecurityGroupData()
                        {
                            Id = networkSecurityGroup.Value.Data.Id.ToString()
                        },
                    }
                },
            };
            string vnetName = "myVnet";
            var    vnet     = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(true, vnetName, vnetData);

            string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance";

            //4. create ManagedInstance
            ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2)
            {
                AdministratorLogin         = "******",
                AdministratorLoginPassword = "******",
                SubnetId = subnetId,
                PublicDataEndpointEnabled  = false,
                MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
                ProxyOverride = new ManagedInstanceProxyOverride("Proxy")
                {
                },
                TimezoneId         = "UTC",
                StorageAccountType = new StorageAccountType("GRS"),
                ZoneRedundant      = false,
            };
            string managedInstanceName = "myManagedInstance";
            var    managedInstanceLro  = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(true, managedInstanceName, data);

            managedInstance = managedInstanceLro.Value;
        }
Esempio n. 5
0
        public async Task CreateOrUpdate()
        {
            #region Snippet:Managing_Sql_CreateAManagedInstance
            //1. create NetworkSecurityGroup
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = AzureLocation.WestUS2,
            };
            string networkSecurityGroupName = "myNetworkSecurityGroup";
            var    networkSecurityGroup     = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData);

            //2. create Route table
            RouteTableData routeTableData = new RouteTableData()
            {
                Location = AzureLocation.WestUS2,
            };
            string routeTableName = "myRouteTable";
            var    routeTable     = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData);

            //3. create vnet(subnet binding NetworkSecurityGroup and RouteTable)
            var vnetData = new VirtualNetworkData()
            {
                Location = AzureLocation.WestUS2,
                Subnets  =
                {
                    new SubnetData()
                    {
                        Name          = "ManagedInstance",
                        AddressPrefix = "10.10.2.0/24",
                        Delegations   =
                        {
                            new Delegation()
                            {
                                ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql"
                            }
                        },
                        RouteTable = new RouteTableData()
                        {
                            Id = routeTable.Value.Data.Id
                        },
                        NetworkSecurityGroup = new NetworkSecurityGroupData()
                        {
                            Id = networkSecurityGroup.Value.Data.Id
                        },
                    }
                },
            };
            vnetData.AddressPrefixes.Add("10.10.0.0/16");
            string vnetName = "myVnet";
            var    vnet     = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData);

            string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance";

            //4. create ManagedInstance
            ManagedInstanceData data = new ManagedInstanceData(AzureLocation.WestUS2)
            {
                AdministratorLogin         = "******",
                AdministratorLoginPassword = "******",
                SubnetId = subnetId,
                PublicDataEndpointEnabled  = false,
                MaintenanceConfigurationId = "/subscriptions/0000-0000-0000-0000/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
                ProxyOverride = new ManagedInstanceProxyOverride("Proxy")
                {
                },
                TimezoneId    = "UTC",
                ZoneRedundant = false,
            };
            string managedInstanceName = "myManagedInstance";
            var    managedInstanceLro  = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(WaitUntil.Completed, managedInstanceName, data);

            ManagedInstanceResource managedInstance = managedInstanceLro.Value;
            #endregion
        }
Esempio n. 6
0
        /// <summary>
        /// create a defaut managed instance.
        /// defaut vnet AddressPrefixes = 10.10.0.0/16
        /// </summary>
        /// <param name="managedInstanceName"></param>
        /// <param name="location"></param>
        /// <param name="resourceGroup"></param>
        /// <returns></returns>
        protected async Task <ManagedInstance> CreateDefaultManagedInstance(string managedInstanceName, string networkSecurityGroupName, string routeTableName, string vnetName, Location location, ResourceGroup resourceGroup)
        {
            //1. create NetworkSecurityGroup
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = location,
            };
            var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroupData);

            //2. create Route table
            RouteTableData routeTableData = new RouteTableData()
            {
                Location = location,
            };
            var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(routeTableName, routeTableData);

            //3. create vnet(subnet bind NetworkSecurityGroup and RouteTable)
            var vnetData = new VirtualNetworkData()
            {
                Location     = location,
                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = { "10.10.0.0/16", }
                },
                Subnets =
                {
                    new SubnetData()
                    {
                        Name = "subnet01", AddressPrefix = "10.10.1.0/24",
                    },
                    new SubnetData()
                    {
                        Name          = "ManagedInstance",
                        AddressPrefix = "10.10.2.0/24",
                        Delegations   =
                        {
                            new Delegation()
                            {
                                ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql"
                            }
                        },
                        RouteTable = new RouteTableData()
                        {
                            Id = routeTable.Value.Data.Id.ToString()
                        },
                        NetworkSecurityGroup = new NetworkSecurityGroupData()
                        {
                            Id = networkSecurityGroup.Value.Data.Id.ToString()
                        },
                    }
                },
            };
            var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData);

            string subnetId = $"{vnet.Value.Data.Id}/subnets/ManagedInstance";

            //4. create ManagedInstance
            ManagedInstanceData data = new ManagedInstanceData(location)
            {
                AdministratorLogin         = $"admin-{managedInstanceName}",
                AdministratorLoginPassword = CreateGeneralPassword(),
                SubnetId = subnetId,
                PublicDataEndpointEnabled  = false,
                MaintenanceConfigurationId = "/subscriptions/db1ab6f0-4769-4b27-930e-01e2ef9c123c/providers/Microsoft.Maintenance/publicMaintenanceConfigurations/SQL_Default",
                ProxyOverride = new ManagedInstanceProxyOverride("Proxy")
                {
                },
                TimezoneId         = "UTC",
                StorageAccountType = new StorageAccountType("GRS"),
                ZoneRedundant      = false,
            };
            var managedInstanceLro = await resourceGroup.GetManagedInstances().CreateOrUpdateAsync(managedInstanceName, data);

            var managedInstance = managedInstanceLro.Value;

            return(managedInstance);
        }
Esempio n. 7
0
        public async Task FlowLogApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("azsmnet");

            string location = "eastus2euap";
            //string workspaceLocation = "East US";
            var resourceGroup = await CreateResourceGroup(resourceGroupName, location);

            //Create network security group
            string networkSecurityGroupName = Recording.GenerateAssetName("azsmnet");
            var    networkSecurityGroup     = new NetworkSecurityGroupData()
            {
                Location = location,
            };

            // Put Nsg
            var securityGroupCollection = resourceGroup.GetNetworkSecurityGroups();
            var putNsgResponseOperation = await securityGroupCollection.CreateOrUpdateAsync(true, networkSecurityGroupName, networkSecurityGroup);

            await putNsgResponseOperation.WaitForCompletionAsync();;
            // Get NSG
            Response <NetworkSecurityGroup> getNsgResponse = await securityGroupCollection.GetAsync(networkSecurityGroupName);

            string networkWatcherName = Recording.GenerateAssetName("azsmnet");
            var    properties         = new NetworkWatcherData {
                Location = location
            };

            //Create network Watcher
            var networkWatcherCollection = resourceGroup.GetNetworkWatchers();
            await networkWatcherCollection.CreateOrUpdateAsync(true, networkWatcherName, properties);

            //Create storage
            string storageName = Recording.GenerateAssetName("azsmnet");

            //var storageParameters = new StorageAccountCreateParameters(new Sku(SkuName.StandardLRS), Kind.Storage, location);

            //Operation<StorageAccount> storageAccountOperation = await StorageManagementClient.StorageAccounts.CreateAsync(resourceGroupName, storageName, storageParameters);
            //Response<StorageAccount> storageAccount = await storageAccountOperation.WaitForCompletionAsync();;

            //create workspace
            string workspaceName = Recording.GenerateAssetName("azsmnet");

            //TODO:Need OperationalInsightsManagementClient SDK
            //var workSpaceParameters = new Workspace()
            //{
            //    Location = workspaceLocation
            //};
            //var workspace = operationalInsightsManagementClient.Workspaces.CreateOrUpdate(resourceGroupName, workspaceName, workSpaceParameters);

            //FlowLogInformation configParameters = new FlowLogInformation(getNsgResponse.Value.Id, storageAccount.Value.Id, true)
            //{
            //    RetentionPolicy = new RetentionPolicyParameters
            //    {
            //        Days = 5,
            //        Enabled = true
            //    },
            //    FlowAnalyticsConfiguration = new TrafficAnalyticsProperties()
            //    {
            //        NetworkWatcherFlowAnalyticsConfiguration = new TrafficAnalyticsConfigurationProperties()
            //        {
            //            Enabled = true,
            //            //WorkspaceId = workspace.CustomerId,
            //            //WorkspaceRegion = workspace.Location,
            //            //WorkspaceResourceId = workspace.Id
            //        }
            //    }
            //};

            //configure flowlog and TA
            //var configureFlowLog1Operation = await networkWatcherCollection.Get(networkWatcherName).Value.SetFlowLogConfigurationAsync(configParameters);
            //await configureFlowLog1Operation.WaitForCompletionAsync();;

            //var queryFlowLogStatus1Operation = await networkWatcherCollection.Get(networkWatcherName).Value.GetFlowLogStatusAsync(new FlowLogStatusParameters(getNsgResponse.Value.Id));
            //Response<FlowLogInformation> queryFlowLogStatus1 = await queryFlowLogStatus1Operation.WaitForCompletionAsync();;
            ////check both flowlog and TA config and enabled status
            //Assert.AreEqual(queryFlowLogStatus1.Value.TargetResourceId, configParameters.TargetResourceId);
            //Assert.True(queryFlowLogStatus1.Value.Enabled);
            //Assert.AreEqual(queryFlowLogStatus1.Value.StorageId, configParameters.StorageId);
            //Assert.AreEqual(queryFlowLogStatus1.Value.RetentionPolicy.Days, configParameters.RetentionPolicy.Days);
            //Assert.AreEqual(queryFlowLogStatus1.Value.RetentionPolicy.Enabled, configParameters.RetentionPolicy.Enabled);
            //Assert.True(queryFlowLogStatus1.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.Enabled);
            //Assert.AreEqual(queryFlowLogStatus1.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceId,
            //    configParameters.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceId);
            //Assert.AreEqual(queryFlowLogStatus1.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceRegion,
            //    configParameters.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceRegion);
            //Assert.AreEqual(queryFlowLogStatus1.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceResourceId,
            //    configParameters.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.WorkspaceResourceId);

            ////disable TA
            //configParameters.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.Enabled = false;
            //var configureFlowLog2Operation = await networkWatcherCollection.Get(networkWatcherName).Value.SetFlowLogConfigurationAsync(configParameters);
            //await configureFlowLog2Operation.WaitForCompletionAsync();;

            //var queryFlowLogStatus2Operation = await networkWatcherCollection.Get(networkWatcherName).Value.GetFlowLogStatusAsync(new FlowLogStatusParameters(getNsgResponse.Value.Id));
            //Response<FlowLogInformation> queryFlowLogStatus2 = await queryFlowLogStatus2Operation.WaitForCompletionAsync();;

            ////check TA disabled and ensure flowlog config is unchanged
            //Assert.AreEqual(queryFlowLogStatus2.Value.StorageId, configParameters.StorageId);
            //Assert.AreEqual(queryFlowLogStatus2.Value.RetentionPolicy.Days, configParameters.RetentionPolicy.Days);
            //Assert.AreEqual(queryFlowLogStatus2.Value.RetentionPolicy.Enabled, configParameters.RetentionPolicy.Enabled);
            //Assert.False(queryFlowLogStatus2.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.Enabled);

            ////disable flowlog (and TA)
            //configParameters.Enabled = false;
            //var configureFlowLog3Operation = await networkWatcherCollection.Get(networkWatcherName).Value.SetFlowLogConfigurationAsync(configParameters);
            //await configureFlowLog3Operation.WaitForCompletionAsync();;

            //var queryFlowLogStatus3Operation = await networkWatcherCollection.Get(networkWatcherName).Value.GetFlowLogStatusAsync(new FlowLogStatusParameters(getNsgResponse.Value.Id));
            //Response<FlowLogInformation> queryFlowLogStatus3 = await queryFlowLogStatus3Operation.WaitForCompletionAsync();;

            ////check both flowlog and TA disabled
            //Assert.False(queryFlowLogStatus3.Value.Enabled);
            //Assert.False(queryFlowLogStatus3.Value.FlowAnalyticsConfiguration.NetworkWatcherFlowAnalyticsConfiguration.Enabled);
        }
Esempio n. 8
0
        public async Task MigrationExample()
        {
            #region Snippet:Construct_Client
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            #endregion

            #region Snippet:Create_ResourceGroup
            Subscription           subscription = armClient.DefaultSubscription;
            ResourceGroupContainer rgContainer  = subscription.GetResourceGroups();

            Location location = Location.WestUS2;
            string   rgName   = "QuickStartRG";

            ResourceGroupData rgData = new ResourceGroupData(location);
            ResourceGroupCreateOrUpdateOperation rgCreateLro = await rgContainer.CreateOrUpdateAsync(rgName, rgData);

            ResourceGroup resourceGroup = rgCreateLro.Value;
            #endregion

            #region Snippet:Create_AvailabilitySet
            string vmName = "quickstartvm";
            AvailabilitySetData aSetData = new AvailabilitySetData(location);
            AvailabilitySetCreateOrUpdateOperation asetCreateLro = await resourceGroup.GetAvailabilitySets().CreateOrUpdateAsync(vmName + "_aSet", aSetData);

            AvailabilitySet aset   = asetCreateLro.Value;
            string          asetId = aset.Id;
            #endregion

            #region Snippet:Create_Vnet_and_Subnet
            string       vnetName     = "MYVM" + "_vnet";
            string       subnetName   = "mySubnet";
            AddressSpace addressSpace = new AddressSpace();
            addressSpace.AddressPrefixes.Add("10.0.0.0/16");

            VirtualNetworkData vnetData = new VirtualNetworkData()
            {
                AddressSpace = addressSpace,
                Subnets      =
                {
                    new SubnetData()
                    {
                        Name          = subnetName,
                        AddressPrefix = "10.0.0.0/24"
                    }
                }
            };
            VirtualNetworkCreateOrUpdateOperation vnetCreateLro = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData);

            VirtualNetwork vnet = vnetCreateLro.Value;
            #endregion

            #region Snippet:Create_NetworkSecurityGroup
            string nsgName = vmName + "_nsg";
            NetworkSecurityGroupData nsgData = new NetworkSecurityGroupData()
            {
                Location = location
            };
            NetworkSecurityGroupCreateOrUpdateOperation nsgCreateLro = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(nsgName, nsgData);

            NetworkSecurityGroup nsg = nsgCreateLro.Value;
            #endregion

            #region Snippet:Create_NetworkInterface
            string nicName = vmName + "_nic";
            NetworkInterfaceIPConfiguration nicIPConfig = new NetworkInterfaceIPConfiguration()
            {
                Name    = "Primary",
                Primary = true,
                Subnet  = new SubnetData()
                {
                    Id = vnet.Data.Subnets.First().Id
                },
                PrivateIPAllocationMethod = IPAllocationMethod.Dynamic,
            };

            NetworkInterfaceData nicData = new NetworkInterfaceData();
            nicData.Location = location;
            nicData.IpConfigurations.Add(nicIPConfig);
            NetworkInterfaceCreateOrUpdateOperation nicCreateLro = await resourceGroup.GetNetworkInterfaces().CreateOrUpdateAsync(nicName, nicData);

            NetworkInterface nic = nicCreateLro.Value;
            #endregion

            #region Snippet:Create_VirtualMachine
            VirtualMachineData vmData = new VirtualMachineData(location);
            vmData.OsProfile.AdminUsername = "******";
            vmData.OsProfile.AdminPassword = "******";
            vmData.OsProfile.ComputerName  = "computer-name";
            vmData.AvailabilitySet         = new Compute.Models.SubResource();
            vmData.AvailabilitySet.Id      = aset.Id;
            NetworkInterfaceReference nicReference = new NetworkInterfaceReference();
            nicReference.Id = nic.Id;
            vmData.NetworkProfile.NetworkInterfaces.Add(nicReference);

            VirtualMachine vm = (await resourceGroup.GetVirtualMachines().CreateOrUpdateAsync(vmName, vmData)).Value;
            Console.WriteLine("VM ID: " + vm.Id);
            #endregion
        }
Esempio n. 9
0
        private async Task <InstancePoolResource> CreateInstancePool(string instancePoolName)
        {
            //Prerequisites: 1. create NetworkSecurityGroup
            string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-");
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = AzureLocation.WestUS2,
            };
            var networkSecurityGroup = await _resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData);

            //2. create Route table
            string         routeTableName = SessionRecording.GenerateAssetName("routeTable-");
            RouteTableData routeTableData = new RouteTableData()
            {
                Location = AzureLocation.WestUS2,
            };
            var routeTable = await _resourceGroup.GetRouteTables().CreateOrUpdateAsync(WaitUntil.Completed, routeTableName, routeTableData);

            //3. create Virtual network
            string vnetName = SessionRecording.GenerateAssetName("vnet-");
            var    vnetData = new VirtualNetworkData()
            {
                Location = "westus2",
                Subnets  =
                {
                    new SubnetData()
                    {
                        Name = "subnet01", AddressPrefix = "10.10.1.0/24",
                    },
                    new SubnetData()
                    {
                        Name          = "ManagedInstance",
                        AddressPrefix = "10.10.2.0/24",
                        Delegations   =
                        {
                            new Delegation()
                            {
                                ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", ResourceType = "Microsoft.Sql"
                            }
                        },
                        RouteTable = new RouteTableData()
                        {
                            Id = routeTable.Value.Data.Id
                        },
                        NetworkSecurityGroup = new NetworkSecurityGroupData()
                        {
                            Id = networkSecurityGroup.Value.Data.Id
                        },
                    }
                },
            };

            vnetData.AddressPrefixes.Add("10.10.0.0/16");
            var vnet = await _resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, vnetName, vnetData);

            string           subnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance";
            InstancePoolData data     = new InstancePoolData(AzureLocation.WestUS2)
            {
                Sku         = new SqlSku("GP_Gen5", "GeneralPurpose", null, "Gen5", null),
                LicenseType = InstancePoolLicenseType.LicenseIncluded,
                Location    = AzureLocation.WestUS2,
                SubnetId    = subnetId,
                VCores      = 8,
            };
            var instancePoolLro = await _resourceGroup.GetInstancePools().CreateOrUpdateAsync(WaitUntil.Completed, instancePoolName, data);

            return(instancePoolLro.Value);
        }
Esempio n. 10
0
        public async Task SecurityRuleWithRulesApiTest()
        {
            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location      = TestEnvironment.Location;
            var    resourceGroup = await CreateResourceGroup(resourceGroupName);

            string networkSecurityGroupName = Recording.GenerateAssetName("azsmnet");
            string securityRule1            = Recording.GenerateAssetName("azsmnet");
            string securityRule2            = Recording.GenerateAssetName("azsmnet");
            string destinationPortRange     = "123-3500";

            NetworkSecurityGroupData networkSecurityGroup = new NetworkSecurityGroupData()
            {
                Location      = location,
                SecurityRules =
                {
                    new SecurityRuleData()
                    {
                        Name        = securityRule1,
                        Access      = SecurityRuleAccess.Allow,
                        Description = "Test security rule",
                        DestinationAddressPrefix = "*",
                        DestinationPortRange     = destinationPortRange,
                        Direction           = SecurityRuleDirection.Inbound,
                        Priority            = 500,
                        Protocol            = SecurityRuleProtocol.Tcp,
                        SourceAddressPrefix = "*",
                        SourcePortRange     = "655"
                    }
                }
            };

            // Put Nsg
            var networkSecurityGroupContainer = resourceGroup.GetNetworkSecurityGroups();
            var putNsgResponseOperation       = await networkSecurityGroupContainer.CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroup);

            Response <NetworkSecurityGroup> putNsgResponse = await putNsgResponseOperation.WaitForCompletionAsync();;

            Assert.AreEqual("Succeeded", putNsgResponse.Value.Data.ProvisioningState.ToString());

            // Get NSG
            Response <NetworkSecurityGroup> getNsgResponse = await networkSecurityGroupContainer.GetAsync(networkSecurityGroupName);

            Assert.AreEqual(networkSecurityGroupName, getNsgResponse.Value.Data.Name);

            // Get SecurityRule
            Response <SecurityRule> getSecurityRuleResponse = await getNsgResponse.Value.GetSecurityRules().GetAsync(securityRule1);

            Assert.AreEqual(securityRule1, getSecurityRuleResponse.Value.Data.Name);

            CompareSecurityRule(getNsgResponse.Value.Data.SecurityRules[0], getSecurityRuleResponse.Value.Data);

            // Add a new security rule
            var securityRule = new SecurityRuleData()
            {
                Name        = securityRule2,
                Access      = SecurityRuleAccess.Deny,
                Description = "Test outbound security rule",
                DestinationAddressPrefix = "*",
                DestinationPortRange     = destinationPortRange,
                Direction           = SecurityRuleDirection.Outbound,
                Priority            = 501,
                Protocol            = SecurityRuleProtocol.Udp,
                SourceAddressPrefix = "*",
                SourcePortRange     = "656",
            };

            var putSecurityRuleResponseOperation = await getNsgResponse.Value.GetSecurityRules().CreateOrUpdateAsync(securityRule2, securityRule);

            Response <SecurityRule> putSecurityRuleResponse = await putSecurityRuleResponseOperation.WaitForCompletionAsync();;

            Assert.AreEqual("Succeeded", putSecurityRuleResponse.Value.Data.ProvisioningState.ToString());

            // Get NSG
            getNsgResponse = await networkSecurityGroupContainer.GetAsync(networkSecurityGroupName);

            // Get the SecurityRule2
            Response <SecurityRule> getSecurityRule2Response = await getNsgResponse.Value.GetSecurityRules().GetAsync(securityRule2);

            Assert.AreEqual(securityRule2, getSecurityRule2Response.Value.Data.Name);

            // Verify the security rule
            Assert.AreEqual(SecurityRuleAccess.Deny, getSecurityRule2Response.Value.Data.Access);
            Assert.AreEqual("Test outbound security rule", getSecurityRule2Response.Value.Data.Description);
            Assert.AreEqual("*", getSecurityRule2Response.Value.Data.DestinationAddressPrefix);
            Assert.AreEqual(destinationPortRange, getSecurityRule2Response.Value.Data.DestinationPortRange);
            Assert.AreEqual(SecurityRuleDirection.Outbound, getSecurityRule2Response.Value.Data.Direction);
            Assert.AreEqual(501, getSecurityRule2Response.Value.Data.Priority);
            Assert.AreEqual(SecurityRuleProtocol.Udp, getSecurityRule2Response.Value.Data.Protocol);
            Assert.AreEqual("Succeeded", getSecurityRule2Response.Value.Data.ProvisioningState.ToString());
            Assert.AreEqual("*", getSecurityRule2Response.Value.Data.SourceAddressPrefix);
            Assert.AreEqual("656", getSecurityRule2Response.Value.Data.SourcePortRange);

            CompareSecurityRule(getNsgResponse.Value.Data.SecurityRules[1], getSecurityRule2Response.Value.Data);

            // List all SecurityRules
            AsyncPageable <SecurityRule> getsecurityRulesAP = getNsgResponse.Value.GetSecurityRules().GetAllAsync();
            List <SecurityRule>          getsecurityRules   = await getsecurityRulesAP.ToEnumerableAsync();

            Assert.AreEqual(2, getsecurityRules.Count());
            CompareSecurityRule(getNsgResponse.Value.Data.SecurityRules[0], getsecurityRules.ElementAt(0).Data);
            CompareSecurityRule(getNsgResponse.Value.Data.SecurityRules[1], getsecurityRules.ElementAt(1).Data);

            // Delete a SecurityRule
            await getSecurityRule2Response.Value.DeleteAsync();

            getsecurityRulesAP = getNsgResponse.Value.GetSecurityRules().GetAllAsync();
            getsecurityRules   = await getsecurityRulesAP.ToEnumerableAsync();

            Has.One.EqualTo(getsecurityRules);

            // Delete NSG
            await getNsgResponse.Value.DeleteAsync();

            // List NSG
            AsyncPageable <NetworkSecurityGroup> listNsgResponseAP = networkSecurityGroupContainer.GetAllAsync();
            List <NetworkSecurityGroup>          listNsgResponse   = await listNsgResponseAP.ToEnumerableAsync();

            Assert.IsEmpty(listNsgResponse);
        }
Esempio n. 11
0
        public async Task GlobalSetUp()
        {
            var rgLro = await GlobalClient.GetDefaultSubscriptionAsync().Result.GetResourceGroups().CreateOrUpdateAsync(SessionRecording.GenerateAssetName("Sql-RG-"), new ResourceGroupData(Location.WestUS2));

            ResourceGroup resourceGroup = rgLro.Value;

            _resourceGroupIdentifier = resourceGroup.Id;

            //Prerequisites: 1. create NetworkSecurityGroup
            string networkSecurityGroupName = SessionRecording.GenerateAssetName("networkSecurityGroup-");
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = Location.WestUS2,
            };
            var networkSecurityGroup = await resourceGroup.GetNetworkSecurityGroups().CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroupData);

            //2. create Route table
            string         routeTableName = SessionRecording.GenerateAssetName("routeTable-");
            RouteTableData routeTableData = new RouteTableData()
            {
                Location = Location.WestUS2,
            };
            var routeTable = await resourceGroup.GetRouteTables().CreateOrUpdateAsync(routeTableName, routeTableData);

            //3. create Virtual network
            string vnetName = SessionRecording.GenerateAssetName("vnet-");
            var    vnetData = new VirtualNetworkData()
            {
                Location     = "westus2",
                AddressSpace = new AddressSpace()
                {
                    AddressPrefixes = { "10.10.0.0/16", }
                },
                Subnets =
                {
                    new SubnetData()
                    {
                        Name = "subnet01", AddressPrefix = "10.10.1.0/24",
                    },
                    new SubnetData()
                    {
                        Name          = "ManagedInstance",
                        AddressPrefix = "10.10.2.0/24",
                        Delegations   =
                        {
                            new Delegation()
                            {
                                ServiceName = "Microsoft.Sql/managedInstances", Name = "Microsoft.Sql/managedInstances", Type = "Microsoft.Sql"
                            }
                        },
                        RouteTable = new RouteTableData()
                        {
                            Id = routeTable.Value.Data.Id.ToString()
                        },
                        NetworkSecurityGroup = new NetworkSecurityGroupData()
                        {
                            Id = networkSecurityGroup.Value.Data.Id.ToString()
                        },
                    }
                },
            };
            var vnet = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(vnetName, vnetData);

            SubnetId = $"{vnet.Value.Data.Id.ToString()}/subnets/ManagedInstance";
            await StopSessionRecordingAsync();
        }
Esempio n. 12
0
        public async Task NetworkSecurityGroupApiTest()
        {
            Subscription subscription = await ArmClient.GetDefaultSubscriptionAsync();

            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location      = TestEnvironment.Location;
            var    resourceGroup = await CreateResourceGroup(resourceGroupName);

            string networkSecurityGroupName = Recording.GenerateAssetName("azsmnet");
            var    networkSecurityGroup     = new NetworkSecurityGroupData()
            {
                Location = location,
            };

            // Put Nsg
            var networkSecurityGroupCollection = resourceGroup.GetNetworkSecurityGroups();
            var putNsgResponseOperation        = await networkSecurityGroupCollection.CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroup);

            Response <NetworkSecurityGroup> putNsgResponse = await putNsgResponseOperation.WaitForCompletionAsync();;

            Assert.AreEqual("Succeeded", putNsgResponse.Value.Data.ProvisioningState.ToString());

            // Get NSG
            Response <NetworkSecurityGroup> getNsgResponse = await networkSecurityGroupCollection.GetAsync(networkSecurityGroupName);

            Assert.AreEqual(networkSecurityGroupName, getNsgResponse.Value.Data.Name);
            Assert.NotNull(getNsgResponse.Value.Data.ResourceGuid);
            Assert.AreEqual(6, getNsgResponse.Value.Data.DefaultSecurityRules.Count);
            Assert.AreEqual("AllowVnetInBound", getNsgResponse.Value.Data.DefaultSecurityRules[0].Name);
            Assert.AreEqual("AllowAzureLoadBalancerInBound", getNsgResponse.Value.Data.DefaultSecurityRules[1].Name);
            Assert.AreEqual("DenyAllInBound", getNsgResponse.Value.Data.DefaultSecurityRules[2].Name);
            Assert.AreEqual("AllowVnetOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[3].Name);
            Assert.AreEqual("AllowInternetOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[4].Name);
            Assert.AreEqual("DenyAllOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[5].Name);

            // Verify a default security rule
            Assert.AreEqual(SecurityRuleAccess.Allow, getNsgResponse.Value.Data.DefaultSecurityRules[0].Access);
            Assert.AreEqual("Allow inbound traffic from all VMs in VNET", getNsgResponse.Value.Data.DefaultSecurityRules[0].Description);
            Assert.AreEqual("VirtualNetwork", getNsgResponse.Value.Data.DefaultSecurityRules[0].DestinationAddressPrefix);
            Assert.AreEqual("*", getNsgResponse.Value.Data.DefaultSecurityRules[0].DestinationPortRange);
            Assert.AreEqual(SecurityRuleDirection.Inbound, getNsgResponse.Value.Data.DefaultSecurityRules[0].Direction);
            Assert.AreEqual(65000, getNsgResponse.Value.Data.DefaultSecurityRules[0].Priority);
            Assert.AreEqual(SecurityRuleProtocol.Asterisk, getNsgResponse.Value.Data.DefaultSecurityRules[0].Protocol);
            Assert.AreEqual("Succeeded", getNsgResponse.Value.Data.DefaultSecurityRules[0].ProvisioningState.ToString());
            Assert.AreEqual("VirtualNetwork", getNsgResponse.Value.Data.DefaultSecurityRules[0].SourceAddressPrefix);
            Assert.AreEqual("*", getNsgResponse.Value.Data.DefaultSecurityRules[0].SourcePortRange);

            // List NSG
            AsyncPageable <NetworkSecurityGroup> listNsgResponseAP = networkSecurityGroupCollection.GetAllAsync();
            List <NetworkSecurityGroup>          listNsgResponse   = await listNsgResponseAP.ToEnumerableAsync();

            Assert.AreEqual(networkSecurityGroupName, listNsgResponse.First().Data.Name);
            Assert.AreEqual(6, listNsgResponse.First().Data.DefaultSecurityRules.Count);
            Assert.AreEqual("AllowVnetInBound", listNsgResponse.First().Data.DefaultSecurityRules[0].Name);
            Assert.AreEqual("AllowAzureLoadBalancerInBound", listNsgResponse.First().Data.DefaultSecurityRules[1].Name);
            Assert.AreEqual("DenyAllInBound", listNsgResponse.First().Data.DefaultSecurityRules[2].Name);
            Assert.AreEqual("AllowVnetOutBound", listNsgResponse.First().Data.DefaultSecurityRules[3].Name);
            Assert.AreEqual("AllowInternetOutBound", listNsgResponse.First().Data.DefaultSecurityRules[4].Name);
            Assert.AreEqual("DenyAllOutBound", listNsgResponse.First().Data.DefaultSecurityRules[5].Name);
            Assert.AreEqual(getNsgResponse.Value.Data.Etag, listNsgResponse.First().Data.Etag);

            // List NSG in a subscription
            AsyncPageable <NetworkSecurityGroup> listNsgSubsciptionResponseAP = subscription.GetNetworkSecurityGroupsAsync();
            List <NetworkSecurityGroup>          listNsgSubsciptionResponse   = await listNsgSubsciptionResponseAP.ToEnumerableAsync();

            Assert.IsNotEmpty(listNsgSubsciptionResponse);

            // Delete NSG
            await putNsgResponse.Value.DeleteAsync();

            // List NSG
            listNsgResponseAP = networkSecurityGroupCollection.GetAllAsync();
            listNsgResponse   = await listNsgResponseAP.ToEnumerableAsync();

            Assert.IsEmpty(listNsgResponse);
        }
Esempio n. 13
0
        public async Task NetworkSecurityGroupWithRulesApiTest()
        {
            Subscription subscription = await ArmClient.GetDefaultSubscriptionAsync();

            string resourceGroupName = Recording.GenerateAssetName("csmrg");

            string location      = TestEnvironment.Location;
            var    resourceGroup = await CreateResourceGroup(resourceGroupName);

            string networkSecurityGroupName = Recording.GenerateAssetName("azsmnet");
            string securityRule1            = Recording.GenerateAssetName("azsmnet");
            string securityRule2            = Recording.GenerateAssetName("azsmnet");

            string destinationPortRange = "123-3500";

            var networkSecurityGroup = new NetworkSecurityGroupData()
            {
                Location      = location,
                SecurityRules =
                {
                    new SecurityRuleData()
                    {
                        Name        = securityRule1,
                        Access      = SecurityRuleAccess.Allow,
                        Description = "Test security rule",
                        DestinationAddressPrefix = "*",
                        DestinationPortRange     = destinationPortRange,
                        Direction           = SecurityRuleDirection.Inbound,
                        Priority            = 500,
                        Protocol            = SecurityRuleProtocol.Tcp,
                        SourceAddressPrefix = "*",
                        SourcePortRange     = "655"
                    }
                }
            };

            // Put Nsg
            var networkSecurityGroupCollection = resourceGroup.GetNetworkSecurityGroups();
            var putNsgResponseOperation        = await networkSecurityGroupCollection.CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroup);

            Response <NetworkSecurityGroup> putNsgResponse = await putNsgResponseOperation.WaitForCompletionAsync();;

            Assert.AreEqual("Succeeded", putNsgResponse.Value.Data.ProvisioningState.ToString());

            // Get NSG
            Response <NetworkSecurityGroup> getNsgResponse = await networkSecurityGroupCollection.GetAsync(networkSecurityGroupName);

            Assert.AreEqual(networkSecurityGroupName, getNsgResponse.Value.Data.Name);
            Assert.AreEqual(6, getNsgResponse.Value.Data.DefaultSecurityRules.Count);
            Assert.AreEqual("AllowVnetInBound", getNsgResponse.Value.Data.DefaultSecurityRules[0].Name);
            Assert.AreEqual("AllowAzureLoadBalancerInBound", getNsgResponse.Value.Data.DefaultSecurityRules[1].Name);
            Assert.AreEqual("DenyAllInBound", getNsgResponse.Value.Data.DefaultSecurityRules[2].Name);
            Assert.AreEqual("AllowVnetOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[3].Name);
            Assert.AreEqual("AllowInternetOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[4].Name);
            Assert.AreEqual("DenyAllOutBound", getNsgResponse.Value.Data.DefaultSecurityRules[5].Name);

            // Verify the security rule
            Assert.AreEqual(SecurityRuleAccess.Allow, getNsgResponse.Value.Data.SecurityRules[0].Access);
            Assert.AreEqual("Test security rule", getNsgResponse.Value.Data.SecurityRules[0].Description);
            Assert.AreEqual("*", getNsgResponse.Value.Data.SecurityRules[0].DestinationAddressPrefix);
            Assert.AreEqual(destinationPortRange, getNsgResponse.Value.Data.SecurityRules[0].DestinationPortRange);
            Assert.AreEqual(SecurityRuleDirection.Inbound, getNsgResponse.Value.Data.SecurityRules[0].Direction);
            Assert.AreEqual(500, getNsgResponse.Value.Data.SecurityRules[0].Priority);
            Assert.AreEqual(SecurityRuleProtocol.Tcp, getNsgResponse.Value.Data.SecurityRules[0].Protocol);
            Assert.AreEqual("Succeeded", getNsgResponse.Value.Data.SecurityRules[0].ProvisioningState.ToString());
            Assert.AreEqual("*", getNsgResponse.Value.Data.SecurityRules[0].SourceAddressPrefix);
            Assert.AreEqual("655", getNsgResponse.Value.Data.SecurityRules[0].SourcePortRange);

            // List NSG
            AsyncPageable <NetworkSecurityGroup> listNsgResponseAP = networkSecurityGroupCollection.GetAllAsync();
            List <NetworkSecurityGroup>          listNsgResponse   = await listNsgResponseAP.ToEnumerableAsync();

            Has.One.EqualTo(listNsgResponse);
            Assert.AreEqual(networkSecurityGroupName, listNsgResponse.First().Data.Name);
            Assert.AreEqual(6, listNsgResponse.First().Data.DefaultSecurityRules.Count);
            Assert.AreEqual("AllowVnetInBound", listNsgResponse.First().Data.DefaultSecurityRules[0].Name);
            Assert.AreEqual("AllowAzureLoadBalancerInBound", listNsgResponse.First().Data.DefaultSecurityRules[1].Name);
            Assert.AreEqual("DenyAllInBound", listNsgResponse.First().Data.DefaultSecurityRules[2].Name);
            Assert.AreEqual("AllowVnetOutBound", listNsgResponse.First().Data.DefaultSecurityRules[3].Name);
            Assert.AreEqual("AllowInternetOutBound", listNsgResponse.First().Data.DefaultSecurityRules[4].Name);
            Assert.AreEqual("DenyAllOutBound", listNsgResponse.First().Data.DefaultSecurityRules[5].Name);
            Assert.AreEqual(getNsgResponse.Value.Data.Etag, listNsgResponse.First().Data.Etag);

            // List NSG in a subscription
            AsyncPageable <NetworkSecurityGroup> listNsgSubsciptionResponseAP = subscription.GetNetworkSecurityGroupsAsync();
            List <NetworkSecurityGroup>          listNsgSubsciptionResponse   = await listNsgSubsciptionResponseAP.ToEnumerableAsync();

            Assert.IsNotEmpty(listNsgSubsciptionResponse);

            // Add a new security rule
            var SecurityRule = new SecurityRuleData()
            {
                Name        = securityRule2,
                Access      = SecurityRuleAccess.Deny,
                Description = "Test outbound security rule",
                DestinationAddressPrefix = "*",
                DestinationPortRange     = destinationPortRange,
                Direction           = SecurityRuleDirection.Outbound,
                Priority            = 501,
                Protocol            = SecurityRuleProtocol.Udp,
                SourceAddressPrefix = "*",
                SourcePortRange     = "656",
            };

            networkSecurityGroup.SecurityRules.Add(SecurityRule);

            putNsgResponseOperation = await networkSecurityGroupCollection.CreateOrUpdateAsync(networkSecurityGroupName, networkSecurityGroup);

            await putNsgResponseOperation.WaitForCompletionAsync();;

            // Get NSG
            getNsgResponse = await networkSecurityGroupCollection.GetAsync(networkSecurityGroupName);

            // Verify the security rule
            Assert.AreEqual(SecurityRuleAccess.Deny, getNsgResponse.Value.Data.SecurityRules[1].Access);
            Assert.AreEqual("Test outbound security rule", getNsgResponse.Value.Data.SecurityRules[1].Description);
            Assert.AreEqual("*", getNsgResponse.Value.Data.SecurityRules[1].DestinationAddressPrefix);
            Assert.AreEqual(destinationPortRange, getNsgResponse.Value.Data.SecurityRules[1].DestinationPortRange);
            Assert.AreEqual(SecurityRuleDirection.Outbound, getNsgResponse.Value.Data.SecurityRules[1].Direction);
            Assert.AreEqual(501, getNsgResponse.Value.Data.SecurityRules[1].Priority);
            Assert.AreEqual(SecurityRuleProtocol.Udp, getNsgResponse.Value.Data.SecurityRules[1].Protocol);
            Assert.AreEqual("Succeeded", getNsgResponse.Value.Data.SecurityRules[1].ProvisioningState.ToString());
            Assert.AreEqual("*", getNsgResponse.Value.Data.SecurityRules[1].SourceAddressPrefix);
            Assert.AreEqual("656", getNsgResponse.Value.Data.SecurityRules[1].SourcePortRange);

            // List Default Security Groups
            AsyncPageable <SecurityRuleData> listDefaultSecurityGroupsAP = getNsgResponse.Value.GetDefaultSecurityRulesAsync();
            List <SecurityRuleData>          listDefaultSecurityGroups   = await listDefaultSecurityGroupsAP.ToEnumerableAsync();

            Assert.IsNotEmpty(listDefaultSecurityGroups);

            // Get Defaul Security Group
            // TODO: ADO 5975
            //Response<SecurityRuleData> getDefaultSecurityGroups = await getNsgResponse.Value.GetDefaultSecurityRuleAsync();
            //Assert.AreEqual(listDefaultSecurityGroups.First().Name, getDefaultSecurityGroups.Value.Name);

            // Delete NSG
            await putNsgResponse.Value.DeleteAsync();

            // List NSG
            listNsgResponseAP = networkSecurityGroupCollection.GetAllAsync();
            listNsgResponse   = await listNsgResponseAP.ToEnumerableAsync();

            Assert.IsEmpty(listNsgResponse);
        }
Esempio n. 14
0
        public async Task MigrationExample()
        {
            #region Snippet:Construct_Client
            ArmClient client = new ArmClient(new DefaultAzureCredential());
            #endregion

            #region Snippet:Create_ResourceGroup
            Subscription subscription = await client.GetDefaultSubscriptionAsync();

            ResourceGroupCollection resourceGroups = subscription.GetResourceGroups();

            AzureLocation location          = AzureLocation.WestUS2;
            string        resourceGroupName = "QuickStartRG";

            ResourceGroupData            resourceGroupData      = new ResourceGroupData(location);
            ArmOperation <ResourceGroup> resourceGroupOperation = await resourceGroups.CreateOrUpdateAsync(WaitUntil.Completed, resourceGroupName, resourceGroupData);

            ResourceGroup resourceGroup = resourceGroupOperation.Value;
            #endregion

            #region Snippet:Create_AvailabilitySet
            string virtualMachineName = "quickstartvm";
            AvailabilitySetData            availabilitySetData      = new AvailabilitySetData(location);
            AvailabilitySetCollection      availabilitySets         = resourceGroup.GetAvailabilitySets();
            ArmOperation <AvailabilitySet> availabilitySetOperation = await availabilitySets.CreateOrUpdateAsync(WaitUntil.Completed, virtualMachineName + "_aSet", availabilitySetData);

            AvailabilitySet availabilitySet = availabilitySetOperation.Value;
            #endregion

            #region Snippet:Create_Vnet_and_Subnet
            string virtualNetworkName = "MYVM" + "_vnet";
            string subnetName         = "mySubnet";

            VirtualNetworkData virtualNetworkData = new VirtualNetworkData()
            {
                Subnets =
                {
                    new SubnetData()
                    {
                        Name          = subnetName,
                        AddressPrefix = "10.0.0.0/24"
                    }
                }
            };
            VirtualNetworkCollection virtualNetworks = resourceGroup.GetVirtualNetworks();
            virtualNetworkData.AddressPrefixes.Add("10.0.0.0/16");
            ArmOperation <VirtualNetwork> virtualNetworkOperation = await virtualNetworks.CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkName, virtualNetworkData);

            VirtualNetwork virtualNetwork = virtualNetworkOperation.Value;
            #endregion

            #region Snippet:Create_NetworkSecurityGroup
            string networkSecurityGroupName = virtualMachineName + "_nsg";
            NetworkSecurityGroupData networkSecurityGroupData = new NetworkSecurityGroupData()
            {
                Location = location
            };
            NetworkSecurityGroupCollection      networkSecurityGroups         = resourceGroup.GetNetworkSecurityGroups();
            ArmOperation <NetworkSecurityGroup> networkSecurityGroupOperation = await networkSecurityGroups.CreateOrUpdateAsync(WaitUntil.Completed, networkSecurityGroupName, networkSecurityGroupData);

            NetworkSecurityGroup networkSecurityGroup = networkSecurityGroupOperation.Value;
            #endregion

            #region Snippet:Create_NetworkInterface
            string networkInterfaceName = virtualMachineName + "_nic";
            NetworkInterfaceIPConfigurationData networkInterfaceIPConfiguration = new NetworkInterfaceIPConfigurationData()
            {
                Name    = "Primary",
                Primary = true,
                Subnet  = new SubnetData()
                {
                    Id = virtualNetwork.Data.Subnets.First().Id
                },
                PrivateIPAllocationMethod = IPAllocationMethod.Dynamic,
            };

            NetworkInterfaceData nicData = new NetworkInterfaceData();
            nicData.Location = location;
            nicData.IPConfigurations.Add(networkInterfaceIPConfiguration);
            NetworkInterfaceCollection      networkInterfaces         = resourceGroup.GetNetworkInterfaces();
            ArmOperation <NetworkInterface> networkInterfaceOperation = await networkInterfaces.CreateOrUpdateAsync(WaitUntil.Completed, networkInterfaceName, nicData);

            NetworkInterface networkInterface = networkInterfaceOperation.Value;
            #endregion

            #region Snippet:Create_VirtualMachine
            VirtualMachineData virutalMachineData = new VirtualMachineData(location);
            virutalMachineData.OSProfile.AdminUsername = "******";
            virutalMachineData.OSProfile.AdminPassword = "******";
            virutalMachineData.OSProfile.ComputerName  = "computer-name";
            virutalMachineData.AvailabilitySetId       = availabilitySet.Id;
            NetworkInterfaceReference nicReference = new NetworkInterfaceReference();
            nicReference.Id = networkInterface.Id;
            virutalMachineData.NetworkProfile.NetworkInterfaces.Add(nicReference);

            VirtualMachineCollection      virtualMachines         = resourceGroup.GetVirtualMachines();
            ArmOperation <VirtualMachine> virtualMachineOperation = await virtualMachines.CreateOrUpdateAsync(WaitUntil.Completed, virtualMachineName, virutalMachineData);

            VirtualMachine virtualMachine = virtualMachineOperation.Value;
            Console.WriteLine("VM ID: " + virtualMachine.Id);
            #endregion
        }