This commit is contained in:
Mattias Holmqvist 2011-09-27 20:50:43 +02:00
commit 215b7c09a3
8 changed files with 180 additions and 27 deletions

View File

@ -20,6 +20,7 @@ package org.jclouds.softlayer;
import static org.jclouds.Constants.PROPERTY_API_VERSION; import static org.jclouds.Constants.PROPERTY_API_VERSION;
import static org.jclouds.Constants.PROPERTY_ENDPOINT; import static org.jclouds.Constants.PROPERTY_ENDPOINT;
import static org.jclouds.Constants.PROPERTY_ISO3166_CODES;
import java.util.Properties; import java.util.Properties;
@ -38,6 +39,7 @@ public class SoftLayerPropertiesBuilder extends PropertiesBuilder {
properties.setProperty(PROPERTY_ENDPOINT, "https://api.softlayer.com/rest"); properties.setProperty(PROPERTY_ENDPOINT, "https://api.softlayer.com/rest");
properties.setProperty(PROPERTY_API_VERSION, "3"); properties.setProperty(PROPERTY_API_VERSION, "3");
properties.setProperty(SoftLayerConstants.PROPERTY_SOFTLAYER_VIRTUALGUEST_PACKAGE_NAME, "Cloud Server"); properties.setProperty(SoftLayerConstants.PROPERTY_SOFTLAYER_VIRTUALGUEST_PACKAGE_NAME, "Cloud Server");
properties.setProperty(PROPERTY_ISO3166_CODES, "SG,US-CA,US-TX,US-VA,US-WA,US-TX");
return properties; return properties;
} }

View File

@ -0,0 +1,115 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds 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.softlayer;
import com.google.common.collect.ImmutableSet;
import java.net.URI;
import java.util.Set;
import org.jclouds.providers.BaseProviderMetadata;
import org.jclouds.providers.ProviderMetadata;
/**
* Implementation of {@ link org.jclouds.types.ProviderMetadata} for SoftLayer.
*
* @author Adrian Cole
*/
public class SoftLayerProviderMetadata extends BaseProviderMetadata {
/**
* {@inheritDoc}
*/
@Override
public String getId() {
return "softlayer";
}
/**
* {@inheritDoc}
*/
@Override
public String getType() {
return ProviderMetadata.COMPUTE_TYPE;
}
/**
* {@inheritDoc}
*/
@Override
public String getName() {
return "//TODO SoftLayer";
}
/**
* {@inheritDoc}
*/
@Override
public String getIdentityName() {
return "//TODO";
}
/**
* {@inheritDoc}
*/
@Override
public String getCredentialName() {
return "//TODO";
}
/**
* {@inheritDoc}
*/
@Override
public URI getHomepage() {
return URI.create("//TODO");
}
/**
* {@inheritDoc}
*/
@Override
public URI getConsole() {
return URI.create("//TODO");
}
/**
* {@inheritDoc}
*/
@Override
public URI getApiDocumentation() {
return URI.create("http://sldn.softlayer.com/article/REST");
}
/**
* {@inheritDoc}
*/
@Override
public Set<String> getLinkedServices() {
return ImmutableSet.of("softlayer");
}
/**
* {@inheritDoc}
*/
@Override
public Set<String> getIso3166Codes() {
return ImmutableSet.of("SG","US-CA","US-TX","US-VA","US-WA","US-TX");
}
}

View File

@ -0,0 +1 @@
org.jclouds.softlayer.SoftLayerProviderMetadata

View File

@ -0,0 +1,35 @@
/**
* Licensed to jclouds, Inc. (jclouds) under one or more
* contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. jclouds 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.softlayer;
import org.jclouds.providers.BaseProviderMetadataTest;
import org.jclouds.providers.ProviderMetadata;
import org.testng.annotations.Test;
/**
*
* @author Adrian Cole
*/
@Test(groups = "unit", testName = "SoftLayerProviderTest")
public class SoftLayerProviderTest extends BaseProviderMetadataTest {
public SoftLayerProviderTest() {
super(new SoftLayerProviderMetadata(), ProviderMetadata.COMPUTE_TYPE);
}
}

View File

