public async Task UpdateAvailabilitySet()
        {
            #region Snippet:Managing_Availability_Set_UpdateAnAvailabilitySet
            // First, initialize the ArmClient and get the default subscription
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            // Now we get a ResourceGroupResource collection for that subscription
            SubscriptionResource 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";
            ResourceGroupResource resourceGroup = await rgCollection.GetAsync(rgName);

            AvailabilitySetCollection availabilitySetCollection = resourceGroup.GetAvailabilitySets();
            string availabilitySetName = "myAvailabilitySet";
            AvailabilitySetResource availabilitySet = await availabilitySetCollection.GetAsync(availabilitySetName);

            // availabilitySet is an AvailabilitySetResource instance created above
            AvailabilitySetPatch update = new AvailabilitySetPatch()
            {
                PlatformFaultDomainCount = 3
            };
            AvailabilitySetResource updatedAvailabilitySet = await availabilitySet.UpdateAsync(update);

            #endregion Snippet:Managing_Availability_Set_UpdateAnAvailabilitySet
        }
        public async Task GetAllInSubscription()
        {
            var collection = await GetAvailabilitySetCollectionAsync();

            var setName1 = Recording.GenerateAssetName("testAS-");
            var setName2 = Recording.GenerateAssetName("testAS-");
            var input    = ResourceDataHelper.GetBasicAvailabilitySetData(DefaultLocation);

            input.Tags.ReplaceWith(new Dictionary <string, string>
            {
                { "key", "value" }
            });
            _ = await collection.CreateOrUpdateAsync(WaitUntil.Completed, setName1, input);

            _ = await collection.CreateOrUpdateAsync(WaitUntil.Completed, setName2, input);

            AvailabilitySetResource set1 = null, set2 = null;

            await foreach (var availabilitySet in DefaultSubscription.GetAvailabilitySetsAsync())
            {
                if (availabilitySet.Data.Name == setName1)
                {
                    set1 = availabilitySet;
                }
                if (availabilitySet.Data.Name == setName2)
                {
                    set2 = availabilitySet;
                }
            }

            Assert.NotNull(set1);
            Assert.NotNull(set2);
        }
        public async Task CreateAvailabilitySet()
        {
            // First, initialize the ArmClient and get the default subscription
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            // Now we get a ResourceGroupResource collection for that subscription
            SubscriptionResource 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;
            ArmOperation <ResourceGroupResource> rgLro = await rgCollection.CreateOrUpdateAsync(WaitUntil.Completed, rgName, new ResourceGroupData(location));

            ResourceGroupResource resourceGroup = rgLro.Value;

            #region Snippet:Managing_Availability_Set_CreateAnAvailabilitySet
            AvailabilitySetCollection availabilitySetCollection = resourceGroup.GetAvailabilitySets();
            string availabilitySetName = "myAvailabilitySet";
            AvailabilitySetData input  = new AvailabilitySetData(location);
            ArmOperation <AvailabilitySetResource> lro = await availabilitySetCollection.CreateOrUpdateAsync(WaitUntil.Completed, availabilitySetName, input);

            AvailabilitySetResource availabilitySet = lro.Value;
            #endregion Snippet:Managing_Availability_Set_CreateAnAvailabilitySet
        }
Ejemplo n.º 4
0
        public async Task Get()
        {
            var setName = Recording.GenerateAssetName("testAS-");
            var set1    = await CreateAvailabilitySetAsync(setName);

            AvailabilitySetResource set2 = await set1.GetAsync();

            ResourceDataHelper.AssertAvailabilitySet(set1.Data, set2.Data);
        }
