Name

VMRemoveSnapshot

Description

$err = VMRemoveSnapshot($vmHandle,
                        $snapshotHandle,
                        $options);
HRESULT
RemoveSnapshot([in] ISnapshot* snapshot,
               [in] LONG options,
               [in] ICallback* jobDoneCallback,
               [out,retval] IJob** removeJob);

This function deletes all saved states for the specified snapshot.

Parameters

vmHandle
Identifies a virtual machine. Call VMOpen() to create a virtual machine handle.
snapshotHandle
A handle to a snapshot. Call VMGetRootSnapshot() to get a snapshot handle.
options
Flags to specify optional behavior. Any combination of the following or 0:

Return Value

$err. The error code returned by the operation. For returned values, see Topics > Error Codes.

Remarks

Side Effects

None.

Requirements

use VMware::Vix::Simple;
use VMware::Vix::API::Constants;
since VMware Server 1.0

Example

This example deletes every root snapshot belonging to a virtual machine.
my $err = VIX_OK;
my $hostHandle = VIX_INVALID_HANDLE;
my $vmHandle = VIX_INVALID_HANDLE;
my $snapshotHandle = VIX_INVALID_HANDLE;
my $numRootSnapshots;
my $i;

($err, $hostHandle) = HostConnect(VIX_API_VERSION,
                                  VIX_SERVICEPROVIDER_VMWARE_WORKSTATION,
                                  undef, # hostName
                                  0, # hostPort
                                  undef, # userName
                                  undef, # password
                                  0, # options
                                  VIX_INVALID_HANDLE); # propertyListHandle

die "HostConnect() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

($err, $vmHandle) = VMOpen($hostHandle,
                           "c:\\Virtual Machines\\vm1\\win2000.vmx");
die "VMOpen() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

($err, $numRootSnapshots) = VMGetNumRootSnapshots($vmHandle);
die "VMGetNumRootSnapshots() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

for ($i = 0; $i < $numRootSnapshots; $i++) {
   ($err, $snapshotHandle) = VMGetRootSnapshot($vmHandle,
                                               $i); # index
   die "VMGetRootSnapshot() failed, $err ", GetErrorText($err), "\n" if $err != VIX_OK;

   $err = VMRemoveSnapshot($vmHandle, 
                           $snapshotHandle,
                           0);	# options
   ReleaseHandle($snapshotHandle);
}
ReleaseHandle($vmHandle);
HostDisconnect($hostHandle);
                                          

Copyright (C) 2007-2011 VMware, Inc. All rights reserved.