private void PowerOn(SimReserved simulator)
        {
            Thread.CurrentThread.SetName(simulator.AssetId);

            UpdateItemStatus(simulator, "Checking power status...");
            if (VMController.IsPoweredOn(simulator.VirtualMachine))
            {
                UpdateItemStatus(simulator, "Already powered on.");
            }
            else
            {
                UpdateItemStatus(simulator, "Powering On VM...");
                VMController.PowerOnMachine(simulator.VirtualMachine);
                VMInventoryManager.SetInUse(simulator.VirtualMachine);
                CancellationTokenSource task = new CancellationTokenSource();
                VMController.WaitOnMachineAvailable(simulator.VirtualMachine, task.Token);
                UpdateItemStatus(simulator, "Power On complete.");
            }
        }
        private void PowerOff(SimReserved simulator)
        {
            Thread.CurrentThread.SetName(simulator.AssetId);

            UpdateItemStatus(simulator, "Checking power status...");
            if (VMController.IsPoweredOn(simulator.VirtualMachine))
            {
                if (JediSimulatorManager.IsSimulatorReady(simulator.HostAddress))
                {
                    UpdateItemStatus(simulator, "Shutting down simulator...");
                    JediSimulatorManager.ShutdownSimulator(simulator.VirtualMachine);
                    UpdateItemStatus(simulator, "Simulator Shutdown complete.");
                }

                UpdateItemStatus(simulator, "Powering Off VM...");
                VMController.Shutdown(simulator.VirtualMachine);
                UpdateItemStatus(simulator, "Power Off complete.");
            }
            else
            {
                UpdateItemStatus(simulator, "Already powered off.");
            }
        }
예제 #3
0
 /// <summary>
 /// Is a VM powered on.
 /// </summary>
 /// <returns>True if it's powered on.</returns>
 public bool IsPoweredOn()
 {
     return(VMController.IsPoweredOn(Name));
 }