issue 384: cosmetic fixes

This commit is contained in:
andreaturli 2012-01-05 07:59:48 +00:00
parent caec80d560
commit 85fae1687b
3 changed files with 55 additions and 80 deletions

View File

@ -19,10 +19,6 @@
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.List;
@ -60,8 +56,6 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
private VirtualBoxManager manager;
private VmSpec vmSpec;
private CloneOptions cloneOptions;
// private String snapshotName;
// private String snapshotDesc;
@Inject
public CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
@ -75,8 +69,6 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
this.manager = manager;
this.vmSpec = vmSpec;
this.cloneOptions = cloneOptions;
// this.snapshotName = snapshotName;
// this.snapshotDesc = snapshotDesc;
}
@Override
@ -115,32 +107,7 @@ public class CloneAndRegisterMachineFromIMachineIfNotAlreadyExists implements Fu
// registering
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;
}
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));
}
}

View File

@ -64,9 +64,11 @@ public class IsLinkedClone implements Predicate<IMachine> {
// more than one machine is attached to this hd
for (IMedium child : iMedium.getParent().getChildren()) {
for (String machineId : child.getMachineIds()) {
IMachine iMachine = manager.getVBox().findMachine(machineId);
IMachine iMachine = manager.getVBox().findMachine(
machineId);
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;
}
}

View File

@ -19,12 +19,11 @@
package org.jclouds.virtualbox.predicates;
import static org.testng.Assert.assertTrue;
import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertTrue;
import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest;
import org.jclouds.virtualbox.domain.HardDisk;
import org.jclouds.virtualbox.domain.NatAdapter;
import org.jclouds.virtualbox.domain.StorageController;
import org.jclouds.virtualbox.domain.VmSpec;
import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists;
@ -46,8 +45,8 @@ import org.virtualbox_4_1.VirtualBoxManager;
*/
@Test(groups = "live", singleThreaded = true, testName = "IsLinkedClonesLiveTest")
public class IsLinkedClonesLiveTest extends BaseVirtualBoxClientLiveTest {
private String vmId = "jclouds-image-iso-1";
private String vmId = "jclouds-image-iso-1";
private String osTypeId = "";
private String ideControllerName = "IDE Controller";
private String cloneId = "jclouds-is-linked-clone-clone";
@ -56,56 +55,63 @@ public class IsLinkedClonesLiveTest extends BaseVirtualBoxClientLiveTest {
private StorageController masterStorageController;
private VmSpec masterSpec;
private VmSpec cloneSpec;
@BeforeGroups(groups = {"live"})
@BeforeGroups(groups = { "live" })
public void setUp() throws Exception {
identity = "toor";
credential = "password";
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();
masterStorageController = StorageController.builder().name(ideControllerName).bus(StorageBus.IDE)
.attachISO(0, 0, workingDir + "/ubuntu-11.04-server-i386.iso")
.attachHardDisk(hardDisk)
.attachISO(1, 1, workingDir + "/VBoxGuestAdditions_4.1.2.iso").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)
masterStorageController = StorageController.builder()
.name(ideControllerName).bus(StorageBus.IDE)
.attachISO(0, 0, workingDir + "/ubuntu-11.04-server-i386.iso")
.attachHardDisk(hardDisk)
.attachISO(1, 1, workingDir + "/VBoxGuestAdditions_4.1.2.iso")
.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
public void testLinkedClone() {
VirtualBoxManager manager = (VirtualBoxManager) context.getProviderSpecificContext().getApi();
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
@Test
public void testLinkedClone() {
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(manager).apply(masterSpec);
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, cloneSpec, CloneOptions.Link).apply(master);
VirtualBoxManager manager = (VirtualBoxManager) context
.getProviderSpecificContext().getApi();
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
assertTrue(new IsLinkedClone(manager).apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(new IMachineToVmSpec().apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
}
public void testFullClone() {
VirtualBoxManager manager = (VirtualBoxManager) context.getProviderSpecificContext().getApi();
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(
manager).apply(masterSpec);
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(
manager, cloneSpec, CloneOptions.Link).apply(master);
IMachine master = new CreateAndRegisterMachineFromIsoIfNotAlreadyExists(manager).apply(masterSpec);
IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, cloneSpec).apply(master);
assertTrue(new IsLinkedClone(manager).apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager)
.apply(new IMachineToVmSpec().apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
}
assertFalse(new IsLinkedClone(manager).apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(new IMachineToVmSpec().apply(clone));
new UnregisterMachineIfExistsAndDeleteItsMedia(manager).apply(masterSpec);
}
public void testFullClone() {
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);
}
}