private VirtualMachinePowerResult PowerOn(VirtualMachineConfig virtualMachineConfig) { VirtualMachinePowerResult powerResult = new VirtualMachinePowerResult(); powerResult.Name = virtualMachineConfig.Name; try { if (virtualMachineConfig.Snapshots.Count != 1) { throw new Exception(string.Format("Invalid number of snapshots in '{0}'", virtualMachineConfig.Name)); } VirtualMachinePowerDriver powerDriver = new VirtualMachinePowerDriver( virtualMachineConfig, virtualMachineConfig.Snapshots[0], _simulationOnly); _virtualMachinePowerDrivers.Add(powerDriver); powerDriver.ConnectToHost(); powerDriver.MapVirtualMachine(virtualMachineConfig.CopyMethod); powerDriver.PrepareSnapshot(); powerResult.Success = true; } catch (Exception ex) { ConsoleOutput.WriteLine(ex); powerResult.LastError = ex.Message; powerResult.Success = false; } return(powerResult); }
/// <summary> /// Returns true if there's an overlap between two configurations. /// </summary> /// <param name="config">Virtual machine configuration.</param> /// <returns>True if there's an overlap.</returns> public bool Overlaps(VirtualMachineConfig config) { // same virtual machine if (Host == config.Host && File == config.File) { return(true); } // each snapshot in this vm overlapping the configuration foreach (SnapshotConfig snapshot in Snapshots) { if (snapshot.Overlaps(config)) { return(true); } } // each snapshot in the configuration overlapping this foreach (SnapshotConfig snapshot in config.Snapshots) { if (snapshot.Overlaps(this)) { return(true); } } return(false); }
public VirtualMachinePowerDriver( VirtualMachineConfig virtualMachineConfig, SnapshotConfig snapshotConfig, bool simulationOnly) { _vmConfig = virtualMachineConfig; _snapshotConfig = snapshotConfig; _simulationOnly = simulationOnly; ConsoleOutput.WriteLine("Loading '{0}'", _vmConfig.Name); }
/// <summary> /// Returns true if there's an overlap between two configurations. /// </summary> /// <param name="config">Virtual machine configuration.</param> /// <returns>True if there's an overlap.</returns> public bool Overlaps(VirtualMachineConfig config) { foreach (VirtualMachineConfig virtualMachine in VirtualMachines) { // the virtual machine overlaps if (virtualMachine.Overlaps(config)) { return(true); } } return(false); }
public Instance( string logpath, bool simulationOnly, RemoteInstallConfig config, VMWareMappedVirtualMachine vm, VirtualMachineConfig vmConfig, InstallerConfig installerConfig, SnapshotConfig snapshotConfig) { _logpath = logpath; _simulationOnly = simulationOnly; _config = config; _vm = vm; _vmConfig = vmConfig; _installerConfig = installerConfig; _snapshotConfig = snapshotConfig; }
public void NoOverlapTest() { VirtualMachineConfig config1 = new VirtualMachineConfig(); config1.File = Guid.NewGuid().ToString(); config1.Host = Guid.NewGuid().ToString(); VirtualMachineConfig config2 = new VirtualMachineConfig(); config2.File = Guid.NewGuid().ToString(); config2.Host = Guid.NewGuid().ToString(); // overlap self Assert.IsTrue(config1.Overlaps(config1)); Assert.IsTrue(config2.Overlaps(config2)); // overlap other Assert.IsFalse(config1.Overlaps(config2)); Assert.IsFalse(config2.Overlaps(config1)); }
public void OneChildNoOverlapTest() { VirtualMachineConfig config1 = new VirtualMachineConfig(); config1.File = Guid.NewGuid().ToString(); config1.Host = Guid.NewGuid().ToString(); VirtualMachineConfig config2 = new VirtualMachineConfig(); config2.File = Guid.NewGuid().ToString(); config2.Host = Guid.NewGuid().ToString(); SnapshotConfig snapshot1 = new SnapshotConfig(); config2.Snapshots.Add(snapshot1); SnapshotsConfig snapshots1 = new SnapshotsConfig(); snapshots1.Add(snapshot1); Assert.IsFalse(config1.Overlaps(config2)); Assert.IsFalse(config2.Overlaps(config1)); }
public void TwoChildrenOverlapTest() { VirtualMachineConfig config1 = new VirtualMachineConfig(); config1.File = Guid.NewGuid().ToString(); config1.Host = Guid.NewGuid().ToString(); VirtualMachineConfig config2 = new VirtualMachineConfig(); config2.File = Guid.NewGuid().ToString(); config2.Host = Guid.NewGuid().ToString(); // a snapshot child with a virtual machine SnapshotConfig snapshot0 = new SnapshotConfig(); SnapshotsConfig snapshots0 = new SnapshotsConfig(); snapshots0.Add(snapshot0); VirtualMachineConfig config3 = new VirtualMachineConfig(); config3.File = Guid.NewGuid().ToString(); config3.Host = Guid.NewGuid().ToString(); snapshot0.VirtualMachines.Add(config3); config2.Snapshots.Add(snapshot0); SnapshotConfig snapshot1 = new SnapshotConfig(); SnapshotsConfig snapshots1 = new SnapshotsConfig(); snapshots1.Add(snapshot1); config3.Snapshots.Add(snapshot1); Assert.IsFalse(config1.Overlaps(config2)); Assert.IsFalse(config2.Overlaps(config1)); snapshot1.VirtualMachines.Add(config1); Assert.IsTrue(config1.Overlaps(config2)); Assert.IsTrue(config2.Overlaps(config1)); }
public void OneOverlapTest() { VirtualMachineConfig config1 = new VirtualMachineConfig(); config1.File = Guid.NewGuid().ToString(); config1.Host = Guid.NewGuid().ToString(); VirtualMachineConfig config2 = new VirtualMachineConfig(); config2.File = config1.File; config2.Host = config2.File; Assert.IsFalse(config1.Overlaps(config2)); Assert.IsFalse(config2.Overlaps(config1)); }
public void Add(VirtualMachineConfig value) { BaseAdd(value); }
/// <summary> /// Returns true if there's an overlap between two configurations. /// </summary> /// <param name="config">Virtual machine configuration.</param> /// <returns>True if there's an overlap.</returns> public bool Overlaps(VirtualMachineConfig config) { // same virtual machine if (Host == config.Host && File == config.File) return true; // each snapshot in this vm overlapping the configuration foreach (SnapshotConfig snapshot in Snapshots) { if (snapshot.Overlaps(config)) return true; } // each snapshot in the configuration overlapping this foreach (SnapshotConfig snapshot in config.Snapshots) { if (snapshot.Overlaps(this)) return true; } return false; }
/// <summary> /// Returns true if there's an overlap between two configurations. /// </summary> /// <param name="config">Virtual machine configuration.</param> /// <returns>True if there's an overlap.</returns> public bool Overlaps(VirtualMachineConfig config) { foreach (VirtualMachineConfig virtualMachine in VirtualMachines) { // the virtual machine overlaps if (virtualMachine.Overlaps(config)) return true; } return false; }
private VirtualMachinePowerResult PowerOn(VirtualMachineConfig virtualMachineConfig) { VirtualMachinePowerResult powerResult = new VirtualMachinePowerResult(); powerResult.Name = virtualMachineConfig.Name; try { if (virtualMachineConfig.Snapshots.Count != 1) { throw new Exception(string.Format("Invalid number of snapshots in '{0}'", virtualMachineConfig.Name)); } VirtualMachinePowerDriver powerDriver = new VirtualMachinePowerDriver( virtualMachineConfig, virtualMachineConfig.Snapshots[0], _simulationOnly); _virtualMachinePowerDrivers.Add(powerDriver); powerDriver.ConnectToHost(); powerDriver.MapVirtualMachine(virtualMachineConfig.CopyMethod); powerDriver.PrepareSnapshot(); powerResult.Success = true; } catch (Exception ex) { ConsoleOutput.WriteLine(ex); powerResult.LastError = ex.Message; powerResult.Success = false; } return powerResult; }