@ -18,10 +18,14 @@
*/ */
package org.jclouds.softlayer.compute; package org.jclouds.softlayer.compute;
import com.google.common.collect.Iterables; import static org.jclouds.softlayer.predicates.ProductItemPredicates.categoryCode;
import com.google.common.collect.Sets; import static org.jclouds.softlayer.predicates.ProductItemPredicates.units;
import static org.testng.Assert.assertFalse;
import static org.testng.AssertJUnit.assertEquals;
import java.util.Set;
import org.jclouds.softlayer.compute.strategy.SoftLayerComputeServiceAdapter; import org.jclouds.softlayer.compute.strategy.SoftLayerComputeServiceAdapter;
import org.jclouds.softlayer.domain.Datacenter;
import org.jclouds.softlayer.domain.ProductItem; import org.jclouds.softlayer.domain.ProductItem;
import org.jclouds.softlayer.features.BaseSoftLayerClientLiveTest; import org.jclouds.softlayer.features.BaseSoftLayerClientLiveTest;
import org.jclouds.softlayer.features.ProductPackageClientLiveTest; import org.jclouds.softlayer.features.ProductPackageClientLiveTest;
@ -29,13 +33,7 @@ import org.testng.Assert;
import org.testng.annotations.BeforeGroups; import org.testng.annotations.BeforeGroups;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.util.LinkedHashSet; import com.google.common.collect.Iterables;
import java.util.Set;
import static org.jclouds.softlayer.predicates.ProductItemPredicates.categoryCode;
import static org.jclouds.softlayer.predicates.ProductItemPredicates.units;
import static org.testng.Assert.assertFalse;
import static org.testng.AssertJUnit.assertEquals;
@Test(groups = "live", testName = "SoftLayerComputeServiceAdapterLiveTest") @Test(groups = "live", testName = "SoftLayerComputeServiceAdapterLiveTest")
public class SoftLayerComputeServiceAdapterLiveTest extends BaseSoftLayerClientLiveTest { public class SoftLayerComputeServiceAdapterLiveTest extends BaseSoftLayerClientLiveTest {

View File

@ -61,7 +61,7 @@ public class SoftLayerExperimentLiveTest {
context = new ComputeServiceContextFactory().createContext("softlayer", identity, credential, ImmutableSet context = new ComputeServiceContextFactory().createContext("softlayer", identity, credential, ImmutableSet
.<Module> of(new Log4JLoggingModule(), new SshjSshClientModule())); .<Module> of(new Log4JLoggingModule(), new SshjSshClientModule()));
assertEquals(context.getComputeService().listAssignableLocations().size(), 5); assertEquals(context.getComputeService().listAssignableLocations().size(), 6);
} finally { } finally {
if (context != null) if (context != null)

View File

@ -53,20 +53,20 @@ public class SoftLayerTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTes
public boolean apply(OsFamilyVersion64Bit input) { public boolean apply(OsFamilyVersion64Bit input) {
// For each os-type both 32- and 64-bit are supported. // For each os-type both 32- and 64-bit are supported.
switch (input.family) { switch (input.family) {
case UBUNTU: case UBUNTU:
return !(input.version.equals("10.04") || input.version.equals("8")); return input.version.equals("") || input.version.equals("10.04") || input.version.equals("8");
case DEBIAN: case DEBIAN:
return !(input.version.equals("5.0")); return input.version.equals("") || input.version.equals("5.0");
case FEDORA: case FEDORA:
return !(input.version.equals("13") || input.version.equals("15")); return input.version.equals("") || input.version.equals("13") || input.version.equals("15");
case RHEL: case RHEL:
return !(input.version.equals("5") || input.version.equals("6")); return input.version.equals("") || input.version.equals("5") || input.version.equals("6");
case CENTOS: case CENTOS:
return !(input.version.equals("5") || input.version.equals("6.0")); return input.version.equals("") || input.version.equals("5") || input.version.equals("6.0");
case WINDOWS: case WINDOWS:
return !(input.version.equals("2003") || input.version.equals("2008")); return input.version.equals("") || input.version.equals("2003") || input.version.equals("2008");
default: default:
return false; return false;
} }
} }
@ -84,6 +84,6 @@ public class SoftLayerTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTes
@Override @Override
protected Set<String> getIso3166Codes() { protected Set<String> getIso3166Codes() {
return ImmutableSet.<String> of("US-IL", "US-TX", "US-MO"); return ImmutableSet.<String> of("SG","US-CA","US-TX","US-VA","US-WA","US-TX");
} }
} }

View File

@ -99,6 +99,7 @@ public class ProductPackageClientLiveTest extends BaseSoftLayerClientLiveTest {
builder.add(Datacenter.builder().id(37473).name("wdc01").longName("Washington, DC").build()); builder.add(Datacenter.builder().id(37473).name("wdc01").longName("Washington, DC").build());
builder.add(Datacenter.builder().id(138124).name("dal05").longName("Dallas 5").build()); builder.add(Datacenter.builder().id(138124).name("dal05").longName("Dallas 5").build());
builder.add(Datacenter.builder().id(168642).name("sjc01").longName("San Jose 1").build()); builder.add(Datacenter.builder().id(168642).name("sjc01").longName("San Jose 1").build());
builder.add(Datacenter.builder().id(224092).name("sng01").longName("Singapore 1").build());
Set<Datacenter> expected = builder.build(); Set<Datacenter> expected = builder.build();
@ -179,7 +180,8 @@ public class ProductPackageClientLiveTest extends BaseSoftLayerClientLiveTest {
private void checkAddress(Address address) { private void checkAddress(Address address) {
assert address.getId() >0 : address; assert address.getId() >0 : address;
assert address.getCountry() != null : address; assert address.getCountry() != null : address;
assert address.getState() != null : address; if (!address.getCountry().equals("SG"))
assert address.getState() != null : address;
} }
private void checkCategories(Set<ProductItemCategory> categories) { private void checkCategories(Set<ProductItemCategory> categories) {