public void Login() { if (VimHelper.CurrentSession == null) { VimHelper.Login(); } }
public IVMConnection CreateLinkedClone(string snapshotName, string linkedVMName) { var snapshot = VimHelper.GetDynamicProperty <VirtualMachineSnapshotInfo>(MOB, "snapshot"); if (snapshot != null) { var snapshotMOB = FindSnapshotByName(snapshot.rootSnapshotList, snapshotName); if (snapshotMOB != null) { var relSpec = new VirtualMachineRelocateSpec(); relSpec.diskMoveType = "createNewChildDiskBacking"; var cloneSpec = new VirtualMachineCloneSpec(); cloneSpec.powerOn = false; cloneSpec.template = false; cloneSpec.location = relSpec; cloneSpec.snapshot = snapshotMOB; ManagedObjectReference folder = VimHelper.GetDynamicProperty <ManagedObjectReference>(MOB, "parent"); ManagedObjectReference task = VimHelper.ServiceInstance.CloneVM_Task(MOB, folder, linkedVMName, cloneSpec); while (true) { TaskInfo info = VimHelper.GetDynamicProperty <TaskInfo>(task, "info"); if (info.state == TaskInfoState.success) { return(new VSphereVMConnection(info.result as ManagedObjectReference)); } else if (info.state == TaskInfoState.error) { throw new Exception(info.error.localizedMessage); } System.Threading.Thread.Sleep(500); } } } return(null); }
public void RevertToNamedSnapshot(string snapshotName) { var snapshot = VimHelper.GetDynamicProperty <VirtualMachineSnapshotInfo>(MOB, "snapshot"); if (snapshot != null) { var snapshotMOB = FindSnapshotByName(snapshot.rootSnapshotList, snapshotName); if (snapshotMOB != null) { ManagedObjectReference task = VimHelper.ServiceInstance.RevertToSnapshot_Task(snapshotMOB, null, false, false); while (true) { TaskInfo info = VimHelper.GetDynamicProperty <TaskInfo>(task, "info"); if (info.state == TaskInfoState.success || info.state == TaskInfoState.error) { break; } System.Threading.Thread.Sleep(500); } } else { throw new NullReferenceException("Could not find the snapshot named '" + snapshotName + "' for VM '" + path + "'"); } } else { throw new NullReferenceException("Could not find the 'snapshot' property for this VM, or the property was null. VM: " + path); } }
public void TakeSnapshot(string snapShotName, string desc) { ManagedObjectReference task = VimHelper.ServiceInstance.CreateSnapshot_Task(MOB, snapShotName, desc, false, false); while (true) { TaskInfo info = VimHelper.GetDynamicProperty <TaskInfo>(task, "info"); if (info.state == TaskInfoState.success || info.state == TaskInfoState.error) { break; } System.Threading.Thread.Sleep(500); } }
public void RevertToCurrentSnapshot() { ManagedObjectReference task = VimHelper.ServiceInstance.RevertToCurrentSnapshot_Task(MOB, null, false, false); while (true) { TaskInfo info = VimHelper.GetDynamicProperty <TaskInfo>(task, "info"); if (info.state == TaskInfoState.success || info.state == TaskInfoState.error) { break; } System.Threading.Thread.Sleep(500); } }
private ManagedObjectReference getDataStore(DataStores datastore) { ManagedObjectReference[] datastores = VimHelper.GetDynamicProperty <ManagedObjectReference[]>(VimHelper.DataCenterMOB, "datastore"); for (int i = 0; i < datastores.Length; i++) { ManagedObjectReference curDatastore = datastores[i]; string name = VimHelper.GetDynamicProperty <string>(curDatastore, "name"); if (name == datastore.ToString()) { return(curDatastore); } } return(null); }