http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/IMachineToVmSpecTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/IMachineToVmSpecTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/IMachineToVmSpecTest.java deleted file mode 100644 index 606e29b..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/IMachineToVmSpecTest.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions; - -import static org.easymock.EasyMock.createNiceMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.testng.Assert.assertEquals; - -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.IsoImage; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.testng.annotations.Test; -import org.virtualbox_4_2.DeviceType; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.IMedium; -import org.virtualbox_4_2.IMediumAttachment; -import org.virtualbox_4_2.IStorageController; -import org.virtualbox_4_2.StorageBus; -import org.virtualbox_4_2.VirtualBoxManager; - -import com.google.common.collect.Lists; - -@Test(groups = "unit") -public class IMachineToVmSpecTest { - - private static final String PATH_TO_DVD = "/path/to/dvd"; - private static final String PATH_TO_HD = "/path/to/hd"; - private static final StorageBus CONTROLLER_BUS = StorageBus.IDE; - private static final long MEMORY_SIZE = 512L; - private static final String OS_TYPE_ID = "ubuntu"; - private static final String VM_NAME = "test"; - private static final String CONTROLLER_NAME = "IDE Controller"; - private static final String VM_ID = "test"; - - @Test - public void testConvert() throws Exception { - - VirtualBoxManager vbm = createNiceMock(VirtualBoxManager.class); - IStorageController iStorageController = createNiceMock(IStorageController.class); - IMediumAttachment iMediumAttachment = createNiceMock(IMediumAttachment.class); - IMedium hd = createNiceMock(IMedium.class); - IMedium dvd = createNiceMock(IMedium.class); - IMachine vm = createNiceMock(IMachine.class); - - expect(vm.getStorageControllers()).andReturn(Lists.newArrayList(iStorageController)).anyTimes(); - expect(iStorageController.getName()).andReturn(CONTROLLER_NAME).anyTimes(); - expect(iStorageController.getBus()).andReturn(CONTROLLER_BUS).anyTimes(); - expect(vm.getMediumAttachmentsOfController(CONTROLLER_NAME)).andReturn(Lists.newArrayList(iMediumAttachment)).anyTimes(); - expect(iMediumAttachment.getPort()).andReturn(0).once(); - expect(iMediumAttachment.getDevice()).andReturn(0).once(); - - expect(iMediumAttachment.getMedium()).andReturn(hd); - expect(hd.getDeviceType()).andReturn(DeviceType.HardDisk).once(); - expect(hd.getLocation()).andReturn(PATH_TO_HD).once(); - - expect(iMediumAttachment.getMedium()).andReturn(dvd); - expect(dvd.getDeviceType()).andReturn(DeviceType.DVD).once(); - expect(dvd.getLocation()).andReturn(PATH_TO_DVD).once(); - - expect(vm.getName()).andReturn(VM_NAME).anyTimes(); - expect(vm.getId()).andReturn(VM_ID).anyTimes(); - expect(vm.getOSTypeId()).andReturn(OS_TYPE_ID).anyTimes(); - expect(vm.getMemorySize()).andReturn(MEMORY_SIZE).anyTimes(); - - replay(vbm, iStorageController, iMediumAttachment, hd, dvd, vm); - - VmSpec vmSpec = new IMachineToVmSpec().apply(vm); - - assertEquals(vmSpec.getVmName(), VM_NAME); - assertEquals(vmSpec.getVmId(), VM_ID); - assertEquals(vmSpec.getMemory(), MEMORY_SIZE); - for (StorageController controller : vmSpec.getControllers()) { - assertEquals(controller.getName(), CONTROLLER_NAME); - assertEquals(controller.getBus(), CONTROLLER_BUS); - for (HardDisk hardDisk : controller.getHardDisks()) { - assertEquals(hardDisk.getDiskPath(), PATH_TO_HD); - } - for (IsoImage iso : controller.getIsoImages()) { - assertEquals(iso.getSourcePath(), PATH_TO_DVD); - } - } - } -}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/LaunchMachineIfNotAlreadyRunningTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/LaunchMachineIfNotAlreadyRunningTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/LaunchMachineIfNotAlreadyRunningTest.java deleted file mode 100644 index 456a3af..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/LaunchMachineIfNotAlreadyRunningTest.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; - -import org.jclouds.virtualbox.domain.ExecutionType; -import org.testng.annotations.Test; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.IProgress; -import org.virtualbox_4_2.ISession; -import org.virtualbox_4_2.SessionState; -import org.virtualbox_4_2.VirtualBoxManager; - -@Test(groups = "unit", testName = "LaunchMachineIfNotAlreadyRunningTest") -public class LaunchMachineIfNotAlreadyRunningTest { - - @Test - public void testDoNotLaunchIfAlreadyRunning() throws Exception { - - } - - // VirtualBox error: The given session is busy (0x80BB0007) - // VirtualBox error: The machine - // 'jclouds-image-virtualbox-iso-to-machine-test' is not registered - // (0x8000FFFF) - - @Test - public void testLaunchIfNotStarted() throws Exception { - - final String type = "gui"; - final String environment = ""; - ISession session = createMock(ISession.class); - VirtualBoxManager manager = createMock(VirtualBoxManager.class); - IMachine machine = createMock(IMachine.class); - IProgress progress = createMock(IProgress.class); - - expect(manager.getSessionObject()).andReturn(session).anyTimes(); - expect(machine.launchVMProcess(session, type, environment)).andReturn(progress); - progress.waitForCompletion(-1); - expect(session.getState()).andReturn(SessionState.Locked); - session.unlockMachine(); - - replay(manager, machine, session, progress); - - new LaunchMachineIfNotAlreadyRunning(manager, ExecutionType.GUI, "").apply(machine); - - verify(manager, machine, session, progress); - - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/MacAddressToBSDTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/MacAddressToBSDTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/MacAddressToBSDTest.java deleted file mode 100644 index 66a70cf..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/MacAddressToBSDTest.java +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions; - -import static org.testng.Assert.assertEquals; - -import org.testng.annotations.Test; - -import com.google.common.base.Joiner; -import com.google.common.base.Splitter; - -@Test(groups = "unit", testName = "MacAddressToBSDTest") -public class MacAddressToBSDTest { - - private static final String vboxMacAddressFormat = "0800271A9806"; - private static final String bsdMacAddressFormat = "8:0:27:1a:98:6"; - - -@Test - public void testTransformMacAddressToBSDFormat() { - assertEquals(MacAddressToBSD.INSTANCE.apply(Joiner.on(":").join(Splitter.fixedLength(2).split(vboxMacAddressFormat)).toLowerCase()), bsdMacAddressFormat); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/RetrieveActiveBridgedInterfacesExpectTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/RetrieveActiveBridgedInterfacesExpectTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/RetrieveActiveBridgedInterfacesExpectTest.java deleted file mode 100644 index d23407e..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/RetrieveActiveBridgedInterfacesExpectTest.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions; - -import static org.jclouds.virtualbox.functions.RetrieveActiveBridgedInterfaces.retrieveBridgedInterfaceNames; -import static org.testng.Assert.assertEquals; - -import java.util.List; - -import org.jclouds.virtualbox.domain.BridgedIf; -import org.testng.annotations.Test; - -import com.google.common.collect.ImmutableList; - -@Test(singleThreaded = true, testName = "RetrieveActiveBridgedInterfacesExpectTest") -public class RetrieveActiveBridgedInterfacesExpectTest { - - public static final String TEST1 = "Name: eth0\n" - + "GUID: 30687465-0000-4000-8000-00261834d0cb\n" + "Dhcp: Disabled\n" - + "IPAddress: 209.x.x.x\n" + "NetworkMask: 255.255.255.0\n" - + "IPV6Address: fe80:0000:0000:0000:0226:18ff:fe34:d0cb\n" + "IPV6NetworkMaskPrefixLength: 64\n" - + "HardwareAddress: 00:26:18:34:d0:cb\n" + "MediumType: Ethernet\n" + "Status: Up\n" - + "VBoxNetworkName: HostInterfaceNetworking-eth0\n" + "\n" + "Name: vbox0\n" - + "GUID: 786f6276-0030-4000-8000-5a3ded993fed\n" + "Dhcp: Disabled\n" - + "IPAddress: 192.168.56.1\n" + "NetworkMask: 255.255.255.0\n" - + "IPV6Address: fe80:0000:0000:0000:0226:18ff:fe34:d0cb\n" + "IPV6NetworkMaskPrefixLength: 0\n" - + "HardwareAddress: 5a:3d:ed:99:3f:ed\n" + "MediumType: Ethernet\n" + "Status: Down\n" - + "VBoxNetworkName: HostInterfaceNetworking-vbox0\n"; - - public static final List<BridgedIf> expectedBridgedInterfaces = ImmutableList.of( - BridgedIf.builder().name("eth0").ip("209.x.x.x").networkMask("255.255.255.0").mediumType("Ethernet") - .status("Up").build(), - BridgedIf.builder().name("vbox0").ip("192.168.56.1").networkMask("255.255.255.0").mediumType("Ethernet") - .status("Down").build()); - - @Test - public void retrieveBridgedInterfaceNamesTest() { - List<BridgedIf> activeBridgedInterfaces = retrieveBridgedInterfaceNames(TEST1); - assertEquals(activeBridgedInterfaces, expectedBridgedInterfaces); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/TakeSnapshotIfNotAlreadyAttachedTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/TakeSnapshotIfNotAlreadyAttachedTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/TakeSnapshotIfNotAlreadyAttachedTest.java deleted file mode 100644 index 8cc05e8..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/TakeSnapshotIfNotAlreadyAttachedTest.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createNiceMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; - -import org.jclouds.logging.Logger; -import org.testng.annotations.Test; -import org.virtualbox_4_2.IConsole; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.IProgress; -import org.virtualbox_4_2.ISession; -import org.virtualbox_4_2.ISnapshot; -import org.virtualbox_4_2.IVirtualBox; -import org.virtualbox_4_2.MachineState; -import org.virtualbox_4_2.VirtualBoxManager; - -import com.google.common.base.Suppliers; - -@Test(groups = "unit", testName = "TakeSnapshotIfNotAlreadyAttachedTest") -public class TakeSnapshotIfNotAlreadyAttachedTest { - - @Test - public void testTakeSnapshotIfNotAlreadyAttached() throws Exception { - - String snapshotName = "snap"; - String snapshotDesc = "snapDesc"; - - VirtualBoxManager manager = createNiceMock(VirtualBoxManager.class); - IMachine machine = createMock(IMachine.class); - IVirtualBox vBox = createMock(IVirtualBox.class); - ISession session = createMock(ISession.class); - IConsole console = createNiceMock(IConsole.class); - IProgress progress = createNiceMock(IProgress.class); - ISnapshot snapshot = createNiceMock(ISnapshot.class); - expect(machine.getCurrentSnapshot()).andReturn(snapshot).anyTimes(); - expect(machine.getState()).andReturn(MachineState.PoweredOff).anyTimes(); - - expect(manager.openMachineSession(machine)).andReturn(session); - - expect(session.getConsole()).andReturn(console); - expect(console.takeSnapshot(snapshotName, snapshotDesc)).andReturn( - progress); - expect(progress.getCompleted()).andReturn(true); - - session.unlockMachine(); - replay(manager, machine, vBox, session, console, progress); - - new TakeSnapshotIfNotAlreadyAttached(Suppliers.ofInstance(manager), snapshotName, snapshotDesc, Logger.CONSOLE) - .apply(machine); - - verify(machine); - } - - @Test - public void testDoNothingIfAlreadyTakenSnapshot() throws Exception { - String snapshotName = "snap"; - String snapshotDesc = "snapDesc"; - - VirtualBoxManager manager = createNiceMock(VirtualBoxManager.class); - IMachine machine = createMock(IMachine.class); - IVirtualBox vBox = createMock(IVirtualBox.class); - ISession session = createMock(ISession.class); - IConsole console = createNiceMock(IConsole.class); - - IProgress progress = createNiceMock(IProgress.class); - expect(progress.getCompleted()).andReturn(true); - expect(machine.getCurrentSnapshot()).andReturn(null).anyTimes(); - expect(manager.openMachineSession(machine)).andReturn(session); - expect(machine.getState()).andReturn(MachineState.PoweredOff).anyTimes(); - - expect(machine.getName()).andReturn("machine").anyTimes(); - expect(session.getConsole()).andReturn(console); - expect(console.takeSnapshot(snapshotName, snapshotDesc)).andReturn( - progress); - - session.unlockMachine(); - replay(manager, machine, vBox, session, console, progress); - - new TakeSnapshotIfNotAlreadyAttached(Suppliers.ofInstance(manager), snapshotName, snapshotDesc, Logger.CONSOLE) - .apply(machine); - - verify(machine); - - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/ImageFromYamlStringTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/ImageFromYamlStringTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/ImageFromYamlStringTest.java deleted file mode 100644 index 5b36103..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/ImageFromYamlStringTest.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions.admin; - -import static org.testng.Assert.assertEquals; - -import java.util.Map; - -import org.jclouds.compute.domain.Image; -import org.jclouds.compute.domain.ImageBuilder; -import org.jclouds.compute.domain.OperatingSystem; -import org.jclouds.compute.domain.OsFamily; -import org.jclouds.virtualbox.domain.YamlImage; -import org.jclouds.virtualbox.functions.YamlImagesFromFileConfig; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import com.google.common.collect.Iterables; - -@Test(groups = "unit", testName = "ImageFromYamlStringTest") -public class ImageFromYamlStringTest { - - public static final Image TEST1 = new ImageBuilder() - .id("ubuntu-12.04.1-amd64") - .name("ubuntu-12.04.1-server-amd64") - .description("ubuntu") - .operatingSystem( - OperatingSystem.builder().description("ubuntu").family(OsFamily.UBUNTU).version("12.04.1") - .arch("amd64").build()) - .status(Image.Status.AVAILABLE).build(); - - Map<Image, YamlImage> images; - - @BeforeMethod - public void setUp() { - images = new ImagesToYamlImagesFromYamlDescriptor(new YamlImagesFromFileConfig("/default-images.yaml")).get(); - } - - @Test - public void testNodesParse() { - assertEquals(Iterables.getFirst(images.keySet(), null), TEST1); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/StartVBoxIfNotAlreadyRunningLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/StartVBoxIfNotAlreadyRunningLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/StartVBoxIfNotAlreadyRunningLiveTest.java deleted file mode 100644 index 524ac88..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/StartVBoxIfNotAlreadyRunningLiveTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions.admin; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.verify; - -import java.net.URI; - -import org.jclouds.compute.callables.RunScriptOnNode; -import org.jclouds.compute.callables.RunScriptOnNode.Factory; -import org.jclouds.compute.domain.NodeMetadata; -import org.jclouds.compute.domain.NodeMetadata.Status; -import org.jclouds.compute.domain.NodeMetadataBuilder; -import org.jclouds.virtualbox.functions.HardcodedHostToHostNodeMetadata; -import org.jclouds.virtualbox.predicates.RetryIfSocketNotYetOpen; -import org.testng.annotations.Test; -import org.virtualbox_4_2.VirtualBoxManager; - -import com.google.common.base.Function; -import com.google.common.base.Functions; -import com.google.common.base.Suppliers; -import com.google.common.net.HostAndPort; - -@Test(groups = "live", singleThreaded = true, testName = "StartVBoxIfNotAlreadyRunningLiveTest") -public class StartVBoxIfNotAlreadyRunningLiveTest { - - @SuppressWarnings({ "unchecked", "rawtypes" }) - @Test - public void testStartVboxConnectsToManagerWhenPortAlreadyListening() throws Exception { - VirtualBoxManager manager = createMock(VirtualBoxManager.class); - Factory runScriptOnNodeFactory = createMock(Factory.class); - RunScriptOnNode runScriptOnNode = createMock(RunScriptOnNode.class); - RetryIfSocketNotYetOpen client = createMock(RetryIfSocketNotYetOpen.class); - HardcodedHostToHostNodeMetadata hardcodedHostToHostNodeMetadata = createMock(HardcodedHostToHostNodeMetadata.class); - NodeMetadata host = new NodeMetadataBuilder().id("host").status(Status.RUNNING).build(); - URI provider = URI.create("http://localhost:18083/"); - expect(client.seconds(3)).andReturn(client); - expect(client.apply(HostAndPort.fromParts(provider.getHost(), provider.getPort()))).andReturn(true).anyTimes(); - manager.connect(provider.toASCIIString(), "", ""); - expectLastCall().anyTimes(); - replay(manager, runScriptOnNodeFactory, runScriptOnNode, client); - new StartVBoxIfNotAlreadyRunning((Function) Functions.constant(manager), runScriptOnNodeFactory, client, - Suppliers.ofInstance(host), Suppliers.ofInstance(provider), hardcodedHostToHostNodeMetadata).start(); - verify(manager, runScriptOnNodeFactory, client); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/UnregisterMachineIfExistsAndDeleteItsMediaTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/UnregisterMachineIfExistsAndDeleteItsMediaTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/UnregisterMachineIfExistsAndDeleteItsMediaTest.java deleted file mode 100644 index e62d108..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/functions/admin/UnregisterMachineIfExistsAndDeleteItsMediaTest.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.functions.admin; - -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createNiceMock; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.expectLastCall; -import static org.easymock.EasyMock.replay; - -import java.util.Collections; -import java.util.List; - -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.IMedium; -import org.virtualbox_4_2.IProgress; -import org.virtualbox_4_2.IVirtualBox; -import org.virtualbox_4_2.StorageBus; -import org.virtualbox_4_2.VirtualBoxManager; - -import com.google.common.collect.Lists; - -@Test(groups = "unit", testName = "UnregisterMachineIfExistsTest") -public class UnregisterMachineIfExistsAndDeleteItsMediaTest { - - private String ideControllerName = "IDE Controller"; - private CleanupMode mode = CleanupMode.Full; - private String vmName = "jclouds-image-example-machine-to-be-destroyed"; - private String vmId = "jclouds-image-iso-unregister"; - private String osTypeId = ""; - - @Test - public void testUnregisterExistingMachine() throws Exception { - VirtualBoxManager manager = createMock(VirtualBoxManager.class); - IVirtualBox vBox = createMock(IVirtualBox.class); - IMachine registeredMachine = createMock(IMachine.class); - IProgress progress = createNiceMock(IProgress.class); - List<IMedium> media = Lists.newArrayList(); - List<IMedium> mediums = Collections.unmodifiableList(media); - - StorageController ideController = StorageController.builder().name(ideControllerName).bus(StorageBus.IDE) - .attachISO(0, 0, "/tmp/ubuntu-11.04-server-i386.iso") - .attachHardDisk(HardDisk.builder().diskpath("/tmp/testadmin.vdi").controllerPort(0).deviceSlot(1).build()) - .attachISO(1, 1, "/tmp/VBoxGuestAdditions_4.1.2.iso").build(); - VmSpec vmSpecification = VmSpec.builder().id(vmId).name(vmName).memoryMB(512).osTypeId(osTypeId) - .controller(ideController).forceOverwrite(true).cleanUpMode(CleanupMode.Full).build(); - - expect(manager.getVBox()).andReturn(vBox).anyTimes(); - expect(vBox.findMachine(vmName)).andReturn(registeredMachine); - - expect(registeredMachine.unregister(mode)).andReturn(mediums); - expectLastCall().anyTimes(); - - expect(registeredMachine.delete(mediums)).andReturn(progress); - expectLastCall().anyTimes(); - - replay(manager, vBox, registeredMachine, progress); - - new UnregisterMachineIfExistsAndDeleteItsMedia(vmSpecification).apply(registeredMachine); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/GuestAdditionsInstallerLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/GuestAdditionsInstallerLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/GuestAdditionsInstallerLiveTest.java deleted file mode 100644 index 92b4bf1..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/GuestAdditionsInstallerLiveTest.java +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.predicates; - -import static com.google.common.base.Preconditions.checkState; -import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX; -import static org.testng.Assert.assertTrue; - -import org.jclouds.ssh.SshClient; -import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest; -import org.jclouds.virtualbox.domain.CloneSpec; -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.MasterSpec; -import org.jclouds.virtualbox.domain.NetworkAdapter; -import org.jclouds.virtualbox.domain.NetworkInterfaceCard; -import org.jclouds.virtualbox.domain.NetworkSpec; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists; -import org.jclouds.virtualbox.functions.CreateAndInstallVm; -import org.jclouds.virtualbox.functions.IMachineToSshClient; -import org.jclouds.virtualbox.util.NetworkUtils; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.NetworkAttachmentType; -import org.virtualbox_4_2.StorageBus; - -import com.google.common.base.CaseFormat; -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.collect.ImmutableSet; -import com.google.inject.Injector; - -@Test(groups = "live", singleThreaded = true, testName = "GuestAdditionsInstallerLiveTest") -public class GuestAdditionsInstallerLiveTest extends BaseVirtualBoxClientLiveTest { - - private Injector injector; - private Function<IMachine, SshClient> sshClientForIMachine; - private Predicate<SshClient> sshResponds; - private VmSpec instanceVmSpec; - private NetworkSpec instanceNetworkSpec; - - @Override - @BeforeClass(groups = "live") - public void setupContext() { - super.setupContext(); - injector = view.utils().injector(); - - String instanceName = VIRTUALBOX_IMAGE_PREFIX - + CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, getClass().getSimpleName()); - - StorageController ideController = StorageController - .builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .attachISO(0, 0, operatingSystemIso) - .attachHardDisk( - HardDisk.builder().diskpath(adminDisk(instanceName)).controllerPort(0).deviceSlot(1) - .autoDelete(true).build()).attachISO(1, 1, guestAdditionsIso).build(); - - instanceVmSpec = VmSpec.builder().id(instanceName).name(instanceName).osTypeId("").memoryMB(512) - .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build(); - - NetworkAdapter networkAdapter = NetworkAdapter.builder() - .networkAttachmentType(NetworkAttachmentType.HostOnly) - .build(); - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(networkAdapter) - .addHostInterfaceName("vboxnet0").slot(0L).build(); - - instanceNetworkSpec = NetworkSpec.builder().addNIC(networkInterfaceCard).build(); - } - - @Test - public void testGuestAdditionsAreInstalled() throws Exception { - IMachine machine = null; - try { - machine = cloneFromMaster(); - machineController.ensureMachineIsLaunched(machine.getName()); - sshClientForIMachine = injector.getInstance(IMachineToSshClient.class); - SshClient client = sshClientForIMachine.apply(machine); - - sshResponds = injector.getInstance(SshResponds.class); - checkState(sshResponds.apply(client), "timed out waiting for guest %s to be accessible via ssh", - machine.getName()); - - assertTrue(NetworkUtils.isIpv4(networkUtils.getIpAddressFromNicSlot(machine.getName(), 0l))); - - } finally { - if (machine != null) { - for (String vmNameOrId : ImmutableSet.of(machine.getName())) { - machineController.ensureMachineHasPowerDown(vmNameOrId); - undoVm(vmNameOrId); - } - } - } - } - - protected IMachine cloneFromMaster() { - IMachine source = getVmWithGuestAdditionsInstalled(); - CloneSpec cloneSpec = CloneSpec.builder() - .vm(instanceVmSpec) - .network(instanceNetworkSpec) - .master(source) - .linked(true) - .build(); - return new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, workingDir, machineUtils) - .apply(cloneSpec); - } - - private IMachine getVmWithGuestAdditionsInstalled() { - MasterSpec masterSpecForTest = getMasterSpecForTest(); - try { - Injector injector = view.utils().injector(); - return injector.getInstance(CreateAndInstallVm.class).apply(masterSpecForTest); - } catch (IllegalStateException e) { - // already created - return manager.get().getVBox().findMachine(masterSpecForTest.getVmSpec().getVmId()); - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/IMachinePredicatesLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/IMachinePredicatesLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/IMachinePredicatesLiveTest.java deleted file mode 100644 index 077360e..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/IMachinePredicatesLiveTest.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.predicates; - -import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX; -import static org.jclouds.virtualbox.predicates.IMachinePredicates.isLinkedClone; -import static org.testng.Assert.assertTrue; - -import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest; -import org.jclouds.virtualbox.domain.CloneSpec; -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.IsoSpec; -import org.jclouds.virtualbox.domain.MasterSpec; -import org.jclouds.virtualbox.domain.NetworkAdapter; -import org.jclouds.virtualbox.domain.NetworkInterfaceCard; -import org.jclouds.virtualbox.domain.NetworkSpec; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists; -import org.jclouds.virtualbox.functions.CreateAndInstallVm; -import org.testng.annotations.AfterGroups; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.NetworkAttachmentType; -import org.virtualbox_4_2.StorageBus; - -import com.google.common.base.CaseFormat; -import com.google.common.collect.ImmutableSet; -import com.google.inject.Injector; - -@Test(groups = "live", singleThreaded = true, testName = "IMachinePredicatesLiveTest") -public class IMachinePredicatesLiveTest extends BaseVirtualBoxClientLiveTest { - - private MasterSpec machineSpec; - private String instanceName; - - @Override - @BeforeClass(groups = "live") - public void setupContext() { - super.setupContext(); - instanceName = VIRTUALBOX_IMAGE_PREFIX - + CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, getClass().getSimpleName()); - - StorageController ideController = StorageController - .builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .attachISO(0, 0, operatingSystemIso) - .attachHardDisk( - HardDisk.builder().diskpath(adminDisk(instanceName)).controllerPort(0).deviceSlot(1) - .autoDelete(true).build()).attachISO(1, 1, guestAdditionsIso).build(); - - VmSpec instanceVmSpec = VmSpec.builder().id(instanceName).name(instanceName).osTypeId("").memoryMB(512) - .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build(); - - Injector injector = view.utils().injector(); - IsoSpec isoSpec = IsoSpec - .builder() - .sourcePath(operatingSystemIso) - .installationScript(keystrokeSequence).build(); - - NetworkAdapter networkAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.NAT) - .tcpRedirectRule("127.0.0.1", 2222, "", 22).build(); - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(networkAdapter) - .build(); - - NetworkSpec networkSpec = NetworkSpec.builder().addNIC(networkInterfaceCard).build(); - machineSpec = MasterSpec.builder().iso(isoSpec).vm(instanceVmSpec).network(networkSpec).build(); - - } - - @Test - public void testCloneMachineFromAnotherMachine() { - IMachine source = getVmWithGuestAdditionsInstalled(); - CloneSpec cloneSpec = CloneSpec.builder().vm(machineSpec.getVmSpec()).network(machineSpec.getNetworkSpec()) - .master(source).linked(true).build(); - IMachine clone = new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, workingDir, machineUtils) - .apply(cloneSpec); - assertTrue(isLinkedClone().apply(clone)); - } - - private IMachine getVmWithGuestAdditionsInstalled() { - MasterSpec masterSpecForTest = super.getMasterSpecForTest(); - try { - Injector injector = view.utils().injector(); - return injector.getInstance(CreateAndInstallVm.class).apply(masterSpecForTest); - } catch (IllegalStateException e) { - // already created - return manager.get().getVBox().findMachine(masterSpecForTest.getVmSpec().getVmId()); - } - } - - @AfterGroups(groups = "live") - @Override - protected void tearDownContext() { - for (String vmName : ImmutableSet.of(instanceName)) { - undoVm(vmName); - } - super.tearDownContext(); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/RetryIfSocketNotYetOpenTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/RetryIfSocketNotYetOpenTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/RetryIfSocketNotYetOpenTest.java deleted file mode 100644 index a041913..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/predicates/RetryIfSocketNotYetOpenTest.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.predicates; - -import static org.jclouds.compute.predicates.SocketOpenPredicates.alwaysFail; -import static org.testng.Assert.assertEquals; -import static org.testng.Assert.assertTrue; - -import java.util.concurrent.TimeUnit; - -import org.jclouds.compute.reference.ComputeServiceConstants.Timeouts; -import org.jclouds.logging.Logger; -import org.testng.annotations.Test; - -import com.google.common.net.HostAndPort; - - -/** - * Tests timeout behavior of {@link RetryIfSocketNotYetOpen} predicate. - */ -public class RetryIfSocketNotYetOpenTest { - - private static final Logger logger = Logger.NULL; - private static final HostAndPort socket = HostAndPort.fromParts("dummy", 0); - - @Test - public void fromConstructor() { - RetryIfSocketNotYetOpen fromSeconds = new RetryIfSocketNotYetOpen(alwaysFail, logger, 2000, TimeUnit.MILLISECONDS); - doAsserts(fromSeconds, socket, false, 2000, 3000); - } - - @Test - public void fromSeconds() { - RetryIfSocketNotYetOpen fromSeconds = new RetryIfSocketNotYetOpen(alwaysFail, logger).seconds(2); - doAsserts(fromSeconds, socket, false, 2000, 3000); - } - - @Test - public void fromMilliseconds() { - RetryIfSocketNotYetOpen fromMilliseconds = new RetryIfSocketNotYetOpen(alwaysFail, logger).milliseconds(2000); - doAsserts(fromMilliseconds, socket, false, 2000, 3000); - } - - @Test - public void fromTimeouts() { - Timeouts timeouts = new Timeouts() { { portOpen = 2 * 1000; } }; - RetryIfSocketNotYetOpen fromTimeouts = new RetryIfSocketNotYetOpen(alwaysFail, timeouts); - doAsserts(fromTimeouts, socket, false, 2000, 3000); - } - - @Test - public void timeoutUnset() { - // With no timeout specified, predicate should return immediately. - RetryIfSocketNotYetOpen uninitialised = new RetryIfSocketNotYetOpen(alwaysFail, logger); - doAsserts(uninitialised, socket, false, 0, 500); - } - - private void doAsserts(RetryIfSocketNotYetOpen predicate, HostAndPort socket, boolean expectedResult, long minMilliseconds, long maxMilliseconds) { - long startTime = System.currentTimeMillis(); - boolean result = predicate.apply(socket); - long elapsedTime = System.currentTimeMillis() - startTime; - - assertEquals(result, expectedResult); - assertTrue(elapsedTime >= minMilliseconds && elapsedTime < maxMilliseconds, - "apply() returned after ~" + elapsedTime + "ms, expected it to take between " + - minMilliseconds + " and " + maxMilliseconds); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsLiveTest.java deleted file mode 100644 index f888a45..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsLiveTest.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.statements; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.scriptbuilder.domain.OsFamily; -import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.StorageBus; - -@Test(testName = "InstallGuestAdditionsLiveTest", groups = "live", singleThreaded = true) -public class InstallGuestAdditionsLiveTest extends BaseVirtualBoxClientLiveTest { - - public void testIsoPresent() { - StorageController ideController = StorageController.builder().name("IDE Controller").bus(StorageBus.IDE) - .attachISO(1, 0, "VBoxGuestAdditions_").build(); - - VmSpec vmSpecification = VmSpec.builder().id("").name("").memoryMB(512).osTypeId("").controller(ideController) - .forceOverwrite(true).cleanUpMode(CleanupMode.Full).build(); - - InstallGuestAdditions installer = new InstallGuestAdditions(vmSpecification, "4.1.8"); - String scripts = installer.render(OsFamily.UNIX); - assertEquals(scripts, "installModuleAssistantIfNeeded || return 1\n" + "mount -t iso9660 /dev/cdrom1 /mnt\n" - + "/mnt/VBoxLinuxAdditions.run --nox11\n"); - } - - public void testIsoNotPresent() { - StorageController ideController = StorageController.builder().name("IDE Controller").bus(StorageBus.IDE).build(); - - VmSpec vmSpecification = VmSpec.builder().id("").name("").memoryMB(512).osTypeId("").controller(ideController) - .forceOverwrite(true).cleanUpMode(CleanupMode.Full).build(); - - InstallGuestAdditions installer = new InstallGuestAdditions(vmSpecification, "4.1.8"); - String scripts = installer.render(OsFamily.UNIX); - assertEquals(scripts, - "installModuleAssistantIfNeeded || return 1\n" - + "setupPublicCurl || return 1\n" - + "(mkdir -p /tmp/ && cd /tmp/ && [ ! -f VBoxGuestAdditions_4.1.8.iso ] && curl -q -s -S -L --connect-timeout 10 --max-time 600 --retry 20 -C - -X GET http://download.virtualbox.org/virtualbox/4.1.8/VBoxGuestAdditions_4.1.8.iso >VBoxGuestAdditions_4.1.8.iso)\n" - + "mount -o loop /tmp/VBoxGuestAdditions_4.1.8.iso /mnt\n" - + "/mnt/VBoxLinuxAdditions.run --nox11\n"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsTest.java deleted file mode 100644 index 62a97c4..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/InstallGuestAdditionsTest.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.statements; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.scriptbuilder.domain.OsFamily; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.StorageBus; - -public class InstallGuestAdditionsTest { - - private static final String VBOX_VERISION = "4.2.0"; - - @Test - public void testInstallGAWhenIsoIsPresent() { - StorageController ideController = StorageController.builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .attachISO(1, 0, "VBoxGuestAdditions_") - .build(); - VmSpec vmSpec = VmSpec.builder() - .id("").name("") - .memoryMB(512) - .osTypeId("") - .controller(ideController) - .forceOverwrite(true) - .cleanUpMode(CleanupMode.Full) - .build(); - InstallGuestAdditions installGuestAdditions = new InstallGuestAdditions(vmSpec , VBOX_VERISION); - assertEquals(installGuestAdditions.render(OsFamily.UNIX), - "installModuleAssistantIfNeeded || return 1\n" + - "mount -t iso9660 /dev/cdrom1 /mnt\n" + - "/mnt/VBoxLinuxAdditions.run --nox11\n"); - } - - @Test - public void testInstallGAWhenIsoIsNotPresent() { - StorageController ideController = StorageController.builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .build(); - VmSpec vmSpec = VmSpec.builder() - .id("").name("") - .memoryMB(512) - .osTypeId("") - .controller(ideController) - .forceOverwrite(true) - .cleanUpMode(CleanupMode.Full) - .build(); - InstallGuestAdditions installGuestAdditions = new InstallGuestAdditions(vmSpec , VBOX_VERISION); - assertEquals(installGuestAdditions.render(OsFamily.UNIX), - "installModuleAssistantIfNeeded || return 1\n" + - "setupPublicCurl || return 1\n" + - "(mkdir -p /tmp/ && cd /tmp/ && [ ! -f VBoxGuestAdditions_4.2.0.iso ] && curl -q -s -S -L --connect-timeout 10 --max-time 600 --retry 20 -C - -X GET http://download.virtualbox.org/virtualbox/4.2.0/VBoxGuestAdditions_4.2.0.iso >VBoxGuestAdditions_4.2.0.iso)\n" + - "mount -o loop /tmp/VBoxGuestAdditions_4.2.0.iso /mnt\n" + - "/mnt/VBoxLinuxAdditions.run --nox11\n"); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/statements/PasswordlessTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/PasswordlessTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/statements/PasswordlessTest.java deleted file mode 100644 index 430dbe9..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/PasswordlessTest.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.statements; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.scriptbuilder.domain.OsFamily; -import org.testng.annotations.Test; - -public class PasswordlessTest { - - - @Test - public void testApplyPasswordlessSudo() { - PasswordlessSudo passwordlessSudo = new PasswordlessSudo("barack"); - assertEquals(passwordlessSudo.render(OsFamily.UNIX), - "touch /etc/sudoers.d/passwordless && echo \"barack ALL = NOPASSWD: ALL\" > /etc/sudoers.d/passwordless && chmod 0440 /etc/sudoers.d/passwordless"); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/statements/SetIpAddressTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/SetIpAddressTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/statements/SetIpAddressTest.java deleted file mode 100644 index d4be94a..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/statements/SetIpAddressTest.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.statements; - -import static org.testng.Assert.assertEquals; - -import org.jclouds.scriptbuilder.domain.OsFamily; -import org.jclouds.virtualbox.domain.NetworkAdapter; -import org.jclouds.virtualbox.domain.NetworkInterfaceCard; -import org.testng.annotations.Test; -import org.virtualbox_4_2.NetworkAttachmentType; - -public class SetIpAddressTest { - - @Test - public void testSetIpeth0() { - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard - .builder() - .slot(0L) - .addNetworkAdapter( - NetworkAdapter.builder().staticIp("127.0.0.1").networkAttachmentType(NetworkAttachmentType.NAT) - .build()).build(); - SetIpAddress setIpAddressStmtm = new SetIpAddress(networkInterfaceCard); - assertEquals("ifconfig eth0 127.0.0.1;", setIpAddressStmtm.render(OsFamily.UNIX)); - } - - @Test - public void testSetIpeth3() { - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard - .builder() - .slot(3L) - .addNetworkAdapter( - NetworkAdapter.builder().staticIp("localhost").networkAttachmentType(NetworkAttachmentType.NAT) - .build()).build(); - SetIpAddress setIpAddressStmtm = new SetIpAddress(networkInterfaceCard); - assertEquals("ifconfig eth3 localhost;", setIpAddressStmtm.render(OsFamily.UNIX)); - } - - @Test(expectedExceptions = IllegalArgumentException.class) - public void testThrowsIllegalArgumentExceptionOnWrongSlot() { - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard - .builder() - .slot(4L) - .addNetworkAdapter( - NetworkAdapter.builder().staticIp("localhost").networkAttachmentType(NetworkAttachmentType.NAT) - .build()).build(); - new SetIpAddress(networkInterfaceCard); - } - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineControllerLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineControllerLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineControllerLiveTest.java deleted file mode 100644 index 8624e72..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineControllerLiveTest.java +++ /dev/null @@ -1,125 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.util; - -import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX; -import static org.testng.AssertJUnit.assertTrue; -import static org.testng.AssertJUnit.assertEquals; - -import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest; -import org.jclouds.virtualbox.domain.CloneSpec; -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.IsoSpec; -import org.jclouds.virtualbox.domain.MasterSpec; -import org.jclouds.virtualbox.domain.NetworkAdapter; -import org.jclouds.virtualbox.domain.NetworkInterfaceCard; -import org.jclouds.virtualbox.domain.NetworkSpec; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists; -import org.jclouds.virtualbox.functions.CreateAndInstallVm; -import org.testng.annotations.AfterGroups; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.ISession; -import org.virtualbox_4_2.NetworkAttachmentType; -import org.virtualbox_4_2.SessionState; -import org.virtualbox_4_2.StorageBus; - -import com.google.common.base.CaseFormat; -import com.google.common.collect.ImmutableSet; -import com.google.inject.Injector; - -@Test(groups = "live", testName = "MachineControllerLiveTest") -public class MachineControllerLiveTest extends BaseVirtualBoxClientLiveTest { - - private MasterSpec masterSpec; - private String instanceName; - private IMachine clonedMachine; - - @Override - @BeforeClass(groups = "live") - public void setupContext() { - super.setupContext(); - instanceName = VIRTUALBOX_IMAGE_PREFIX - + CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, getClass().getSimpleName()); - - StorageController ideController = StorageController - .builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .attachISO(0, 0, operatingSystemIso) - .attachHardDisk( - HardDisk.builder().diskpath(adminDisk(instanceName)).controllerPort(0).deviceSlot(1).autoDelete(true) - .build()).attachISO(1, 1, guestAdditionsIso).build(); - - VmSpec instanceVmSpec = VmSpec.builder().id(instanceName).name(instanceName).osTypeId("").memoryMB(512) - .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build(); - - IsoSpec isoSpec = IsoSpec - .builder() - .sourcePath(operatingSystemIso) - .installationScript(keystrokeSequence).build(); - - NetworkAdapter networkAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.HostOnly) - .build(); - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(networkAdapter) - .addHostInterfaceName("vboxnet0").slot(0L).build(); - NetworkSpec networkSpec = NetworkSpec.builder().addNIC(networkInterfaceCard).build(); - masterSpec = MasterSpec.builder().iso(isoSpec).vm(instanceVmSpec).network(networkSpec).build(); - clonedMachine = cloneFromMaster(); - } - - @Test - public void testEnsureMachineisLaunchedAndSessionIsUnlocked() { - ISession cloneMachineSession = machineController.ensureMachineIsLaunched(clonedMachine.getName()); - assertTrue(cloneMachineSession.getState() == SessionState.Unlocked); - cloneMachineSession = machineController.ensureMachineHasPowerDown(clonedMachine.getName()); - SessionState state = cloneMachineSession.getState(); - assertEquals(SessionState.Unlocked, state); - } - - private IMachine cloneFromMaster() { - IMachine source = getVmWithGuestAdditionsInstalled(); - CloneSpec cloneSpec = CloneSpec.builder().vm(masterSpec.getVmSpec()).network(masterSpec.getNetworkSpec()) - .master(source).linked(true).build(); - return new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, workingDir, machineUtils) - .apply(cloneSpec); - } - - private IMachine getVmWithGuestAdditionsInstalled() { - MasterSpec masterSpecForTest = super.getMasterSpecForTest(); - try { - Injector injector = view.utils().injector(); - return injector.getInstance(CreateAndInstallVm.class).apply(masterSpecForTest); - } catch (IllegalStateException e) { - // already created - return manager.get().getVBox().findMachine(masterSpecForTest.getVmSpec().getVmId()); - } - } - - @AfterGroups(groups = "live") - @Override - protected void tearDownContext() { - for (String vmName : ImmutableSet.of(instanceName)) { - undoVm(vmName); - } - super.tearDownContext(); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineUtilsLiveTest.java ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineUtilsLiveTest.java b/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineUtilsLiveTest.java deleted file mode 100644 index ff0ea3e..0000000 --- a/virtualbox/src/test/java/org/jclouds/virtualbox/util/MachineUtilsLiveTest.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.virtualbox.util; - -import static com.google.common.base.Preconditions.checkState; -import static org.jclouds.virtualbox.config.VirtualBoxConstants.VIRTUALBOX_IMAGE_PREFIX; -import static org.testng.AssertJUnit.assertEquals; - -import org.jclouds.virtualbox.BaseVirtualBoxClientLiveTest; -import org.jclouds.virtualbox.domain.CloneSpec; -import org.jclouds.virtualbox.domain.HardDisk; -import org.jclouds.virtualbox.domain.IsoSpec; -import org.jclouds.virtualbox.domain.MasterSpec; -import org.jclouds.virtualbox.domain.NetworkAdapter; -import org.jclouds.virtualbox.domain.NetworkInterfaceCard; -import org.jclouds.virtualbox.domain.NetworkSpec; -import org.jclouds.virtualbox.domain.StorageController; -import org.jclouds.virtualbox.domain.VmSpec; -import org.jclouds.virtualbox.functions.CloneAndRegisterMachineFromIMachineIfNotAlreadyExists; -import org.jclouds.virtualbox.functions.CreateAndInstallVm; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; -import org.virtualbox_4_2.CleanupMode; -import org.virtualbox_4_2.IMachine; -import org.virtualbox_4_2.ISession; -import org.virtualbox_4_2.NetworkAttachmentType; -import org.virtualbox_4_2.SessionState; -import org.virtualbox_4_2.StorageBus; - -import com.google.common.base.CaseFormat; -import com.google.common.base.Function; -import com.google.inject.Injector; - -@Test(groups = "live", testName = "MachineControllerLiveTest") -public class MachineUtilsLiveTest extends BaseVirtualBoxClientLiveTest { - - private MasterSpec machineSpec; - private String instanceName; - - @Override - @BeforeClass(groups = "live") - public void setupContext() { - super.setupContext(); - instanceName = VIRTUALBOX_IMAGE_PREFIX - + CaseFormat.UPPER_CAMEL.to(CaseFormat.LOWER_HYPHEN, getClass().getSimpleName()); - - StorageController ideController = StorageController - .builder() - .name("IDE Controller") - .bus(StorageBus.IDE) - .attachISO(0, 0, operatingSystemIso) - .attachHardDisk( - HardDisk.builder().diskpath(adminDisk(instanceName)).controllerPort(0).deviceSlot(1).autoDelete(true) - .build()).attachISO(1, 1, guestAdditionsIso).build(); - - VmSpec instanceVmSpec = VmSpec.builder().id(instanceName).name(instanceName).osTypeId("").memoryMB(512) - .cleanUpMode(CleanupMode.Full).controller(ideController).forceOverwrite(true).build(); - - IsoSpec isoSpec = IsoSpec - .builder() - .sourcePath(operatingSystemIso) - .installationScript(keystrokeSequence).build(); - - NetworkAdapter networkAdapter = NetworkAdapter.builder().networkAttachmentType(NetworkAttachmentType.NAT) - .tcpRedirectRule("127.0.0.1", 2222, "", 22).build(); - NetworkInterfaceCard networkInterfaceCard = NetworkInterfaceCard.builder().addNetworkAdapter(networkAdapter) - .build(); - - NetworkSpec networkSpec = NetworkSpec.builder().addNIC(networkInterfaceCard).build(); - machineSpec = MasterSpec.builder().iso(isoSpec).vm(instanceVmSpec).network(networkSpec).build(); - } - - @Test(description = "write lock is acquired and released correctly") - public void writeLockSessionOnMachine() { - final IMachine clone = cloneFromMaster(); - ISession session = machineUtils.writeLockMachineAndApplyToSession(clone.getName(), - new Function<ISession, ISession>() { - @Override - public ISession apply(ISession session) { - assertEquals(session.getMachine().getName(), clone.getName()); - return session; - } - }); - checkState(session.getState().equals(SessionState.Unlocked)); - undoVm(clone.getName()); - } - - @Test(dependsOnMethods = "writeLockSessionOnMachine", description = "shared lock is acquired and released correctly") - public void sharedLockSessionOnMachine() { - final IMachine clone = cloneFromMaster(); - ISession session = machineUtils.sharedLockMachineAndApplyToSession(clone.getName(), - new Function<ISession, ISession>() { - @Override - public ISession apply(ISession session) { - assertEquals(session.getMachine().getName(), clone.getName()); - return session; - } - }); - checkState(session.getState().equals(SessionState.Unlocked)); - undoVm(clone.getName()); - } - - @Test(dependsOnMethods = "sharedLockSessionOnMachine", description = "shared lock can be acquired after a write lock") - public void sharedLockCanBeAcquiredAfterWriteLockSessionOnMachine() { - final IMachine clone = cloneFromMaster(); - try { - ISession writeSession = machineUtils.writeLockMachineAndApplyToSession(clone.getName(), - new Function<ISession, ISession>() { - @Override - public ISession apply(ISession writeSession) { - checkState(writeSession.getState().equals(SessionState.Locked)); - return writeSession; - } - }); - checkState(writeSession.getState().equals(SessionState.Unlocked)); - } finally { - undoVm(clone.getName()); - } - } - - @Test(dependsOnMethods = "sharedLockCanBeAcquiredAfterWriteLockSessionOnMachine", description = "write lock cannot be acquired after a shared lock") - public void writeLockCannotBeAcquiredAfterSharedLockSessionOnMachine() { - final IMachine clone = cloneFromMaster(); - try { - ISession sharedSession = machineUtils.sharedLockMachineAndApplyToSession(clone.getName(), - new Function<ISession, ISession>() { - @Override - public ISession apply(ISession sharedSession) { - checkState(sharedSession.getState().equals(SessionState.Locked)); - return sharedSession; - } - }); - checkState(sharedSession.getState().equals(SessionState.Unlocked)); - ISession writeSession = machineUtils.writeLockMachineAndApplyToSession(clone.getName(), - new Function<ISession, ISession>() { - @Override - public ISession apply(ISession writeSession) { - checkState(writeSession.getState().equals(SessionState.Locked)); - assertEquals(writeSession.getMachine().getName(), clone.getName()); - return writeSession; - } - }); - checkState(writeSession.getState().equals(SessionState.Unlocked)); - } finally { - undoVm(clone.getName()); - } - } - - private IMachine cloneFromMaster() { - IMachine source = getVmWithGuestAdditionsInstalled(); - CloneSpec cloneSpec = CloneSpec.builder().vm(machineSpec.getVmSpec()).network(machineSpec.getNetworkSpec()) - .master(source).linked(true).build(); - return new CloneAndRegisterMachineFromIMachineIfNotAlreadyExists(manager, workingDir, machineUtils) - .apply(cloneSpec); - } - - private IMachine getVmWithGuestAdditionsInstalled() { - MasterSpec masterSpecForTest = super.getMasterSpecForTest(); - try { - Injector injector = view.utils().injector(); - return injector.getInstance(CreateAndInstallVm.class).apply(masterSpecForTest); - } catch (IllegalStateException e) { - // already created - return manager.get().getVBox().findMachine(masterSpecForTest.getVmSpec().getVmId()); - } - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/resources/.gitattributes ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/resources/.gitattributes b/virtualbox/src/test/resources/.gitattributes deleted file mode 100644 index ba409ff..0000000 --- a/virtualbox/src/test/resources/.gitattributes +++ /dev/null @@ -1 +0,0 @@ -*.sh -crlf http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/resources/default-images.yaml ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/resources/default-images.yaml b/virtualbox/src/test/resources/default-images.yaml deleted file mode 100644 index aa7fd6a..0000000 --- a/virtualbox/src/test/resources/default-images.yaml +++ /dev/null @@ -1,151 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -images: - - id: ubuntu-12.04.1-amd64 - name: ubuntu-12.04.1-server-amd64 - description: ubuntu 12.04.1 server (amd64) - os_arch: amd64 - os_family: ubuntu - os_description: ubuntu - os_version: 12.04.1 - os_64bit: true - iso: http://releases.ubuntu.com/12.04.1/ubuntu-12.04.1-server-amd64.iso - iso_md5: a8c667e871f48f3a662f3fbf1c3ddb17 - username: toor - credential: password - keystroke_sequence: <Esc><Esc><Enter> /install/vmlinuz noapic preseed/url=PRECONFIGURATION_URL debian-installer=en_US auto locale=en_US kbd-chooser/method=us hostname=HOSTNAME fb=false debconf/frontend=noninteractive console-setup/ask_detect=false keyboard-configuration/layoutcode=us initrd=/install/initrd.gz -- <Enter> - preseed_cfg: | - ## Options to set on the command line - d-i debian-installer/locale string en_US.utf8 - d-i console-setup/ask_detect boolean false - d-i console-setup/layout string USA - d-i netcfg/get_hostname string unassigned-hostname - d-i netcfg/get_domain string unassigned-domain - # Continue without a default route - # Not working , specify a dummy in the DHCP - #d-i netcfg/no_default_route boolean - d-i time/zone string UTC - d-i clock-setup/utc-auto boolean true - d-i clock-setup/utc boolean true - d-i kbd-chooser/method select American English - d-i netcfg/wireless_wep string - d-i base-installer/kernel/override-image string linux-server - #d-i base-installer/kernel/override-image string linux-image-2.6.32-21-generic - # Choices: Dialog, Readline, Gnome, Kde, Editor, Noninteractive - d-i debconf debconf/frontend select Noninteractive - d-i pkgsel/install-language-support boolean false - tasksel tasksel/first multiselect standard, ubuntu-server - #d-i partman-auto/method string regular - d-i partman-auto/method string lvm - #d-i partman-auto/purge_lvm_from_device boolean true - d-i partman-lvm/confirm boolean true - d-i partman-lvm/device_remove_lvm boolean true - d-i partman-auto/choose_recipe select atomic - d-i partman/confirm_write_new_label boolean true - d-i partman/confirm_nooverwrite boolean true - d-i partman/choose_partition select finish - d-i partman/confirm boolean true - #http://ubuntu-virginia.ubuntuforums.org/showthread.php?p=9626883 - #Message: "write the changes to disk and configure lvm preseed" - #http://serverfault.com/questions/189328/ubuntu-kickstart-installation-using-lvm-waits-for-input - #preseed partman-lvm/confirm_nooverwrite boolean true - # Write the changes to disks and configure LVM? - d-i partman-lvm/confirm boolean true - d-i partman-lvm/confirm_nooverwrite boolean true - d-i partman-auto-lvm/guided_size string max - ## Default user, we can get away with a recipe to change this - d-i passwd/user-fullname string toor - d-i passwd/username string toor - d-i passwd/user-password password password - d-i passwd/user-password-again password password - d-i user-setup/encrypt-home boolean false - d-i user-setup/allow-password-weak boolean true - ## minimum is ssh and ntp - # Individual additional packages to install - d-i pkgsel/include string openssh-server ntp - # Whether to upgrade packages after debootstrap. - # Allowed values: none, safe-upgrade, full-upgrade - d-i pkgsel/upgrade select full-upgrade - d-i grub-installer/only_debian boolean true - d-i grub-installer/with_other_os boolean true - d-i finish-install/reboot_in_progress note - #For the update - d-i pkgsel/update-policy select none - # debconf-get-selections --install - #Use mirror - #d-i apt-setup/use_mirror boolean true - #d-i mirror/country string manual - #choose-mirror-bin mirror/protocol string http - #choose-mirror-bin mirror/http/hostname string 192.168.4.150 - #choose-mirror-bin mirror/http/directory string /ubuntu - #choose-mirror-bin mirror/suite select maverick - #d-i debian-installer/allow_unauthenticated string true - choose-mirror-bin mirror/http/proxy string - - id: centos-6.3-amd64 - name: centos-6.3-amd64 - description: centos-6.3 (amd64) - os_arch: amd64 - os_family: RedHat - os_description: RedHat - os_version: 6.3 - os_64bit: true - iso: http://www.mirrorservice.org/sites/mirror.centos.org/6.3/isos/x86_64/CentOS-6.3-x86_64-minimal.iso - iso_md5: 087713752fa88c03a5e8471c661ad1a2 - username: toor - credential: password - keystroke_sequence: <Tab> <Spacebar> text ks=PRECONFIGURATION_URL <Enter> - preseed_cfg: | - ## Options to set on the command line - install - cdrom - lang en_US.UTF-8 - keyboard us - network --bootproto=dhcp - rootpw --iscrypted $1$damlkd,f$UC/u5pUts5QiU3ow.CSso/ - firewall --enabled --service=ssh - authconfig --enableshadow --passalgo=sha512 - selinux --disabled - timezone UTC - bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet" - zerombr yes - - clearpart --all --drives=sda --initlabel - autopart - auth --useshadow --enablemd5 - #skip answers to the First Boot process - firstboot --disable - #reboot machine - reboot - - %packages --ignoremissing - @core - %end - - %post - /usr/bin/yum -y install sudo gcc make kernel kernel-devel openssl-devel perl wget dkms acpid - /etc/init.d/haldaemon stop - /etc/init.d/acpid start - /etc/init.d/haldaemon start - /usr/sbin/groupadd toor - /usr/sbin/useradd toor -g toor -G wheel - echo "password"|passwd --stdin toor - echo "toor ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/toor - chmod 0440 /etc/sudoers.d/toor - sed -i "s/^.*requiretty/#Defaults requiretty/" /etc/sudoers - %end http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/resources/default-keystroke-sequence ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/resources/default-keystroke-sequence b/virtualbox/src/test/resources/default-keystroke-sequence deleted file mode 100644 index bcfd94b..0000000 --- a/virtualbox/src/test/resources/default-keystroke-sequence +++ /dev/null @@ -1,19 +0,0 @@ -# -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -<Esc><Esc><Enter> /install/vmlinuz noapic preseed/url=PRECONFIGURATION_URL debian-installer=en_US auto locale=en_US kbd-chooser/method=us hostname=hostname fb=false debconf/frontend=noninteractive console-setup/ask_detect=false keyboard-configuration/layoutcode=us " initrd=/install/initrd.gz -- <Enter> http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/75178c77/virtualbox/src/test/resources/logback.xml ---------------------------------------------------------------------- diff --git a/virtualbox/src/test/resources/logback.xml b/virtualbox/src/test/resources/logback.xml deleted file mode 100644 index bce8c26..0000000 --- a/virtualbox/src/test/resources/logback.xml +++ /dev/null @@ -1,76 +0,0 @@ -<?xml version="1.0"?> -<configuration scan="false"> - <appender name="FILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds.log</file> - - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>%d %-5p [%c] (%t) %m%n</Pattern> - </layout> - </appender> - - <appender name="WIREFILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds-wire.log</file> - - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>%d %-5p [%c] (%t) %m%n</Pattern> - </layout> - </appender> - - <appender name="COMPUTEFILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds-compute.log</file> - - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>%d %-5p [%c] (%t) %m%n</Pattern> - </layout> - </appender> - - <appender name="SSHFILE" class="ch.qos.logback.core.FileAppender"> - <file>target/test-data/jclouds-ssh.log</file> - - <layout class="ch.qos.logback.classic.PatternLayout"> - <Pattern>%d %-5p [%c] (%t) %m%n</Pattern> - </layout> - </appender> - - <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> - <encoder> - <Pattern>%-4r [%thread] %-5level - %msg%n</Pattern> - </encoder> - </appender> - - <root> - <level value="INFO" /> - <appender-ref ref="CONSOLE" /> - </root> - - <logger name="net.schmizz.sshj"> - <level value="INFO" /> - <appender-ref ref="CONSOLE" /> - </logger> - - <logger name="org.jclouds"> - <level value="DEBUG" /> - <appender-ref ref="FILE" /> - </logger> - - <logger name="jclouds.wire"> - <level value="DEBUG" /> - <appender-ref ref="WIREFILE" /> - </logger> - - <logger name="jclouds.headers"> - <level value="DEBUG" /> - <appender-ref ref="WIREFILE" /> - </logger> - - <logger name="jclouds.compute"> - <level value="DEBUG" /> - <appender-ref ref="COMPUTEFILE" /> - </logger> - - <logger name="jclouds.ssh"> - <level value="DEBUG" /> - <appender-ref ref="SSHFILE" /> - </logger> - -</configuration>
