Ejemplo n.º 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);
        }