public void DeallocateVM() { if (virtualMachine == null) { return; } virtualMachine.Deallocate(); }
public void StopVirtualMachine(String resourceId) { Microsoft.Azure.Management.Fluent.IAzure azureCredentials = new AzureCredentialProvider().LoginAzure(); Console.WriteLine("Deallocating Virtual Machine..."); IVirtualMachine virtualMachine = azureCredentials.VirtualMachines.GetById(resourceId); virtualMachine.PowerOff(); virtualMachine.Deallocate(); }
public Status SetPowerState() { Status status = Status.NoChange; bool isRunning = false; string powerState = virtualMachine.PowerState.ToString(); // Determine if VMs are being managed bool manage_vm = Convert.ToBoolean(settings.First(s => s.name == "manage_vms").value); // Only operate on the machine if it is running or deallocated // There are many states that the vm could be in so this needs to be guarded logger.LogDebug("{0} - {1}: Power state - {2}", resourceGroup.GetName(), GetName(), powerState); if (powerState.ToLower() == "powerstate/running" || powerState.ToLower() == "powerstate/deallocated") { // Set the isRunning flag if (powerState.ToLower() == "powerstate/running") { isRunning = true; } // Perform checks to see if this machine should be running bool permitted = ShouldBeRunning(); if (isRunning && !permitted) { logger.LogInformation("action=stop, resource_group={resourceGroup}, vm_name={vmName}, manage_vm={manage_vm}, message=Stop machine", resourceGroup.GetName(), GetName(), manage_vm.ToString()); if (manage_vm) { virtualMachine.Deallocate(); } status = Status.Stopped; } if (!isRunning && permitted) { logger.LogInformation("action=start, resource_group={resourceGroup}, vm_name={vmName}, manage_vm={manage_vm}, message=Start machine", resourceGroup.GetName(), GetName(), manage_vm.ToString()); if (manage_vm) { virtualMachine.Start(); } status = Status.Started; } } return(status); }
private IVirtualMachineCustomImage PrepareCustomImage(string rgName, Region region, IAzure azure) { string vmName = TestUtilities.GenerateName("muldvm"); string uname = "javauser"; string password = "******"; KnownLinuxVirtualMachineImage linuxImage = KnownLinuxVirtualMachineImage.UbuntuServer16_04_Lts; string publicIpDnsLabel = TestUtilities.GenerateName("pip"); string storageName = TestUtilities.GenerateName("stg"); IVirtualMachine linuxVM = azure.VirtualMachines .Define(vmName) .WithRegion(region) .WithExistingResourceGroup(rgName) .WithNewPrimaryNetwork("10.0.0.0/28") .WithPrimaryPrivateIPAddressDynamic() .WithNewPrimaryPublicIPAddress(publicIpDnsLabel) .WithPopularLinuxImage(linuxImage) .WithRootUsername(uname) .WithRootPassword(password) .WithUnmanagedDisks() .DefineUnmanagedDataDisk("disk-1") .WithNewVhd(30) .WithCaching(CachingTypes.ReadWrite) .Attach() .DefineUnmanagedDataDisk("disk-2") .WithNewVhd(60) .WithCaching(CachingTypes.ReadOnly) .Attach() .WithSize(VirtualMachineSizeTypes.Parse("Standard_D2a_v4")) .WithNewStorageAccount(storageName) .WithOSDiskCaching(CachingTypes.ReadWrite) .Create(); // TestHelper.DeprovisionAgentInLinuxVM(linuxVM.GetPrimaryPublicIPAddress().Fqdn, 22, uname, password); // linuxVM.Deallocate(); linuxVM.Generalize(); // string vhdBasedImageName = TestUtilities.GenerateName("img"); // var creatableDisk = azure .VirtualMachineCustomImages .Define(vhdBasedImageName) .WithRegion(region) .WithExistingResourceGroup(rgName) .WithLinuxFromVhd(linuxVM.OSUnmanagedDiskVhdUri, OperatingSystemStateTypes.Generalized) .WithOSDiskCaching(linuxVM.OSDiskCachingType); foreach (IVirtualMachineUnmanagedDataDisk disk in linuxVM.UnmanagedDataDisks.Values) { creatableDisk.DefineDataDiskImage() .WithLun(disk.Lun) .FromVhd(disk.VhdUri) .WithDiskCaching(disk.CachingType) .WithDiskSizeInGB(disk.Size + 10) // Resize each data disk image by +10GB .Attach(); } // IVirtualMachineCustomImage customImage = creatableDisk.Create(); return(customImage); }