Ejemplo n.º 5
0
        public async Task PlacementGroupId()
        {
            var asetName = Recording.GenerateAssetName("aset-");
            AvailabilitySetResource aset = await CreateAvailabilitySetAsync(asetName);

            var beforeAdd = aset.Data.ProximityPlacementGroupId;

            ResourceGroupResource rg = Client.GetResourceGroupResource(ResourceGroupResource.CreateResourceIdentifier(aset.Id.SubscriptionId, aset.Id.ResourceGroupName));
            var proxGrpName          = Recording.GenerateAssetName("proxGrp-");
            ProximityPlacementGroupResource proxGrp = (await rg.GetProximityPlacementGroups().CreateOrUpdateAsync(WaitUntil.Completed, proxGrpName, new ProximityPlacementGroupData(DefaultLocation))).Value;

            AvailabilitySetPatch updateOptions = new AvailabilitySetPatch();

            updateOptions.ProximityPlacementGroupId = proxGrp.Id;
            aset = await aset.UpdateAsync(updateOptions);

            var addIdResult = aset.Data.ProximityPlacementGroupId;

            updateOptions.ProximityPlacementGroupId = null;
            aset = await aset.UpdateAsync(updateOptions);

            var removeIdResult = aset.Data.ProximityPlacementGroupId;

            var asetName2 = Recording.GenerateAssetName("aset-");
            AvailabilitySetResource aset2 = await CreateAvailabilitySetAsync(asetName2);

            var newBeforeAdd = aset2.Data.ProximityPlacementGroup?.Id;

            AvailabilitySetPatch updateOptions2 = new AvailabilitySetPatch();

            updateOptions2.ProximityPlacementGroup    = new Resources.Models.WritableSubResource();
            updateOptions2.ProximityPlacementGroup.Id = proxGrp.Id;
            aset2 = await aset2.UpdateAsync(updateOptions2);

            var newAddIdResult = aset2.Data.ProximityPlacementGroup.Id;

            updateOptions2.ProximityPlacementGroup.Id = null;
            aset2 = await aset2.UpdateAsync(updateOptions2);

            var newRemoveIdResult = aset2.Data.ProximityPlacementGroup?.Id;

            updateOptions2.ProximityPlacementGroup.Id = proxGrp.Id;
            aset2 = await aset2.UpdateAsync(updateOptions2);

            Assert.NotNull(aset2.Data.ProximityPlacementGroup.Id);

            updateOptions2.ProximityPlacementGroup = null;
            aset2 = await aset2.UpdateAsync(updateOptions2);

            var newRemoveOuterIdResult = aset2.Data.ProximityPlacementGroup?.Id;

            Assert.AreEqual(beforeAdd, newBeforeAdd);
            Assert.AreEqual(addIdResult, newAddIdResult);
            Assert.AreEqual(removeIdResult, newRemoveIdResult);
            Assert.AreEqual(removeIdResult, newRemoveOuterIdResult);
        }
Ejemplo n.º 6
0
        public async Task Update()
        {
            var setName = Recording.GenerateAssetName("testAS-");
            var set     = await CreateAvailabilitySetAsync(setName);

            var updatedPlatformFaultDomainCount = 3;
            var update = new AvailabilitySetPatch()
            {
                PlatformFaultDomainCount = updatedPlatformFaultDomainCount
            };
            AvailabilitySetResource updatedSet = await set.UpdateAsync(update);

            Assert.AreEqual(updatedPlatformFaultDomainCount, updatedSet.Data.PlatformFaultDomainCount);
        }
Ejemplo n.º 7
0
 public async Task ManageAvailabilitySetNow()
 {
     #region Snippet:Readme_ManageAvailabilitySetNow
     ResourceIdentifier resourceId = new ResourceIdentifier("/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/workshop2021-rg/providers/Microsoft.Compute/availabilitySets/ws2021availSet");
     // We construct a new client to work with
     ArmClient client = new ArmClient(new DefaultAzureCredential());
     // Next we get the AvailabilitySetResource resource client from the client
     // The method takes in a ResourceIdentifier but we can use the implicit cast from string
     AvailabilitySetResource availabilitySet = client.GetAvailabilitySetResource(resourceId);
     // At this point availabilitySet.Data will be null and trying to access it will throw
     // If we want to retrieve the objects data we can simply call get
     availabilitySet = await availabilitySet.GetAsync();
     // we now have the data representing the availabilitySet
     Console.WriteLine(availabilitySet.Data.Name);
     #endregion Snippet:Readme_ManageAvailabilitySetNow
 }
        public async Task Get()
        {
            var collection = await GetAvailabilitySetCollectionAsync();

            var setName = Recording.GenerateAssetName("testAS-");
            var input   = ResourceDataHelper.GetBasicAvailabilitySetData(DefaultLocation);

            input.Tags.ReplaceWith(new Dictionary <string, string>
            {
                { "key", "value" }
            });
            var lro = await collection.CreateOrUpdateAsync(WaitUntil.Completed, setName, input);

            AvailabilitySetResource set1 = lro.Value;
            AvailabilitySetResource set2 = await collection.GetAsync(setName);

            ResourceDataHelper.AssertAvailabilitySet(set1.Data, set2.Data);
        }
        public async Task AddTagToAvailabilitySet()
        {
            #region Snippet:Managing_Availability_Set_AddTagAvailabilitySet
            // First, initialize the ArmClient and get the default subscription
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            // Now we get a ResourceGroupResource collection for that subscription
            SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();
            ResourceGroupCollection rgCollection = subscription.GetResourceGroups();

            string rgName = "myRgName";
            ResourceGroupResource resourceGroup = await rgCollection.GetAsync(rgName);
            AvailabilitySetCollection availabilitySetCollection = resourceGroup.GetAvailabilitySets();
            string availabilitySetName = "myAvailabilitySet";
            AvailabilitySetResource availabilitySet = await availabilitySetCollection.GetAsync(availabilitySetName);
            // add a tag on this availabilitySet
            AvailabilitySetResource updatedAvailabilitySet = await availabilitySet.AddTagAsync("key", "value");
            #endregion Snippet:Managing_Availability_Set_AddTagAvailabilitySet
        }
