Пример #1
0
        public async Task TestVMScaleSetBatchOperations_PerformMaintenance()
        {
            string rgName             = Recording.GenerateAssetName(TestPrefix) + 1;
            string vmssName           = Recording.GenerateAssetName("vmss");
            string storageAccountName = Recording.GenerateAssetName(TestPrefix);
            VirtualMachineScaleSet inputVMScaleSet;
            VirtualMachineScaleSet vmScaleSet = null;

            bool passed = false;

            try
            {
                EnsureClientsInitialized(LocationEastUs2UpperCase);

                ImageReference imageRef = await GetPlatformVMImage(useWindowsImage : true);

                StorageAccount storageAccountOutput = await CreateStorageAccount(rgName, storageAccountName);

                var getTwoVirtualMachineScaleSet = await CreateVMScaleSet_NoAsyncTracking(rgName, vmssName, storageAccountOutput, imageRef,
                                                                                          createWithManagedDisks : true,
                                                                                          vmScaleSetCustomizer : virtualMachineScaleSet => virtualMachineScaleSet.UpgradePolicy =
                                                                                          new UpgradePolicy { Mode = UpgradeMode.Manual });

                vmScaleSet      = getTwoVirtualMachineScaleSet.Item1;
                inputVMScaleSet = getTwoVirtualMachineScaleSet.Item2;
                List <string> virtualMachineScaleSetInstanceIDs = new List <string> {
                    "0", "1"
                };
                var virtualMachineScaleSetInstanceID = new VirtualMachineScaleSetVMInstanceIDs(new List <string>()
                {
                    "0", "1"
                });
                await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartPerformMaintenanceAsync(rgName, vmScaleSet.Name,
                                                                                                                  virtualMachineScaleSetInstanceID));

                passed = true;
            }
            catch (Exception cex)
            {
                passed = true;
                string expectedMessage =
                    $"Operation 'performMaintenance' is not allowed on VM '{vmScaleSet.Name}_0' " +
                    "since the Subscription of this VM is not eligible.";
                Assert.IsTrue(cex.Message.Contains(expectedMessage));
            }
            Assert.True(passed);
        }
Пример #2
0
        public async Task TestVMScaleSetBatchOperations_Redeploy()
        {
            string rgName             = Recording.GenerateAssetName(TestPrefix) + 1;
            string vmssName           = Recording.GenerateAssetName("vmss");
            string storageAccountName = Recording.GenerateAssetName(TestPrefix);
            VirtualMachineScaleSet inputVMScaleSet;

            bool passed = false;

            EnsureClientsInitialized(LocationEastUs2UpperCase);

            ImageReference imageRef = await GetPlatformVMImage(useWindowsImage : true);

            StorageAccount storageAccountOutput = await CreateStorageAccount(rgName, storageAccountName);

            var getTwoVirtualMachineScaleSet = await CreateVMScaleSet_NoAsyncTracking(rgName, vmssName,
                                                                                      storageAccountOutput, imageRef, createWithManagedDisks : true,
                                                                                      vmScaleSetCustomizer : virtualMachineScaleSet => virtualMachineScaleSet.UpgradePolicy =
                                                                                      new UpgradePolicy { Mode = UpgradeMode.Manual });

            VirtualMachineScaleSet vmScaleSet = getTwoVirtualMachineScaleSet.Item1;

            inputVMScaleSet = getTwoVirtualMachineScaleSet.Item2;
            List <string> virtualMachineScaleSetInstanceIDs = new List <string> {
                "0", "1"
            };
            var virtualMachineScaleSetInstanceID = new VirtualMachineScaleSetVMInstanceIDs(new List <string>()
            {
                "0", "1"
            });

            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartRedeployAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceID));

            passed = true;
            Assert.True(passed);
        }
Пример #3
0
        public async Task TestVMScaleSetBatchOperations()
        {
            EnsureClientsInitialized(DefaultLocation);

            ImageReference imageRef = await GetPlatformVMImage(useWindowsImage : true);

            // Create resource group
            string rgName             = Recording.GenerateAssetName(TestPrefix) + 1;
            var    vmssName           = Recording.GenerateAssetName("vmss");
            string storageAccountName = Recording.GenerateAssetName(TestPrefix);
            VirtualMachineScaleSet inputVMScaleSet;

            bool passed = false;
            var  storageAccountOutput = await CreateStorageAccount(rgName, storageAccountName);

            var getTwoVirtualMachineScaleSet = await CreateVMScaleSet_NoAsyncTracking(
                rgName : rgName,
                vmssName : vmssName,
                storageAccount : storageAccountOutput,
                imageRef : imageRef,
                createWithManagedDisks : true,
                vmScaleSetCustomizer :
                (virtualMachineScaleSet) => virtualMachineScaleSet.UpgradePolicy = new UpgradePolicy { Mode = UpgradeMode.Manual }
                );

            VirtualMachineScaleSet vmScaleSet = getTwoVirtualMachineScaleSet.Item1;

            inputVMScaleSet = getTwoVirtualMachineScaleSet.Item2;
            var virtualMachineScaleSetInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs(new List <string>()
            {
                "0", "1"
            });
            var virtualMachineScaleSetInstanceID = new List <string>()
            {
                "0", "1"
            };
            var virtualMachineScaleSetRequ = new VirtualMachineScaleSetVMInstanceRequiredIDs(new List <string>()
            {
                "0", "1"
            });

            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartStartAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceIDs));

            virtualMachineScaleSetInstanceIDs = new VirtualMachineScaleSetVMInstanceIDs(new List <string>()
            {
                "0"
            });
            VirtualMachineScaleSetReimageParameters virtualMachineScaleSetReimageParameters = new VirtualMachineScaleSetReimageParameters
            {
                InstanceIds = virtualMachineScaleSetInstanceID
            };

            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartReimageAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetReimageParameters));
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartReimageAllAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceIDs));
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartPowerOffAsync(rgName, vmScaleSet.Name, null, virtualMachineScaleSetInstanceIDs));
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartUpdateInstancesAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetRequ));

            virtualMachineScaleSetInstanceID = new List <string>()
            {
                "1"
            };
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartRestartAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceIDs));
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartDeallocateAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetInstanceIDs));
            await WaitForCompletionAsync(await VirtualMachineScaleSetsOperations.StartDeleteInstancesAsync(rgName, vmScaleSet.Name, virtualMachineScaleSetRequ));

            passed = true;
            Assert.True(passed);
        }