Repository: jclouds Updated Branches: refs/heads/master 4f32e863a -> 10f72f073
[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/1163b94c Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/1163b94c Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/1163b94c Branch: refs/heads/master Commit: 1163b94c3267b3df96b064f3b937e7bf330dbcc9 Parents: 4f32e86 Author: Andrea Turli <[email protected]> Authored: Wed Jul 29 17:42:21 2015 +0200 Committer: Andrea Turli <[email protected]> Committed: Tue Aug 11 18:12:57 2015 +0200 ---------------------------------------------------------------------- .../compute/functions/DatacenterToLocation.java | 4 ++-- .../functions/OperatingSystemToImage.java | 3 ++- .../functions/VirtualGuestToHardware.java | 16 ++++++++----- .../compute/functions/VirtualGuestToImage.java | 25 +++++++++++++------- .../functions/VirtualGuestToNodeMetadata.java | 11 +++++++++ .../SoftLayerComputeServiceContextLiveTest.java | 8 +++++-- .../SoftLayerComputeServiceLiveTest.java | 4 ---- .../functions/OperatingSystemToImageTest.java | 2 +- .../features/VirtualGuestApiLiveTest.java | 8 ++++--- ...uestBlockDeviceTemplateGroupApiLiveTest.java | 1 + 10 files changed, 55 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds/blob/1163b94c/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/1163b94c/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..62b8b60 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,8 @@ public class OperatingSystemToImage implements Function<OperatingSystem, Image> .build(); return new ImageBuilder() - .ids(operatingSystem.getId()) + .ids(optOSReferenceCode.or(operatingSystem.getId())) + //.ids(operatingSystem.getId()) .description(optOSReferenceCode.or(UNRECOGNIZED)) .operatingSystem(os) .status(Image.Status.AVAILABLE) http://git-wip-us.apache.org/repos/asf/jclouds/blob/1163b94c/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..267a931 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> { @@ -52,7 +53,10 @@ public class VirtualGuestToHardware implements Function<VirtualGuest, Hardware> .transform(new Function<VirtualGuestBlockDevice, Volume>() { @Override public Volume apply(VirtualGuestBlockDevice item) { - float volumeSize = item.getVirtualDiskImage().getCapacity(); + float volumeSize = -1; + if (item.getVirtualDiskImage() != null) { + volumeSize = item.getVirtualDiskImage().getCapacity(); + } return new VolumeImpl( item.getId() + "", from.isLocalDiskFlag() ? Volume.Type.LOCAL : Volume.Type.SAN, http://git-wip-us.apache.org/repos/asf/jclouds/blob/1163b94c/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/1163b94c/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..b6c78dd 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,13 @@ 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()); + if (password != null) { + 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/1163b94c/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..eecc868 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 @@ -25,6 +25,7 @@ import javax.inject.Named; import org.jclouds.ContextBuilder; import org.jclouds.compute.ComputeServiceContext; import org.jclouds.compute.RunNodesException; +import org.jclouds.compute.domain.ComputeMetadata; import org.jclouds.compute.domain.ExecResponse; import org.jclouds.compute.domain.NodeMetadata; import org.jclouds.compute.domain.Template; @@ -53,7 +54,7 @@ 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) @@ -67,11 +68,14 @@ public class SoftLayerComputeServiceContextLiveTest extends BaseComputeServiceCo // test passing custom options SoftLayerTemplateOptions options = template.getOptions().as(SoftLayerTemplateOptions.class); options.domainName("live.org"); - options.portSpeed(100); //tags options.tags(ImmutableList.of("jclouds")); + for (ComputeMetadata computeMetadata : context.getComputeService().listNodes()) { + System.out.println(context.getComputeService().getNodeMetadata(computeMetadata.getId()).getStatus()); + } + Set<? extends NodeMetadata> nodes = context.getComputeService().createNodesInGroup(name, numNodes, template); assertEquals(numNodes, nodes.size(), "wrong number of nodes"); for (NodeMetadata node : nodes) { http://git-wip-us.apache.org/repos/asf/jclouds/blob/1163b94c/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/1163b94c/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/1163b94c/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..24f76e9 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 @@ -31,6 +31,7 @@ import org.jclouds.softlayer.domain.Datacenter; import org.jclouds.softlayer.domain.OperatingSystem; import org.jclouds.softlayer.domain.TagReference; import org.jclouds.softlayer.domain.VirtualGuest; +import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -48,20 +49,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); + if (datacenter == null) Assert.fail(); } @AfterClass(groups = {"integration", "live"}) @@ -94,7 +96,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/1163b94c/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();