Ejemplo n.º 10
0
 public async Task ManageAvailabilitySetPieces()
 {
     #region Snippet:Readme_ManageAvailabilitySetPieces
     string subscriptionId = "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee";
     string resourceGroupName = "workshop2021-rg";
     string availabilitySetName = "ws2021availSet";
     ResourceIdentifier resourceId = AvailabilitySetResource.CreateResourceIdentifier(subscriptionId, resourceGroupName, availabilitySetName);
     // We construct a new client to work with
     ArmClient client = new ArmClient(new DefaultAzureCredential());
     // Next we get the AvailabilitySetResource resource client from the client
     // The method takes in a ResourceIdentifier but we can use the implicit cast from string
     AvailabilitySetResource availabilitySet = client.GetAvailabilitySetResource(resourceId);
     // At this point availabilitySet.Data will be null and trying to access it will throw
     // If we want to retrieve the objects data we can simply call get
     availabilitySet = await availabilitySet.GetAsync();
     // we now have the data representing the availabilitySet
     Console.WriteLine(availabilitySet.Data.Name);
     #endregion Snippet:Readme_ManageAvailabilitySetPieces
 }
        public async Task DeleteAvailabilitySet()
        {
            #region Snippet:Managing_Availability_Set_DeleteAnAvailabilitySet
            // First, initialize the ArmClient and get the default subscription
            ArmClient armClient = new ArmClient(new DefaultAzureCredential());
            // Now we get a ResourceGroupResource collection for that subscription
            SubscriptionResource 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";
            ResourceGroupResource resourceGroup = await rgCollection.GetAsync(rgName);
            AvailabilitySetCollection availabilitySetCollection = resourceGroup.GetAvailabilitySets();
            string availabilitySetName = "myAvailabilitySet";
            AvailabilitySetResource availabilitySet = await availabilitySetCollection.GetAsync(availabilitySetName);
            // delete the availability set
            await availabilitySet.DeleteAsync(WaitUntil.Completed);
            #endregion Snippet:Managing_Availability_Set_DeleteAnAvailabilitySet
        }
Ejemplo n.º 12
0
 public async Task ManageAvailabilitySetOld()
 {
     #region Snippet:Readme_ManageAvailabilitySetOld
     ResourceIdentifier id = new ResourceIdentifier("/subscriptions/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee/resourceGroups/workshop2021-rg/providers/Microsoft.Compute/availabilitySets/ws2021availSet");
     // We construct a new client to work with
     ArmClient client = new ArmClient(new DefaultAzureCredential());
     // Next we get the collection of subscriptions
     SubscriptionCollection subscriptions = client.GetSubscriptions();
     // Next we get the specific subscription this resource belongs to
     SubscriptionResource subscription = await subscriptions.GetAsync(id.SubscriptionId);
     // Next we get the collection of resource groups that belong to that subscription
     ResourceGroupCollection resourceGroups = subscription.GetResourceGroups();
     // Next we get the specific resource group this resource belongs to
     ResourceGroupResource resourceGroup = await resourceGroups.GetAsync(id.ResourceGroupName);
     // Next we get the collection of availability sets that belong to that resource group
     AvailabilitySetCollection availabilitySets = resourceGroup.GetAvailabilitySets();
     // Finally we get the resource itself
     // Note: for this last step in this example, Azure.ResourceManager.Compute is needed
     AvailabilitySetResource availabilitySet = await availabilitySets.GetAsync(id.Name);
     #endregion Snippet:Readme_ManageAvailabilitySetOld
 }
