Milestone 5.1 - More Automation
Linked Clone
def linked_clone_vm(si, vm_name, clone_name, silent):
"""Linked clone a VM
param si (obj): The connection to vCenter
param vm_name (str): The name of the VM to clone
param clone_name (str): The name of the clone
param silent (bool): Whether or not to print the VM info
return None"""
vm = search_vms(si, vm_name, silent)
if vm.runtime.powerState == 'poweredOn':
print(f"VM {vm_name} is powered on. Please power off the VM before cloning")
power_off_vm(si, vm_name, silent)
input("Press Enter to continue... Once the VM is powered off")
linked_clone_vm(si, vm_name, clone_name, silent)
else:
relocate_spec = vim.vm.RelocateSpec()
relocate_spec.diskMoveType = 'createNewChildDiskBacking'
relocate_spec.pool = vm.resourcePool
clone_spec = vim.vm.CloneSpec()
clone_spec.powerOn = True
clone_spec.location = relocate_spec
try:
clone_spec.snapshot = vm.snapshot.rootSnapshotList[0].snapshot
except:
print(f"VM {vm_name} does not have any snapshots. Taking a snapshot now")
take_snapshot_vm(si, vm_name, 'Base', silent)
vm.Clone(name=clone_name, folder=vm.parent, spec=clone_spec)
print(f"Linked clone VM {vm_name} to {clone_name}")Power On and Off
Take Snapshot
Restore Last Snapshot
Delete Snapshot
Delete VM
Exit Handler
Last updated