VKernel Remove VM Checkpoint Action

VKernel.CapacityAnalyzer.PRO.PowerShellRemoveVmCheckpoint (WriteActionModuleType)

Element properties:

TypeWriteActionModuleType
IsolationAny
AccessibilityInternal
RunAsDefault
InputTypeSystem.BaseData

Member Modules:

ID Module Type TypeId RunAs 
PSRemoveVmCheckpointAction WriteAction Microsoft.Windows.PowerShellPropertyBagWriteAction Default

Overrideable Parameters:

IDParameterTypeSelector
VmmServerNamestring$Config/VmmServerName$
VmIdstring$Config/VmId$
VmCheckpointIdstring$Config/VmCheckpointId$

Source Code:

<WriteActionModuleType ID="VKernel.CapacityAnalyzer.PRO.PowerShellRemoveVmCheckpoint" Accessibility="Internal" Batching="false">
<Configuration>
<xsd:element minOccurs="1" name="VmmServerName" type="xsd:string"/>
<xsd:element minOccurs="1" name="VmId" type="xsd:string"/>
<xsd:element minOccurs="1" name="VmCheckpointId" type="xsd:string"/>
</Configuration>
<OverrideableParameters>
<OverrideableParameter ID="VmmServerName" Selector="$Config/VmmServerName$" ParameterType="string"/>
<OverrideableParameter ID="VmId" Selector="$Config/VmId$" ParameterType="string"/>
<OverrideableParameter ID="VmCheckpointId" Selector="$Config/VmCheckpointId$" ParameterType="string"/>
</OverrideableParameters>
<ModuleImplementation Isolation="Any">
<Composite>
<MemberModules>
<WriteAction ID="PSRemoveVmCheckpointAction" TypeID="Windows!Microsoft.Windows.PowerShellPropertyBagWriteAction">
<ScriptName>RemoveVmCheckpoint.ps1</ScriptName>
<ScriptBody><Script>
Param($VmmServerName, $VmId, $VmCheckpointId)

$oAPI = New-Object -COMObject "MOM.ScriptAPI";
$bag = $oAPI.CreatePropertyBag();

Import-Module VirtualMachineManager

Get-VMMServer -ComputerName $VmmServerName;

$vm = Get-VM -Id $VmId;
if (!$vm)
{
$bag.AddValue("Status", "Error");
$bag.AddValue("ErrorDescription", "Cannot find VM: " + $VmId);
}
else
{
// Find checkpoint
$checkpoint = null;
$checkpoints = Get-VMCheckpoint -VM $vm.Name;
foreach ($c in $checkpoints)
{
if ($c.CheckpointID -eq $VmCheckpointId)
{
$checkpoint = $c;
break;
}
}

if ($checkpoint)
{
Remove-VMCheckpoint -VMCheckpoint $checkpoint;
$bag.AddValue("Status", "Succeeded");
}
else
{
$bag.AddValue("Status", "Error");
$bag.AddValue("ErrorDescription", "Cannot find VM checkpoint: " + $VmCheckpointId);
}
}

$bag
</Script></ScriptBody>
<Parameters>
<Parameter>
<Name>VmmServerName</Name>
<Value>$Config/VmmServerName$</Value>
</Parameter>
<Parameter>
<Name>VmId</Name>
<Value>$Config/VmId$</Value>
</Parameter>
<Parameter>
<Name>VmCheckpointId</Name>
<Value>$Config/VmCheckpointId$</Value>
</Parameter>
</Parameters>
<TimeoutSeconds>1800</TimeoutSeconds>
</WriteAction>
</MemberModules>
<Composition>
<Node ID="PSRemoveVmCheckpointAction"/>
</Composition>
</Composite>
</ModuleImplementation>
<InputType>System!System.BaseData</InputType>
</WriteActionModuleType>