How to Create a Virtual Machine Checkpoint
Applies To: System Center 2016 - Service Provider Foundation, System Center Technical Preview
Virtual machine checkpoints provide a way to capture the state of a virtual machine. The checkpoint can then be used to restore the virtual machine to the way it was when the checkpoint was created.
To create a checkpoint, you only must reference the GUID of the virtual machine. The users that create the checkpoint must have the checkpoint permission in their user role. For more information, seeHow to Add a Permission to a User Role. A checkpoint is created by using the VMCheckPoints
OData collection.
To create a checkpoint by using the .NET Framework
Connect to the Service Provider Foundation
VMM
service.Obtain the ID of the
SpfVMM.VirtualMachine
for which you want to create a checkpoint.Create a new instance of the
SpfVMM.VMCheckPoint
class.Set the
VMId
property to the ID of the virtual machine.Set the
StampId
property to the stamp where the checkpoint is to reside.Set the
Name
andDescription
properties to the display name and describe why the checkpoint has been created.Call the
AddToVMCheckPoints
method on theVMM
service object reference and pass in the checkpoint reference.Call the
SaveChanges
method on theVMM
service object reference.
To create a checkpoint by using HTTP
Create a new
HTTP
POST operation.Set the URL to the
VMCheckPoints
collection: https://server:30006/subscription-id/services/systemcenter/vmm/VMCheckPoints.Add the HTTP headers.
Specifically, add the
x-ms-principal-id
header, which can be set to any value.Create the HTTP payload that contains the checkpoint entity. The entity should have the following properties set:
Set the
VMId
property to the ID of the virtual machine for which you want to create a checkpoint.Set the
StampId
property to the stamp where the checkpoint is to reside.Set the
Name
andDescription
properties to the display name and describe why the checkpoint has been created.
Submit the HTTP request.
Example
The following code example shows how to create a virtual machine checkpoint. For more information, seeProgramming in Visual Studio with Service Provider Foundation Services.
SpfVMM.VMM vmmService = new SpfVMM.VMM(new Uri("https://wapserver:30005/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/"));
vmmService.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
var virtualMachine = vmmService.VirtualMachines.Where(vm => vm.ID == new Guid("3499b02c-8dc9-4c0d-aa83-097a1340cbda")).FirstOrDefault();
if (virtualMachine != null)
{
var checkpoint = new SpfVMM.VMCheckPoint();
checkpoint.VMId = virtualMachine.ID;
checkpoint.Name = "Testing Checkpoint #1";
checkpoint.StampId = virtualMachine.StampId;
checkpoint.Description = String.Format("This is a snapshot of the VM taken at {0}", DateTime.Now);
vmmService.AddToVMCheckPoints(checkpoint);
vmmService.SaveChanges();
}
Example
The following code example shows an HTTP request that is sent to the server.
POST https://wapserver:30005/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/VMCheckPoints 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: spfn-457:8090
Content-Length: 463
Expect: 100-continue
{
"odata.type": "VMM.VMCheckPoint",
"Accessibility": null,
"AddedTime": null,
"CheckpointID": null,
"Confirm": null,
"Description": "This is a snapshot of the VM taken at 8/19/2013 3:02:33 PM",
"Enabled": null, "ID": "00000000-0000-0000-0000-000000000000",
"ModifiedTime": null,
"Name": "Testing Checkpoint #1",
"ParentCheckpointID": null,
"RunAsynchronously": null,
"StampId": "ba4146fa-fb41-4f59-a193-ad00c52a138c",
"VMCheckPointAction": null,
"VMId": "3499b02c-8dc9-4c0d-aa83-097a1340cbda"
}
Example
The following code example shows the HTTP response from the server.
HTTP/1.1 201 Created
Cache-Control: no-cache
Content-Length: 651
Content-Type: application/json;odata=minimalmetadata;streaming=true;charset=utf-8
Location: https://wapserver:30005/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/VMCheckPoints(ID=guid'a11cc636-5521-4f88-92b2-cad392911fe0',StampId=guid'ba4146fa-fb41-4f59-a193-ad00c52a138c')
Server: Microsoft-IIS/8.5
x-ms-request-id: e381ad2b-2375-45e4-a45f-64a1447a4ef6
X-Content-Type-Options: nosniff
request-id: eda9bde6-834a-0001-3608-abed4a83ce01
DataServiceVersion: 3.0;
X-AspNet-Version: 4.0.30319
Persistent-Auth: true
X-Powered-By: ASP.NET
Date: Mon, 19 Aug 2013 22:02:36 GMT
{
"odata.metadata": "https://wapserver:30005/97FD50F3-1DC0-41B6-A7C0-2B4FF4C3F7E3/services/systemcenter/vmm/$metadata#VMCheckPoints/@Element",
"Accessibility": "Public",
"AddedTime": "2013-08-19T15:02:36.591591-07:00",
"CheckpointID": null,
"Confirm": null,
"Description": "This is a snapshot of the VM taken at 8/19/2013 3:02:33 PM",
"Enabled": true,
"ID": "a11cc636-5521-4f88-92b2-cad392911fe0",
"ModifiedTime": "2013-08-19T15:02:36.8185926-07:00",
"Name": "Testing Checkpoint #1",
"ParentCheckpointID": null,
"RunAsynchronously": null,
"StampId": "ba4146fa-fb41-4f59-a193-ad00c52a138c",
"VMCheckPointAction": null,
"VMId": "3499b02c-8dc9-4c0d-aa83-097a1340cbda"
}
See Also
Checkpoints
How to Delete a Virtual Machine Checkpoint
How to Restore a VM From a Checkpoint