Repository: jclouds Updated Branches: refs/heads/1.9.x 30aca7d83 -> cc1217b5c
[SoftLayer] fix some failing LiveTests fix VirtualGuestBlockDeviceTemplateGroupApiLiveTest fix SoftLayerComputeServiceLiveTest Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/cc1217b5 Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/cc1217b5 Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/cc1217b5 Branch: refs/heads/1.9.x Commit: cc1217b5c843ef8ccb761f0d5c9b7c5b6cd5b002 Parents: 30aca7d Author: Andrea Turli <[email protected]> Authored: Wed Jul 29 17:42:21 2015 +0200 Committer: Andrea Turli <[email protected]> Committed: Tue Aug 11 18:22:25 2015 +0200 ---------------------------------------------------------------------- .../compute/functions/DatacenterToLocation.java | 4 ++-- .../functions/OperatingSystemToImage.java | 2 +- .../functions/VirtualGuestToHardware.java | 11 +++++---- .../compute/functions/VirtualGuestToImage.java | 25 +++++++++++++------- .../functions/VirtualGuestToNodeMetadata.java | 9 +++++++ .../SoftLayerComputeServiceContextLiveTest.java | 24 ++++--------------- .../SoftLayerComputeServiceLiveTest.java | 4 ---- .../functions/OperatingSystemToImageTest.java | 2 +- .../features/VirtualGuestApiLiveTest.java | 7 +++--- ...uestBlockDeviceTemplateGroupApiLiveTest.java | 1 + 10 files changed, 46 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/DatacenterToLocation.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/DatacenterToLocation.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/DatacenterToLocation.java index 81d2d08..d273378 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/DatacenterToLocation.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/DatacenterToLocation.java @@ -46,7 +46,7 @@ public class DatacenterToLocation implements Function<Datacenter, Location> { public DatacenterToLocation(JustProvider provider) { this.provider = checkNotNull(provider, "provider"); } - + @Override public Location apply(Datacenter datacenter) { return new LocationBuilder().id(datacenter.getName()) @@ -69,6 +69,6 @@ public class DatacenterToLocation implements Function<Datacenter, Location> { return ImmutableSet.<String> of("" + country + "-" + state); - + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImage.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImage.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImage.java index cdc4ebe..c435352 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImage.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImage.java @@ -83,7 +83,7 @@ public class OperatingSystemToImage implements Function<OperatingSystem, Image> .build(); return new ImageBuilder() - .ids(operatingSystem.getId()) + .ids(optOSReferenceCode.or(operatingSystem.getId())) .description(optOSReferenceCode.or(UNRECOGNIZED)) .operatingSystem(os) .status(Image.Status.AVAILABLE) http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToHardware.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToHardware.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToHardware.java index d6c6367..8afedd7 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToHardware.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToHardware.java @@ -16,10 +16,8 @@ */ package org.jclouds.softlayer.compute.functions; -import com.google.common.base.Function; -import com.google.common.base.Predicate; -import com.google.common.collect.FluentIterable; -import com.google.common.collect.ImmutableList; +import javax.inject.Singleton; + import org.jclouds.compute.domain.Hardware; import org.jclouds.compute.domain.HardwareBuilder; import org.jclouds.compute.domain.Processor; @@ -28,7 +26,10 @@ import org.jclouds.compute.domain.internal.VolumeImpl; import org.jclouds.softlayer.domain.VirtualGuest; import org.jclouds.softlayer.domain.VirtualGuestBlockDevice; -import javax.inject.Singleton; +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import com.google.common.collect.FluentIterable; +import com.google.common.collect.ImmutableList; @Singleton public class VirtualGuestToHardware implements Function<VirtualGuest, Hardware> { http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToImage.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToImage.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToImage.java index 6c70347..5a5b3cc 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToImage.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToImage.java @@ -16,8 +16,12 @@ */ package org.jclouds.softlayer.compute.functions; -import com.google.common.base.Function; -import com.google.inject.Inject; +import static com.google.common.base.Preconditions.checkNotNull; + +import javax.annotation.Resource; +import javax.inject.Named; +import javax.inject.Singleton; + import org.jclouds.compute.domain.Image; import org.jclouds.compute.domain.ImageBuilder; import org.jclouds.compute.domain.OperatingSystem; @@ -26,11 +30,8 @@ import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.logging.Logger; import org.jclouds.softlayer.domain.VirtualGuest; -import javax.annotation.Resource; -import javax.inject.Named; -import javax.inject.Singleton; - -import static com.google.common.base.Preconditions.checkNotNull; +import com.google.common.base.Function; +import com.google.inject.Inject; @Singleton public class VirtualGuestToImage implements Function<VirtualGuest, Image> { @@ -52,7 +53,7 @@ public class VirtualGuestToImage implements Function<VirtualGuest, Image> { public Image apply(VirtualGuest from) { checkNotNull(from, "from"); if (from.getOperatingSystem() == null) { - return new ImageBuilder().ids(from.getId() + "") + return new ImageBuilder().ids(getReferenceCodeOrId(from)) .name(from.getHostname()) .status(Image.Status.UNRECOGNIZED) .operatingSystem(OperatingSystem.builder() @@ -65,4 +66,12 @@ public class VirtualGuestToImage implements Function<VirtualGuest, Image> { return operatingSystemToImage.apply(from.getOperatingSystem()); } } + + public String getReferenceCodeOrId(VirtualGuest from) { + String val = from.getSoftwareLicense() != null && + from.getSoftwareLicense().getSoftwareDescription() != null ? + from.getSoftwareLicense().getSoftwareDescription().getReferenceCode() : + from.getId() + ""; + return val; + } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToNodeMetadata.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToNodeMetadata.java b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToNodeMetadata.java index 472d61d..470fb76 100644 --- a/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToNodeMetadata.java +++ b/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/functions/VirtualGuestToNodeMetadata.java @@ -32,7 +32,9 @@ import org.jclouds.compute.domain.NodeMetadata.Status; import org.jclouds.compute.domain.NodeMetadataBuilder; import org.jclouds.compute.functions.GroupNamingConvention; import org.jclouds.domain.Location; +import org.jclouds.domain.LoginCredentials; import org.jclouds.location.predicates.LocationPredicates; +import org.jclouds.softlayer.domain.Password; import org.jclouds.softlayer.domain.TagReference; import org.jclouds.softlayer.domain.VirtualGuest; @@ -40,6 +42,7 @@ import com.google.common.base.Function; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.google.common.collect.Lists; @Singleton @@ -55,6 +58,7 @@ public class VirtualGuestToNodeMetadata implements Function<VirtualGuest, NodeMe private final VirtualGuestToImage virtualGuestToImage; private final VirtualGuestToHardware virtualGuestToHardware; + @Inject VirtualGuestToNodeMetadata(@Memoized Supplier<Set<? extends Location>> locations, GroupNamingConvention.Factory namingConvention, VirtualGuestToImage virtualGuestToImage, @@ -89,6 +93,11 @@ public class VirtualGuestToNodeMetadata implements Function<VirtualGuest, NodeMe builder.publicAddresses(ImmutableSet.of(from.getPrimaryIpAddress())); if (from.getPrimaryBackendIpAddress() != null) builder.privateAddresses(ImmutableSet.of(from.getPrimaryBackendIpAddress())); + // TODO simplify once we move domain classes to AutoValue + if (from.getOperatingSystem() != null && from.getOperatingSystem().getPasswords() != null && !from.getOperatingSystem().getPasswords().isEmpty()) { + Password password = Iterables.getOnlyElement(from.getOperatingSystem().getPasswords()); + builder.credentials(LoginCredentials.builder().identity(password.getUsername()).credential(password.getPassword()).build()); + } if (from.getTagReferences() != null && !from.getTagReferences().isEmpty()) { List<String> tags = Lists.newArrayList(); for (TagReference tagReference : from.getTagReferences()) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceContextLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceContextLiveTest.java b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceContextLiveTest.java index e75902a..d9e2f51 100644 --- a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceContextLiveTest.java +++ b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceContextLiveTest.java @@ -22,24 +22,18 @@ import java.util.Set; import javax.annotation.Resource; import javax.inject.Named; -import org.jclouds.ContextBuilder; -import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.RunNodesException; import org.jclouds.compute.domain.ExecResponse; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; -import org.jclouds.compute.domain.TemplateBuilder; import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest; import org.jclouds.compute.reference.ComputeServiceConstants; import org.jclouds.logging.Logger; -import org.jclouds.logging.slf4j.config.SLF4JLoggingModule; import org.jclouds.softlayer.compute.options.SoftLayerTemplateOptions; import org.jclouds.ssh.SshClient; -import org.jclouds.sshj.config.SshjSshClientModule; import org.testng.annotations.Test; import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableSet; @Test(groups = "live", testName = "SoftLayerComputeServiceContextLiveTest") public class SoftLayerComputeServiceContextLiveTest extends BaseComputeServiceContextLiveTest { @@ -53,34 +47,26 @@ public class SoftLayerComputeServiceContextLiveTest extends BaseComputeServiceCo } @Test - public void testLaunchClusterWithMinDisk() throws RunNodesException { + public void testLaunchClusterWithDomainName() throws RunNodesException { int numNodes = 1; final String name = "node"; - ComputeServiceContext context = ContextBuilder.newBuilder("softlayer").credentials(identity, credential) - .modules(ImmutableSet.of(new SLF4JLoggingModule(), - new SshjSshClientModule())) - .build(ComputeServiceContext.class); - - TemplateBuilder templateBuilder = context.getComputeService().templateBuilder(); - - Template template = templateBuilder.build(); + Template template = view.getComputeService().templateBuilder().build(); // test passing custom options SoftLayerTemplateOptions options = template.getOptions().as(SoftLayerTemplateOptions.class); options.domainName("live.org"); - options.portSpeed(100); //tags options.tags(ImmutableList.of("jclouds")); - Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(name, numNodes, template); + Set<? extends NodeMetadata> nodes = view.getComputeService().createNodesInGroup(name, numNodes, template); assertEquals(numNodes, nodes.size(), "wrong number of nodes"); for (NodeMetadata node : nodes) { logger.debug("Created Node: %s", node); - SshClient client = context.utils().sshForNode().apply(node); + SshClient client = view.utils().sshForNode().apply(node); client.connect(); ExecResponse hello = client.exec("mount"); logger.debug(hello.getOutput().trim()); - context.getComputeService().destroyNode(node.getId()); + view.getComputeService().destroyNode(node.getId()); } } http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceLiveTest.java b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceLiveTest.java index d513240..4c78185 100644 --- a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceLiveTest.java +++ b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/SoftLayerComputeServiceLiveTest.java @@ -26,10 +26,6 @@ import org.testng.annotations.Test; import com.google.common.collect.ImmutableMap; import com.google.inject.Module; -/** - * - * Generally disabled, as it incurs higher fees. - */ @Test(groups = "live", enabled = true, singleThreaded = true) public class SoftLayerComputeServiceLiveTest extends BaseComputeServiceLiveTest { http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImageTest.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImageTest.java b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImageTest.java index f6c2711..d979f5e 100644 --- a/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImageTest.java +++ b/providers/softlayer/src/test/java/org/jclouds/softlayer/compute/functions/OperatingSystemToImageTest.java @@ -34,7 +34,7 @@ public class OperatingSystemToImageTest { @Test public void testOperatingSystemToImage() { OperatingSystem operatingSystem = OperatingSystem.builder() - .id("123456789") + .id("UBUNTU_12_64") .softwareLicense(SoftwareLicense.builder() .softwareDescription(SoftwareDescription.builder() .version("12.04-64 Minimal for CCI") http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestApiLiveTest.java b/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestApiLiveTest.java index bd468c1..3e7b161 100644 --- a/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestApiLiveTest.java +++ b/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestApiLiveTest.java @@ -48,20 +48,21 @@ import com.google.inject.Module; @Test(groups = "live") public class VirtualGuestApiLiveTest extends BaseSoftLayerApiLiveTest { - public static final String DATACENTER = "dal05"; - private VirtualGuestApi virtualGuestApi; private Predicate<VirtualGuest> loginDetailsTester; private VirtualGuestHasLoginDetailsPresent virtualGuestHasLoginDetailsPresent; private long guestLoginDelay = 60 * 60 * 1000; private VirtualGuest virtualGuest = null; + private Datacenter datacenter = null; @BeforeClass(groups = {"integration", "live"}) @Override public void setup() { super.setup(); virtualGuestApi = api.getVirtualGuestApi(); + datacenter = Iterables.get(api.getDatacenterApi().listDatacenters(), 0); + assertNotNull(datacenter, "Datacenter must not be null"); } @AfterClass(groups = {"integration", "live"}) @@ -94,7 +95,7 @@ public class VirtualGuestApiLiveTest extends BaseSoftLayerApiLiveTest { .startCpus(1) .maxMemory(1024) .operatingSystem(OperatingSystem.builder().id("CENTOS_6_64").operatingSystemReferenceCode("CENTOS_6_64").build()) - .datacenter(Datacenter.builder().name(DATACENTER).build()) + .datacenter(Datacenter.builder().name(datacenter.getName()).build()) .build(); virtualGuest = virtualGuestApi.createVirtualGuest(virtualGuestRequest); http://git-wip-us.apache.org/repos/asf/jclouds/blob/cc1217b5/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestBlockDeviceTemplateGroupApiLiveTest.java ---------------------------------------------------------------------- diff --git a/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestBlockDeviceTemplateGroupApiLiveTest.java b/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestBlockDeviceTemplateGroupApiLiveTest.java index 8698a94..ad75ebd 100644 --- a/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestBlockDeviceTemplateGroupApiLiveTest.java +++ b/providers/softlayer/src/test/java/org/jclouds/softlayer/features/VirtualGuestBlockDeviceTemplateGroupApiLiveTest.java @@ -33,6 +33,7 @@ import com.beust.jcommander.internal.Sets; public class VirtualGuestBlockDeviceTemplateGroupApiLiveTest extends BaseSoftLayerApiLiveTest { Set<VirtualGuestBlockDeviceTemplateGroup> publicImages = Sets.newHashSet(); + @BeforeClass void init() { publicImages = api().getPublicImages();
