How to Start and Stop Virtual Machines

 

Applies To: System Center 2016 - Service Provider Foundation, System Center Technical Preview

When you have reference to a virtual machine, you can control the state of it by changing the Operation property and by submitting the changed entity to the server. The virtual machine then responds to the operation that you submitted. This process can be used to start and stop the virtual machine among other operations.

To start a stopped virtual machine, set the Operation property to Start.

To stop a running virtual machine, which forces it to shut down, set the Operation property to Stop.

To start or stop a virtual machine by using .NET

  1. Connect to the Service Provider FoundationVMM service.

  2. Query for a specific SpfVMM.VirtualMachine.

  3. Set the Operation property of the virtual machine to either Start or Stop.

  4. Call the UpdateObject method on the VMM service object reference and pass in the virtual machine reference.

  5. Call the SaveChanges method on the VMM service object reference.

To start or stop a virtual machine by using HTTP

  1. Create a new HTTP PUT or MERGE operation.

  2. Set the URL to the appropriate URI of a specific virtual machine: https://server:30006/subscription-id/services/systemcenter/vmm/VirtualMachines(ID=guid'vm-id',StampId=guid'stamp-id')

  3. Add the HTTP headers.

    Specifically, add the x-ms-principal-id header, which can be set to any value.

  4. Create the HTTP payload that contains the virtual machine entity, by using key properties and the Operation property set to Start or Stop.

    Important

    If you supply only the key and changed properties, use a MERGE operation. The PUT operation is used when you want to replace all properties on the entity with new or default values. The MERGE operation updates the existing entity with the supplied properties. The PUT operation updates the existing entity with the supplied properties, but resets all missing properties back to their default values.

  5. Submit the HTTP request.

Example

The following code example shows how to stop an existing virtual machine by using .NET. For more information, seeProgramming in Visual Studio with Service Provider Foundation Services.

  
SpfVMM.VMM vmmService = new SpfVMM.VMM(new Uri("https://wapserver:30006/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/"));  
  
var virtualMachine = vmmService.VirtualMachines.Where(vm => vm.ID == new Guid("2fa28d03-8d6d-486b-ae61-9694a2db5d6f")).FirstOrDefault();  
  
if (virtualMachine != null)  
{  
    virtualMachine.Operation = "Stop";  
  
    vmmService.UpdateObject(virtualMachine);  
    vmmService.SaveChanges();  
}  
  

Example

The following code example shows an HTTP request that is sent to the server.

  
MERGE https://wapserver:30006/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/VirtualMachines(ID=guid'2fa28d03-8d6d-486b-ae61-9694a2db5d6f',StampId=guid'ba4146fa-fb41-4f59-a193-ad00c52a138c') HTTP/1.1  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
Accept: application/json;odata=minimalmetadata  
Accept-Charset: UTF-8  
DataServiceUrlConventions: KeyAsSegment  
User-Agent: Microsoft ADO.NET Data Services  
x-ms-principal-id: user@contoso.com  
Content-Type: application/json;odata=minimalmetadata  
Host: wapserver:30006  
Content-Length: 179  
Expect: 100-continue  
Authorization: Negotiate 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  
  
{  
    "odata.type": "VMM.VirtualMachine",  
    "ModifiedTime": "2013-08-06T23:17:18.4061005-07:00",  
    "Operation": "Stop"  
}  
  

Example

The following code example shows the HTTP response from the server.

  
HTTP/1.1 204 No Content  
Cache-Control: no-cache  
Server: Microsoft-IIS/8.5  
x-ms-request-id: 957320a6-6f62-48ef-a854-a721c579c595  
X-Content-Type-Options: nosniff  
request-id: eda9bde6-834a-0001-46f1-aaed4a83ce01  
DataServiceVersion: 1.0;  
X-AspNet-Version: 4.0.30319  
Persistent-Auth: true  
X-Powered-By: ASP.NET  
WWW-Authenticate: Negotiate oYG2MIGzoAMKAQChCwYJKoZIgvcSAQICooGeBIGbYIGYBgkqhkiG9xIBAgICAG+BiDCBhaADAgEFoQMCAQ+ieTB3oAMCARKicARuBxmfiEwlR7iFBMUoozIOaNsMQD/wtFve4X/yoFT27BiUaibkryGn/tS8in4Nc/ohfIvteyhLhB44+zjZ83aqgE3SW2IpDJJ7pFSGFQDpFQk7I5auEyB9enwfORHt8gAX/0/u8mdAjkaP51HyBls=  
Date: Wed, 07 Aug 2013 21:53:32 GMT  
  

See Also

Virtual Machine Management
How to Get a List of Virtual Machines
How to Create a Virtual Machine from a Template
How to Create a Virtual Machine from a VHD
How to Delete a Virtual Machine