public async Task <VirtualMachine> WaitForState(int vmid, VirtualMachineStatus state) { VirtualMachine vm; var startTime = DateTime.Now; while (DateTime.Now - startTime < TimeSpan.FromMilliseconds(OneStepClient.TaskTimeout)) { vm = await Get(vmid); if (vm.Status == state) { return(vm); } if (vm.Status == VirtualMachineStatus.error) { throw new VirtualMachineTaskException("Virtual machine state changed to error"); } await Task.Delay(OneStepClient.PoolingInterval); } throw new TimeoutException(); }
public bool PowerOff() { bool result = false; using (ManagementBaseObject inParams = virtualMachine.GetMethodParameters("RequestStateChange")) { inParams["RequestedState"] = ShutDownID; using (ManagementBaseObject outParams = virtualMachine.InvokeMethod( "RequestStateChange", inParams, null)) { try { result = WmiUtilities.ValidateOutput(outParams, scope); } catch (ManagementException e) { Console.WriteLine(""); } } } if (result) { vmStatus = VirtualMachineStatus.PowerOff; } return(result); }
private string GetStatusString(VirtualMachineStatus status) { switch (status) { case VirtualMachineStatus.Running: return Catalog.GetString ("Running"); case VirtualMachineStatus.Suspended: return Catalog.GetString ("Suspended"); case VirtualMachineStatus.Off: return Catalog.GetString ("Powered Off"); default: return null; } }
public bool IsPowerOff() { ManagementObjectCollection virtualSystemSettings = virtualMachine.GetRelated("Msvm_SummaryInformation"); ManagementObject virtualSystemSetting = WmiUtilities.GetFirstObjectFromCollection(virtualSystemSettings); UInt16 EnabledState = Convert.ToUInt16(virtualSystemSetting.GetPropertyValue("EnabledState")); if (EnabledState == 3) { vmStatus = VirtualMachineStatus.PowerOff; return(true); } else { return(false); } }
public VirtualMachine(String _vmName, ManagementScope scopeM, ManagementObject managementServiceM) { vmName = _vmName; scope = scopeM; managementService = managementServiceM; try { virtualMachine = WmiUtilities.GetVirtualMachine(vmName, scope); } catch (ManagementException) { throw new ArgumentException(string.Format("The virtual machine \"{0}\" could not be found.", vmName)); } if (virtualMachine != null) { GetPerformanceSetting(); } vmStatus = (performanceSetting.EnabledState == 2) ? VirtualMachineStatus.PowerOn : VirtualMachineStatus.PowerOff; }
private void UpdateStatus() { bool lockExists = false; foreach (string lockfile in LockFileNames) { if (File.Exists (lockfile) || Directory.Exists (lockfile)) { lockExists = true; break; } } bool checkPointExists = File.Exists (CheckPointFileName); VirtualMachineStatus newstatus; if (lockExists) { newstatus = VirtualMachineStatus.Running; } else if (checkPointExists) { newstatus = VirtualMachineStatus.Suspended; } else { newstatus = VirtualMachineStatus.Off; icon = null; } if (newstatus == status) return; status = newstatus; EventHandler handler = null; if (status == VirtualMachineStatus.Running) { handler = Started; } else { LoadPreviewIcon (); handler = Stopped; } if (handler != null) { handler (this, new EventArgs ()); } }