mirror of
https://github.com/apache/jclouds.git
synced 2025-02-16 15:08:28 +00:00
issue 384: cosmetic fixes
This commit is contained in:
parent
caec80d560
commit
85fae1687b
@ -19,10 +19,6 @@
|
|||||||
|
|
||||||
package org.jclouds.virtualbox.functions;
|
package org.jclouds.virtualbox.functions;
|
||||||
|
|
||||||
import static com.google.common.base.Preconditions.checkNotNull;
|
|
||||||
import static org.jclouds.virtualbox.util.MachineUtils.lockMachineAndApply;
|
|
||||||
import static org.virtualbox_4_1.LockType.Write;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -60,8 +56,6 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
|
|||||||
private VirtualBoxManager manager;
|
private VirtualBoxManager manager;
|
||||||
private VmSpec vmSpec;
|
private VmSpec vmSpec;
|
||||||
private CloneOptions cloneOptions;
|
private CloneOptions cloneOptions;
|
||||||
// private String snapshotName;
|
|
||||||
// private String snapshotDesc;
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
|
public CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
|
||||||
@ -75,8 +69,6 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
|
|||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
this.vmSpec = vmSpec;
|
this.vmSpec = vmSpec;
|
||||||
this.cloneOptions = cloneOptions;
|
this.cloneOptions = cloneOptions;
|
||||||
// this.snapshotName = snapshotName;
|
|
||||||
// this.snapshotDesc = snapshotDesc;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -115,32 +107,7 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
|
|||||||
|
|
||||||
// registering
|
// registering
|
||||||
manager.getVBox().registerMachine(clonedMachine);
|
manager.getVBox().registerMachine(clonedMachine);
|
||||||
/*
|
|
||||||
// Bridged Network
|
|
||||||
List<String> activeBridgedInterfaces = new RetrieveActiveBridgedInterfaces(context).apply(hostId);
|
|
||||||
checkNotNull(activeBridgedInterfaces);
|
|
||||||
String macAddress = manager.getVBox().getHost().generateMACAddress();
|
|
||||||
|
|
||||||
// TODO this behavior can be improved
|
|
||||||
String bridgedInterface = activeBridgedInterfaces.get(0);
|
|
||||||
long adapterSlot = 0l;
|
|
||||||
ensureBridgedNetworkingIsAppliedToMachine(adapterSlot, cloneName, macAddress, bridgedInterface);
|
|
||||||
|
|
||||||
// detach iso
|
|
||||||
// TODO: also hard-coded values here
|
|
||||||
int controllerPort = 0;
|
|
||||||
int device = 0;
|
|
||||||
ensureMachineHasDistroMediumDetached(cloneName, controllerIDE, controllerPort, device);
|
|
||||||
*/
|
|
||||||
return clonedMachine;
|
return clonedMachine;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ensureBridgedNetworkingIsAppliedToMachine(long adapterSlot, String vmName, String macAddress, String hostInterface) {
|
|
||||||
lockMachineAndApply(manager, Write, vmName, new AttachBridgedAdapterToMachine(adapterSlot, macAddress, hostInterface));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void ensureMachineHasDistroMediumDetached(String vmName, String controllerIDE, int controllerPort, int device) {
|
|
||||||
lockMachineAndApply(manager, Write, vmName, new DetachDistroMediumFromMachine(checkNotNull(controllerIDE, "controllerIDE"), controllerPort, device));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -64,9 +64,11 @@ public class IsLinkedClone implements Predicate<IMachine> {
|
|||||||
// more than one machine is attached to this hd
|
// more than one machine is attached to this hd
|
||||||
for (IMedium child : iMedium.getParent().getChildren()) {
|
for (IMedium child : iMedium.getParent().getChildren()) {
|
||||||
for (String machineId : child.getMachineIds()) {
|
for (String machineId : child.getMachineIds()) {
|
||||||
IMachine iMachine = manager.getVBox().findMachine(machineId);
|
IMachine iMachine = manager.getVBox().findMachine(
|
||||||
|
machineId);
|
||||||
if (!iMachine.getName().equals(machine.getName())) {
|
if (!iMachine.getName().equals(machine.getName())) {
|
||||||
logger.debug("Machine %s is a linked clone", machine.getName());
|
logger.debug("Machine %s is a linked clone",
|
||||||
|
machine.getName());
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -19,12 +19,11 @@
|
|||||||
|
|
||||||
package org.jclouds.virtualbox.predicates;
|
package org.jclouds.virtualbox.predicates;
|
||||||
|
|
||||||
import static org.testng.Assert.assertTrue;
|
|
||||||
import static org.testng.Assert.assertFalse;
|
import static org.testng.Assert.assertFalse;
|
||||||
|
import static org.testng.Assert.assertTrue;
|
||||||
|
|
||||||
import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest;
|
import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest;
|
||||||
import org.jclouds.virtualbox.domain.HardDisk;
|
import org.jclouds.virtualbox.domain.HardDisk;
|
||||||
import org.jclouds.virtualbox.domain.NatAdapter;
|
|
||||||
import org.jclouds.virtualbox.domain.StorageController;
|
import org.jclouds.virtualbox.domain.StorageController;
|
||||||
import org.jclouds.virtualbox.domain.VmSpec;
|
import org.jclouds.virtualbox.domain.VmSpec;
|
||||||
import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists;
|
import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists;
|
||||||
@ -46,8 +45,8 @@ import org.virtualbox_4_1.VirtualBoxManager;
|
|||||||
*/
|
*/
|
||||||
@Test(groups = "live", singleThreaded = true, testName = "IsLinkedClonesLiveTest")
|
@Test(groups = "live", singleThreaded = true, testName = "IsLinkedClonesLiveTest")
|
||||||
public class IsLinkedClonesLiveTest extends BaseVirtualBoxClientLiveTest {
|
public class IsLinkedClonesLiveTest extends BaseVirtualBoxClientLiveTest {
|
||||||
|
|
||||||
private String vmId = "jclouds-image-iso-1";
|
private String vmId = "jclouds-image-iso-1";
|
||||||
private String osTypeId = "";
|
private String osTypeId = "";
|
||||||
private String ideControllerName = "IDE Controller";
|
private String ideControllerName = "IDE Controller";
|
||||||
private String cloneId = "jclouds-is-linked-clone-clone";
|
private String cloneId = "jclouds-is-linked-clone-clone";
|
||||||
@ -56,56 +55,63 @@ public class IsLinkedClonesLiveTest extends BaseVirtualBoxClientLiveTest {
|
|||||||
private StorageController masterStorageController;
|
private StorageController masterStorageController;
|
||||||
private VmSpec masterSpec;
|
private VmSpec masterSpec;
|
||||||
private VmSpec cloneSpec;
|
private VmSpec cloneSpec;
|
||||||
|
|
||||||
@BeforeGroups(groups = {"live"})
|
@BeforeGroups(groups = { "live" })
|
||||||
public void setUp() throws Exception {
|
public void setUp() throws Exception {
|
||||||
identity = "toor";
|
identity = "toor";
|
||||||
credential = "password";
|
credential = "password";
|
||||||
|
|
||||||
String workingDir = PropertyUtils.getWorkingDirFromProperty();
|
String workingDir = PropertyUtils.getWorkingDirFromProperty();
|
||||||
HardDisk hardDisk = HardDisk.builder().diskpath(workingDir + "/testadmin.vdi").autoDelete(true)
|
HardDisk hardDisk = HardDisk.builder()
|
||||||
|
.diskpath(workingDir + "/testadmin.vdi").autoDelete(true)
|
||||||
.controllerPort(0).deviceSlot(1).build();
|
.controllerPort(0).deviceSlot(1).build();
|
||||||
masterStorageController = StorageController.builder().name(ideControllerName).bus(StorageBus.IDE)
|
masterStorageController = StorageController.builder()
|
||||||
.attachISO(0, 0, workingDir + "/ubuntu-11.04-server-i386.iso")
|
.name(ideControllerName).bus(StorageBus.IDE)
|
||||||
.attachHardDisk(hardDisk)
|
.attachISO(0, 0, workingDir + "/ubuntu-11.04-server-i386.iso")
|
||||||
.attachISO(1, 1, workingDir + "/VBoxGuestAdditions_4.1.2.iso").build();
|
.attachHardDisk(hardDisk)
|
||||||
masterSpec = VmSpec.builder().id(vmId).name(vmName).memoryMB(512).osTypeId(osTypeId)
|
.attachISO(1, 1, workingDir + "/VBoxGuestAdditions_4.1.2.iso")
|
||||||
.controller(masterStorageController)
|
|
||||||
.forceOverwrite(true)
|
|
||||||
.cleanUpMode(CleanupMode.Full)
|
|
||||||
.build();
|
|
||||||
|
|
||||||
cloneSpec = VmSpec.builder().id(cloneId).name(cloneName).memoryMB(512).osTypeId(osTypeId)
|
|
||||||
.forceOverwrite(true)
|
|
||||||
.cleanUpMode(CleanupMode.Full)
|
|
||||||
.build();
|
.build();
|
||||||
|
masterSpec = VmSpec.builder().id(vmId).name(vmName).memoryMB(512)
|
||||||
|
.osTypeId(osTypeId).controller(masterStorageController)
|
||||||
|
.forceOverwrite(true).cleanUpMode(CleanupMode.Full).build();
|
||||||
|
|
||||||
|
cloneSpec = VmSpec.builder().id(cloneId).name(cloneName).memoryMB(512)
|
||||||
|
.osTypeId(osTypeId).forceOverwrite(true)
|
||||||
|
.cleanUpMode(CleanupMode.Full).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
@Test
|
public void testLinkedClone() {
|
||||||
public void testLinkedClone() {
|
|
||||||
|
|
||||||
VirtualBoxManager manager = (VirtualBoxManager) context.getProviderSpecificContext().getApi();
|
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
|
||||||
|
|
||||||
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(manager).apply(masterSpec);
|
VirtualBoxManager manager = (VirtualBoxManager) context
|
||||||
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, cloneSpec, CloneOptions.Link).apply(master);
|
.getProviderSpecificContext().getApi();
|
||||||
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
||||||
|
|
||||||
assertTrue(new IsLinkedClone(manager).apply(clone));
|
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(new IMachineToVmSpec().apply(clone));
|
manager).apply(masterSpec);
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
|
||||||
}
|
manager, cloneSpec, CloneOptions.Link).apply(master);
|
||||||
|
|
||||||
public void testFullClone() {
|
|
||||||
|
|
||||||
VirtualBoxManager manager = (VirtualBoxManager) context.getProviderSpecificContext().getApi();
|
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
|
||||||
|
|
||||||
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(manager).apply(masterSpec);
|
assertTrue(new IsLinkedClone(manager).apply(clone));
|
||||||
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, cloneSpec).apply(master);
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager)
|
||||||
|
.apply(new IMachineToVmSpec().apply(clone));
|
||||||
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
||||||
|
}
|
||||||
|
|
||||||
assertFalse(new IsLinkedClone(manager).apply(clone));
|
public void testFullClone() {
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(new IMachineToVmSpec().apply(clone));
|
|
||||||
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
VirtualBoxManager manager = (VirtualBoxManager) context
|
||||||
}
|
.getProviderSpecificContext().getApi();
|
||||||
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
||||||
|
|
||||||
|
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(
|
||||||
|
manager).apply(masterSpec);
|
||||||
|
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
|
||||||
|
manager, cloneSpec).apply(master);
|
||||||
|
|
||||||
|
assertFalse(new IsLinkedClone(manager).apply(clone));
|
||||||
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager)
|
||||||
|
.apply(new IMachineToVmSpec().apply(clone));
|
||||||
|
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user