From f7802b09b022dae63a3548aa0b59652f41384ea2 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Fri, 6 Jan 2012 09:52:26 -0800 Subject: [PATCH] added imageId to the default properties of vbox and fixed a null --- .../VirtualBoxPropertiesBuilder.java | 2 ++ .../BaseVirtualBoxClientLiveTest.java | 26 ++++++++++++------- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/sandbox-apis/virtualbox/src/main/java/org/jclouds/virtualbox/VirtualBoxPropertiesBuilder.java b/sandbox-apis/virtualbox/src/main/java/org/jclouds/virtualbox/VirtualBoxPropertiesBuilder.java index 83c4a435fa..2bf4ca7d37 100644 --- a/sandbox-apis/virtualbox/src/main/java/org/jclouds/virtualbox/VirtualBoxPropertiesBuilder.java +++ b/sandbox-apis/virtualbox/src/main/java/org/jclouds/virtualbox/VirtualBoxPropertiesBuilder.java @@ -29,6 +29,7 @@ import java.io.File; import java.util.Properties; import org.jclouds.PropertiesBuilder; +import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.virtualbox.config.VirtualBoxConstants; /** @@ -55,6 +56,7 @@ public class VirtualBoxPropertiesBuilder extends PropertiesBuilder { properties.put(PROPERTY_BUILD_VERSION, "4.1.8r75467"); properties.put(PROPERTY_IDENTITY, "administrator"); properties.put(PROPERTY_CREDENTIAL, "12345"); + properties.put(ComputeServiceConstants.PROPERTY_IMAGE_ID, "ubuntu-11.04-server-i386"); properties.put(VirtualBoxConstants.VIRTUALBOX_PRESEED_URL, "http://dl.dropbox.com/u/693111/preseed.cfg"); properties.put(VirtualBoxConstants.VIRTUALBOX_SNAPSHOT_DESCRIPTION, "jclouds-virtualbox-snaphot"); properties.put(VirtualBoxConstants.VIRTUALBOX_HOSTNAME, "jclouds-virtualbox-kickstart-admin"); diff --git a/sandbox-apis/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java b/sandbox-apis/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java index 64d70c73ff..c2ca14e133 100644 --- a/sandbox-apis/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java +++ b/sandbox-apis/virtualbox/src/test/java/org/jclouds/virtualbox/BaseVirtualBoxClientLiveTest.java @@ -21,7 +21,6 @@ package org.jclouds.virtualbox; import static org.jclouds.virtualbox.experiment.TestUtils.computeServiceForLocalhostAndGuest; -import java.net.URI; import java.util.Properties; import org.eclipse.jetty.server.Server; @@ -29,6 +28,7 @@ import org.jclouds.Constants; import org.jclouds.compute.BaseVersionedServiceLiveTest; import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.ComputeServiceContextFactory; +import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.domain.Credentials; import org.jclouds.logging.log4j.config.Log4JLoggingModule; import org.jclouds.predicates.InetSocketAddressConnect; @@ -46,7 +46,9 @@ import org.virtualbox_4_1.VirtualBoxManager; import com.google.common.base.Splitter; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.google.inject.Key; import com.google.inject.Module; +import com.google.inject.name.Names; /** * Tests behavior of {@code VirtualBoxClient} @@ -70,16 +72,15 @@ public class BaseVirtualBoxClientLiveTest extends BaseVersionedServiceLiveTest { @Override protected void setupCredentials() { // default behavior is to bomb when no user is configured, but we know the default user of vbox + ensureIdentityPropertyIsSpecifiedOrTakeFromDefaults(); + super.setupCredentials(); + } + + protected void ensureIdentityPropertyIsSpecifiedOrTakeFromDefaults() { Properties defaultVBoxProperties = new VirtualBoxPropertiesBuilder().build(); if (!System.getProperties().containsKey("test." + provider + ".identity")) System.setProperty("test." + provider + ".identity", defaultVBoxProperties .getProperty(Constants.PROPERTY_IDENTITY)); - super.setupCredentials(); - // add in other properties we may need that are in defaults. - if (endpoint == null) - endpoint = defaultVBoxProperties.getProperty(Constants.PROPERTY_ENDPOINT); - if (buildVersion == null) - buildVersion = defaultVBoxProperties.getProperty(Constants.PROPERTY_BUILD_VERSION); } @BeforeClass(groups = "live") @@ -88,15 +89,22 @@ public class BaseVirtualBoxClientLiveTest extends BaseVersionedServiceLiveTest { Properties overrides = setupProperties(); context = new ComputeServiceContextFactory().createContext(provider, identity, credential, ImmutableSet. of(new Log4JLoggingModule(), new SshjSshClientModule()), overrides); + intializeImageIdFromContext(); + jetty = new StartJettyIfNotAlreadyRunning(port).apply(basebaseResource); startVboxIfNotAlreadyRunning(); - hostVersion = Iterables.get(Splitter.on('r').split(buildVersion), 0); + hostVersion = Iterables.get(Splitter.on('r').split(context.getProviderSpecificContext().getBuildVersion()), 0); String workingDir = PropertyUtils.getWorkingDirFromProperty(); adminDisk = workingDir + "/testadmin.vdi"; operatingSystemIso = String.format("%s/%s.iso", workingDir, imageId); guestAdditionsIso = String.format("%s/VBoxGuestAdditions_%s.iso", workingDir, hostVersion); } + protected void intializeImageIdFromContext() { + imageId = context.utils().injector().getInstance( + Key.get(String.class, Names.named(ComputeServiceConstants.PROPERTY_IMAGE_ID))); + } + @AfterClass(groups = "live") protected void tearDown() throws Exception { if (context != null) @@ -118,7 +126,7 @@ public class BaseVirtualBoxClientLiveTest extends BaseVersionedServiceLiveTest { manager = new StartVBoxIfNotAlreadyRunning(localHostContext.getComputeService(), VirtualBoxManager.createInstance("hostId"), new InetSocketAddressConnect(), "hostId", localhostCredentials) - .apply(URI.create(endpoint)); + .apply(context.getProviderSpecificContext().getEndpoint()); assert manager.getSessionObject().getState() == SessionState.Unlocked : "manager needs to be in unlocked state or all tests will fail!!: " + manager;