VKernel Remove VM Checkpoint Action
VKernel.CapacityAnalyzer.PRO.PowerShellRemoveVmCheckpoint (WriteActionModuleType)
Element properties:
Member Modules:
Overrideable Parameters:
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>