public void Snap() { machine.LockMachine(session, LockType.LockType_Write); if (machine.SnapshotCount > 0) { var snapshot = machine.FindSnapshot("origin"); machine.DeleteSnapshot(snapshot.Id).WaitForCompletion(-1); } string id; machine.TakeSnapshot("origin", "чистое состояние", 1, out id).WaitForCompletion(-1); session.UnlockMachine(); }
void UpdateSnapshots(IMachine mc) { List <ISnapshot> snaps = new List <ISnapshot>(); listView1.Items.Clear(); if (mc.SnapshotCount > 0) { var root = mc.FindSnapshot(null); //while (root != null) { var snap = root as ISnapshot; snaps.Add(snap); listView1.Items.Add(new ListViewItem(new string[] { root.Name, root.TimeStamp + "" }) { Tag = snap }); foreach (var item in snap.Children) { snap = item as ISnapshot; snaps.Add(snap); listView1.Items.Add(new ListViewItem(new string[] { snap.Name, snap.TimeStamp + "" }) { Tag = snap }); } //root = root.Children; } } }
public override void RevertSnapshotVM(string SnapshotName) { SuspendVM(); VMObjects vo = Instanciate(); //vo.Session = new SessionClass(); //machine.LockMachine(vo.Session, LockType.LockType_Shared); //vo.Console = vo.Session.Console; var snapshot = machine.FindSnapshot(SnapshotName); var prog = vo.Console.RestoreSnapshot(snapshot); prog.WaitForCompletion(100000); //vo.Session.UnlockMachine(); releaseObjects(vo); }