Ejemplo n.º 13
0
        public async Task NewCode()
        {
#endif
            var armClient = new ArmClient(new DefaultAzureCredential());

            var location = AzureLocation.WestUS;
            // Create ResourceGroupResource
            SubscriptionResource subscription = await armClient.GetDefaultSubscriptionAsync();
            ArmOperation<ResourceGroupResource> rgOperation = await subscription.GetResourceGroups().CreateOrUpdateAsync(WaitUntil.Completed, "myResourceGroup", new ResourceGroupData(location));
            ResourceGroupResource resourceGroup = rgOperation.Value;

            // Create AvailabilitySet
            var availabilitySetData = new AvailabilitySetData(location)
            {
                PlatformUpdateDomainCount = 5,
                PlatformFaultDomainCount = 2,
                Sku = new ComputeSku() { Name = "Aligned" }
            };
            ArmOperation<AvailabilitySetResource> asetOperation = await resourceGroup.GetAvailabilitySets().CreateOrUpdateAsync(WaitUntil.Completed, "myAvailabilitySet", availabilitySetData);
            AvailabilitySetResource availabilitySet = asetOperation.Value;

            // Create VNet
            var vnetData = new VirtualNetworkData()
            {
                Location = location,
                Subnets =
                {
                    new SubnetData()
                    {
                        Name = "mySubnet",
                        AddressPrefix = "10.0.0.0/24",
                    }
                },
            };
            vnetData.AddressPrefixes.Add("10.0.0.0/16");
            ArmOperation<VirtualNetworkResource> vnetOperation = await resourceGroup.GetVirtualNetworks().CreateOrUpdateAsync(WaitUntil.Completed, "myVirtualNetwork", vnetData);
            VirtualNetworkResource vnet = vnetOperation.Value;

            // Create Network interface
            var nicData = new NetworkInterfaceData()
            {
                Location = location,
                IPConfigurations =
                {
                    new NetworkInterfaceIPConfigurationData()
                    {
                        Name = "Primary",
                        Primary = true,
                        Subnet = new SubnetData() { Id = vnet.Data.Subnets.First().Id },
                        PrivateIPAllocationMethod = IPAllocationMethod.Dynamic,
                    }
                }
            };
            ArmOperation<NetworkInterfaceResource> nicOperation = await resourceGroup.GetNetworkInterfaces().CreateOrUpdateAsync(WaitUntil.Completed, "myNetworkInterface", nicData);
            NetworkInterfaceResource nic = nicOperation.Value;

            var vmData = new VirtualMachineData(location)
            {
                AvailabilitySet = new WritableSubResource() { Id = availabilitySet.Id },
                NetworkProfile = new Compute.Models.NetworkProfile { NetworkInterfaces = { new NetworkInterfaceReference() { Id = nic.Id } } },
                OSProfile = new OSProfile
                {
                    ComputerName = "testVM",
                    AdminUsername = "******",
                    AdminPassword = "******",
                    LinuxConfiguration = new LinuxConfiguration { DisablePasswordAuthentication = false, ProvisionVmAgent = true }
                },
                StorageProfile = new StorageProfile()
                {
                    ImageReference = new ImageReference()
                    {
                        Offer = "UbuntuServer",
                        Publisher = "Canonical",
                        Sku = "18.04-LTS",
                        Version = "latest"
                    }
                },
                HardwareProfile = new HardwareProfile() { VmSize = VirtualMachineSizeTypes.StandardB1Ms },
            };
            ArmOperation<VirtualMachineResource> vmOperation = await resourceGroup.GetVirtualMachines().CreateOrUpdateAsync(WaitUntil.Completed, "myVirtualMachine", vmData);
            VirtualMachineResource vm = vmOperation.Value;
            #endregion
        }
        public async Task MigrationExample()
        {
            #region Snippet:Construct_Client
            ArmClient client = new ArmClient(new DefaultAzureCredential());
            #endregion

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

            ResourceGroupCollection resourceGroups = subscription.GetResourceGroups();

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

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

            ResourceGroupResource resourceGroup = resourceGroupOperation.Value;
            #endregion

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

            AvailabilitySetResource 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 <VirtualNetworkResource> virtualNetworkOperation = await virtualNetworks.CreateOrUpdateAsync(WaitUntil.Completed, virtualNetworkName, virtualNetworkData);

            VirtualNetworkResource virtualNetwork = virtualNetworkOperation.Value;
            #endregion

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

            NetworkSecurityGroupResource 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 <NetworkInterfaceResource> networkInterfaceOperation = await networkInterfaces.CreateOrUpdateAsync(WaitUntil.Completed, networkInterfaceName, nicData);

            NetworkInterfaceResource 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 <VirtualMachineResource> virtualMachineOperation = await virtualMachines.CreateOrUpdateAsync(WaitUntil.Completed, virtualMachineName, virutalMachineData);

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