You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ev...@apache.org on 2014/11/18 21:21:10 UTC
[1/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Repository: jclouds
Updated Branches:
refs/heads/1.7.x aec64012e -> 42cc3ce52
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/pom.xml
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/pom.xml b/providers/cloudservers-us/pom.xml
deleted file mode 100644
index f26c62e..0000000
--- a/providers/cloudservers-us/pom.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-project</artifactId>
- <version>1.7.4-SNAPSHOT</version>
- <relativePath>../../project/pom.xml</relativePath>
- </parent>
- <groupId>org.apache.jclouds.provider</groupId>
- <artifactId>cloudservers-us</artifactId>
- <name>jclouds CloudServers US provider</name>
- <description>CloudServers implementation targeted to Rackspace US</description>
- <packaging>bundle</packaging>
-
- <properties>
- <test.cloudservers-us.endpoint>https://auth.api.rackspacecloud.com</test.cloudservers-us.endpoint>
- <test.cloudservers-us.api-version>1.0</test.cloudservers-us.api-version>
- <test.cloudservers-us.build-version />
- <test.cloudservers-us.identity>${test.rackspace-us.identity}</test.cloudservers-us.identity>
- <test.cloudservers-us.credential>${test.rackspace-us.credential}</test.cloudservers-us.credential>
- <test.cloudservers-us.template />
- <jclouds.osgi.export>org.jclouds.rackspace.cloudservers*;version="${project.version}"</jclouds.osgi.export>
- <jclouds.osgi.import>
- org.jclouds.compute.internal;version="${project.version}",
- org.jclouds.rest.internal;version="${project.version}",
- org.jclouds*;version="${project.version}",
- *
- </jclouds.osgi.import>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jclouds.common</groupId>
- <artifactId>openstack-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>cloudservers</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>cloudservers</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-log4j</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-sshj</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>live</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>integration</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <threadCount>1</threadCount>
- <systemPropertyVariables>
- <test.cloudservers-us.endpoint>${test.cloudservers-us.endpoint}</test.cloudservers-us.endpoint>
- <test.cloudservers-us.api-version>${test.cloudservers-us.api-version}</test.cloudservers-us.api-version>
- <test.cloudservers-us.build-version>${test.cloudservers-us.build-version}</test.cloudservers-us.build-version>
- <test.cloudservers-us.identity>${test.cloudservers-us.identity}</test.cloudservers-us.identity>
- <test.cloudservers-us.credential>${test.cloudservers-us.credential}</test.cloudservers-us.credential>
- <test.cloudservers-us.template>${test.cloudservers-us.template}</test.cloudservers-us.template>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderMetadata.java b/providers/cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderMetadata.java
deleted file mode 100644
index 2e4a3c4..0000000
--- a/providers/cloudservers-us/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderMetadata.java
+++ /dev/null
@@ -1,82 +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.rackspace.cloudservers;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadata;
-
-/**
- * Implementation of {@link org.jclouds.types.ProviderMetadata} for Rackspace Cloud Servers US.
- *
- * @author Adrian Cole
- */
-public class CloudServersUSProviderMetadata extends BaseProviderMetadata {
-
- public static Builder builder() {
- return new Builder();
- }
-
- @Override
- public Builder toBuilder() {
- return builder().fromProviderMetadata(this);
- }
-
- public CloudServersUSProviderMetadata() {
- super(builder());
- }
-
- public CloudServersUSProviderMetadata(Builder builder) {
- super(builder);
- }
-
- public static Properties defaultProperties() {
- Properties properties = new Properties();
- properties.setProperty(PROPERTY_REGIONS, "US");
- return properties;
- }
-
- public static class Builder extends BaseProviderMetadata.Builder {
-
- protected Builder() {
- id("cloudservers-us")
- .name("Rackspace Cloud Servers US")
- .apiMetadata(new CloudServersApiMetadata())
- .homepage(URI.create("http://www.rackspace.com/cloud/cloud_hosting_products/servers"))
- .console(URI.create("https://manage.rackspacecloud.com"))
- .linkedServices("cloudloadbalancers-us", "cloudservers-us", "cloudfiles-us")
- .iso3166Codes("US-IL", "US-TX", "AU-NSW");
- }
-
- @Override
- public CloudServersUSProviderMetadata build() {
- return new CloudServersUSProviderMetadata(this);
- }
-
- @Override
- public Builder fromProviderMetadata(
- ProviderMetadata in) {
- super.fromProviderMetadata(in);
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata b/providers/cloudservers-us/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
deleted file mode 100644
index 66f2859..0000000
--- a/providers/cloudservers-us/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
+++ /dev/null
@@ -1 +0,0 @@
-org.jclouds.rackspace.cloudservers.CloudServersUSProviderMetadata
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSClientLiveTest.java b/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSClientLiveTest.java
deleted file mode 100644
index 33bc307..0000000
--- a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSClientLiveTest.java
+++ /dev/null
@@ -1,31 +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.rackspace.cloudservers;
-
-import org.jclouds.cloudservers.CloudServersClientLiveTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", sequential = true)
-public class CloudServersUSClientLiveTest extends CloudServersClientLiveTest {
- public CloudServersUSClientLiveTest() {
- provider = "cloudservers-us";
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderTest.java b/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderTest.java
deleted file mode 100644
index 5009503..0000000
--- a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUSProviderTest.java
+++ /dev/null
@@ -1,50 +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.
- */
-/**
- *
- *
- * ====================================================================
- * Licensed 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.rackspace.cloudservers;
-
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadataTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersUSProviderTest")
-public class CloudServersUSProviderTest extends BaseProviderMetadataTest {
-
- public CloudServersUSProviderTest() {
- super(new CloudServersUSProviderMetadata(), new CloudServersApiMetadata());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSComputeServiceLiveTest.java b/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSComputeServiceLiveTest.java
deleted file mode 100644
index 0b99dc9..0000000
--- a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSComputeServiceLiveTest.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.rackspace.cloudservers.compute;
-
-import org.jclouds.cloudservers.compute.CloudServersComputeServiceLiveTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true, testName = "CloudServersUSComputeServiceLiveTest")
-public class CloudServersUSComputeServiceLiveTest extends CloudServersComputeServiceLiveTest {
-
- public CloudServersUSComputeServiceLiveTest() {
- provider = "cloudservers-us";
- group = "cs";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSTemplateBuilderLiveTest.java b/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSTemplateBuilderLiveTest.java
deleted file mode 100644
index 14b534f..0000000
--- a/providers/cloudservers-us/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUSTemplateBuilderLiveTest.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.rackspace.cloudservers.compute;
-
-import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Set;
-
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live")
-public class CloudServersUSTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
-
- public CloudServersUSTemplateBuilderLiveTest() {
- provider = "cloudservers-us";
- }
-
- @Test
- public void testTemplateBuilder() {
- Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
- assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
- assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "12.04");
- assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
- assertEquals(defaultTemplate.getLocation().getId(), provider);
- assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
- }
-
- @Override
- protected Set<String> getIso3166Codes() {
- return ImmutableSet.of("US-IL", "US-TX", "AU-NSW");
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/pom.xml
----------------------------------------------------------------------
diff --git a/providers/pom.xml b/providers/pom.xml
index 64d32f7..a3da295 100644
--- a/providers/pom.xml
+++ b/providers/pom.xml
@@ -53,8 +53,6 @@
<module>hpcloud-compute</module>
<module>hpcloud-blockstorage</module>
<module>hpcloud-objectstorage</module>
- <module>cloudservers-us</module>
- <module>cloudservers-uk</module>
<module>cloudfiles-us</module>
<module>cloudfiles-uk</module>
<module>rackspace-clouddns-us</module>
[4/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Posted by ev...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
deleted file mode 100644
index 938699e..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateServerOptions.java
+++ /dev/null
@@ -1,239 +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.cloudservers.options;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static com.google.common.io.BaseEncoding.base64;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import javax.inject.Inject;
-
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.common.collect.Lists;
-import com.google.common.collect.Maps;
-
-/**
- *
- * @author Adrian Cole
- *
- */
-public class CreateServerOptions implements MapBinder {
- @Inject
- private BindToJsonPayload jsonBinder;
-
- static class File {
- private final String path;
- private final String contents;
-
- public File(String path, byte[] contents) {
- this.path = checkNotNull(path, "path");
- this.contents = base64().encode(checkNotNull(contents, "contents"));
- checkArgument(path.getBytes().length < 255, String.format(
- "maximum length of path is 255 bytes. Path specified %s is %d bytes", path, path.getBytes().length));
- checkArgument(contents.length < 10 * 1024, String.format(
- "maximum size of the file is 10KB. Contents specified is %d bytes", contents.length));
- }
-
- public String getContents() {
- return contents;
- }
-
- public String getPath() {
- return path;
- }
-
- }
-
- @SuppressWarnings("unused")
- private static class ServerRequest {
- final String name;
- final int imageId;
- final int flavorId;
- Map<String, String> metadata;
- List<File> personality;
- Integer sharedIpGroupId;
- Addresses addresses;
-
- private ServerRequest(String name, int imageId, int flavorId) {
- this.name = name;
- this.imageId = imageId;
- this.flavorId = flavorId;
- }
-
- }
-
- private Map<String, String> metadata = Maps.newHashMap();
- private List<File> files = Lists.newArrayList();
- private Integer sharedIpGroupId;
- private String publicIp;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- ServerRequest server = new ServerRequest(checkNotNull(postParams.get("name"), "name parameter not present").toString(),
- Integer.parseInt(checkNotNull(postParams.get("imageId"), "imageId parameter not present").toString()),
- Integer.parseInt(checkNotNull(postParams.get("flavorId"), "flavorId parameter not present").toString()));
- if (metadata.size() > 0)
- server.metadata = metadata;
- if (files.size() > 0)
- server.personality = files;
- if (sharedIpGroupId != null)
- server.sharedIpGroupId = this.sharedIpGroupId;
- if (publicIp != null) {
- server.addresses = Addresses.builder().publicAddresses(ImmutableSet.of(publicIp)).build();
- }
- return bindToRequest(request, ImmutableMap.of("server", server));
- }
-
- /**
- * You may further customize a cloud server by injecting data into the file system of the cloud
- * server itself. This is useful, for example, for inserting ssh keys, setting configuration
- * files, or storing data that you want to retrieve from within the instance itself. It is
- * intended to provide a minimal amount of launch-time personalization. If significant
- * customization is required, a custom image should be created. The max size of the file path
- * data is 255 bytes while the max size of the file contents is 10KB. Note that the file contents
- * should be encoded as a Base64 string and the 10KB limit refers to the number of bytes in the
- * decoded data not the number of characters in the encoded data. The maximum number of file
- * path/content pairs that can be supplied is 5. Any existing files that match the specified file
- * will be renamed to include the extension bak followed by a time stamp. For example, the file
- * /etc/passwd will be backed up as /etc/passwd.bak.1246036261.5785. All files will have root and
- * the root group as owner and group owner, respectively and will allow user and group read
- * access only (-r--r-----).
- */
- public CreateServerOptions withFile(String path, byte[] contents) {
- checkState(files.size() < 5, "maximum number of files allowed is 5");
- files.add(new File(path, contents));
- return this;
- }
-
- /**
- * A shared IP group is a collection of servers that can share IPs with other members of the
- * group. Any server in a group can share one or more public IPs with any other server in the
- * group. With the exception of the first server in a shared IP group, servers must be launched
- * into shared IP groups. A server may only be a member of one shared IP group.
- *
- * <p/>
- * Servers in the same shared IP group can share public IPs for various high availability and
- * load balancing configurations. To launch an HA server, include the optional sharedIpGroupId
- * element and the server will be launched into that shared IP group.
- * <p />
- *
- * Note: sharedIpGroupId is an optional parameter and for optimal performance, should ONLY be
- * specified when intending to share IPs between servers.
- *
- * @see #withSharedIp(String)
- */
- public CreateServerOptions withSharedIpGroup(int id) {
- checkArgument(id > 0, "id must be positive or zero. was: " + id);
- this.sharedIpGroupId = id;
- return this;
- }
-
- /**
- * Custom cloud server metadata can also be supplied at launch time. This metadata is stored in
- * the API system where it is retrievable by querying the API for server status. The maximum size
- * of the metadata key and value is each 255 bytes and the maximum number of key-value pairs that
- * can be supplied per server is 5.
- */
- public CreateServerOptions withMetadata(Map<String, String> metadata) {
- checkNotNull(metadata, "metadata");
- checkArgument(metadata.size() <= 5, "you cannot have more then 5 metadata values. You specified: "
- + metadata.size());
- for (Entry<String, String> entry : metadata.entrySet()) {
- checkArgument(entry.getKey().getBytes().length < 255, String.format(
- "maximum length of metadata key is 255 bytes. Key specified %s is %d bytes", entry.getKey(), entry
- .getKey().getBytes().length));
- checkArgument(entry.getKey().getBytes().length < 255, String.format(
- "maximum length of metadata value is 255 bytes. Value specified for %s (%s) is %d bytes", entry
- .getKey(), entry.getValue(), entry.getValue().getBytes().length));
- }
- this.metadata = metadata;
- return this;
- }
-
- /**
- * Public IP addresses can be shared across multiple servers for use in various high availability
- * scenarios. When an IP address is shared to another server, the cloud network restrictions are
- * modified to allow each server to listen to and respond on that IP address (you may optionally
- * specify that the target server network configuration be modified). Shared IP addresses can be
- * used with many standard heartbeat facilities (e.g. keepalived) that monitor for failure and
- * manage IP failover.
- *
- * <p/>
- * If you intend to use a shared IP on the server being created and have no need for a separate
- * public IP address, you may launch the server into a shared IP group and specify an IP address
- * from that shared IP group to be used as its public IP. You can accomplish this by specifying
- * the public shared IP address in your request. This is optional and is only valid if
- * sharedIpGroupId is also supplied.
- */
- public CreateServerOptions withSharedIp(String publicIp) {
- checkState(sharedIpGroupId != null, "sharedIp is invalid unless a shared ip group is specified.");
- this.publicIp = checkNotNull(publicIp, "ip");
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see CreateServerOptions#withFile(String,byte[])
- */
- public static CreateServerOptions withFile(String path, byte[] contents) {
- CreateServerOptions options = new CreateServerOptions();
- return options.withFile(path, contents);
- }
-
- /**
- * @see CreateServerOptions#withSharedIpGroup(int)
- */
- public static CreateServerOptions withSharedIpGroup(int id) {
- CreateServerOptions options = new CreateServerOptions();
- return options.withSharedIpGroup(id);
- }
-
- /**
- * @see CreateServerOptions#withMetadata(Map<String, String>)
- */
- public static CreateServerOptions withMetadata(Map<String, String> metadata) {
- CreateServerOptions options = new CreateServerOptions();
- return options.withMetadata(metadata);
- }
-
- /**
- * @see CreateServerOptions#withSharedIp(String)
- */
- public static CreateServerOptions withSharedIp(String publicIp) {
- CreateServerOptions options = new CreateServerOptions();
- return options.withSharedIp(publicIp);
- }
-
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- return jsonBinder.bindToRequest(request, input);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptions.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptions.java
deleted file mode 100644
index 101329f..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptions.java
+++ /dev/null
@@ -1,90 +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.cloudservers.options;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.javax.annotation.Nullable;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- *
- *
- * @author Adrian Cole
- *
- */
-public class CreateSharedIpGroupOptions implements MapBinder {
- @Inject
- private BindToJsonPayload jsonBinder;
-
- Integer serverId;
-
- @SuppressWarnings("unused")
- private static class SharedIpGroupRequest {
- final String name;
- Integer server;
-
- private SharedIpGroupRequest(String name, @Nullable Integer serverId) {
- this.name = name;
- this.server = serverId;
- }
-
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- SharedIpGroupRequest createRequest = new SharedIpGroupRequest(checkNotNull(postParams.get("name")).toString(), serverId);
- return jsonBinder.bindToRequest(request, ImmutableMap.of("sharedIpGroup", createRequest));
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object toBind) {
- throw new IllegalStateException("CreateSharedIpGroup is a POST operation");
- }
-
- /**
- *
- * @param id
- * of the server to include with this request.
- */
- public CreateSharedIpGroupOptions withServer(int id) {
- checkArgument(id > 0, "server id must be a positive number");
- this.serverId = id;
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see CreateSharedIpGroupOptions#withServer(int)
- */
- public static CreateSharedIpGroupOptions withServer(int id) {
- CreateSharedIpGroupOptions options = new CreateSharedIpGroupOptions();
- return options.withServer(id);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/ListOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/ListOptions.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/ListOptions.java
deleted file mode 100644
index 8ec328b..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/ListOptions.java
+++ /dev/null
@@ -1,107 +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.cloudservers.options;
-
-import java.util.Date;
-
-import org.jclouds.openstack.options.BaseListOptions;
-
-/**
- * Options used to control the amount of detail in the request.
- *
- * @see BaseListOptions
- * @see <a href="http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf" />
- * @author Adrian Cole
- */
-public class ListOptions extends BaseListOptions {
-
- public static final ListOptions NONE = new ListOptions();
-
- /**
- * unless used, only the name and id will be returned per row.
- *
- * @return
- */
- public ListOptions withDetails() {
- this.pathSuffix = "/detail";
- return this;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ListOptions changesSince(Date ifModifiedSince) {
- super.changesSince(ifModifiedSince);
- return this;
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ListOptions maxResults(int limit) {
- super.maxResults(limit);
- return this;
-
- }
-
- /**
- * {@inheritDoc}
- */
- @Override
- public ListOptions startAt(long offset) {
- super.startAt(offset);
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see ListOptions#withDetails()
- */
- public static ListOptions withDetails() {
- ListOptions options = new ListOptions();
- return options.withDetails();
- }
-
- /**
- * @see BaseListOptions#startAt(long)
- */
- public static ListOptions startAt(long prefix) {
- ListOptions options = new ListOptions();
- return options.startAt(prefix);
- }
-
- /**
- * @see BaseListOptions#maxResults(long)
- */
- public static ListOptions maxResults(int maxKeys) {
- ListOptions options = new ListOptions();
- return options.maxResults(maxKeys);
- }
-
- /**
- * @see BaseListOptions#changesSince(Date)
- */
- public static ListOptions changesSince(Date since) {
- ListOptions options = new ListOptions();
- return options.changesSince(since);
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/RebuildServerOptions.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/RebuildServerOptions.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/RebuildServerOptions.java
deleted file mode 100644
index a6c0657..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/options/RebuildServerOptions.java
+++ /dev/null
@@ -1,77 +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.cloudservers.options;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Maps;
-
-/**
- *
- *
- * @author Adrian Cole
- *
- */
-public class RebuildServerOptions implements MapBinder {
- @Inject
- private BindToJsonPayload jsonBinder;
- Integer imageId;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- Map<String, Integer> image = Maps.newHashMap();
- if (imageId != null)
- image.put("imageId", imageId);
- return jsonBinder.bindToRequest(request, ImmutableMap.of("rebuild", image));
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object toBind) {
- throw new IllegalStateException("RebuildServer is a POST operation");
- }
-
- /**
- *
- * @param id
- * of the image to rebuild the server with.
- */
- public RebuildServerOptions withImage(int id) {
- checkArgument(id > 0, "server id must be a positive number");
- this.imageId = id;
- return this;
- }
-
- public static class Builder {
-
- /**
- * @see RebuildServerOptions#withImage(int)
- */
- public static RebuildServerOptions withImage(int id) {
- RebuildServerOptions options = new RebuildServerOptions();
- return options.withImage(id);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerActive.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerActive.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerActive.java
deleted file mode 100644
index 4fba7a4..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerActive.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.cloudservers.predicates;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import javax.annotation.Resource;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Predicate;
-import com.google.inject.Inject;
-
-/**
- *
- * Tests to see if a task succeeds.
- *
- * @author Adrian Cole
- */
-@Singleton
-public class ServerActive implements Predicate<Server> {
-
- private final CloudServersClient client;
-
- @Resource
- protected Logger logger = Logger.NULL;
-
- @Inject
- public ServerActive(CloudServersClient client) {
- this.client = client;
- }
-
- public boolean apply(Server server) {
- logger.trace("looking for state on server %s", checkNotNull(server, "server"));
- server = refresh(server);
- if (server == null)
- return false;
- logger.trace("%s: looking for server state %s: currently: %s", server.getId(),
- ServerStatus.ACTIVE, server.getStatus());
- return server.getStatus() == ServerStatus.ACTIVE;
- }
-
- private Server refresh(Server server) {
- return client.getServer(server.getId());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerDeleted.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerDeleted.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerDeleted.java
deleted file mode 100644
index 69cdc53..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/predicates/ServerDeleted.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.cloudservers.predicates;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import javax.annotation.Resource;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Predicate;
-import com.google.inject.Inject;
-
-/**
- *
- * Tests to see if a task succeeds.
- *
- * @author Adrian Cole
- */
-@Singleton
-public class ServerDeleted implements Predicate<Server> {
-
- private final CloudServersClient client;
-
- @Resource
- protected Logger logger = Logger.NULL;
-
- @Inject
- public ServerDeleted(CloudServersClient client) {
- this.client = client;
- }
-
- public boolean apply(Server server) {
- logger.trace("looking for state on server %s", checkNotNull(server, "server"));
- server = refresh(server);
- if (server == null)
- return true;
- logger.trace("%s: looking for server state %s: currently: %s", server.getId(),
- ServerStatus.DELETED, server.getStatus());
- return server.getStatus() == ServerStatus.DELETED;
- }
-
- private Server refresh(Server server) {
- return client.getServer(server.getId());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata b/apis/cloudservers/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
deleted file mode 100644
index 417ed21..0000000
--- a/apis/cloudservers/src/main/resources/META-INF/services/org.jclouds.apis.ApiMetadata
+++ /dev/null
@@ -1 +0,0 @@
-org.jclouds.cloudservers.CloudServersApiMetadata
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersApiMetadataTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersApiMetadataTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersApiMetadataTest.java
deleted file mode 100644
index 2024dea..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersApiMetadataTest.java
+++ /dev/null
@@ -1,32 +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.cloudservers;
-
-import org.jclouds.compute.internal.BaseComputeServiceApiMetadataTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersApiMetadataTest")
-public class CloudServersApiMetadataTest extends BaseComputeServiceApiMetadataTest {
-
- public CloudServersApiMetadataTest() {
- super(new CloudServersApiMetadata());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersAsyncClientTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersAsyncClientTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersAsyncClientTest.java
deleted file mode 100644
index 297f10a..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersAsyncClientTest.java
+++ /dev/null
@@ -1,904 +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.cloudservers;
-
-import static org.jclouds.Constants.PROPERTY_API_VERSION;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withFile;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withMetadata;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withSharedIpGroup;
-import static org.jclouds.cloudservers.options.CreateSharedIpGroupOptions.Builder.withServer;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.changesSince;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.withDetails;
-import static org.jclouds.cloudservers.options.RebuildServerOptions.Builder.withImage;
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-import static org.jclouds.reflect.Reflection2.method;
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-import java.net.UnknownHostException;
-import java.util.Date;
-import java.util.Properties;
-
-import javax.inject.Singleton;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.cloudservers.config.CloudServersRestClientModule;
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.cloudservers.domain.DailyBackup;
-import org.jclouds.cloudservers.domain.RebootType;
-import org.jclouds.cloudservers.domain.WeeklyBackup;
-import org.jclouds.cloudservers.options.CreateServerOptions;
-import org.jclouds.cloudservers.options.CreateSharedIpGroupOptions;
-import org.jclouds.cloudservers.options.ListOptions;
-import org.jclouds.cloudservers.options.RebuildServerOptions;
-import org.jclouds.domain.Credentials;
-import org.jclouds.fallbacks.MapHttp4xxCodesToExceptions;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.functions.ReleasePayloadAndReturn;
-import org.jclouds.http.functions.ReturnTrueIf2xx;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.openstack.filters.AddTimestampQuery;
-import org.jclouds.openstack.filters.AuthenticateRequest;
-import org.jclouds.openstack.keystone.v1_1.config.AuthenticationServiceModule.GetAuth;
-import org.jclouds.openstack.keystone.v1_1.domain.Auth;
-import org.jclouds.openstack.keystone.v1_1.parse.ParseAuthTest;
-import org.jclouds.rest.ConfiguresRestClient;
-import org.jclouds.rest.internal.BaseAsyncClientTest;
-import org.jclouds.rest.internal.GeneratedHttpRequest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.reflect.Invokable;
-import com.google.inject.Module;
-import com.google.inject.Provides;
-/**
- * Tests behavior of {@code CloudServersAsyncClient}
- *
- * @author Adrian Cole
- */
-// NOTE:without testName, this will not call @Before* and fail w/NPE during
-// surefire
-@Test(groups = "unit", singleThreaded = true, testName = "CloudServersAsyncClientTest")
-public class CloudServersAsyncClientTest extends BaseAsyncClientTest<CloudServersAsyncClient> {
-
- public void testCreateServer() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createServer", String.class, int.class, int.class,
- CreateServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", 2, 1));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, "{\"server\":{\"name\":\"ralphie\",\"imageId\":2,\"flavorId\":1}}",
- "application/json", false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testCreateServerWithIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createServer", String.class, int.class, int.class,
- CreateServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", 2, 1, withSharedIpGroup(2)));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request,
- "{\"server\":{\"name\":\"ralphie\",\"imageId\":2,\"flavorId\":1,\"sharedIpGroupId\":2}}",
- "application/json", false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testCreateServerWithFile() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createServer", String.class, int.class, int.class,
- CreateServerOptions[].class);
- GeneratedHttpRequest request = processor
- .createRequest(method, ImmutableList.<Object> of("ralphie", 2, 1, withFile("/etc/jclouds", "foo".getBytes())));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(
- request,
- "{\"server\":{\"name\":\"ralphie\",\"imageId\":2,\"flavorId\":1,\"personality\":[{\"path\":\"/etc/jclouds\",\"contents\":\"Zm9v\"}]}}",
- "application/json", false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testCreateServerWithMetadata() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createServer", String.class, int.class, int.class,
- CreateServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", 2, 1,
- withMetadata(ImmutableMap.of("foo", "bar"))));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request,
- "{\"server\":{\"name\":\"ralphie\",\"imageId\":2,\"flavorId\":1,\"metadata\":{\"foo\":\"bar\"}}}",
- "application/json", false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testCreateServerWithIpGroupAndSharedIp() throws IOException, SecurityException, NoSuchMethodException,
- UnknownHostException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createServer", String.class, int.class, int.class,
- CreateServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", 2, 1,
- withSharedIpGroup(2).withSharedIp("127.0.0.1")));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(
- request,
- "{\"server\":{\"name\":\"ralphie\",\"imageId\":2,\"flavorId\":1,\"sharedIpGroupId\":2,\"addresses\":{\"public\":[\"127.0.0.1\"]}}}",
- "application/json", false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testDeleteImage() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "deleteImage", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "DELETE https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ReturnTrueIf2xx.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, FalseOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testLimits() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getLimits");
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of());
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/limits?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListServers() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listServers", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of());
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- Date now = new Date(10000000l);
-
- public void testListServersOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listServers", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListServersDetail() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listServers", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails()));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/detail?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testGetServer() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getServer", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListFlavors() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listFlavors", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of());
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/flavors?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListFlavorsOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listFlavors", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/flavors?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListFlavorsDetail() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listFlavors", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails()));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/flavors/detail?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListFlavorsDetailOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listFlavors", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails().changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/flavors/detail?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testGetFlavor() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getFlavor", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/flavors/2?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListImages() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listImages", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of());
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListImagesDetail() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listImages", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails()));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/detail?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListImagesOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listImages", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListImagesDetailOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listImages", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails().changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/detail?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testGetImage() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getImage", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/2?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testDeleteServer() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "deleteServer", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "DELETE https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ReturnTrueIf2xx.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, FalseOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testShareIpNoConfig() throws IOException, SecurityException, NoSuchMethodException, UnknownHostException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "shareIp", String.class, int.class, int.class,
- boolean.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("127.0.0.1", 2, 3, false));
-
- assertRequestLineEquals(request, "PUT https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips/public/127.0.0.1 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"shareIp\":{\"sharedIpGroupId\":3,\"configureServer\":false}}",
- MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testShareIpConfig() throws IOException, SecurityException, NoSuchMethodException, UnknownHostException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "shareIp", String.class, int.class, int.class,
- boolean.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("127.0.0.1", 2, 3, true));
-
- assertRequestLineEquals(request, "PUT https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips/public/127.0.0.1 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"shareIp\":{\"sharedIpGroupId\":3,\"configureServer\":true}}",
- MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testUnshareIpNoConfig() throws IOException, SecurityException, NoSuchMethodException,
- UnknownHostException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "unshareIp", String.class, int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("127.0.0.1", 2, 3, false));
-
- assertRequestLineEquals(request, "DELETE https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips/public/127.0.0.1 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, VoidOnNotFoundOr404.class);
-
- checkFilters(request);
-
- }
-
- public void testReplaceBackupSchedule() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "replaceBackupSchedule", int.class, BackupSchedule.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2, BackupSchedule.builder().weekly(WeeklyBackup.MONDAY)
- .daily(DailyBackup.H_0800_1000).enabled(true).build()));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/backup_schedule HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request,
- "{\"backupSchedule\":{\"daily\":\"H_0800_1000\",\"enabled\":true,\"weekly\":\"MONDAY\"}}",
- MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class);
-
- checkFilters(request);
-
- }
-
- public void testDeleteBackupSchedule() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "deleteBackupSchedule", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "DELETE https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/backup_schedule HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, null, MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReturnTrueIf2xx.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, FalseOnNotFoundOr404.class);
-
- checkFilters(request);
-
- }
-
- public void testChangeAdminPass() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "changeAdminPass", int.class, String.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2, "foo"));
-
- assertRequestLineEquals(request, "PUT https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"server\":{\"adminPass\":\"foo\"}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testChangeServerName() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "renameServer", int.class, String.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2, "foo"));
-
- assertRequestLineEquals(request, "PUT https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"server\":{\"name\":\"foo\"}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testListSharedIpGroups() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listSharedIpGroups", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.of());
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListSharedIpGroupsOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listSharedIpGroups", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListSharedIpGroupsDetail() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listSharedIpGroups", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails()));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups/detail?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListSharedIpGroupsDetailOptions() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listSharedIpGroups", ListOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(withDetails().changesSince(now).maxResults(1).startAt(2)));
-
- assertRequestLineEquals(request,
- "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups/detail?format=json&changes-since=10000&limit=1&offset=2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testGetSharedIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getSharedIpGroup", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups/2?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, NullOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testCreateSharedIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createSharedIpGroup", String.class,
- CreateSharedIpGroupOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie"));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, "{\"sharedIpGroup\":{\"name\":\"ralphie\"}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testCreateSharedIpGroupWithIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createSharedIpGroup", String.class,
- CreateSharedIpGroupOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", withServer(2)));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, "{\"sharedIpGroup\":{\"name\":\"ralphie\",\"server\":2}}",
- MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testDeleteSharedIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "deleteSharedIpGroup", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "DELETE https://lon.servers.api.rackspacecloud.com/v1.0/10001786/shared_ip_groups/2 HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, ReturnTrueIf2xx.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, FalseOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListAddresses() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getAddresses", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testListPublicAddresses() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listPublicAddresses", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips/public?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListPrivateAddresses() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "listPrivateAddresses", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/ips/private?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, EmptySetOnNotFoundOr404.class);
-
- checkFilters(request);
- }
-
- public void testListBackupSchedule() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "getBackupSchedule", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "GET https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/backup_schedule?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, null, null, false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, MapHttp4xxCodesToExceptions.class);
-
- checkFilters(request);
- }
-
- public void testCreateImageWithIpGroup() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "createImageFromServer", String.class, int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of("ralphie", 2));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "Accept: application/json\n");
- assertPayloadEquals(request, "{\"image\":{\"serverId\":2,\"name\":\"ralphie\"}}", MediaType.APPLICATION_JSON,
- false);
-
- assertResponseParserClassEquals(method, request, UnwrapOnlyJsonValue.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testRebuildServer() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "rebuildServer", int.class,
- RebuildServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(3));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/3/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"rebuild\":{}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testRebuildServerWithImage() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "rebuildServer", int.class,
- RebuildServerOptions[].class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(3, withImage(2)));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/3/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"rebuild\":{\"imageId\":2}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testReboot() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "rebootServer", int.class, RebootType.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2, RebootType.HARD));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"reboot\":{\"type\":\"HARD\"}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testResize() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "resizeServer", int.class, int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2, 3));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"resize\":{\"flavorId\":3}}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
-
- }
-
- public void testConfirmResize() throws IOException, IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "confirmResizeServer", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"confirmResize\":null}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- public void testRevertResize() throws IOException, SecurityException, NoSuchMethodException {
- Invokable<?, ?> method = method(CloudServersAsyncClient.class, "revertResizeServer", int.class);
- GeneratedHttpRequest request = processor.createRequest(method, ImmutableList.<Object> of(2));
-
- assertRequestLineEquals(request, "POST https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/2/action?format=json HTTP/1.1");
- assertNonPayloadHeadersEqual(request, "");
- assertPayloadEquals(request, "{\"revertResize\":null}", MediaType.APPLICATION_JSON, false);
-
- assertResponseParserClassEquals(method, request, ReleasePayloadAndReturn.class);
- assertSaxResponseParserClassEquals(method, null);
- assertFallbackClassEquals(method, null);
-
- checkFilters(request);
- }
-
- @Override
- protected void checkFilters(HttpRequest request) {
- assertEquals(request.getFilters().size(), 2);
- assertEquals(request.getFilters().get(0).getClass(), AuthenticateRequest.class);
- assertEquals(request.getFilters().get(1).getClass(), AddTimestampQuery.class);
-
- }
-
- @Override
- protected Module createModule() {
- return new TestCloudServersRestClientModule();
- }
-
- @ConfiguresRestClient
- protected static class TestCloudServersRestClientModule extends CloudServersRestClientModule {
-
- @Provides
- @Singleton
- GetAuth provideGetAuth() {
- return new GetAuth(null) {
- @Override
- public Auth load(Credentials in) {
- return new ParseAuthTest().expected();
- }
- };
- }
-
- }
-
- protected String provider = "cloudservers";
-
- @Override
- protected ApiMetadata createApiMetadata() {
- return new CloudServersApiMetadata();
- }
-
- @Override
- protected Properties setupProperties() {
- Properties overrides = new Properties();
- overrides.setProperty(PROPERTY_REGIONS, "US");
- overrides.setProperty(PROPERTY_API_VERSION, "1");
- overrides.setProperty(provider + ".endpoint", "https://auth");
- return overrides;
- }
-}
[2/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Posted by ev...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerListFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerListFromJsonResponseTest.java
deleted file mode 100644
index 10a41b7..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerListFromJsonResponseTest.java
+++ /dev/null
@@ -1,100 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseServerListFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseServerListFromJsonResponseTest {
-
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStream() {
- InputStream is = getClass().getResourceAsStream("/test_list_servers.json");
-
- List<Server> expects = ImmutableList.of(Server.builder().id(1234).name("sample-server").build(),
- Server.builder().id(5678).name("sample-server2").build());
-
- UnwrapOnlyJsonValue<List<Server>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Server>>>() {
- }));
- List<Server> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response, expects);
- }
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_servers_detail.json");
-
- UnwrapOnlyJsonValue<List<Server>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Server>>>() {
- }));
- List<Server> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response.get(0).getId(), 1234);
- assertEquals(response.get(0).getName(), "sample-server");
- assertEquals(response.get(0).getImageId(), Integer.valueOf(2));
- assertEquals(response.get(0).getFlavorId(), Integer.valueOf(1));
- assertEquals(response.get(0).getHostId(), "e4d909c290d0fb1ca068ffaddf22cbd0");
- assertEquals(response.get(0).getStatus(), ServerStatus.BUILD);
- assertEquals(response.get(0).getProgress(), Integer.valueOf(60));
- List<String> publicAddresses = Lists.newArrayList("67.23.10.132", "67.23.10.131");
- List<String> privateAddresses = Lists.newArrayList("10.176.42.16");
- Addresses addresses1 = Addresses.builder().privateAddresses(privateAddresses).publicAddresses(publicAddresses).build();
- assertEquals(response.get(0).getAddresses(), addresses1);
- assertEquals(response.get(0).getMetadata(), ImmutableMap.of("Server Label", "Web Head 1", "Image Version", "2.1"));
- assertEquals(response.get(1).getId(), 5678);
- assertEquals(response.get(1).getName(), "sample-server2");
- assertEquals(response.get(1).getImageId(), Integer.valueOf(2));
- assertEquals(response.get(1).getFlavorId(), Integer.valueOf(1));
- assertEquals(response.get(1).getHostId(), "9e107d9d372bb6826bd81d3542a419d6");
- assertEquals(response.get(1).getStatus(), ServerStatus.ACTIVE);
- assertEquals(response.get(1).getProgress(), null);
- List<String> publicAddresses2 = Lists.newArrayList("67.23.10.133");
- List<String> privateAddresses2 = Lists.newArrayList("10.176.42.17");
- Addresses addresses2 = Addresses.builder().privateAddresses(privateAddresses2).publicAddresses(publicAddresses2).build();
- assertEquals(response.get(1).getAddresses(), addresses2);
- assertEquals(response.get(1).getMetadata(), ImmutableMap.of("Server Label", "DB 1"));
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupFromJsonResponseTest.java
deleted file mode 100644
index 337b6d6..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupFromJsonResponseTest.java
+++ /dev/null
@@ -1,58 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-
-import org.jclouds.cloudservers.domain.SharedIpGroup;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseSharedIpGroupFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseSharedIpGroupFromJsonResponseTest {
-
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_get_sharedipgroup_details.json");
-
- UnwrapOnlyJsonValue<SharedIpGroup> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<SharedIpGroup>>() {
- }));
- SharedIpGroup response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response.getId(), 1234);
- assertEquals(response.getName(), "Shared IP Group 1");
- assertEquals(response.getServers(), ImmutableList.of(422));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupListFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupListFromJsonResponseTest.java
deleted file mode 100644
index ba6390d..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseSharedIpGroupListFromJsonResponseTest.java
+++ /dev/null
@@ -1,80 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.SharedIpGroup;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseSharedIpGroupListFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseSharedIpGroupListFromJsonResponseTest {
-
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStream() {
- InputStream is = getClass().getResourceAsStream("/test_list_sharedipgroups.json");
-
- List<SharedIpGroup> expects = ImmutableList.of(SharedIpGroup.builder().id(1234).name("Shared IP Group 1").build(),
- SharedIpGroup.builder().id(5678).name("Shared IP Group 2").build());
-
- UnwrapOnlyJsonValue<List<SharedIpGroup>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<SharedIpGroup>>>() {
- }));
- List<SharedIpGroup> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response, expects);
-
- }
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_sharedipgroups_detail.json");
-
- UnwrapOnlyJsonValue<List<SharedIpGroup>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<SharedIpGroup>>>() {
- }));
- List<SharedIpGroup> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response.get(0).getId(), 1234);
- assertEquals(response.get(0).getName(), "Shared IP Group 1");
- assertEquals(response.get(0).getServers(), ImmutableList.of(422, 3445));
-
- assertEquals(response.get(1).getId(), 5678);
- assertEquals(response.get(1).getName(), "Shared IP Group 2");
- assertEquals(response.get(1).getServers(), ImmutableList.of(23203, 2456, 9891));
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/handlers/RetryOnRenewExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/handlers/RetryOnRenewExpectTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/handlers/RetryOnRenewExpectTest.java
deleted file mode 100644
index 8cc03a0..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/handlers/RetryOnRenewExpectTest.java
+++ /dev/null
@@ -1,130 +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.cloudservers.handlers;
-
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.internal.BaseCloudServersRestClientExpectTest;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.io.Payloads;
-import org.jclouds.rest.AuthorizationException;
-import org.testng.annotations.Test;
-
-/**
- * Tests behavior of {@code RetryOnRenew} handler
- *
- * @author grkvlt@apache.org
- */
-@Test(groups = "unit", testName = "RetryOnRenewExpectTest")
-public class RetryOnRenewExpectTest extends BaseCloudServersRestClientExpectTest {
-
- @Test
- public void testShouldReauthenticateOn401() {
-
- HttpRequest deleteImage = HttpRequest.builder().method("DELETE")
- .endpoint("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/11?now=1257695648897")
- .addHeader("X-Auth-Token", authToken).build();
-
- HttpResponse pleaseRenew = HttpResponse
- .builder()
- .statusCode(401)
- .message("HTTP/1.1 401 Unauthorized")
- .payload("[{\"unauthorized\":{\"message\":\"Invalid authentication token. Please renew.\",\"code\":401}}]")
- .build();
-
- // second auth uses same creds as initial one
- HttpRequest redoAuth = initialAuth;
-
- String authToken2 = "12345678-9012-47c0-9770-2c5097da25fc";
-
- HttpResponse responseWithUrls2 = responseWithAuth.toBuilder()
- .payload(responseWithAuth.getPayload().getRawContent().toString().replace(authToken, authToken2))
- .build();
-
- HttpRequest deleteImage2 = HttpRequest.builder().method("DELETE")
- .endpoint("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/11?now=1257695648897")
- .addHeader("X-Auth-Token", authToken2).build();
-
- HttpResponse imageDeleted = HttpResponse.builder().statusCode(204).message("HTTP/1.1 204 No Content").build();
-
- CloudServersClient clientWhenImageExists = orderedRequestsSendResponses(initialAuth, responseWithAuth,
- deleteImage, pleaseRenew, redoAuth, responseWithUrls2, deleteImage2, imageDeleted);
-
- assert clientWhenImageExists.deleteImage(11);
- }
-
- public void testReauthenticateOn401ForFailedCommand() {
- String requestUrl = "https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/11?now=1257695648897";
- HttpRequest deleteImage = HttpRequest.builder().method("DELETE")
- .endpoint(requestUrl)
- .addHeader("X-Auth-Token", authToken).build();
-
- HttpResponse unauthResponse = HttpResponse
- .builder()
- .statusCode(401)
- .message("HTTP/1.1 401 Unauthorized")
- .payload("[{\"unauthorized\":{\"message\":\"Fatal unauthorized.\",\"code\":401}}]")
- .build();
-
- // second auth uses same creds as initial one
- HttpRequest redoAuth = initialAuth;
-
- String authToken2 = "12345678-9012-47c0-9770-2c5097da25fc";
- HttpResponse responseWithUrls2 = responseWithAuth.toBuilder()
- .payload(responseWithAuth.getPayload().getRawContent().toString()
- .replace(authToken, authToken2)).build();
-
- HttpRequest deleteImage2 = HttpRequest
- .builder().method("DELETE")
- .endpoint(requestUrl).addHeader("X-Auth-Token", authToken2).build();
-
- HttpResponse imageDeleted = HttpResponse.builder().statusCode(204)
- .message("HTTP/1.1 204 No Content").build();
-
- // The sequence of events simulated here is as follows:
- // 1. First auth succeeds.
- // 2. The token returned in #1 is used in the deleteImage command.
- // 3. The deleteImage command fails with a 401 error.
- // 4. This should result in a new auth request which succeeds.
- // 5. The new token is used in the next deleteImage command.
- // 6. Succeed that command.
- CloudServersClient client = orderedRequestsSendResponses(initialAuth,
- responseWithAuth, deleteImage, unauthResponse, redoAuth,
- responseWithUrls2, deleteImage2, imageDeleted);
-
- client.deleteImage(11);
- }
-
- // FIXME stack trace shows the AuthorizationException, but it's buried inside
- // a guice TestException
- @Test(expectedExceptions = AuthorizationException.class)
- public void testDoesNotReauthenticateOnAuthentication401() {
-
- HttpResponse unauthResponse = HttpResponse
- .builder()
- .statusCode(401)
- .message("HTTP/1.1 401 Unauthorized")
- .payload(
- Payloads
- .newStringPayload("[{\"unauthorized\":{\"message\":\"A different message implying fatal.\",\"code\":401}}]"))
- .build();
-
- CloudServersClient client = requestSendsResponse(initialAuth, unauthResponse);
-
- client.deleteImage(11);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersComputeServiceExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersComputeServiceExpectTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersComputeServiceExpectTest.java
deleted file mode 100644
index b5147a3..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersComputeServiceExpectTest.java
+++ /dev/null
@@ -1,101 +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.cloudservers.internal;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import java.util.Date;
-import java.util.Properties;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.cloudservers.config.CloudServersRestClientModule;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.openstack.keystone.v1_1.config.AuthenticationServiceModule;
-import org.jclouds.openstack.keystone.v1_1.internal.BaseKeystoneRestClientExpectTest;
-import org.jclouds.rest.ConfiguresRestClient;
-
-import com.google.common.base.Function;
-import com.google.common.base.Supplier;
-import com.google.inject.Module;
-
-/**
- *
- * @author David Alves
- *
- */
-public abstract class BaseCloudServersComputeServiceExpectTest<T> extends BaseKeystoneRestClientExpectTest<T> implements
- Function<ComputeServiceContext, T> {
-
- public BaseCloudServersComputeServiceExpectTest() {
- provider = "cloudservers";
- }
-
- protected static final String CONSTANT_DATE = "2009-11-08T15:54:08.897Z";
-
- public static class TestAuthenticationServiceModule extends AuthenticationServiceModule {
- @Override
- protected void configure() {
- super.configure();
- }
- }
-
- @Override
- protected Module createModule() {
- return new TestCloudServersRestClientModule();
- }
-
- @ConfiguresRestClient
- protected static class TestCloudServersRestClientModule extends CloudServersRestClientModule {
-
- @Override
- public Supplier<Date> provideCacheBusterDate() {
- return new Supplier<Date>() {
- public Date get() {
- return new SimpleDateFormatDateService().iso8601DateParse(CONSTANT_DATE);
- }
- };
- }
- }
-
- @Override
- protected ApiMetadata createApiMetadata() {
- return new CloudServersApiMetadata();
- }
-
- @Override
- protected Properties setupProperties() {
- Properties overrides = new Properties();
- overrides.setProperty(PROPERTY_REGIONS, "US");
- overrides.setProperty(provider + ".endpoint", endpoint);
- return overrides;
- }
-
- @Override
- public T createClient(Function<HttpRequest, HttpResponse> fn, Module module, Properties props) {
- return apply(createComputeServiceContext(fn, module, props));
- }
-
- private ComputeServiceContext createComputeServiceContext(Function<HttpRequest, HttpResponse> fn, Module module,
- Properties props) {
- return createInjector(fn, module, props).getInstance(ComputeServiceContext.class);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersRestClientExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersRestClientExpectTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersRestClientExpectTest.java
deleted file mode 100644
index 4f7e891..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/internal/BaseCloudServersRestClientExpectTest.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.cloudservers.internal;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import java.util.Date;
-import java.util.Properties;
-
-import org.jclouds.apis.ApiMetadata;
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.config.CloudServersRestClientModule;
-import org.jclouds.date.internal.SimpleDateFormatDateService;
-import org.jclouds.openstack.keystone.v1_1.internal.BaseKeystoneRestClientExpectTest;
-import org.jclouds.rest.ConfiguresRestClient;
-
-import com.google.common.base.Supplier;
-import com.google.inject.Module;
-
-/**
- * Base class for writing CloudServers Rest Client Expect tests
- *
- * @author Adrian Cole
- */
-public class BaseCloudServersRestClientExpectTest extends BaseKeystoneRestClientExpectTest<CloudServersClient> {
-
- public BaseCloudServersRestClientExpectTest() {
- provider = "cloudservers";
- }
-
- @Override
- protected ApiMetadata createApiMetadata() {
- return new CloudServersApiMetadata();
- }
-
-
- @Override
- protected Properties setupProperties() {
- Properties overrides = new Properties();
- overrides.setProperty(PROPERTY_REGIONS, "US");
- overrides.setProperty(provider + ".endpoint", endpoint);
- return overrides;
- }
-
- protected static final String CONSTANT_DATE = "2009-11-08T15:54:08.897Z";
-
- /**
- * override so that we can control the timestamp used in
- * {@link AddTimestampQuery}
- */
- @Override
- protected Module createModule() {
- return new TestCloudServersRestClientModule();
- }
-
- @ConfiguresRestClient
- protected static class TestCloudServersRestClientModule extends CloudServersRestClientModule {
-
- @Override
- public Supplier<Date> provideCacheBusterDate() {
- return new Supplier<Date>() {
- public Date get() {
- return new SimpleDateFormatDateService().iso8601DateParse(CONSTANT_DATE);
- }
- };
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateServerOptionsTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateServerOptionsTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateServerOptionsTest.java
deleted file mode 100644
index 1ab9f12..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateServerOptionsTest.java
+++ /dev/null
@@ -1,134 +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.cloudservers.options;
-
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withFile;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withSharedIp;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withSharedIpGroup;
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * Tests behavior of {@code ParseFlavorFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class CreateServerOptionsTest {
-
- Injector injector = Guice.createInjector(new GsonModule());
-
- @Test
- public void testAddPayloadToRequestMapOfStringStringHttpRequest() {
- CreateServerOptions options = new CreateServerOptions();
- HttpRequest request = buildRequest(options);
- assertEquals("{\"server\":{\"name\":\"foo\",\"imageId\":1,\"flavorId\":2}}", request.getPayload().getRawContent());
- }
-
- private HttpRequest buildRequest(CreateServerOptions options) {
- injector.injectMembers(options);
- HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost").build();
- options.bindToRequest(request, ImmutableMap.<String, Object>of("name", "foo", "imageId", "1", "flavorId", "2"));
- return request;
- }
-
- @Test
- public void testWithFile() {
- CreateServerOptions options = new CreateServerOptions();
- options.withFile("/tmp/rhubarb", "foo".getBytes());
- HttpRequest request = buildRequest(options);
- assertFile(request);
- }
-
- @Test
- public void testWithFileStatic() {
- CreateServerOptions options = withFile("/tmp/rhubarb", "foo".getBytes());
- HttpRequest request = buildRequest(options);
- assertFile(request);
- }
-
- private void assertFile(HttpRequest request) {
- assertEquals(
- "{\"server\":{\"name\":\"foo\",\"imageId\":1,\"flavorId\":2,\"personality\":[{\"path\":\"/tmp/rhubarb\",\"contents\":\"Zm9v\"}]}}",
- request.getPayload().getRawContent());
- }
-
- @Test
- public void testWithSharedIpGroup() {
- CreateServerOptions options = new CreateServerOptions();
- options.withSharedIpGroup(3);
- HttpRequest request = buildRequest(options);
- assertSharedIpGroup(request);
- }
-
- @Test
- public void testWithSharedIpGroupStatic() {
- CreateServerOptions options = withSharedIpGroup(3);
- HttpRequest request = buildRequest(options);
- assertSharedIpGroup(request);
- }
-
- private void assertSharedIpGroup(HttpRequest request) {
- assertEquals("{\"server\":{\"name\":\"foo\",\"imageId\":1,\"flavorId\":2,\"sharedIpGroupId\":3}}", request
- .getPayload().getRawContent());
- }
-
- @Test
- public void testWithMetadata() {
- }
-
- @Test
- public void testWithSharedIp() {
- CreateServerOptions options = new CreateServerOptions();
- options.withSharedIpGroup(3).withSharedIp("127.0.0.1");
- HttpRequest request = buildRequest(options);
- assertSharedIp(request);
- }
-
- @Test
- public void testWithSharedIpStatic() {
- CreateServerOptions options = withSharedIpGroup(3).withSharedIp("127.0.0.1");
- HttpRequest request = buildRequest(options);
- assertSharedIp(request);
- }
-
- private void assertSharedIp(HttpRequest request) {
- assertEquals(
- "{\"server\":{\"name\":\"foo\",\"imageId\":1,\"flavorId\":2,\"sharedIpGroupId\":3,\"addresses\":{\"public\":[\"127.0.0.1\"]}}}",
- request.getPayload().getRawContent());
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void testWithSharedIpNoGroup() {
- CreateServerOptions options = new CreateServerOptions();
- options.withSharedIp("127.0.0.1");
- buildRequest(options);
- }
-
- @Test(expectedExceptions = IllegalStateException.class)
- public void testWithSharedIpNoGroupStatic() {
- CreateServerOptions options = withSharedIp("127.0.0.1");
- buildRequest(options);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptionsTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptionsTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptionsTest.java
deleted file mode 100644
index 4151c06..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/CreateSharedIpGroupOptionsTest.java
+++ /dev/null
@@ -1,73 +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.cloudservers.options;
-
-import static org.jclouds.cloudservers.options.CreateSharedIpGroupOptions.Builder.withServer;
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * Tests behavior of {@code ParseFlavorFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class CreateSharedIpGroupOptionsTest {
-
- Injector injector = Guice.createInjector(new GsonModule());
-
- @Test
- public void testAddPayloadToRequestMapOfStringStringHttpRequest() {
- CreateSharedIpGroupOptions options = new CreateSharedIpGroupOptions();
- HttpRequest request = buildRequest(options);
- assertEquals("{\"sharedIpGroup\":{\"name\":\"foo\"}}", request.getPayload().getRawContent());
- }
-
- private HttpRequest buildRequest(CreateSharedIpGroupOptions options) {
- injector.injectMembers(options);
- HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost").build();
- options.bindToRequest(request, ImmutableMap.<String,Object>of("name", "foo"));
- return request;
- }
-
- @Test
- public void testWithServer() {
- CreateSharedIpGroupOptions options = new CreateSharedIpGroupOptions();
- options.withServer(3);
- HttpRequest request = buildRequest(options);
- assertSharedIpGroup(request);
- }
-
- @Test
- public void testWithServerStatic() {
- CreateSharedIpGroupOptions options = withServer(3);
- HttpRequest request = buildRequest(options);
- assertSharedIpGroup(request);
- }
-
- private void assertSharedIpGroup(HttpRequest request) {
- assertEquals("{\"sharedIpGroup\":{\"name\":\"foo\",\"server\":3}}", request.getPayload().getRawContent());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/ListOptionsTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/ListOptionsTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/ListOptionsTest.java
deleted file mode 100644
index f690999..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/ListOptionsTest.java
+++ /dev/null
@@ -1,86 +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.cloudservers.options;
-
-import static org.jclouds.cloudservers.options.ListOptions.Builder.changesSince;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.maxResults;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.startAt;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.withDetails;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Date;
-
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * Tests behavior of {@code ListOptions}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ListOptionsTest {
-
- public void testWithDetails() {
- ListOptions options = new ListOptions().withDetails();
- assertEquals(options.buildPathSuffix(), "/detail");
- }
-
- public void testWithDetailsStatic() {
- ListOptions options = withDetails();
- assertEquals(options.buildPathSuffix(), "/detail");
- }
-
- public void testChangesSince() {
- Date ifModifiedSince = new Date();
- ListOptions options = new ListOptions().changesSince(ifModifiedSince);
- assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), options
- .buildQueryParameters().get("changes-since"));
- }
-
- public void testStartAt() {
- long offset = 1;
- ListOptions options = new ListOptions().startAt(offset);
- assertEquals(ImmutableList.of("1"), options.buildQueryParameters().get("offset"));
- }
-
- public void testMaxResults() {
- int limit = 1;
- ListOptions options = new ListOptions().maxResults(limit);
- assertEquals(ImmutableList.of("1"), options.buildQueryParameters().get("limit"));
- }
-
- public void testChangesSinceStatic() {
- Date ifModifiedSince = new Date();
- ListOptions options = changesSince(ifModifiedSince);
- assertEquals(ImmutableList.of(ifModifiedSince.getTime() / 1000 + ""), options
- .buildQueryParameters().get("changes-since"));
- }
-
- public void testStartAtStatic() {
- long offset = 1;
- ListOptions options = startAt(offset);
- assertEquals(ImmutableList.of("1"), options.buildQueryParameters().get("offset"));
- }
-
- public void testMaxResultsStatic() {
- int limit = 1;
- ListOptions options = maxResults(limit);
- assertEquals(ImmutableList.of("1"), options.buildQueryParameters().get("limit"));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/RebuildServerOptionsTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/RebuildServerOptionsTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/RebuildServerOptionsTest.java
deleted file mode 100644
index d9375b4..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/options/RebuildServerOptionsTest.java
+++ /dev/null
@@ -1,74 +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.cloudservers.options;
-
-import static org.jclouds.cloudservers.options.RebuildServerOptions.Builder.withImage;
-import static org.testng.Assert.assertEquals;
-
-import java.util.HashMap;
-
-import org.jclouds.http.HttpRequest;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-
-/**
- * Tests behavior of {@code ParseFlavorFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class RebuildServerOptionsTest {
-
- Injector injector = Guice.createInjector(new GsonModule());
-
- @Test
- public void testAddPayloadToRequestMapOfStringStringHttpRequest() {
- RebuildServerOptions options = new RebuildServerOptions();
- HttpRequest request = buildRequest(options);
- assertEquals("{\"rebuild\":{}}", request.getPayload().getRawContent());
- }
-
- private HttpRequest buildRequest(RebuildServerOptions options) {
- injector.injectMembers(options);
- HttpRequest request = HttpRequest.builder().method("POST").endpoint("http://localhost").build();
- options.bindToRequest(request, new HashMap<String, Object>());
- return request;
- }
-
- @Test
- public void testWithServer() {
- RebuildServerOptions options = new RebuildServerOptions();
- options.withImage(3);
- HttpRequest request = buildRequest(options);
- assertRebuild(request);
- }
-
- @Test
- public void testWithServerStatic() {
- RebuildServerOptions options = withImage(3);
- HttpRequest request = buildRequest(options);
- assertRebuild(request);
- }
-
- private void assertRebuild(HttpRequest request) {
- assertEquals("{\"rebuild\":{\"imageId\":3}}", request.getPayload().getRawContent());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/log4j.xml b/apis/cloudservers/src/test/resources/log4j.xml
deleted file mode 100644
index 7527432..0000000
--- a/apis/cloudservers/src/test/resources/log4j.xml
+++ /dev/null
@@ -1,166 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
- <!--
- For more configuration infromation and examples see the Apache
- Log4j website: http://logging.apache.org/log4j/
- -->
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
- debug="false">
-
- <!-- A time/date based rolling appender -->
- <appender name="WIREFILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/jclouds-wire.log" />
- <param name="Append" value="true" />
-
- <!-- Rollover at midnight each day -->
- <param name="DatePattern" value="'.'yyyy-MM-dd" />
-
- <param name="Threshold" value="TRACE" />
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
-
- <!--
- The full pattern: Date MS Priority [Category]
- (Thread:NDC) Message\n <param name="ConversionPattern"
- value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
- -->
- </layout>
- </appender>
-
- <!-- A time/date based rolling appender -->
- <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/jclouds.log" />
- <param name="Append" value="true" />
-
- <!-- Rollover at midnight each day -->
- <param name="DatePattern" value="'.'yyyy-MM-dd" />
-
- <param name="Threshold" value="TRACE" />
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
-
- <!--
- The full pattern: Date MS Priority [Category]
- (Thread:NDC) Message\n <param name="ConversionPattern"
- value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
- -->
- </layout>
- </appender>
- <!-- A time/date based rolling appender -->
- <appender name="BLOBSTOREFILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/jclouds-blobstore.log" />
- <param name="Append" value="true" />
- <param name="DatePattern" value="'.'yyyy-MM-dd" />
- <param name="Threshold" value="TRACE" />
- <layout class="org.apache.log4j.PatternLayout">
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
- </layout>
- </appender>
-
- <!-- A time/date based rolling appender -->
- <appender name="COMPUTEFILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/jclouds-compute.log" />
- <param name="Append" value="true" />
-
- <!-- Rollover at midnight each day -->
- <param name="DatePattern" value="'.'yyyy-MM-dd" />
-
- <param name="Threshold" value="TRACE" />
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
-
- <!--
- The full pattern: Date MS Priority [Category]
- (Thread:NDC) Message\n <param name="ConversionPattern"
- value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
- -->
- </layout>
- </appender>
-
- <!-- A time/date based rolling appender -->
- <appender name="SSHFILE" class="org.apache.log4j.DailyRollingFileAppender">
- <param name="File" value="target/test-data/jclouds-ssh.log" />
- <param name="Append" value="true" />
-
- <!-- Rollover at midnight each day -->
- <param name="DatePattern" value="'.'yyyy-MM-dd" />
-
- <param name="Threshold" value="TRACE" />
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] (%t) %m%n" />
-
- <!--
- The full pattern: Date MS Priority [Category]
- (Thread:NDC) Message\n <param name="ConversionPattern"
- value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
- -->
- </layout>
- </appender>
-
- <appender name="ASYNCCOMPUTE" class="org.apache.log4j.AsyncAppender">
- <appender-ref ref="COMPUTEFILE" />
- </appender>
-
- <appender name="ASYNCSSH" class="org.apache.log4j.AsyncAppender">
- <appender-ref ref="SSHFILE" />
- </appender>
-
- <appender name="ASYNC" class="org.apache.log4j.AsyncAppender">
- <appender-ref ref="FILE" />
- </appender>
-
- <appender name="ASYNCWIRE" class="org.apache.log4j.AsyncAppender">
- <appender-ref ref="WIREFILE" />
- </appender>
-
- <appender name="ASYNCBLOBSTORE" class="org.apache.log4j.AsyncAppender">
- <appender-ref ref="BLOBSTOREFILE" />
- </appender>
- <!-- ================ -->
- <!-- Limit categories -->
- <!-- ================ -->
-
- <category name="org.jclouds">
- <priority value="DEBUG" />
- <appender-ref ref="ASYNC" />
- </category>
-
- <category name="jclouds.headers">
- <priority value="DEBUG" />
- <appender-ref ref="ASYNCWIRE" />
- </category>
-
- <category name="jclouds.ssh">
- <priority value="DEBUG" />
- <appender-ref ref="ASYNCSSH" />
- </category>
- <category name="jclouds.wire">
- <priority value="DEBUG" />
- <appender-ref ref="ASYNCWIRE" />
- </category>
- <category name="jclouds.blobstore">
- <priority value="DEBUG" />
- <appender-ref ref="ASYNCBLOBSTORE" />
- </category>
- <category name="jclouds.compute">
- <priority value="TRACE" />
- <appender-ref ref="ASYNCCOMPUTE" />
- </category>
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <priority value="WARN" />
- </root>
-
-</log4j:configuration>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_get_flavor_details.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_get_flavor_details.json b/apis/cloudservers/src/test/resources/test_get_flavor_details.json
deleted file mode 100644
index 28500d2..0000000
--- a/apis/cloudservers/src/test/resources/test_get_flavor_details.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
- "flavor" : {
- "id" : 1,
- "name" : "256 MB Server",
- "ram" : 256,
- "disk" : 10
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_get_image_active.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_get_image_active.json b/apis/cloudservers/src/test/resources/test_get_image_active.json
deleted file mode 100644
index eb851ef..0000000
--- a/apis/cloudservers/src/test/resources/test_get_image_active.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "image" : {
- "id" : 2,
- "name" : "CentOS 5.2",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2010-08-10T12:00:00Z",
- "status" : "ACTIVE",
- "progress" : 100
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_get_image_details.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_get_image_details.json b/apis/cloudservers/src/test/resources/test_get_image_details.json
deleted file mode 100644
index e73095b..0000000
--- a/apis/cloudservers/src/test/resources/test_get_image_details.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "image" : {
- "id" : 2,
- "name" : "CentOS 5.2",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2010-08-10T12:00:00Z",
- "status" : "SAVING",
- "progress" : 80
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_get_server_detail.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_get_server_detail.json b/apis/cloudservers/src/test/resources/test_get_server_detail.json
deleted file mode 100644
index c90bb0b..0000000
--- a/apis/cloudservers/src/test/resources/test_get_server_detail.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
- "server" : {
- "id" : 1234,
- "name" : "sample-server",
- "imageId" : 2,
- "flavorId" : 1,
- "hostId" : "e4d909c290d0fb1ca068ffaddf22cbd0",
- "status" : "BUILD",
- "progress" : 60,
- "addresses" : {
- "public" : [
- "67.23.10.132",
- "67.23.10.131"
- ],
- "private" : [
- "10.176.42.16"
- ]
- },
- "metadata" : {
- "Server Label" : "Web Head 1",
- "Image Version" : "2.1"
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_get_sharedipgroup_details.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_get_sharedipgroup_details.json b/apis/cloudservers/src/test/resources/test_get_sharedipgroup_details.json
deleted file mode 100644
index d10f33d..0000000
--- a/apis/cloudservers/src/test/resources/test_get_sharedipgroup_details.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "sharedIpGroup" : {
- "id" : 1234,
- "name" : "Shared IP Group 1",
- "servers" : [422]
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_addresses.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_addresses.json b/apis/cloudservers/src/test/resources/test_list_addresses.json
deleted file mode 100644
index 24441b8..0000000
--- a/apis/cloudservers/src/test/resources/test_list_addresses.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "addresses" : {
- "public" : [
- "67.23.10.132",
- "67.23.10.131"
- ],
- "private" : [
- "10.176.42.16"
- ]
- }
-}
-
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_addresses_private.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_addresses_private.json b/apis/cloudservers/src/test/resources/test_list_addresses_private.json
deleted file mode 100644
index 8c14cf3..0000000
--- a/apis/cloudservers/src/test/resources/test_list_addresses_private.json
+++ /dev/null
@@ -1,8 +0,0 @@
-{
-
- "private" : [
- "10.176.42.16"
- ]
-
-}
-
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_addresses_public.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_addresses_public.json b/apis/cloudservers/src/test/resources/test_list_addresses_public.json
deleted file mode 100644
index 22982cc..0000000
--- a/apis/cloudservers/src/test/resources/test_list_addresses_public.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "public" : [
- "67.23.10.132",
- "67.23.10.131"
- ]
-}
-
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_backupschedule.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_backupschedule.json b/apis/cloudservers/src/test/resources/test_list_backupschedule.json
deleted file mode 100644
index c2f893a..0000000
--- a/apis/cloudservers/src/test/resources/test_list_backupschedule.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "backupSchedule" : {
- "enabled" : true,
- "weekly" : "THURSDAY",
- "daily" : "H_0400_0600"
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_flavors.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_flavors.json b/apis/cloudservers/src/test/resources/test_list_flavors.json
deleted file mode 100644
index d1cc9be..0000000
--- a/apis/cloudservers/src/test/resources/test_list_flavors.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "flavors" : [
- {
- "id" : 1,
- "name" : "256 MB Server"
- },
- {
- "id" : 2,
- "name" : "512 MB Server"
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_flavors_detail.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_flavors_detail.json b/apis/cloudservers/src/test/resources/test_list_flavors_detail.json
deleted file mode 100644
index a274908..0000000
--- a/apis/cloudservers/src/test/resources/test_list_flavors_detail.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- "flavors" : [
- {
- "id" : 1,
- "name" : "256 MB Server",
- "ram" : 256,
- "disk" : 10
- },
- {
- "id" : 2,
- "name" : "512 MB Server",
- "ram" : 512,
- "disk" : 20
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_images.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_images.json b/apis/cloudservers/src/test/resources/test_list_images.json
deleted file mode 100644
index 0c5cb25..0000000
--- a/apis/cloudservers/src/test/resources/test_list_images.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "images" : [
- {
- "id" : 2,
- "name" : "CentOS 5.2"
- },
- {
- "id" : 743,
- "name" : "My Server Backup"
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_images_detail.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_images_detail.json b/apis/cloudservers/src/test/resources/test_list_images_detail.json
deleted file mode 100644
index bdafc2d..0000000
--- a/apis/cloudservers/src/test/resources/test_list_images_detail.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "images" : [
- {
- "id" : 2,
- "name" : "CentOS 5.2",
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2010-08-10T12:00:00Z",
- "status" : "ACTIVE"
- },
- {
- "id" : 743,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "SAVING",
- "progress" : 80
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_images_detail_imageextension.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_images_detail_imageextension.json b/apis/cloudservers/src/test/resources/test_list_images_detail_imageextension.json
deleted file mode 100644
index e01acb2..0000000
--- a/apis/cloudservers/src/test/resources/test_list_images_detail_imageextension.json
+++ /dev/null
@@ -1,65 +0,0 @@
-{
- "images" : [
- {
- "id" : 2,
- "name" : "CentOS 5.2",
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2010-08-10T12:00:00Z",
- "status" : "ACTIVE"
- },
- {
- "id" : 743,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "SAVING",
- "progress" : 80
- }
- ,
- {
- "id" : 744,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "QUEUED"
- }
- ,
- {
- "id" : 745,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "UNRECOGNIZED"
- }
- ,
- {
- "id" : 746,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "UNKNOWN"
- }
- ,
- {
- "id" : 747,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "PREPARING"
- }
- ,
- {
- "id" : 748,
- "name" : "My Server Backup",
- "serverId" : 12,
- "updated" : "2010-10-10T12:00:00Z",
- "created" : "2009-07-07T09:56:16-05:00",
- "status" : "FAILED"
- }
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_servers.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_servers.json b/apis/cloudservers/src/test/resources/test_list_servers.json
deleted file mode 100644
index 3be518e..0000000
--- a/apis/cloudservers/src/test/resources/test_list_servers.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "servers" : [
- {
- "id" : 1234,
- "name" : "sample-server"
- },
- {
- "id" : 5678,
- "name" : "sample-server2"
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_servers_detail.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_servers_detail.json b/apis/cloudservers/src/test/resources/test_list_servers_detail.json
deleted file mode 100644
index a9bc29a..0000000
--- a/apis/cloudservers/src/test/resources/test_list_servers_detail.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "servers" : [
- {
- "id" : 1234,
- "name" : "sample-server",
- "imageId" : 2,
- "flavorId" : 1,
- "hostId" : "e4d909c290d0fb1ca068ffaddf22cbd0",
- "status" : "BUILD",
- "progress" : 60,
- "addresses" : {
- "public" : [
- "67.23.10.132",
- "67.23.10.131"
- ],
- "private" : [
- "10.176.42.16"
- ]
- },
- "metadata" : {
- "Server Label" : "Web Head 1",
- "Image Version" : "2.1"
- }
- },
- {
- "id" : 5678,
- "name" : "sample-server2",
- "imageId" : 2,
- "flavorId" : 1,
- "hostId" : "9e107d9d372bb6826bd81d3542a419d6",
- "status" : "ACTIVE",
- "addresses" : {
- "public" : [
- "67.23.10.133"
- ],
- "private" : [
- "10.176.42.17"
- ]
- },
- "metadata" : {
- "Server Label" : "DB 1"
- }
- }
- ]
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_sharedipgroups.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_sharedipgroups.json b/apis/cloudservers/src/test/resources/test_list_sharedipgroups.json
deleted file mode 100644
index 73717c4..0000000
--- a/apis/cloudservers/src/test/resources/test_list_sharedipgroups.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "sharedIpGroups" : [
- {
- "id" : 1234,
- "name" : "Shared IP Group 1"
- },
- {
- "id" : 5678,
- "name" : "Shared IP Group 2"
- }
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/resources/test_list_sharedipgroups_detail.json
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/resources/test_list_sharedipgroups_detail.json b/apis/cloudservers/src/test/resources/test_list_sharedipgroups_detail.json
deleted file mode 100644
index de6e3733..0000000
--- a/apis/cloudservers/src/test/resources/test_list_sharedipgroups_detail.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "sharedIpGroups" : [
- {
- "id" : 1234,
- "name" : "Shared IP Group 1",
- "servers" : [422, 3445]
- },
- {
- "id" : 5678,
- "name" : "Shared IP Group 2",
- "servers" : [23203, 2456, 9891]
- }
- ]
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/pom.xml
----------------------------------------------------------------------
diff --git a/apis/pom.xml b/apis/pom.xml
index e374d04..a461ddc 100644
--- a/apis/pom.xml
+++ b/apis/pom.xml
@@ -47,7 +47,6 @@
<module>openstack-nova-ec2</module>
<module>openstack-trove</module>
<module>cloudfiles</module>
- <module>cloudservers</module>
<module>rackspace-cloudidentity</module>
<module>rackspace-cloudloadbalancers</module>
<module>rackspace-clouddns</module>
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/README.txt
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/README.txt b/providers/cloudservers-uk/README.txt
deleted file mode 100644
index 5cb9628..0000000
--- a/providers/cloudservers-uk/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# The jclouds provider for Rackspace's UK Cloud Servers (http://www.rackspacecloud.com/cloud_hosting_products/servers/).
-#
-# Expects the jclouds cloudservers API to be present on your application's classpath.
-#
-# TODO: Implementation status.
-# TODO: Supported features.
-# TODO: Usage example.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/pom.xml
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/pom.xml b/providers/cloudservers-uk/pom.xml
deleted file mode 100644
index 97fd53e..0000000
--- a/providers/cloudservers-uk/pom.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-project</artifactId>
- <version>1.7.4-SNAPSHOT</version>
- <relativePath>../../project/pom.xml</relativePath>
- </parent>
- <groupId>org.apache.jclouds.provider</groupId>
- <artifactId>cloudservers-uk</artifactId>
- <name>jclouds CloudServers UK provider</name>
- <description>CloudServers implementation targeted to Rackspace UK</description>
- <packaging>bundle</packaging>
-
- <properties>
- <test.cloudservers-uk.endpoint>https://lon.auth.api.rackspacecloud.com</test.cloudservers-uk.endpoint>
- <test.cloudservers-uk.api-version>1.0</test.cloudservers-uk.api-version>
- <test.cloudservers-uk.build-version />
- <test.cloudservers-uk.identity>${test.rackspace-uk.identity}</test.cloudservers-uk.identity>
- <test.cloudservers-uk.credential>${test.rackspace-uk.credential}</test.cloudservers-uk.credential>
- <test.cloudservers-uk.template />
- <jclouds.osgi.export>org.jclouds.rackspace.cloudservers*;version="${project.version}"</jclouds.osgi.export>
- <jclouds.osgi.import>
- org.jclouds.compute.internal;version="${project.version}",
- org.jclouds.rest.internal;version="${project.version}",
- org.jclouds*;version="${project.version}",
- *
- </jclouds.osgi.import>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jclouds.common</groupId>
- <artifactId>openstack-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>cloudservers</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>cloudservers</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-log4j</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-sshj</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>live</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>integration</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <systemPropertyVariables>
- <test.cloudservers-uk.endpoint>${test.cloudservers-uk.endpoint}</test.cloudservers-uk.endpoint>
- <test.cloudservers-uk.api-version>${test.cloudservers-uk.api-version}</test.cloudservers-uk.api-version>
- <test.cloudservers-uk.build-version>${test.cloudservers-uk.build-version}</test.cloudservers-uk.build-version>
- <test.cloudservers-uk.identity>${test.cloudservers-uk.identity}</test.cloudservers-uk.identity>
- <test.cloudservers-uk.credential>${test.cloudservers-uk.credential}</test.cloudservers-uk.credential>
- <test.cloudservers-uk.template>${test.cloudservers-uk.template}</test.cloudservers-uk.template>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-
-</project>
-
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderMetadata.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderMetadata.java b/providers/cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderMetadata.java
deleted file mode 100644
index 6329838..0000000
--- a/providers/cloudservers-uk/src/main/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderMetadata.java
+++ /dev/null
@@ -1,82 +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.rackspace.cloudservers;
-
-import static org.jclouds.location.reference.LocationConstants.PROPERTY_REGIONS;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.providers.ProviderMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadata;
-
-/**
- * Implementation of {@link org.jclouds.types.ProviderMetadata} for Rackspace Cloud Servers UK.
- *
- * @author Adrian Cole
- */
-public class CloudServersUKProviderMetadata extends BaseProviderMetadata {
-
- public static Builder builder() {
- return new Builder();
- }
-
- @Override
- public Builder toBuilder() {
- return builder().fromProviderMetadata(this);
- }
-
- public CloudServersUKProviderMetadata() {
- super(builder());
- }
-
- public CloudServersUKProviderMetadata(Builder builder) {
- super(builder);
- }
-
- public static Properties defaultProperties() {
- Properties properties = new Properties();
- properties.setProperty(PROPERTY_REGIONS, "UK");
- return properties;
- }
- public static class Builder extends BaseProviderMetadata.Builder {
-
- protected Builder() {
- id("cloudservers-uk")
- .name("Rackspace Cloud Servers UK")
- .apiMetadata(new CloudServersApiMetadata())
- .endpoint("https://lon.auth.api.rackspacecloud.com")
- .homepage(URI.create("http://www.rackspace.co.uk/cloud-hosting/cloud-products/cloud-servers"))
- .console(URI.create("https://lon.manage.rackspacecloud.com"))
- .linkedServices("cloudloadbalancers-uk", "cloudservers-uk", "cloudfiles-uk")
- .iso3166Codes("GB-SLG");
- }
-
- @Override
- public CloudServersUKProviderMetadata build() {
- return new CloudServersUKProviderMetadata(this);
- }
-
- @Override
- public Builder fromProviderMetadata(
- ProviderMetadata in) {
- super.fromProviderMetadata(in);
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata b/providers/cloudservers-uk/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
deleted file mode 100644
index 97c2842..0000000
--- a/providers/cloudservers-uk/src/main/resources/META-INF/services/org.jclouds.providers.ProviderMetadata
+++ /dev/null
@@ -1 +0,0 @@
-org.jclouds.rackspace.cloudservers.CloudServersUKProviderMetadata
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKClientLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKClientLiveTest.java b/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKClientLiveTest.java
deleted file mode 100644
index c57a762..0000000
--- a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKClientLiveTest.java
+++ /dev/null
@@ -1,31 +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.rackspace.cloudservers;
-
-import org.jclouds.cloudservers.CloudServersClientLiveTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", sequential = true)
-public class CloudServersUKClientLiveTest extends CloudServersClientLiveTest {
- public CloudServersUKClientLiveTest() {
- provider = "cloudservers-uk";
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderTest.java b/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderTest.java
deleted file mode 100644
index 6d29710..0000000
--- a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/CloudServersUKProviderTest.java
+++ /dev/null
@@ -1,50 +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.
- */
-/**
- *
- *
- * ====================================================================
- * Licensed 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.rackspace.cloudservers;
-
-import org.jclouds.cloudservers.CloudServersApiMetadata;
-import org.jclouds.providers.internal.BaseProviderMetadataTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersUKProviderTest")
-public class CloudServersUKProviderTest extends BaseProviderMetadataTest {
-
- public CloudServersUKProviderTest() {
- super(new CloudServersUKProviderMetadata(), new CloudServersApiMetadata());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKComputeServiceLiveTest.java b/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKComputeServiceLiveTest.java
deleted file mode 100644
index 91a9830..0000000
--- a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKComputeServiceLiveTest.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.rackspace.cloudservers.compute;
-
-import org.jclouds.cloudservers.compute.CloudServersComputeServiceLiveTest;
-import org.testng.annotations.Test;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true, testName = "CloudServersUKComputeServiceLiveTest")
-public class CloudServersUKComputeServiceLiveTest extends CloudServersComputeServiceLiveTest {
-
- public CloudServersUKComputeServiceLiveTest() {
- provider = "cloudservers-uk";
- group = "cs";
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKTemplateBuilderLiveTest.java
----------------------------------------------------------------------
diff --git a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKTemplateBuilderLiveTest.java b/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKTemplateBuilderLiveTest.java
deleted file mode 100644
index d3a6c92..0000000
--- a/providers/cloudservers-uk/src/test/java/org/jclouds/rackspace/cloudservers/compute/CloudServersUKTemplateBuilderLiveTest.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.rackspace.cloudservers.compute;
-
-import static org.jclouds.compute.util.ComputeServiceUtils.getCores;
-import static org.testng.Assert.assertEquals;
-
-import java.util.Set;
-
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.internal.BaseTemplateBuilderLiveTest;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableSet;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "live")
-public class CloudServersUKTemplateBuilderLiveTest extends BaseTemplateBuilderLiveTest {
-
- public CloudServersUKTemplateBuilderLiveTest() {
- provider = "cloudservers-uk";
- }
-
- @Test
- public void testTemplateBuilder() {
- Template defaultTemplate = this.view.getComputeService().templateBuilder().build();
- assertEquals(defaultTemplate.getImage().getOperatingSystem().is64Bit(), true);
- assertEquals(defaultTemplate.getImage().getOperatingSystem().getVersion(), "11.10");
- assertEquals(defaultTemplate.getImage().getOperatingSystem().getFamily(), OsFamily.UBUNTU);
- assertEquals(defaultTemplate.getLocation().getId(), provider);
- assertEquals(getCores(defaultTemplate.getHardware()), 1.0d);
- }
-
- @Override
- protected Set<String> getIso3166Codes() {
- return ImmutableSet.<String> of("GB-SLG");
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/providers/cloudservers-us/README.txt
----------------------------------------------------------------------
diff --git a/providers/cloudservers-us/README.txt b/providers/cloudservers-us/README.txt
deleted file mode 100644
index b8eb4d7..0000000
--- a/providers/cloudservers-us/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-#
-# The jclouds provider for Rackspace's US Cloud Servers (http://www.rackspacecloud.com/cloud_hosting_products/servers/).
-#
-# Expects the jclouds cloudservers API to be present on your application's classpath.
-#
-# TODO: Implementation status.
-# TODO: Supported features.
-# TODO: Usage example.
[6/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Posted by ev...@apache.org.
JCLOUDS-716: Remove Rackspace First-Gen Cloud Servers
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/42cc3ce5
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/42cc3ce5
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/42cc3ce5
Branch: refs/heads/1.7.x
Commit: 42cc3ce5242b50b38bb41ac8bc6543c0d74373f6
Parents: aec6401
Author: Everett Toews <ev...@apache.org>
Authored: Tue Nov 18 14:20:59 2014 -0600
Committer: Everett Toews <ev...@apache.org>
Committed: Tue Nov 18 14:20:59 2014 -0600
----------------------------------------------------------------------
apis/cloudservers/README.txt | 6 -
apis/cloudservers/pom.xml | 131 ---
.../cloudservers/CloudServersApiMetadata.java | 94 --
.../cloudservers/CloudServersAsyncClient.java | 387 --------
.../cloudservers/CloudServersClient.java | 378 --------
.../BindBackupScheduleToJsonPayload.java | 55 --
...CloudServersComputeServiceContextModule.java | 142 ---
.../extensions/CloudServersImageExtension.java | 126 ---
.../functions/CloudServersImageToImage.java | 58 --
.../CloudServersImageToOperatingSystem.java | 89 --
.../compute/functions/FlavorToHardware.java | 41 -
.../compute/functions/ServerToNodeMetadata.java | 142 ---
.../CloudServersComputeServiceAdapter.java | 142 ---
.../config/CloudServersRestClientModule.java | 92 --
.../cloudservers/domain/AbsoluteLimit.java | 124 ---
.../org/jclouds/cloudservers/domain/Action.java | 25 -
.../jclouds/cloudservers/domain/Addresses.java | 143 ---
.../cloudservers/domain/BackupSchedule.java | 144 ---
.../cloudservers/domain/DailyBackup.java | 35 -
.../org/jclouds/cloudservers/domain/Flavor.java | 163 ----
.../org/jclouds/cloudservers/domain/Image.java | 220 -----
.../cloudservers/domain/ImageStatus.java | 43 -
.../org/jclouds/cloudservers/domain/Limits.java | 130 ---
.../jclouds/cloudservers/domain/RateLimit.java | 226 -----
.../cloudservers/domain/RateLimitUnit.java | 35 -
.../jclouds/cloudservers/domain/RebootType.java | 35 -
.../org/jclouds/cloudservers/domain/Server.java | 302 -------
.../cloudservers/domain/ServerStatus.java | 52 --
.../jclouds/cloudservers/domain/ShareIp.java | 120 ---
.../cloudservers/domain/SharedIpGroup.java | 153 ----
.../jclouds/cloudservers/domain/Version.java | 159 ----
.../cloudservers/domain/VersionStatus.java | 35 -
.../cloudservers/domain/WeeklyBackup.java | 35 -
.../ParseCloudServersErrorFromHttpResponse.java | 93 --
.../options/CreateServerOptions.java | 239 -----
.../options/CreateSharedIpGroupOptions.java | 90 --
.../cloudservers/options/ListOptions.java | 107 ---
.../options/RebuildServerOptions.java | 77 --
.../cloudservers/predicates/ServerActive.java | 64 --
.../cloudservers/predicates/ServerDeleted.java | 64 --
.../services/org.jclouds.apis.ApiMetadata | 1 -
.../CloudServersApiMetadataTest.java | 32 -
.../CloudServersAsyncClientTest.java | 904 -------------------
.../CloudServersClientLiveTest.java | 608 -------------
.../cloudservers/CloudServersExpectTest.java | 54 --
.../CloudServersComputeServiceLiveTest.java | 85 --
...dServersComputeServiceContextModuleTest.java | 35 -
.../CloudServersImageExtensionExpectTest.java | 93 --
.../CloudServersImageExtensionLiveTest.java | 43 -
.../functions/CloudServersImageToImageTest.java | 62 --
.../compute/functions/FlavorToHardwareTest.java | 59 --
.../functions/ServerToNodeMetadataTest.java | 166 ----
.../jclouds/cloudservers/domain/ServerTest.java | 42 -
.../ParseAddressesFromJsonResponseTest.java | 59 --
...ParseBackupScheduleFromJsonResponseTest.java | 66 --
.../ParseFlavorFromJsonResponseTest.java | 61 --
.../ParseFlavorListFromJsonResponseTest.java | 79 --
.../ParseImageFromJsonResponseTest.java | 89 --
.../ParseImageListFromJsonResponseTest.java | 99 --
...arseInetAddressListFromJsonResponseTest.java | 67 --
.../ParseServerFromJsonResponseTest.java | 77 --
.../ParseServerListFromJsonResponseTest.java | 100 --
.../ParseSharedIpGroupFromJsonResponseTest.java | 58 --
...seSharedIpGroupListFromJsonResponseTest.java | 80 --
.../handlers/RetryOnRenewExpectTest.java | 130 ---
...aseCloudServersComputeServiceExpectTest.java | 101 ---
.../BaseCloudServersRestClientExpectTest.java | 83 --
.../options/CreateServerOptionsTest.java | 134 ---
.../options/CreateSharedIpGroupOptionsTest.java | 73 --
.../cloudservers/options/ListOptionsTest.java | 86 --
.../options/RebuildServerOptionsTest.java | 74 --
apis/cloudservers/src/test/resources/log4j.xml | 166 ----
.../test/resources/test_get_flavor_details.json | 8 -
.../test/resources/test_get_image_active.json | 11 -
.../test/resources/test_get_image_details.json | 11 -
.../test/resources/test_get_server_detail.json | 25 -
.../test_get_sharedipgroup_details.json | 7 -
.../src/test/resources/test_list_addresses.json | 12 -
.../resources/test_list_addresses_private.json | 8 -
.../resources/test_list_addresses_public.json | 7 -
.../resources/test_list_backupschedule.json | 7 -
.../src/test/resources/test_list_flavors.json | 12 -
.../resources/test_list_flavors_detail.json | 16 -
.../src/test/resources/test_list_images.json | 12 -
.../test/resources/test_list_images_detail.json | 20 -
.../test_list_images_detail_imageextension.json | 65 --
.../src/test/resources/test_list_servers.json | 12 -
.../resources/test_list_servers_detail.json | 45 -
.../resources/test_list_sharedipgroups.json | 12 -
.../test_list_sharedipgroups_detail.json | 14 -
apis/pom.xml | 1 -
providers/cloudservers-uk/README.txt | 8 -
providers/cloudservers-uk/pom.xml | 131 ---
.../CloudServersUKProviderMetadata.java | 82 --
.../org.jclouds.providers.ProviderMetadata | 1 -
.../CloudServersUKClientLiveTest.java | 31 -
.../CloudServersUKProviderTest.java | 50 -
.../CloudServersUKComputeServiceLiveTest.java | 34 -
.../CloudServersUKTemplateBuilderLiveTest.java | 56 --
providers/cloudservers-us/README.txt | 8 -
providers/cloudservers-us/pom.xml | 130 ---
.../CloudServersUSProviderMetadata.java | 82 --
.../org.jclouds.providers.ProviderMetadata | 1 -
.../CloudServersUSClientLiveTest.java | 31 -
.../CloudServersUSProviderTest.java | 50 -
.../CloudServersUSComputeServiceLiveTest.java | 34 -
.../CloudServersUSTemplateBuilderLiveTest.java | 56 --
providers/pom.xml | 2 -
108 files changed, 9754 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/README.txt
----------------------------------------------------------------------
diff --git a/apis/cloudservers/README.txt b/apis/cloudservers/README.txt
deleted file mode 100644
index 39cab16..0000000
--- a/apis/cloudservers/README.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-#
-# The jclouds API for Rackspace's Cloud Server (http://www.rackspacecloud.com/cloud_hosting_products/servers/).
-#
-# TODO: Implementation status.
-# TODO: Supported features.
-# TODO: Usage example.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/pom.xml
----------------------------------------------------------------------
diff --git a/apis/cloudservers/pom.xml b/apis/cloudservers/pom.xml
deleted file mode 100644
index 8e6dbaa..0000000
--- a/apis/cloudservers/pom.xml
+++ /dev/null
@@ -1,131 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-
- 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.
-
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-project</artifactId>
- <version>1.7.4-SNAPSHOT</version>
- <relativePath>../../project/pom.xml</relativePath>
- </parent>
-
- <groupId>org.apache.jclouds.api</groupId>
- <artifactId>cloudservers</artifactId>
- <name>jclouds cloudservers api</name>
- <description>jclouds components to access an implementation of CloudServers</description>
- <packaging>bundle</packaging>
-
- <properties>
- <test.cloudservers.endpoint>https://auth.api.rackspacecloud.com</test.cloudservers.endpoint>
- <test.cloudservers.api-version>1.0</test.cloudservers.api-version>
- <test.cloudservers.build-version />
- <test.cloudservers.identity>${test.rackspace.identity}</test.cloudservers.identity>
- <test.cloudservers.credential>${test.rackspace.credential}</test.cloudservers.credential>
- <test.cloudservers.template />
- <jclouds.osgi.export>org.jclouds.cloudservers*;version="${project.version}"</jclouds.osgi.export>
- <jclouds.osgi.import>
- org.jclouds.compute.internal;version="${project.version}",
- org.jclouds.rest.internal;version="${project.version}",
- org.jclouds*;version="${project.version}",
- *
- </jclouds.osgi.import>
- </properties>
-
- <dependencies>
- <dependency>
- <groupId>org.apache.jclouds.common</groupId>
- <artifactId>openstack-common</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-core</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.common</groupId>
- <artifactId>openstack-common</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds</groupId>
- <artifactId>jclouds-compute</artifactId>
- <version>${project.version}</version>
- <type>test-jar</type>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-sshj</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.jclouds.driver</groupId>
- <artifactId>jclouds-log4j</artifactId>
- <version>${project.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <profiles>
- <profile>
- <id>live</id>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <executions>
- <execution>
- <id>integration</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <systemPropertyVariables>
- <test.cloudstack.endpoint>${test.cloudstack.endpoint}</test.cloudstack.endpoint>
- <test.cloudstack.api-version>${test.cloudstack.api-version}</test.cloudstack.api-version>
- <test.cloudstack.build-version>${test.cloudstack.build-version}</test.cloudstack.build-version>
- <test.cloudstack.identity>${test.cloudstack.identity}</test.cloudstack.identity>
- <test.cloudstack.credential>${test.cloudstack.credential}</test.cloudstack.credential>
- <test.cloudstack.template>${test.cloudstack.template}</test.cloudstack.template>
- </systemPropertyVariables>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-
-</project>
-
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java
deleted file mode 100644
index 5edfac0..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersApiMetadata.java
+++ /dev/null
@@ -1,94 +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.cloudservers;
-
-import static org.jclouds.reflect.Reflection2.typeToken;
-
-import java.net.URI;
-import java.util.Properties;
-
-import org.jclouds.cloudservers.compute.config.CloudServersComputeServiceContextModule;
-import org.jclouds.cloudservers.config.CloudServersRestClientModule;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.rest.internal.BaseRestApiMetadata;
-
-import com.google.common.collect.ImmutableSet;
-import com.google.common.reflect.TypeToken;
-import com.google.inject.Module;
-
-/**
- * Implementation of {@link ApiMetadata} for CloudServers 1.0 API
- *
- * @author Adrian Cole
- */
-public class CloudServersApiMetadata extends BaseRestApiMetadata {
-
- /**
- * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(CloudServersClient.class)} as
- * {@link CloudServersAsyncClient} interface will be removed in jclouds 1.7.
- */
- @Deprecated
- public static final TypeToken<org.jclouds.rest.RestContext<CloudServersClient, CloudServersAsyncClient>> CONTEXT_TOKEN = new TypeToken<org.jclouds.rest.RestContext<CloudServersClient, CloudServersAsyncClient>>() {
- private static final long serialVersionUID = 1L;
- };
-
- @Override
- public Builder toBuilder() {
- return new Builder().fromApiMetadata(this);
- }
-
- public CloudServersApiMetadata() {
- this(new Builder());
- }
-
- protected CloudServersApiMetadata(Builder builder) {
- super(builder);
- }
-
- public static Properties defaultProperties() {
- Properties properties = BaseRestApiMetadata.defaultProperties();
- return properties;
- }
-
- public static class Builder extends BaseRestApiMetadata.Builder<Builder> {
-
- @SuppressWarnings("deprecation")
- protected Builder() {
- super(CloudServersClient.class, CloudServersAsyncClient.class);
- id("cloudservers")
- .name("Rackspace Cloud Servers API")
- .identityName("Username")
- .credentialName("API Key")
- .documentation(URI.create("http://docs.rackspacecloud.com/servers/api/v1.0/cs-devguide/content/ch01.html"))
- .version("1.0")
- .defaultEndpoint("https://auth.api.rackspacecloud.com")
- .defaultProperties(CloudServersApiMetadata.defaultProperties())
- .view(typeToken(ComputeServiceContext.class))
- .defaultModules(ImmutableSet.<Class<? extends Module>>of(CloudServersRestClientModule.class, CloudServersComputeServiceContextModule.class));
- }
-
- @Override
- public CloudServersApiMetadata build() {
- return new CloudServersApiMetadata(this);
- }
-
- @Override
- protected Builder self() {
- return this;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersAsyncClient.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersAsyncClient.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersAsyncClient.java
deleted file mode 100644
index f298485..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersAsyncClient.java
+++ /dev/null
@@ -1,387 +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.cloudservers;
-
-import java.io.Closeable;
-import java.util.Set;
-
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-
-import org.jclouds.Fallbacks.EmptySetOnNotFoundOr404;
-import org.jclouds.Fallbacks.FalseOnNotFoundOr404;
-import org.jclouds.Fallbacks.NullOnNotFoundOr404;
-import org.jclouds.Fallbacks.VoidOnNotFoundOr404;
-import org.jclouds.cloudservers.binders.BindBackupScheduleToJsonPayload;
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.Limits;
-import org.jclouds.cloudservers.domain.RebootType;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.SharedIpGroup;
-import org.jclouds.cloudservers.options.CreateServerOptions;
-import org.jclouds.cloudservers.options.CreateSharedIpGroupOptions;
-import org.jclouds.cloudservers.options.ListOptions;
-import org.jclouds.cloudservers.options.RebuildServerOptions;
-import org.jclouds.openstack.filters.AddTimestampQuery;
-import org.jclouds.openstack.filters.AuthenticateRequest;
-import org.jclouds.openstack.services.Compute;
-import org.jclouds.rest.annotations.BinderParam;
-import org.jclouds.rest.annotations.Endpoint;
-import org.jclouds.rest.annotations.Fallback;
-import org.jclouds.rest.annotations.MapBinder;
-import org.jclouds.rest.annotations.Payload;
-import org.jclouds.rest.annotations.PayloadParam;
-import org.jclouds.rest.annotations.QueryParams;
-import org.jclouds.rest.annotations.RequestFilters;
-import org.jclouds.rest.annotations.Unwrap;
-
-import com.google.common.util.concurrent.ListenableFuture;
-
-/**
- * Provides asynchronous access to Cloud Servers via their REST API.
- * <p/>
- * All commands return a ListenableFuture of the result from Cloud Servers. Any exceptions incurred
- * during processing will be backend in an {@link ExecutionException} as documented in
- * {@link ListenableFuture#get()}.
- *
- * @see CloudServersClient
- * @see <a href="http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf" />
- * @author Adrian Cole
- * @deprecated please use {@code org.jclouds.ContextBuilder#buildApi(CloudServersClient.class)} as
- * {@link CloudServersAsyncClient} interface will be removed in jclouds 1.7.
- */
-@Deprecated
-@RequestFilters({ AuthenticateRequest.class, AddTimestampQuery.class })
-@Endpoint(Compute.class)
-public interface CloudServersAsyncClient extends Closeable {
-
- /**
- * @see CloudServersClient#getLimits
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/limits")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<Limits> getLimits();
-
- /**
- * @see CloudServersClient#listServers
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<Server>> listServers(ListOptions... options);
-
- /**
- * @see CloudServersClient#getServer
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Fallback(NullOnNotFoundOr404.class)
- @Path("/servers/{id}")
- ListenableFuture<Server> getServer(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#deleteServer
- */
- @DELETE
- @Fallback(FalseOnNotFoundOr404.class)
- @Path("/servers/{id}")
- ListenableFuture<Boolean> deleteServer(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#rebootServer
- */
- @POST
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/action")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"reboot\":%7B\"type\":\"{type}\"%7D%7D")
- ListenableFuture<Void> rebootServer(@PathParam("id") int id, @PayloadParam("type") RebootType rebootType);
-
- /**
- * @see CloudServersClient#resizeServer
- */
- @POST
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/action")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"resize\":%7B\"flavorId\":{flavorId}%7D%7D")
- ListenableFuture<Void> resizeServer(@PathParam("id") int id, @PayloadParam("flavorId") int flavorId);
-
- /**
- * @see CloudServersClient#confirmResizeServer
- */
- @POST
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/action")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("{\"confirmResize\":null}")
- ListenableFuture<Void> confirmResizeServer(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#revertResizeServer
- */
- @POST
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/action")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("{\"revertResize\":null}")
- ListenableFuture<Void> revertResizeServer(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#createServer
- */
- @POST
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers")
- @MapBinder(CreateServerOptions.class)
- ListenableFuture<Server> createServer(@PayloadParam("name") String name, @PayloadParam("imageId") int imageId,
- @PayloadParam("flavorId") int flavorId, CreateServerOptions... options);
-
- /**
- * @see CloudServersClient#rebuildServer
- */
- @POST
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/action")
- @MapBinder(RebuildServerOptions.class)
- ListenableFuture<Void> rebuildServer(@PathParam("id") int id, RebuildServerOptions... options);
-
- /**
- * @see CloudServersClient#shareIp
- */
- @PUT
- @Path("/servers/{id}/ips/public/{address}")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"shareIp\":%7B\"sharedIpGroupId\":{sharedIpGroupId},\"configureServer\":{configureServer}%7D%7D")
- ListenableFuture<Void> shareIp(@PathParam("address") String addressToShare,
- @PathParam("id") int serverToTosignBindressTo, @PayloadParam("sharedIpGroupId") int sharedIpGroup,
- @PayloadParam("configureServer") boolean configureServer);
-
- /**
- * @see CloudServersClient#unshareIp
- */
- @DELETE
- @Path("/servers/{id}/ips/public/{address}")
- @Fallback(VoidOnNotFoundOr404.class)
- ListenableFuture<Void> unshareIp(@PathParam("address") String addressToShare,
- @PathParam("id") int serverToTosignBindressTo);
-
- /**
- * @see CloudServersClient#changeAdminPass
- */
- @PUT
- @Path("/servers/{id}")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"server\":%7B\"adminPass\":\"{adminPass}\"%7D%7D")
- ListenableFuture<Void> changeAdminPass(@PathParam("id") int id, @PayloadParam("adminPass") String adminPass);
-
- /**
- * @see CloudServersClient#renameServer
- */
- @PUT
- @Path("/servers/{id}")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"server\":%7B\"name\":\"{name}\"%7D%7D")
- ListenableFuture<Void> renameServer(@PathParam("id") int id, @PayloadParam("name") String newName);
-
- /**
- * @see CloudServersClient#listFlavors
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/flavors")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<Flavor>> listFlavors(ListOptions... options);
-
- /**
- * @see CloudServersClient#getFlavor
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/flavors/{id}")
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<Flavor> getFlavor(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#listImages
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/images")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<Image>> listImages(ListOptions... options);
-
- /**
- * @see CloudServersClient#getImage
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @Fallback(NullOnNotFoundOr404.class)
- @QueryParams(keys = "format", values = "json")
- @Path("/images/{id}")
- ListenableFuture<Image> getImage(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#deleteImage
- */
- @DELETE
- @Fallback(FalseOnNotFoundOr404.class)
- @Path("/images/{id}")
- ListenableFuture<Boolean> deleteImage(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#createImageFromServer
- */
- @POST
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/images")
- @Produces(MediaType.APPLICATION_JSON)
- @Payload("%7B\"image\":%7B\"serverId\":{serverId},\"name\":\"{name}\"%7D%7D")
- ListenableFuture<Image> createImageFromServer(@PayloadParam("name") String imageName,
- @PayloadParam("serverId") int serverId);
-
- /**
- * @see CloudServersClient#listSharedIpGroups
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/shared_ip_groups")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<SharedIpGroup>> listSharedIpGroups(ListOptions... options);
-
- /**
- * @see CloudServersClient#getSharedIpGroup
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/shared_ip_groups/{id}")
- @Fallback(NullOnNotFoundOr404.class)
- ListenableFuture<SharedIpGroup> getSharedIpGroup(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#createSharedIpGroup
- */
- @POST
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/shared_ip_groups")
- @MapBinder(CreateSharedIpGroupOptions.class)
- ListenableFuture<SharedIpGroup> createSharedIpGroup(@PayloadParam("name") String name,
- CreateSharedIpGroupOptions... options);
-
- /**
- * @see CloudServersClient#deleteSharedIpGroup
- */
- @DELETE
- @Fallback(FalseOnNotFoundOr404.class)
- @Path("/shared_ip_groups/{id}")
- ListenableFuture<Boolean> deleteSharedIpGroup(@PathParam("id") int id);
-
- /**
- * @see CloudServersClient#listBackupSchedule
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/backup_schedule")
- ListenableFuture<BackupSchedule> getBackupSchedule(@PathParam("id") int serverId);
-
- /**
- * @see CloudServersClient#deleteBackupSchedule
- */
- @DELETE
- @Fallback(FalseOnNotFoundOr404.class)
- @Path("/servers/{id}/backup_schedule")
- ListenableFuture<Boolean> deleteBackupSchedule(@PathParam("id") int serverId);
-
- /**
- * @see CloudServersClient#replaceBackupSchedule
- */
- @POST
- @Path("/servers/{id}/backup_schedule")
- ListenableFuture<Void> replaceBackupSchedule(@PathParam("id") int id,
- @BinderParam(BindBackupScheduleToJsonPayload.class) BackupSchedule backupSchedule);
-
- /**
- * @see CloudServersClient#listAddresses
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/ips")
- ListenableFuture<Addresses> getAddresses(@PathParam("id") int serverId);
-
- /**
- * @see CloudServersClient#listPublicAddresses
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/ips/public")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<String>> listPublicAddresses(@PathParam("id") int serverId);
-
- /**
- * @see CloudServersClient#listPrivateAddresses
- */
- @GET
- @Unwrap
- @Consumes(MediaType.APPLICATION_JSON)
- @QueryParams(keys = "format", values = "json")
- @Path("/servers/{id}/ips/private")
- @Fallback(EmptySetOnNotFoundOr404.class)
- ListenableFuture<? extends Set<String>> listPrivateAddresses(@PathParam("id") int serverId);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersClient.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersClient.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersClient.java
deleted file mode 100644
index 6dda716..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/CloudServersClient.java
+++ /dev/null
@@ -1,378 +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.cloudservers;
-
-import java.io.Closeable;
-import java.util.Set;
-import javax.ws.rs.PathParam;
-
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.Limits;
-import org.jclouds.cloudservers.domain.RebootType;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.SharedIpGroup;
-import org.jclouds.cloudservers.options.CreateServerOptions;
-import org.jclouds.cloudservers.options.CreateSharedIpGroupOptions;
-import org.jclouds.cloudservers.options.ListOptions;
-import org.jclouds.cloudservers.options.RebuildServerOptions;
-
-/**
- * Provides access to Cloud Servers via their REST API.
- * <p/>
- * All commands return a Future of the result from Cloud Servers. Any exceptions incurred during
- * processing will be backend in an {@link ExecutionException} as documented in {@link Future#get()}.
- *
- * @see CloudServersAsyncClient
- * @see <a href="http://docs.rackspacecloud.com/servers/api/cs-devguide-latest.pdf" />
- * @author Adrian Cole
- */
-public interface CloudServersClient extends Closeable {
- /**
- * All accounts, by default, have a preconfigured set of thresholds (or limits) to manage
- * capacity and prevent abuse of the system. The system recognizes two kinds of limits: rate
- * limits and absolute limits. Rate limits are thresholds that are reset after a certain amount
- * of time passes. Absolute limits are fixed.
- *
- * @return limits on the account
- */
- Limits getLimits();
-
- /**
- *
- * List all servers (IDs and names only)
- *
- * This operation provides a list of servers associated with your identity. Servers that have
- * been deleted are not included in this list.
- * <p/>
- * in order to retrieve all details, pass the option {@link ListOptions#withDetails()
- * withDetails()}
- */
- Set<Server> listServers(ListOptions... options);
-
- /**
- *
- * This operation returns details of the specified server.
- *
- * @return null, if the server is not found
- * @see Server
- */
- Server getServer(@PathParam("id") int id);
-
- /**
- *
- * This operation deletes a cloud server instance from the system.
- * <p/>
- * Note: When a server is deleted, all images created from that server are also removed.
- *
- * @return false if the server is not found
- * @see Server
- */
- boolean deleteServer(@PathParam("id") int id);
-
- /**
- * The reboot function allows for either a soft or hard reboot of a server.
- * <p/>
- * Status Transition:
- * <p/>
- * ACTIVE - REBOOT - ACTIVE (soft reboot)
- * <p/>
- * ACTIVE - HARD_REBOOT - ACTIVE (hard reboot)
- *
- * @param rebootType
- * With a soft reboot, the operating system is signaled to restart, which allows for a
- * graceful shutdown of all processes. A hard reboot is the equivalent of power cycling
- * the server.
- */
- void rebootServer(int id, RebootType rebootType);
-
- /**
- * The resize function converts an existing server to a different flavor, in essence, scaling the
- * server up or down. The original server is saved for a period of time to allow rollback if
- * there is a problem. All resizes should be tested and explicitly confirmed, at which time the
- * original server is removed. All resizes are automatically confirmed after 24 hours if they are
- * not confirmed or reverted.
- * <p/>
- * Status Transition:
- * <p/>
- * ACTIVE - QUEUE_RESIZE - PREP_RESIZE - VERIFY_RESIZE
- * <p/>
- * ACTIVE - QUEUE_RESIZE - ACTIVE (on error)
- */
- void resizeServer(int id, int flavorId);
-
- /**
- * The resize function converts an existing server to a different flavor, in essence, scaling the
- * server up or down. The original server is saved for a period of time to allow rollback if
- * there is a problem. All resizes should be tested and explicitly confirmed, at which time the
- * original server is removed. All resizes are automatically confirmed after 24 hours if they are
- * not confirmed or reverted.
- * <p/>
- * Status Transition:
- * <p/>
- * VERIFY_RESIZE - ACTIVE
- */
- void confirmResizeServer(int id);
-
- /**
- * The resize function converts an existing server to a different flavor, in essence, scaling the
- * server up or down. The original server is saved for a period of time to allow rollback if
- * there is a problem. All resizes should be tested and explicitly reverted, at which time the
- * original server is removed. All resizes are automatically reverted after 24 hours if they are
- * not reverted or reverted.
- * <p/>
- * Status Transition:
- * <p/>
- * VERIFY_RESIZE - ACTIVE
- */
- void revertResizeServer(int id);
-
- /**
- * This operation asynchronously provisions a new server. The progress of this operation depends
- * on several factors including location of the requested image, network i/o, host load, and the
- * selected flavor. The progress of the request can be checked by performing a GET on /server/id,
- * which will return a progress attribute (0-100% completion). A password will be randomly
- * generated for you and returned in the response object. For security reasons, it will not be
- * returned in subsequent GET calls against a given server ID.
- *
- * @param options
- * - used to specify extra files, metadata, or ip parameters during server creation.
- */
- Server createServer(String name, int imageId, int flavorId, CreateServerOptions... options);
-
- /**
- * The rebuild function removes all data on the server and replaces it with the specified image.
- * Server ID and IP addresses remain the same.
- * <p/>
- * Status Transition:
- * <p/>
- * ACTIVE - REBUILD - ACTIVE
- * <p/>
- * ACTIVE - REBUILD - ERROR (on error)
- * <p/>
- *
- * @param options
- * - imageId is an optional argument. If it is not specified, the server is rebuilt
- * with the original imageId.
- */
- void rebuildServer(int id, RebuildServerOptions... options);
-
- /**
- * /** This operation allows you share an IP address to the specified server
- * <p/>
- * This operation shares an IP from an existing server in the specified shared IP group to
- * another specified server in the same group. The operation modifies cloud network restrictions
- * to allow IP traffic for the given IP to/from the server specified.
- *
- * <p/>
- * Status Transition: ACTIVE - SHARE_IP - ACTIVE (if configureServer is true) ACTIVE -
- * SHARE_IP_NO_CONFIG - ACTIVE
- *
- * @param configureServer
- * <p/>
- * if set to true, the server is configured with the new address, though the address is
- * not enabled. Note that configuring the server does require a reboot.
- * <p/>
- * If set to false, does not bind the IP to the server itself. A heartbeat facility
- * (e.g. keepalived) can then be used within the servers to perform health checks and
- * manage IP failover.
- */
- void shareIp(String addressToShare, int serverToTosignBindressTo, int sharedIpGroup, boolean configureServer);
-
- /**
- * This operation removes a shared IP address from the specified server.
- * <p/>
- * Status Transition: ACTIVE - DELETE_IP - ACTIVE
- *
- * @param addressToShare
- * @param serverToTosignBindressTo
- * @return
- */
- void unshareIp(String addressToShare, int serverToTosignBindressTo);
-
- /**
- * This operation allows you to change the administrative password.
- * <p/>
- * Status Transition: ACTIVE - PASSWORD - ACTIVE
- *
- */
- void changeAdminPass(int id, String adminPass);
-
- /**
- * This operation allows you to update the name of the server. This operation changes the name of
- * the server in the Cloud Servers system and does not change the server host name itself.
- * <p/>
- * Status Transition: ACTIVE - PASSWORD - ACTIVE
- *
- */
- void renameServer(int id, String newName);
-
- /**
- *
- * List available flavors (IDs and names only)
- *
- * in order to retrieve all details, pass the option {@link ListOptions#withDetails()
- * withDetails()}
- */
- Set<Flavor> listFlavors(ListOptions... options);
-
- /**
- *
- * This operation returns details of the specified flavor.
- *
- * @return null, if the flavor is not found
- * @see Flavor
- */
- Flavor getFlavor(int id);
-
- /**
- *
- * List available images (IDs and names only)
- *
- * in order to retrieve all details, pass the option {@link ListOptions#withDetails()
- * withDetails()}
- */
- Set<Image> listImages(ListOptions... options);
-
- /**
- *
- * This operation returns details of the specified image.
- *
- * @return null, if the image is not found
- *
- * @see Image
- */
- Image getImage(int id);
-
- /**
- *
- * This operation deletes an image from the system.
- * <p/>
- * Note: Images are immediately removed. Currently, there are no state transitions to track the
- * delete operation.
- *
- * @return false if the image is not found
- * @see Image
- */
- boolean deleteImage(int id);
-
- /**
- *
- * This operation creates a new image for the given server ID. Once complete, a new image will be
- * available that can be used to rebuild or create servers. Specifying the same image name as an
- * existing custom image replaces the image. The image creation status can be queried by
- * performing a GET on /images/id and examining the status and progress attributes.
- *
- * Status Transition:
- * <p/>
- * QUEUED - PREPARING - SAVING - ACTIVE
- * <p/>
- * QUEUED - PREPARING - SAVING - FAILED (on error)
- * <p/>
- * Note: At present, image creation is an asynchronous operation, so coordinating the creation
- * with data quiescence, etc. is currently not possible.
- *
- * @throws ResourceNotFoundException
- * if the server is not found
- * @see Image
- */
- Image createImageFromServer(String imageName, int serverId);
-
- /**
- *
- * List shared IP groups (IDs and names only)
- *
- * in order to retrieve all details, pass the option {@link ListOptions#withDetails()
- * withDetails()}
- */
- Set<SharedIpGroup> listSharedIpGroups(ListOptions... options);
-
- /**
- *
- * This operation returns details of the specified shared IP group.
- *
- * @return null, if the shared ip group is not found
- *
- * @see SharedIpGroup
- */
- SharedIpGroup getSharedIpGroup(int id);
-
- /**
- * This operation creates a new shared IP group. Please note, all responses to requests for
- * shared_ip_groups return an array of servers. However, on a create request, the shared IP group
- * can be created empty or can be initially populated with a single server. Use
- * {@link CreateSharedIpGroupOptions} to specify an server.
- */
- SharedIpGroup createSharedIpGroup(String name, CreateSharedIpGroupOptions... options);
-
- /**
- * This operation deletes the specified shared IP group. This operation will ONLY succeed if 1)
- * there are no active servers in the group (i.e. they have all been terminated) or 2) no servers
- * in the group are actively sharing IPs.
- *
- * @return false if the shared ip group is not found
- * @see SharedIpGroup
- */
- boolean deleteSharedIpGroup(int id);
-
- /**
- * List the backup schedule for the specified server
- *
- * @throws ResourceNotFoundException
- * , if the server doesn't exist
- */
- BackupSchedule getBackupSchedule(int serverId);
-
- /**
- * Delete backup schedule for the specified server.
- * <p/>
- * Web Hosting #119571 currently disables the schedule, not deletes it.
- *
- * @return false if the schedule is not found
- */
- boolean deleteBackupSchedule(int serverId);
-
- /**
- * Enable/update the backup schedule for the specified server
- *
- */
- void replaceBackupSchedule(int id, BackupSchedule backupSchedule);
-
- /**
- * List all server addresses
- *
- * returns empty set if the server doesn't exist
- */
- Addresses getAddresses(int serverId);
-
- /**
- * List all public server addresses
- *
- * returns empty set if the server doesn't exist
- */
- Set<String> listPublicAddresses(int serverId);
-
- /**
- * List all private server addresses
- *
- * returns empty set if the server doesn't exist
- */
- Set<String> listPrivateAddresses(int serverId);
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/binders/BindBackupScheduleToJsonPayload.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/binders/BindBackupScheduleToJsonPayload.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/binders/BindBackupScheduleToJsonPayload.java
deleted file mode 100644
index 10d8fc6..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/binders/BindBackupScheduleToJsonPayload.java
+++ /dev/null
@@ -1,55 +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.cloudservers.binders;
-
-import static com.google.common.base.Preconditions.checkArgument;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.json.Json;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-import com.google.common.collect.ImmutableMap;
-
-/**
- *
- * @author Adrian Cole
- *
- */
-@Singleton
-public class BindBackupScheduleToJsonPayload extends BindToJsonPayload {
- @Inject
- public BindBackupScheduleToJsonPayload(Json jsonBinder) {
- super(jsonBinder);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- throw new IllegalStateException("Replace Backup Schedule needs an BackupSchedule object, not a Map");
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object toBind) {
- checkArgument(toBind instanceof BackupSchedule, "this binder is only valid for BackupSchedules!");
- return super.bindToRequest(request, (Object) ImmutableMap.of("backupSchedule", toBind));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModule.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModule.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModule.java
deleted file mode 100644
index bd5b053..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModule.java
+++ /dev/null
@@ -1,142 +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.cloudservers.compute.config;
-
-import java.util.Map;
-
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.compute.extensions.CloudServersImageExtension;
-import org.jclouds.cloudservers.compute.functions.CloudServersImageToImage;
-import org.jclouds.cloudservers.compute.functions.CloudServersImageToOperatingSystem;
-import org.jclouds.cloudservers.compute.functions.FlavorToHardware;
-import org.jclouds.cloudservers.compute.functions.ServerToNodeMetadata;
-import org.jclouds.cloudservers.compute.strategy.CloudServersComputeServiceAdapter;
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.domain.ImageStatus;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.config.ComputeServiceAdapterContextModule;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.extensions.ImageExtension;
-import org.jclouds.domain.Location;
-import org.jclouds.functions.IdentityFunction;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Function;
-import com.google.common.base.Optional;
-import com.google.common.collect.ImmutableMap;
-import com.google.inject.Injector;
-import com.google.inject.Provides;
-import com.google.inject.TypeLiteral;
-
-/**
- * Configures the {@link CloudServersComputeServiceContext}; requires {@link BaseComputeService}
- * bound.
- *
- * @author Adrian Cole
- */
-public class CloudServersComputeServiceContextModule extends
- ComputeServiceAdapterContextModule<Server, Flavor, org.jclouds.cloudservers.domain.Image, Location> {
-
- @SuppressWarnings("unchecked")
- @Override
- protected void configure() {
- super.configure();
- bind(new TypeLiteral<ComputeServiceAdapter<Server, Flavor, org.jclouds.cloudservers.domain.Image, Location>>() {
- }).to(CloudServersComputeServiceAdapter.class);
-
- bind(new TypeLiteral<Function<Server, NodeMetadata>>() {
- }).to(ServerToNodeMetadata.class);
-
- bind(new TypeLiteral<Function<org.jclouds.cloudservers.domain.Image, Image>>() {
- }).to(CloudServersImageToImage.class);
- bind(new TypeLiteral<Function<org.jclouds.cloudservers.domain.Image, OperatingSystem>>() {
- }).to(CloudServersImageToOperatingSystem.class);
-
- bind(new TypeLiteral<Function<Flavor, Hardware>>() {
- }).to(FlavorToHardware.class);
-
- // we aren't converting location from a provider-specific type
- bind(new TypeLiteral<Function<Location, Location>>() {
- }).to(Class.class.cast(IdentityFunction.class));
-
- bind(new TypeLiteral<ImageExtension>() {
- }).to(CloudServersImageExtension.class);
- }
-
- @VisibleForTesting
- public static final Map<ServerStatus, NodeMetadata.Status> toPortableNodeStatus = ImmutableMap
- .<ServerStatus, NodeMetadata.Status> builder()
- .put(ServerStatus.ACTIVE, NodeMetadata.Status.RUNNING)
- .put(ServerStatus.SUSPENDED, NodeMetadata.Status.SUSPENDED)
- .put(ServerStatus.DELETED, NodeMetadata.Status.TERMINATED)
- .put(ServerStatus.QUEUE_RESIZE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.PREP_RESIZE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.RESIZE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.VERIFY_RESIZE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.QUEUE_MOVE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.PREP_MOVE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.MOVE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.VERIFY_MOVE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.RESCUE, NodeMetadata.Status.PENDING)
- .put(ServerStatus.ERROR, NodeMetadata.Status.ERROR)
- .put(ServerStatus.BUILD, NodeMetadata.Status.PENDING)
- .put(ServerStatus.RESTORING, NodeMetadata.Status.PENDING)
- .put(ServerStatus.PASSWORD, NodeMetadata.Status.PENDING)
- .put(ServerStatus.REBUILD, NodeMetadata.Status.PENDING)
- .put(ServerStatus.DELETE_IP, NodeMetadata.Status.PENDING)
- .put(ServerStatus.SHARE_IP_NO_CONFIG, NodeMetadata.Status.PENDING)
- .put(ServerStatus.SHARE_IP, NodeMetadata.Status.PENDING)
- .put(ServerStatus.REBOOT, NodeMetadata.Status.PENDING)
- .put(ServerStatus.HARD_REBOOT, NodeMetadata.Status.PENDING)
- .put(ServerStatus.UNKNOWN, NodeMetadata.Status.UNRECOGNIZED)
- .put(ServerStatus.UNRECOGNIZED, NodeMetadata.Status.UNRECOGNIZED).build();
-
- @Singleton
- @Provides
- Map<ServerStatus, NodeMetadata.Status> toPortableNodeStatus() {
- return toPortableNodeStatus;
- }
-
- @VisibleForTesting
- public static final Map<ImageStatus, Image.Status> toPortableImageStatus = ImmutableMap
- .<ImageStatus, Image.Status> builder()
- .put(ImageStatus.ACTIVE, Image.Status.AVAILABLE)
- .put(ImageStatus.SAVING, Image.Status.PENDING)
- .put(ImageStatus.PREPARING, Image.Status.PENDING)
- .put(ImageStatus.QUEUED, Image.Status.PENDING)
- .put(ImageStatus.FAILED, Image.Status.ERROR)
- .put(ImageStatus.UNKNOWN, Image.Status.UNRECOGNIZED)
- .put(ImageStatus.UNRECOGNIZED, Image.Status.UNRECOGNIZED).build();
-
- @Singleton
- @Provides
- Map<ImageStatus, Image.Status> toPortableImageStatus() {
- return toPortableImageStatus;
- }
-
- @Override
- protected Optional<ImageExtension> provideImageExtension(Injector i) {
- return Optional.of(i.getInstance(ImageExtension.class));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtension.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtension.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtension.java
deleted file mode 100644
index a5f8d99..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtension.java
+++ /dev/null
@@ -1,126 +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.cloudservers.compute.extensions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-import static org.jclouds.compute.config.ComputeServiceProperties.TIMEOUT_IMAGE_AVAILABLE;
-
-import java.util.NoSuchElementException;
-import java.util.concurrent.Callable;
-import java.util.concurrent.atomic.AtomicReference;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.Constants;
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.compute.domain.CloneImageTemplate;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageBuilder;
-import org.jclouds.compute.domain.ImageTemplate;
-import org.jclouds.compute.domain.ImageTemplateBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.extensions.ImageExtension;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.util.concurrent.Atomics;
-import com.google.common.util.concurrent.ListenableFuture;
-import com.google.common.util.concurrent.ListeningExecutorService;
-import com.google.common.util.concurrent.UncheckedTimeoutException;
-
-/**
- * CloudServers implementation of {@link ImageExtension}
- *
- * @author David Alves
- * @see <a href="http://docs.rackspace.com/servers/api/v1.0/cs-devguide/content/Images-d1e4062.html">docs</a>
- */
-@Singleton
-public class CloudServersImageExtension implements ImageExtension {
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- private final CloudServersClient client;
- private final ListeningExecutorService userExecutor;
- private final Supplier<Location> location;
- private final Predicate<AtomicReference<Image>> imageAvailablePredicate;
-
- @Inject
- public CloudServersImageExtension(CloudServersClient client, @Named(Constants.PROPERTY_USER_THREADS) ListeningExecutorService userExecutor,
- Supplier<Location> location,
- @Named(TIMEOUT_IMAGE_AVAILABLE) Predicate<AtomicReference<Image>> imageAvailablePredicate) {
- this.client = checkNotNull(client, "client");
- this.userExecutor = checkNotNull(userExecutor, "userExecutor");
- this.location = checkNotNull(location, "location");
- this.imageAvailablePredicate = checkNotNull(imageAvailablePredicate, "imageAvailablePredicate");
- }
-
- @Override
- public ImageTemplate buildImageTemplateFromNode(String name, final String id) {
- Server server = client.getServer(Integer.parseInt(id));
- if (server == null)
- throw new NoSuchElementException("Cannot find server with id: " + id);
- CloneImageTemplate template = new ImageTemplateBuilder.CloneImageTemplateBuilder().nodeId(id).name(name).build();
- return template;
- }
-
- @Override
- public ListenableFuture<Image> createImage(ImageTemplate template) {
- checkState(template instanceof CloneImageTemplate,
- " openstack-nova only supports creating images through cloning.");
- CloneImageTemplate cloneTemplate = (CloneImageTemplate) template;
- org.jclouds.cloudservers.domain.Image csImage = client.createImageFromServer(cloneTemplate.getName(),
- Integer.parseInt(cloneTemplate.getSourceNodeId()));
-
- final AtomicReference<Image> image = Atomics.newReference(new ImageBuilder()
- .location(location.get())
- .ids(csImage.getId() + "")
- .description(cloneTemplate.getName())
- .operatingSystem(OperatingSystem.builder().description(cloneTemplate.getName()).build())
- .status(Image.Status.PENDING).build());
-
- return userExecutor.submit(new Callable<Image>() {
- @Override
- public Image call() throws Exception {
- if (imageAvailablePredicate.apply(image))
- return image.get();
- // TODO: get rid of the expectation that the image will be available, as it is very brittle
- throw new UncheckedTimeoutException("Image was not created within the time limit: " + image.get());
- }
- });
- }
-
- @Override
- public boolean deleteImage(String id) {
- try {
- this.client.deleteImage(Integer.parseInt(id));
- } catch (Exception e) {
- return false;
- }
- return true;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImage.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImage.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImage.java
deleted file mode 100644
index 5cc52bf..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImage.java
+++ /dev/null
@@ -1,58 +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.cloudservers.compute.functions;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.domain.ImageStatus;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.Image.Status;
-
-import com.google.common.base.Function;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class CloudServersImageToImage implements Function<org.jclouds.cloudservers.domain.Image, Image> {
- private final Map<ImageStatus, Status> toPortableImageStatus;
- private final Function<org.jclouds.cloudservers.domain.Image, OperatingSystem> imageToOs;
-
- @Inject
- CloudServersImageToImage(Map<ImageStatus, Image.Status> toPortableImageStatus, Function<org.jclouds.cloudservers.domain.Image, OperatingSystem> imageToOs) {
- this.toPortableImageStatus = toPortableImageStatus;
- this.imageToOs = imageToOs;
- }
-
- public Image apply(org.jclouds.cloudservers.domain.Image from) {
- ImageBuilder builder = new ImageBuilder();
- builder.ids(from.getId() + "");
- builder.name(from.getName());
- builder.description(from.getName());
- builder.version(from.getUpdated().getTime() + "");
- builder.operatingSystem(imageToOs.apply(from));
- builder.status(toPortableImageStatus.get(from.getStatus()));
- Image image = builder.build();
- return image;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToOperatingSystem.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToOperatingSystem.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToOperatingSystem.java
deleted file mode 100644
index 9331f72..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToOperatingSystem.java
+++ /dev/null
@@ -1,89 +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.cloudservers.compute.functions;
-
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.compute.util.ComputeServiceUtils;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Function;
-
-/**
- *
- * @author Adrian Cole
- */
-@Singleton
-public class CloudServersImageToOperatingSystem implements
- Function<org.jclouds.cloudservers.domain.Image, OperatingSystem> {
- public static final Pattern DEFAULT_PATTERN = Pattern.compile("(([^ ]*) ([0-9.]+) ?.*)");
- // Windows Server 2008 R2 x64
- public static final Pattern WINDOWS_PATTERN = Pattern.compile("Windows (.*) (x[86][64])");
-
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- private final Map<OsFamily, Map<String, String>> osVersionMap;
-
- @Inject
- public CloudServersImageToOperatingSystem(Map<OsFamily, Map<String, String>> osVersionMap) {
- this.osVersionMap = osVersionMap;
- }
-
- public OperatingSystem apply(final org.jclouds.cloudservers.domain.Image from) {
- OsFamily osFamily = null;
- String osName = null;
- String osArch = null;
- String osVersion = null;
- String osDescription = from.getName();
- boolean is64Bit = true;
- if (from.getName().indexOf("Red Hat EL") != -1) {
- osFamily = OsFamily.RHEL;
- } else if (from.getName().indexOf("Oracle EL") != -1) {
- osFamily = OsFamily.OEL;
- } else if (from.getName().indexOf("Windows") != -1) {
- osFamily = OsFamily.WINDOWS;
- Matcher matcher = WINDOWS_PATTERN.matcher(from.getName());
- if (matcher.find()) {
- osVersion = ComputeServiceUtils.parseVersionOrReturnEmptyString(osFamily, matcher.group(1), osVersionMap);
- is64Bit = matcher.group(2).equals("x64");
- }
- } else {
- Matcher matcher = DEFAULT_PATTERN.matcher(from.getName());
- if (matcher.find()) {
- try {
- osFamily = OsFamily.fromValue(matcher.group(2).toLowerCase());
- } catch (IllegalArgumentException e) {
- logger.debug("<< didn't match os(%s)", matcher.group(2));
- }
- osVersion = ComputeServiceUtils.parseVersionOrReturnEmptyString(osFamily, matcher.group(3), osVersionMap);
- }
- }
- return new OperatingSystem(osFamily, osName, osVersion, osArch, osDescription, is64Bit);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/FlavorToHardware.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/FlavorToHardware.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/FlavorToHardware.java
deleted file mode 100644
index 6a720c2..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/FlavorToHardware.java
+++ /dev/null
@@ -1,41 +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.cloudservers.compute.functions;
-
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.internal.VolumeImpl;
-
-import com.google.common.base.Function;
-import com.google.common.collect.ImmutableList;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class FlavorToHardware implements Function<Flavor, Hardware> {
- public Hardware apply(Flavor from) {
- return new HardwareBuilder().ids(from.getId() + "").name(from.getName()).hypervisor("xen")
- .processors(ImmutableList.of(new Processor(from.getDisk() / 10.0, 1.0))).ram(from.getRam())
- .volumes(ImmutableList.<Volume> of(new VolumeImpl((float) from.getDisk(), true, true))).build();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadata.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadata.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadata.java
deleted file mode 100644
index fcf1b8c..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadata.java
+++ /dev/null
@@ -1,142 +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.cloudservers.compute.functions;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static org.jclouds.compute.util.ComputeServiceUtils.addMetadataAndParseTagsFromCommaDelimitedValue;
-import static org.jclouds.compute.util.ComputeServiceUtils.groupFromMapOrName;
-
-import java.util.Map;
-import java.util.NoSuchElementException;
-import java.util.Set;
-
-import javax.annotation.Resource;
-import javax.inject.Inject;
-import javax.inject.Named;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.collect.Memoized;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.NodeMetadata.Status;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-import org.jclouds.logging.Logger;
-
-import com.google.common.base.Function;
-import com.google.common.base.Predicate;
-import com.google.common.base.Supplier;
-import com.google.common.collect.Iterables;
-
-/**
- * @author Adrian Cole
- */
-@Singleton
-public class ServerToNodeMetadata implements Function<Server, NodeMetadata> {
- @Resource
- @Named(ComputeServiceConstants.COMPUTE_LOGGER)
- protected Logger logger = Logger.NULL;
-
- protected final Supplier<Location> location;
- protected final Map<ServerStatus, Status> serverToNodeStatus;
- protected final Supplier<Set<? extends Image>> images;
- protected final Supplier<Set<? extends Hardware>> hardwares;
- protected final GroupNamingConvention nodeNamingConvention;
-
- private static class FindImageForServer implements Predicate<Image> {
- private final Server instance;
-
- private FindImageForServer(Server instance) {
- this.instance = instance;
- }
-
- @Override
- public boolean apply(Image input) {
- return input.getProviderId().equals(instance.getImageId() + "");
- }
- }
-
- private static class FindHardwareForServer implements Predicate<Hardware> {
- private final Server instance;
-
- private FindHardwareForServer(Server instance) {
- this.instance = instance;
- }
-
- @Override
- public boolean apply(Hardware input) {
- return input.getProviderId().equals(instance.getFlavorId() + "");
- }
- }
-
- @Inject
- ServerToNodeMetadata(Map<ServerStatus, Status> serverStateToNodeStatus,
- @Memoized Supplier<Set<? extends Image>> images, Supplier<Location> location,
- @Memoized Supplier<Set<? extends Hardware>> hardwares,
- GroupNamingConvention.Factory namingConvention) {
- this.nodeNamingConvention = checkNotNull(namingConvention, "namingConvention").createWithoutPrefix();
- this.serverToNodeStatus = checkNotNull(serverStateToNodeStatus, "serverStateToNodeStatus");
- this.images = checkNotNull(images, "images");
- this.location = checkNotNull(location, "location");
- this.hardwares = checkNotNull(hardwares, "hardwares");
- }
-
- @Override
- public NodeMetadata apply(Server from) {
- NodeMetadataBuilder builder = new NodeMetadataBuilder();
- builder.ids(from.getId() + "");
- builder.name(from.getName());
- builder.hostname(from.getName());
- builder.location(new LocationBuilder().scope(LocationScope.HOST).id(from.getHostId()).description(
- from.getHostId()).parent(location.get()).build());
- addMetadataAndParseTagsFromCommaDelimitedValue(builder, from.getMetadata());
- builder.group(groupFromMapOrName(from.getMetadata(), from.getName(), nodeNamingConvention));
- builder.imageId(from.getImageId() + "");
- builder.operatingSystem(parseOperatingSystem(from));
- builder.hardware(parseHardware(from));
- builder.status(serverToNodeStatus.get(from.getStatus()));
- builder.publicAddresses(from.getAddresses().getPublicAddresses());
- builder.privateAddresses(from.getAddresses().getPrivateAddresses());
- return builder.build();
- }
-
- protected Hardware parseHardware(Server from) {
- try {
- return Iterables.find(hardwares.get(), new FindHardwareForServer(from));
- } catch (NoSuchElementException e) {
- logger.debug("could not find a matching hardware for server %s", from);
- }
- return null;
- }
-
- protected OperatingSystem parseOperatingSystem(Server from) {
- try {
- return Iterables.find(images.get(), new FindImageForServer(from)).getOperatingSystem();
- } catch (NoSuchElementException e) {
- logger.debug("could not find a matching image for server %s in location %s", from, location.get());
- }
- return null;
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/strategy/CloudServersComputeServiceAdapter.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/strategy/CloudServersComputeServiceAdapter.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/strategy/CloudServersComputeServiceAdapter.java
deleted file mode 100644
index fb7a6bc..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/compute/strategy/CloudServersComputeServiceAdapter.java
+++ /dev/null
@@ -1,142 +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.cloudservers.compute.strategy;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.collect.Iterables.contains;
-import static com.google.common.collect.Iterables.filter;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withMetadata;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.withDetails;
-import static org.jclouds.compute.util.ComputeServiceUtils.metadataAndTagsAsCommaDelimitedValue;
-
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.RebootType;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.options.ListOptions;
-import org.jclouds.compute.ComputeServiceAdapter;
-import org.jclouds.compute.domain.Template;
-import org.jclouds.compute.reference.ComputeServiceConstants;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LoginCredentials;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * defines the connection between the {@link CloudServersClient} implementation and the jclouds
- * {@link ComputeService}
- *
- */
-@Singleton
-public class CloudServersComputeServiceAdapter implements ComputeServiceAdapter<Server, Flavor, Image, Location> {
-
- protected final CloudServersClient client;
-
- @Inject
- protected CloudServersComputeServiceAdapter(CloudServersClient client) {
- this.client = checkNotNull(client, "client");
- }
-
- @Override
- public NodeAndInitialCredentials<Server> createNodeWithGroupEncodedIntoName(String group, String name,
- Template template) {
- template.getOptions().userMetadata(ComputeServiceConstants.NODE_GROUP_KEY, group);
- Server server = client
- .createServer(name, Integer.parseInt(template.getImage().getProviderId()), Integer.parseInt(template
- .getHardware().getProviderId()), withMetadata(metadataAndTagsAsCommaDelimitedValue(template.getOptions())));
-
- return new NodeAndInitialCredentials<Server>(server, server.getId() + "", LoginCredentials.builder().password(
- server.getAdminPass()).build());
- }
-
-
-
- @Override
- public Iterable<Flavor> listHardwareProfiles() {
- return client.listFlavors(withDetails());
-
- }
-
- @Override
- public Iterable<Image> listImages() {
- return client.listImages(withDetails());
- }
-
- @Override
- public Iterable<Server> listNodes() {
- return client.listServers(ListOptions.Builder.withDetails());
- }
-
- @Override
- public Iterable<Server> listNodesByIds(final Iterable<String> ids) {
- return filter(listNodes(), new Predicate<Server>() {
-
- @Override
- public boolean apply(Server server) {
- return contains(ids, server.getId());
- }
- });
- }
-
- @Override
- public Iterable<Location> listLocations() {
- // Not using the adapter to determine locations
- return ImmutableSet.<Location>of();
- }
-
- @Override
- public Server getNode(String id) {
- int serverId = Integer.parseInt(id);
- return client.getServer(serverId);
- }
-
- @Override
- public Image getImage(String id) {
- int imageId = Integer.parseInt(id);
- return client.getImage(imageId);
- }
-
- @Override
- public void destroyNode(String id) {
- int serverId = Integer.parseInt(id);
- // if false server wasn't around in the first place
- client.deleteServer(serverId);
- }
-
- @Override
- public void rebootNode(String id) {
- int serverId = Integer.parseInt(id);
- // if false server wasn't around in the first place
- client.rebootServer(serverId, RebootType.HARD);
- }
-
- @Override
- public void resumeNode(String id) {
- throw new UnsupportedOperationException("suspend not supported");
- }
-
- @Override
- public void suspendNode(String id) {
- throw new UnsupportedOperationException("suspend not supported");
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
deleted file mode 100644
index 3ad60cb..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/config/CloudServersRestClientModule.java
+++ /dev/null
@@ -1,92 +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.cloudservers.config;
-
-import static com.google.common.base.Suppliers.memoizeWithExpiration;
-import static org.jclouds.util.Suppliers2.getLastValueInMap;
-
-import java.net.URI;
-import java.util.Date;
-import java.util.concurrent.TimeUnit;
-
-import javax.inject.Singleton;
-
-import org.jclouds.cloudservers.CloudServersAsyncClient;
-import org.jclouds.cloudservers.CloudServersClient;
-import org.jclouds.cloudservers.handlers.ParseCloudServersErrorFromHttpResponse;
-import org.jclouds.date.TimeStamp;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.annotation.ClientError;
-import org.jclouds.http.annotation.Redirection;
-import org.jclouds.http.annotation.ServerError;
-import org.jclouds.json.config.GsonModule.DateAdapter;
-import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
-import org.jclouds.location.suppliers.RegionIdToURISupplier;
-import org.jclouds.openstack.keystone.v1_1.config.AuthenticationServiceModule;
-import org.jclouds.openstack.services.Compute;
-import org.jclouds.rest.ConfiguresRestClient;
-import org.jclouds.rest.annotations.ApiVersion;
-import org.jclouds.rest.config.RestClientModule;
-
-import com.google.common.base.Supplier;
-import com.google.inject.Provides;
-
-/**
- *
- * @author Adrian Cole
- */
-@ConfiguresRestClient
-public class CloudServersRestClientModule extends RestClientModule<CloudServersClient, CloudServersAsyncClient> {
-
- @Override
- protected void configure() {
- bind(DateAdapter.class).to(Iso8601DateAdapter.class);
- super.configure();
- }
-
- @Override
- protected void bindErrorHandlers() {
- bind(HttpErrorHandler.class).annotatedWith(Redirection.class).to(ParseCloudServersErrorFromHttpResponse.class);
- bind(HttpErrorHandler.class).annotatedWith(ClientError.class).to(ParseCloudServersErrorFromHttpResponse.class);
- bind(HttpErrorHandler.class).annotatedWith(ServerError.class).to(ParseCloudServersErrorFromHttpResponse.class);
- }
-
- @Override
- protected void installLocations() {
- super.installLocations();
- install(new AuthenticationServiceModule());
- }
-
- @Provides
- @Singleton
- @Compute
- protected Supplier<URI> provideCloudServers(RegionIdToURISupplier.Factory factory, @ApiVersion String apiVersion) {
- return getLastValueInMap(factory.createForApiTypeAndVersion("cloudServers", apiVersion));
- }
-
- // TODO: see if we still need this.
- @Provides
- @Singleton
- @TimeStamp
- protected Supplier<Date> provideCacheBusterDate() {
- return memoizeWithExpiration(new Supplier<Date>() {
- public Date get() {
- return new Date();
- }
- }, 1, TimeUnit.SECONDS);
- }
-}
[3/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Posted by ev...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
deleted file mode 100644
index 8dfde33..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersClientLiveTest.java
+++ /dev/null
@@ -1,608 +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.cloudservers;
-
-import static java.util.concurrent.TimeUnit.SECONDS;
-import static org.jclouds.cloudservers.options.CreateServerOptions.Builder.withFile;
-import static org.jclouds.cloudservers.options.CreateSharedIpGroupOptions.Builder.withServer;
-import static org.jclouds.cloudservers.options.ListOptions.Builder.withDetails;
-import static org.jclouds.util.Predicates2.retry;
-import static org.testng.Assert.assertEquals;
-import static org.testng.Assert.assertNotNull;
-import static org.testng.Assert.assertTrue;
-
-import java.io.IOException;
-import java.lang.reflect.UndeclaredThrowableException;
-import java.security.SecureRandom;
-import java.util.Map;
-import java.util.Set;
-
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.cloudservers.domain.DailyBackup;
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.ImageStatus;
-import org.jclouds.cloudservers.domain.Limits;
-import org.jclouds.cloudservers.domain.RebootType;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.cloudservers.domain.SharedIpGroup;
-import org.jclouds.cloudservers.domain.WeeklyBackup;
-import org.jclouds.cloudservers.options.RebuildServerOptions;
-import org.jclouds.compute.domain.ExecResponse;
-import org.jclouds.compute.internal.BaseComputeServiceContextLiveTest;
-import org.jclouds.domain.LoginCredentials;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.io.Payload;
-import org.jclouds.predicates.SocketOpen;
-import org.jclouds.ssh.SshClient;
-import org.jclouds.ssh.SshException;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.jclouds.util.Strings2;
-import org.testng.annotations.AfterTest;
-import org.testng.annotations.BeforeGroups;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Predicate;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Iterables;
-import com.google.common.net.HostAndPort;
-import com.google.inject.Injector;
-import com.google.inject.Module;
-
-/**
- * Tests behavior of {@code CloudServersClient}
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", singleThreaded = true, testName = "CloudServersClientLiveTest")
-public class CloudServersClientLiveTest extends BaseComputeServiceContextLiveTest {
-
- public CloudServersClientLiveTest() {
- provider = "cloudservers";
- }
-
- protected CloudServersClient client;
- protected SshClient.Factory sshFactory;
- protected Predicate<HostAndPort> socketTester;
-
- @BeforeGroups(groups = { "integration", "live" })
- @Override
- public void setupContext() {
- super.setupContext();
- Injector injector = view.utils().injector();
- client = injector.getInstance(CloudServersClient.class);
- sshFactory = injector.getInstance(SshClient.Factory.class);
- SocketOpen socketOpen = injector.getInstance(SocketOpen.class);
- socketTester = retry(socketOpen, 120, 1, SECONDS);
- injector.injectMembers(socketOpen); // add logger
- }
-
- public void testLimits() throws Exception {
- Limits response = client.getLimits();
- assert null != response;
- assertTrue(response.getAbsolute().size() > 0);
- assertTrue(response.getRate().size() > 0);
- }
-
- public void testListServers() throws Exception {
-
- Set<Server> response = client.listServers();
- assert null != response;
- long initialContainerCount = response.size();
- assertTrue(initialContainerCount >= 0);
-
- }
-
- public void testListServersDetail() throws Exception {
- Set<Server> response = client.listServers(withDetails());
- assert null != response;
- long initialContainerCount = response.size();
- assertTrue(initialContainerCount >= 0);
- }
-
- public void testListImages() throws Exception {
- Set<Image> response = client.listImages();
- assert null != response;
- long imageCount = response.size();
- assertTrue(imageCount >= 1);
- for (Image image : response) {
- assertTrue(image.getId() >= 0);
- assert null != image.getName() : image;
- }
-
- }
-
- public void testListImagesDetail() throws Exception {
- Set<Image> response = client.listImages(withDetails());
- assert null != response;
- long imageCount = response.size();
- assertTrue(imageCount >= 0);
- for (Image image : response) {
- assertTrue(image.getId() >= 1);
- assert null != image.getName() : image;
- assert null != image.getStatus() : image;
- }
- }
-
- public void testGetImagesDetail() throws Exception {
- Set<Image> response = client.listImages(withDetails());
- assert null != response;
- long imageCount = response.size();
- assertTrue(imageCount >= 0);
- for (Image image : response) {
- Image newDetails = client.getImage(image.getId());
- assertEquals(image, newDetails);
- }
- }
-
- @Test
- public void testGetImageDetailsNotFound() throws Exception {
- assert client.getImage(12312987) == null;
- }
-
- @Test
- public void testGetServerDetailsNotFound() throws Exception {
- assert client.getServer(12312987) == null;
- }
-
- public void testGetServersDetail() throws Exception {
- Set<Server> response = client.listServers(withDetails());
- assert null != response;
- long serverCount = response.size();
- assertTrue(serverCount >= 0);
- for (Server server : response) {
- Server newDetails = client.getServer(server.getId());
- assertEquals(server, newDetails);
- }
- }
-
- public void testListFlavors() throws Exception {
- Set<Flavor> response = client.listFlavors();
- assert null != response;
- long flavorCount = response.size();
- assertTrue(flavorCount >= 1);
- for (Flavor flavor : response) {
- assertTrue(flavor.getId() >= 0);
- assert null != flavor.getName() : flavor;
- }
-
- }
-
- public void testListFlavorsDetail() throws Exception {
- Set<Flavor> response = client.listFlavors(withDetails());
- assert null != response;
- long flavorCount = response.size();
- assertTrue(flavorCount >= 0);
- for (Flavor flavor : response) {
- assertTrue(flavor.getId() >= 1);
- assert null != flavor.getName() : flavor;
- assert null != flavor.getDisk() : flavor;
- assert null != flavor.getRam() : flavor;
- }
- }
-
- public void testGetFlavorsDetail() throws Exception {
- Set<Flavor> response = client.listFlavors(withDetails());
- assert null != response;
- long flavorCount = response.size();
- assertTrue(flavorCount >= 0);
- for (Flavor flavor : response) {
- Flavor newDetails = client.getFlavor(flavor.getId());
- assertEquals(flavor, newDetails);
- }
- }
-
- @Test
- public void testGetFlavorDetailsNotFound() throws Exception {
- assert client.getFlavor(12312987) == null;
- }
-
- public void testListSharedIpGroups() throws Exception {
- Set<SharedIpGroup> response = client.listSharedIpGroups();
- assert null != response;
- long sharedIpGroupCount = response.size();
- assertTrue(sharedIpGroupCount >= 0);
- for (SharedIpGroup sharedIpGroup : response) {
- assertTrue(sharedIpGroup.getId() >= 0);
- assert null != sharedIpGroup.getName() : sharedIpGroup;
- }
-
- }
-
- public void testListSharedIpGroupsDetail() throws Exception {
- Set<SharedIpGroup> response = client.listSharedIpGroups(withDetails());
- assert null != response;
- long sharedIpGroupCount = response.size();
- assertTrue(sharedIpGroupCount >= 0);
- for (SharedIpGroup sharedIpGroup : response) {
- assertTrue(sharedIpGroup.getId() >= 1);
- assert null != sharedIpGroup.getName() : sharedIpGroup;
- assert null != sharedIpGroup.getServers() : sharedIpGroup;
- }
- }
-
- public void testGetSharedIpGroupsDetail() throws Exception {
- Set<SharedIpGroup> response = client.listSharedIpGroups(withDetails());
- assert null != response;
- long sharedIpGroupCount = response.size();
- assertTrue(sharedIpGroupCount >= 0);
- for (SharedIpGroup sharedIpGroup : response) {
- SharedIpGroup newDetails = client.getSharedIpGroup(sharedIpGroup.getId());
- assertEquals(sharedIpGroup, newDetails);
- }
- }
-
- @Test
- public void testGetSharedIpGroupDetailsNotFound() throws Exception {
- assert client.getSharedIpGroup(12312987) == null;
- }
-
- @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = "testCreateServer")
- public void testCreateSharedIpGroup() throws Exception {
- SharedIpGroup sharedIpGroup = null;
- while (sharedIpGroup == null) {
- String sharedIpGroupName = serverPrefix + "createSharedIpGroup" + new SecureRandom().nextInt();
- try {
- sharedIpGroup = client.createSharedIpGroup(sharedIpGroupName, withServer(serverId));
- } catch (UndeclaredThrowableException e) {
- HttpResponseException htpe = (HttpResponseException) e.getCause().getCause();
- if (htpe.getResponse().getStatusCode() == 400)
- continue;
- throw e;
- }
- }
- assertNotNull(sharedIpGroup.getName());
- sharedIpGroupId = sharedIpGroup.getId();
- // Response doesn't include the server id Web Hosting #119311
- assert !sharedIpGroup.getServers().equals(ImmutableList.of(serverId));
- }
-
- private int sharedIpGroupId;
-
- private String serverPrefix = System.getProperty("user.name") + ".cs";
- private int serverId;
- private String adminPass;
- Map<String, String> metadata = ImmutableMap.of("jclouds", "rackspace");
- private String ip;
- private int serverId2;
- private String adminPass2;
- private int imageId;
-
- public void testCreateServer() throws Exception {
- int imageId = 14362;
- int flavorId = 1;
- Server server = null;
- while (server == null) {
- String serverName = serverPrefix + "createserver" + new SecureRandom().nextInt();
- try {
- server = client.createServer(serverName, imageId, flavorId, withFile("/etc/jclouds.txt",
- "rackspace".getBytes()).withMetadata(metadata));
- } catch (UndeclaredThrowableException e) {
- HttpResponseException htpe = (HttpResponseException) e.getCause().getCause();
- if (htpe.getResponse().getStatusCode() == 400)
- continue;
- throw e;
- }
- }
- assertNotNull(server.getAdminPass());
- serverId = server.getId();
- adminPass = server.getAdminPass();
- ip = server.getAddresses().getPublicAddresses().iterator().next();
- assertEquals(server.getStatus(), ServerStatus.BUILD);
- blockUntilServerActive(serverId);
- }
-
- private void blockUntilServerActive(int serverId) throws InterruptedException {
- Server currentDetails = null;
- for (currentDetails = client.getServer(serverId); currentDetails.getStatus() != ServerStatus.ACTIVE; currentDetails = client
- .getServer(serverId)) {
- System.out.printf("blocking on status active%n%s%n", currentDetails);
- Thread.sleep(5 * 1000);
- }
- }
-
- private void blockUntilServerVerifyResize(int serverId) throws InterruptedException {
- Server currentDetails = null;
- for (currentDetails = client.getServer(serverId); currentDetails.getStatus() != ServerStatus.VERIFY_RESIZE; currentDetails = client
- .getServer(serverId)) {
- System.out.printf("blocking on status verify resize%n%s%n", currentDetails);
- Thread.sleep(5 * 1000);
- }
- }
-
- private void blockUntilImageActive(int imageId) throws InterruptedException {
- Image currentDetails = null;
- for (currentDetails = client.getImage(imageId); currentDetails.getStatus() != ImageStatus.ACTIVE; currentDetails = client
- .getImage(imageId)) {
- System.out.printf("blocking on status active%n%s%n", currentDetails);
- Thread.sleep(5 * 1000);
- }
- }
-
- @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = "testCreateServer")
- public void testServerDetails() throws Exception {
- Server server = client.getServer(serverId);
-
- assertNotNull(server.getHostId());
- assertEquals(server.getStatus(), ServerStatus.ACTIVE);
- assert server.getProgress() >= 0 : "newDetails.getProgress()" + server.getProgress();
- assertEquals(Integer.valueOf(14362), server.getImageId());
- assertEquals(Integer.valueOf(1), server.getFlavorId());
- assertNotNull(server.getAddresses());
- // listAddresses tests..
- assertEquals(client.getAddresses(serverId), server.getAddresses());
- assertEquals(server.getAddresses().getPublicAddresses().size(), 1);
- assertEquals(client.listPublicAddresses(serverId), server.getAddresses().getPublicAddresses());
- assertEquals(server.getAddresses().getPrivateAddresses().size(), 1);
- assertEquals(client.listPrivateAddresses(serverId), server.getAddresses().getPrivateAddresses());
-
- // check metadata
- assertEquals(server.getMetadata(), metadata);
-
- checkPassOk(server, adminPass);
- }
-
- /**
- * this tests "personality" as the file looked up was sent during server creation
- */
- private void checkPassOk(Server newDetails, String pass) throws IOException {
- try {
- doCheckPass(newDetails, pass);
- } catch (SshException e) {// try twice in case there is a network timeout
- try {
- Thread.sleep(10 * 1000);
- } catch (InterruptedException e1) {
- }
- doCheckPass(newDetails, pass);
- }
- }
-
- private void doCheckPass(Server newDetails, String pass) throws IOException {
- HostAndPort socket = HostAndPort.fromParts(Iterables.get(newDetails.getAddresses().getPublicAddresses(), 0), 22);
- socketTester.apply(socket);
-
- SshClient client = sshFactory.create(socket, LoginCredentials.builder().user("root").password(pass).build());
- try {
- client.connect();
- Payload etcPasswd = client.get("/etc/jclouds.txt");
- String etcPasswdContents = Strings2.toString(etcPasswd);
- assertEquals("rackspace", etcPasswdContents.trim());
- } finally {
- if (client != null)
- client.disconnect();
- }
- }
-
- private ExecResponse exec(Server details, String pass, String command) throws IOException {
- HostAndPort socket = HostAndPort.fromParts(Iterables.get(details.getAddresses().getPublicAddresses(), 0), 22);
- socketTester.apply(socket);
- SshClient client = sshFactory.create(socket, LoginCredentials.builder().user("root").password(pass).build());
- try {
- client.connect();
- return client.exec(command);
- } finally {
- if (client != null)
- client.disconnect();
- }
- }
-
- @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = "testCreateServer")
- public void testRenameServer() throws Exception {
- Server server = client.getServer(serverId);
- String oldName = server.getName();
- client.renameServer(serverId, oldName + "new");
- blockUntilServerActive(serverId);
- assertEquals(oldName + "new", client.getServer(serverId).getName());
- }
-
- @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = "testCreateServer")
- public void testChangePassword() throws Exception {
- client.changeAdminPass(serverId, "elmo");
- blockUntilServerActive(serverId);
- checkPassOk(client.getServer(serverId), "elmo");
- this.adminPass = "elmo";
- }
-
- @Test(timeOut = 5 * 60 * 1000, dependsOnMethods = "testCreateSharedIpGroup")
- public void testCreateServerIp() throws Exception {
- int imageId = 14362;
- int flavorId = 1;
- Server server = null;
- while (server == null) {
- String serverName = serverPrefix + "createserver" + new SecureRandom().nextInt();
- try {
- server = client
- .createServer(serverName, imageId, flavorId, withFile("/etc/jclouds.txt", "rackspace".getBytes())
- .withMetadata(metadata).withSharedIpGroup(sharedIpGroupId).withSharedIp(ip));
- } catch (UndeclaredThrowableException e) {
- HttpResponseException htpe = (HttpResponseException) e.getCause().getCause();
- if (htpe.getResponse().getStatusCode() == 400)
- continue;
- throw e;
- }
- }
- assertNotNull(server.getAdminPass());
- serverId2 = server.getId();
- adminPass2 = server.getAdminPass();
- blockUntilServerActive(serverId2);
- assertIpConfigured(server, adminPass2);
- assert server.getAddresses().getPublicAddresses().contains(ip) : server.getAddresses() + " doesn't contain " + ip;
- assertEquals(server.getSharedIpGroupId(), Integer.valueOf(sharedIpGroupId));
- }
-
- private void assertIpConfigured(Server server, String password) {
- try {
- ExecResponse response = exec(server, password, "ifconfig -a");
- assert response.getOutput().indexOf(ip) > 0 : String.format("server %s didn't get ip %s%n%s", server, ip,
- response);
- } catch (Exception e) {
- e.printStackTrace();
- } catch (AssertionError e) {
- e.printStackTrace();
- }
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testCreateServerIp")
- public void testUnshare() throws Exception {
- client.unshareIp(ip, serverId2);
- blockUntilServerActive(serverId2);
- Server server = client.getServer(serverId2);
- assert !server.getAddresses().getPublicAddresses().contains(ip) : server.getAddresses();
- assertIpNotConfigured(server, adminPass2);
- }
-
- private void assertIpNotConfigured(Server server, String password) {
- try {
- ExecResponse response = exec(server, password, "ifconfig -a");
- assert response.getOutput().indexOf(ip) == -1 : String.format("server %s still has get ip %s%n%s", server, ip,
- response);
- } catch (Exception e) {
- e.printStackTrace();
- } catch (AssertionError e) {
- e.printStackTrace();
- }
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testUnshare")
- public void testShareConfig() throws Exception {
- client.shareIp(ip, serverId2, sharedIpGroupId, true);
- blockUntilServerActive(serverId2);
- Server server = client.getServer(serverId2);
- assert server.getAddresses().getPublicAddresses().contains(ip) : server.getAddresses();
- assertIpConfigured(server, adminPass2);
- testUnshare();
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testShareConfig")
- public void testShareNoConfig() throws Exception {
- client.shareIp(ip, serverId2, sharedIpGroupId, false);
- blockUntilServerActive(serverId2);
- Server server = client.getServer(serverId2);
- assert server.getAddresses().getPublicAddresses().contains(ip) : server.getAddresses();
- assertIpNotConfigured(server, adminPass2);
- testUnshare();
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testShareNoConfig")
- public void testBackup() throws Exception {
- assertEquals(BackupSchedule.builder().build(), client.getBackupSchedule(serverId));
- BackupSchedule dailyWeekly = BackupSchedule.builder().enabled(true).weekly(WeeklyBackup.FRIDAY).daily(DailyBackup.H_0400_0600).build();
- client.replaceBackupSchedule(serverId, dailyWeekly);
- client.deleteBackupSchedule(serverId);
- // disables, doesn't delete: Web Hosting #119571
- assertEquals(client.getBackupSchedule(serverId).isEnabled(), false);
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testBackup")
- public void testCreateImage() throws Exception {
- Image image = client.createImageFromServer("hoofie", serverId);
- assertEquals("hoofie", image.getName());
- assertEquals(Integer.valueOf(serverId), image.getServerId());
- imageId = image.getId();
- blockUntilImageActive(imageId);
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testCreateImage")
- public void testRebuildServer() throws Exception {
- client.rebuildServer(serverId, new RebuildServerOptions().withImage(imageId));
- blockUntilServerActive(serverId);
- // issue Web Hosting #119580 imageId comes back incorrect after rebuild
- assert !Integer.valueOf(imageId).equals(client.getServer(serverId).getImageId());
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testRebuildServer")
- public void testRebootHard() throws Exception {
- client.rebootServer(serverId, RebootType.HARD);
- blockUntilServerActive(serverId);
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testRebootHard")
- public void testRebootSoft() throws Exception {
- client.rebootServer(serverId, RebootType.SOFT);
- blockUntilServerActive(serverId);
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testRebootSoft")
- public void testRevertResize() throws Exception {
- client.resizeServer(serverId, 2);
- blockUntilServerVerifyResize(serverId);
- client.revertResizeServer(serverId);
- blockUntilServerActive(serverId);
- assertEquals(Integer.valueOf(1), client.getServer(serverId).getFlavorId());
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testRebootSoft")
- public void testConfirmResize() throws Exception {
- client.resizeServer(serverId2, 2);
- blockUntilServerVerifyResize(serverId2);
- client.confirmResizeServer(serverId2);
- blockUntilServerActive(serverId2);
- assertEquals(Integer.valueOf(2), client.getServer(serverId2).getFlavorId());
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = { "testRebootSoft", "testRevertResize", "testConfirmResize" })
- void deleteServer2() {
- if (serverId2 > 0) {
- client.deleteServer(serverId2);
- assert client.getServer(serverId2) == null;
- }
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "deleteServer2")
- void testDeleteImage() {
- if (imageId > 0) {
- client.deleteImage(imageId);
- assert client.getImage(imageId) == null;
- }
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = "testDeleteImage")
- void deleteServer1() {
- if (serverId > 0) {
- client.deleteServer(serverId);
- assert client.getServer(serverId) == null;
- }
- }
-
- @Test(timeOut = 10 * 60 * 1000, dependsOnMethods = { "deleteServer1" })
- void testDeleteSharedIpGroup() {
- if (sharedIpGroupId > 0) {
- client.deleteSharedIpGroup(sharedIpGroupId);
- assert client.getSharedIpGroup(sharedIpGroupId) == null;
- }
- }
-
- @AfterTest
- void deleteServersOnEnd() {
- if (serverId > 0) {
- client.deleteServer(serverId);
- }
- if (serverId2 > 0) {
- client.deleteServer(serverId2);
- }
- if (sharedIpGroupId > 0) {
- client.deleteSharedIpGroup(sharedIpGroupId);
- }
- }
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersExpectTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersExpectTest.java
deleted file mode 100644
index ad45cd5..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/CloudServersExpectTest.java
+++ /dev/null
@@ -1,54 +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.cloudservers;
-
-import java.net.URI;
-
-import org.jclouds.cloudservers.internal.BaseCloudServersRestClientExpectTest;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMultimap;
-
-/**
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersExpectTest")
-public class CloudServersExpectTest extends BaseCloudServersRestClientExpectTest {
-
- public void deleteImageReturnsTrueOn200AndFalseOn404() {
-
- HttpRequest deleteImage11 = HttpRequest.builder().method("DELETE").endpoint(
- URI.create("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/11?now=1257695648897")).headers(
- ImmutableMultimap.<String, String> builder()
- .put("X-Auth-Token", authToken).build()).build();
-
- HttpResponse imageDeleted = HttpResponse.builder().statusCode(204).message("HTTP/1.1 204 No Content").build();
-
- CloudServersClient clientWhenImageExists = requestsSendResponses(initialAuth, responseWithAuth, deleteImage11, imageDeleted);
- assert clientWhenImageExists.deleteImage(11);
-
- HttpResponse imageNotFound = HttpResponse.builder().statusCode(404).message("HTTP/1.1 404 Not Found").build();
-
- CloudServersClient clientWhenImageDoesntExist = requestsSendResponses(initialAuth, responseWithAuth, deleteImage11, imageNotFound);
- assert !clientWhenImageDoesntExist.deleteImage(11);
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/CloudServersComputeServiceLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/CloudServersComputeServiceLiveTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/CloudServersComputeServiceLiveTest.java
deleted file mode 100644
index 189c767..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/CloudServersComputeServiceLiveTest.java
+++ /dev/null
@@ -1,85 +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.cloudservers.compute;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.IOException;
-
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.internal.BaseComputeServiceLiveTest;
-import org.jclouds.domain.LocationScope;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-/**
- *
- * Generally disabled, as it incurs higher fees.
- *
- * @author Adrian Cole
- */
-@Test(groups = "live", enabled = true, singleThreaded = true, testName = "CloudServersComputeServiceLiveTest")
-public class CloudServersComputeServiceLiveTest extends BaseComputeServiceLiveTest {
-
- public CloudServersComputeServiceLiveTest() {
- provider = "cloudservers";
- }
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-
- @Override
- protected void checkNodes(Iterable<? extends NodeMetadata> nodes, String group, String task) throws IOException {
- super.checkNodes(nodes, group, task);
- for (NodeMetadata node : nodes) {
- assertEquals(node.getLocation().getScope(), LocationScope.HOST);
- }
- }
-
- @Test(enabled = true, dependsOnMethods = "testReboot", expectedExceptions = UnsupportedOperationException.class)
- public void testSuspendResume() throws Exception {
- super.testSuspendResume();
- }
-
- @Test(enabled = true, dependsOnMethods = "testSuspendResume")
- @Override
- public void testGetNodesWithDetails() throws Exception {
- super.testGetNodesWithDetails();
- }
-
- @Test(enabled = true, dependsOnMethods = "testSuspendResume")
- @Override
- public void testListNodes() throws Exception {
- super.testListNodes();
- }
-
- @Test(enabled = true, dependsOnMethods = "testSuspendResume")
- @Override
- public void testListNodesByIds() throws Exception {
- super.testListNodesByIds();
- }
-
- @Test(enabled = true, dependsOnMethods = { "testListNodes", "testGetNodesWithDetails", "listNodesByIds" })
- @Override
- public void testDestroyNodes() {
- super.testDestroyNodes();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModuleTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModuleTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModuleTest.java
deleted file mode 100644
index dba3279..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/config/CloudServersComputeServiceContextModuleTest.java
+++ /dev/null
@@ -1,35 +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.cloudservers.compute.config;
-
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.testng.annotations.Test;
-
-/**
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersComputeServiceContextModuleTest")
-public class CloudServersComputeServiceContextModuleTest {
-
- public void testAllStatusCovered() {
-
- for (ServerStatus state : ServerStatus.values()) {
- assert CloudServersComputeServiceContextModule.toPortableNodeStatus.containsKey(state) : state;
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionExpectTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionExpectTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionExpectTest.java
deleted file mode 100644
index 12f9bef..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionExpectTest.java
+++ /dev/null
@@ -1,93 +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.cloudservers.compute.extensions;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.cloudservers.internal.BaseCloudServersComputeServiceExpectTest;
-import org.jclouds.compute.ComputeService;
-import org.jclouds.compute.ComputeServiceContext;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.ImageTemplate;
-import org.jclouds.compute.extensions.ImageExtension;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.http.HttpResponse;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableMap.Builder;
-import com.google.common.net.HttpHeaders;
-import com.google.common.util.concurrent.Futures;
-
-/**
- *
- * @author David Alves
- *
- */
-@Test(groups = "unit", testName = "CloudServersImageExtensionExpectTest")
-public class CloudServersImageExtensionExpectTest extends BaseCloudServersComputeServiceExpectTest<ComputeService> {
- private HttpRequest getServerDetail = HttpRequest.builder().method("GET")
- .endpoint("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/servers/1234?format=json&now=1257695648897")
- .addHeader(HttpHeaders.ACCEPT, "application/json")
- .addHeader("X-Auth-Token", authToken).build();
-
- private HttpResponse getServerResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/test_get_server_detail.json")).build();
-
- HttpRequest createImage = HttpRequest.builder().method("POST")
- .endpoint("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images?format=json&now=1257695648897")
- .addHeader("Accept", "application/json")
- .addHeader("X-Auth-Token", authToken)
- .payload(
- payloadFromStringWithContentType(
- "{\"image\":{\"serverId\":1234,\"name\":\"test\"}}",
- "application/json")).build();
-
- HttpResponse createImageResponse = HttpResponse.builder().statusCode(200)
- .payload(
- payloadFromStringWithContentType(
- "{\"image\":{\"id\":2,\"serverId\":1234,\"name\":\"test\",\"status\":\"SAVING\"}}",
- "application/json")).build();
-
- private HttpRequest getImage = HttpRequest.builder().method("GET")
- .endpoint("https://lon.servers.api.rackspacecloud.com/v1.0/10001786/images/2?format=json&now=1257695648897")
- .addHeader(HttpHeaders.ACCEPT, "application/json")
- .addHeader("X-Auth-Token", authToken).build();
-
- private HttpResponse getImageResponse = HttpResponse.builder().statusCode(200)
- .payload(payloadFromResource("/test_get_image_active.json")).build();
-
-
- public void testCreateImage() {
- Builder<HttpRequest, HttpResponse> requestResponseMap = ImmutableMap.<HttpRequest, HttpResponse> builder();
- requestResponseMap.put(initialAuth, responseWithAuth);
- requestResponseMap.put(getServerDetail, getServerResponse).build();
- requestResponseMap.put(createImage, createImageResponse).build();
- requestResponseMap.put(getImage, getImageResponse).build();
-
- ImageExtension apiThatCreatesImage = requestsSendResponses(requestResponseMap.build()).getImageExtension().get();
-
- ImageTemplate newImageTemplate = apiThatCreatesImage.buildImageTemplateFromNode("test", "1234");
-
- Image image = Futures.getUnchecked(apiThatCreatesImage.createImage(newImageTemplate));
- assertEquals(image.getId(), "2");
- }
-
- public ComputeService apply(ComputeServiceContext input) {
- return input.getComputeService();
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionLiveTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionLiveTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionLiveTest.java
deleted file mode 100644
index f3bbfb3..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/extensions/CloudServersImageExtensionLiveTest.java
+++ /dev/null
@@ -1,43 +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.cloudservers.compute.extensions;
-
-import org.jclouds.compute.extensions.internal.BaseImageExtensionLiveTest;
-import org.jclouds.sshj.config.SshjSshClientModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Module;
-
-/**
- * Live test for cloudservers {@link ImageExtension} implementation
- *
- * @author David Alves
- *
- */
-@Test(groups = "live", singleThreaded = true, testName = "CloudServersImageExtensionLiveTest")
-public class CloudServersImageExtensionLiveTest extends BaseImageExtensionLiveTest {
-
- public CloudServersImageExtensionLiveTest() {
- provider = "cloudservers";
- }
-
- @Override
- protected Module getSshModule() {
- return new SshjSshClientModule();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImageTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImageTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImageTest.java
deleted file mode 100644
index 8a51e26..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/CloudServersImageToImageTest.java
+++ /dev/null
@@ -1,62 +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.cloudservers.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import org.jclouds.cloudservers.compute.config.CloudServersComputeServiceContextModule;
-import org.jclouds.cloudservers.functions.ParseImageFromJsonResponseTest;
-import org.jclouds.compute.config.BaseComputeServiceContextModule;
-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.compute.reference.ComputeServiceConstants;
-import org.jclouds.json.Json;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Guice;
-
-/**
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "CloudServersImageToImageTest")
-public class CloudServersImageToImageTest {
-
- @Test
- public void test() {
- Image toTest = convertImage();
- assertEquals(toTest, new ImageBuilder().name("CentOS 5.2").operatingSystem(
- new OperatingSystem.Builder().family(OsFamily.CENTOS).version("5.2").description("CentOS 5.2").is64Bit(
- true).build()).description("CentOS 5.2").ids("2").status(Image.Status.PENDING).version(
- "1286712000000").build());
- assertEquals(toTest.getStatus(), Image.Status.PENDING);
- }
-
- public static Image convertImage() {
- org.jclouds.cloudservers.domain.Image image = ParseImageFromJsonResponseTest.parseImage();
-
- CloudServersImageToImage parser = new CloudServersImageToImage(
- CloudServersComputeServiceContextModule.toPortableImageStatus, new CloudServersImageToOperatingSystem(
- new BaseComputeServiceContextModule() {
- }.provideOsVersionMap(new ComputeServiceConstants.ReferenceData(), Guice.createInjector(
- new GsonModule()).getInstance(Json.class))));
-
- return parser.apply(image);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/FlavorToHardwareTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/FlavorToHardwareTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/FlavorToHardwareTest.java
deleted file mode 100644
index 85a56d3..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/FlavorToHardwareTest.java
+++ /dev/null
@@ -1,59 +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.cloudservers.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.net.UnknownHostException;
-
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.cloudservers.functions.ParseFlavorFromJsonResponseTest;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.VolumeBuilder;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-
-/**
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class FlavorToHardwareTest {
- Location provider = new LocationBuilder().scope(LocationScope.ZONE).id("dallas").description("description").build();
-
- @Test
- public void test() throws UnknownHostException {
- assertEquals(convertFlavor(), new HardwareBuilder().ids("1").name("256 MB Server").processors(
- ImmutableList.of(new Processor(1.0, 1.0))).ram(256).volumes(
- ImmutableList.of(new VolumeBuilder().type(Volume.Type.LOCAL).size(10.0f).durable(true).bootDevice(true)
- .build())).build());
- }
-
- public static Hardware convertFlavor() {
- Flavor flavor = ParseFlavorFromJsonResponseTest.parseFlavor();
-
- FlavorToHardware parser = new FlavorToHardware();
-
- return parser.apply(flavor);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadataTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadataTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadataTest.java
deleted file mode 100644
index 427305a..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/compute/functions/ServerToNodeMetadataTest.java
+++ /dev/null
@@ -1,166 +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.cloudservers.compute.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.util.Map;
-import java.util.Set;
-
-import org.jclouds.cloudservers.compute.config.CloudServersComputeServiceContextModule;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.cloudservers.functions.ParseServerFromJsonResponseTest;
-import org.jclouds.compute.domain.Hardware;
-import org.jclouds.compute.domain.HardwareBuilder;
-import org.jclouds.compute.domain.Image;
-import org.jclouds.compute.domain.NodeMetadata;
-import org.jclouds.compute.domain.NodeMetadataBuilder;
-import org.jclouds.compute.domain.OperatingSystem;
-import org.jclouds.compute.domain.OsFamily;
-import org.jclouds.compute.domain.Processor;
-import org.jclouds.compute.domain.Volume;
-import org.jclouds.compute.domain.VolumeBuilder;
-import org.jclouds.compute.domain.NodeMetadata.Status;
-import org.jclouds.compute.functions.GroupNamingConvention;
-import org.jclouds.domain.Location;
-import org.jclouds.domain.LocationBuilder;
-import org.jclouds.domain.LocationScope;
-import org.testng.annotations.Test;
-
-import com.google.common.base.Suppliers;
-import com.google.common.collect.ImmutableList;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-import com.google.inject.Guice;
-
-/**
- * @author Adrian Cole
- */
-@Test(groups = "unit", testName = "ServerToNodeMetadataTest")
-public class ServerToNodeMetadataTest {
- Location provider = new LocationBuilder().scope(LocationScope.ZONE).id("dallas").description("description").build();
- GroupNamingConvention.Factory namingConvention = Guice.createInjector().getInstance(GroupNamingConvention.Factory.class);
-
- @Test
- public void testApplyWhereImageAndHardwareNotFound() {
- Map<ServerStatus, Status> serverStateToNodeStatus = CloudServersComputeServiceContextModule.toPortableNodeStatus;
- Set<org.jclouds.compute.domain.Image> images = ImmutableSet.of();
- Set<org.jclouds.compute.domain.Hardware> hardwares = ImmutableSet.of();
- Server server = ParseServerFromJsonResponseTest.parseServer();
-
- ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeStatus, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
- .ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
- NodeMetadata metadata = parser.apply(server);
-
- assertEquals(
- metadata,
- new NodeMetadataBuilder()
- .status(Status.PENDING)
- .publicAddresses(ImmutableSet.of("67.23.10.132", "67.23.10.131"))
- .privateAddresses(ImmutableSet.of("10.176.42.16"))
- .imageId("2")
- .id("1234")
- .providerId("1234")
- .name("sample-server")
- .group("sample")
- .hostname("sample-server")
- .location(
- new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
- .description("e4d909c290d0fb1ca068ffaddf22cbd0").parent(provider).build())
- .userMetadata(ImmutableMap.of("Server Label", "Web Head 1", "Image Version", "2.1")).build());
-
- }
-
- @Test
- public void testApplyWhereImageFoundAndHardwareNotFound() {
- Map<ServerStatus, Status> serverStateToNodeStatus = CloudServersComputeServiceContextModule.toPortableNodeStatus;
- org.jclouds.compute.domain.Image jcImage = CloudServersImageToImageTest.convertImage();
- Set<org.jclouds.compute.domain.Image> images = ImmutableSet.of(jcImage);
- Set<org.jclouds.compute.domain.Hardware> hardwares = ImmutableSet.of();
- Server server = ParseServerFromJsonResponseTest.parseServer();
-
- ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeStatus, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
- .ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
- NodeMetadata metadata = parser.apply(server);
-
- assertEquals(
- metadata,
- new NodeMetadataBuilder()
- .status(Status.PENDING)
- .publicAddresses(ImmutableSet.of("67.23.10.132", "67.23.10.131"))
- .privateAddresses(ImmutableSet.of("10.176.42.16"))
- .imageId("2")
- .operatingSystem(
- new OperatingSystem.Builder().family(OsFamily.CENTOS).description("CentOS 5.2").version("5.2")
- .is64Bit(true).build())
- .id("1234")
- .providerId("1234")
- .name("sample-server")
- .hostname("sample-server")
- .group("sample")
- .location(
- new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
- .description("e4d909c290d0fb1ca068ffaddf22cbd0").parent(provider).build())
- .userMetadata(ImmutableMap.of("Server Label", "Web Head 1", "Image Version", "2.1")).build());
-
- }
-
- @Test
- public void testApplyWhereImageAndHardwareFound() {
- Map<ServerStatus, Status> serverStateToNodeStatus = CloudServersComputeServiceContextModule.toPortableNodeStatus;
- Set<org.jclouds.compute.domain.Image> images = ImmutableSet.of(CloudServersImageToImageTest.convertImage());
- Set<org.jclouds.compute.domain.Hardware> hardwares = ImmutableSet.of(FlavorToHardwareTest.convertFlavor());
- Server server = ParseServerFromJsonResponseTest.parseServer();
-
- ServerToNodeMetadata parser = new ServerToNodeMetadata(serverStateToNodeStatus, Suppliers.<Set<? extends Image>> ofInstance(images), Suppliers
- .ofInstance(provider), Suppliers.<Set<? extends Hardware>> ofInstance(hardwares), namingConvention);
-
- NodeMetadata metadata = parser.apply(server);
-
- assertEquals(
- metadata,
- new NodeMetadataBuilder()
- .status(Status.PENDING)
- .publicAddresses(ImmutableSet.of("67.23.10.132", "67.23.10.131"))
- .privateAddresses(ImmutableSet.of("10.176.42.16"))
- .imageId("2")
- .hardware(
- new HardwareBuilder()
- .ids("1")
- .name("256 MB Server")
- .processors(ImmutableList.of(new Processor(1.0, 1.0)))
- .ram(256)
- .volumes(
- ImmutableList.of(new VolumeBuilder().type(Volume.Type.LOCAL).size(10.0f)
- .durable(true).bootDevice(true).build())).build())
- .operatingSystem(
- new OperatingSystem.Builder().family(OsFamily.CENTOS).description("CentOS 5.2").version("5.2")
- .is64Bit(true).build())
- .id("1234")
- .providerId("1234")
- .name("sample-server")
- .group("sample")
- .hostname("sample-server")
- .location(
- new LocationBuilder().scope(LocationScope.HOST).id("e4d909c290d0fb1ca068ffaddf22cbd0")
- .description("e4d909c290d0fb1ca068ffaddf22cbd0").parent(provider).build())
- .userMetadata(ImmutableMap.of("Server Label", "Web Head 1", "Image Version", "2.1")).build());
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/domain/ServerTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/domain/ServerTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/domain/ServerTest.java
deleted file mode 100644
index 9aa15dd..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/domain/ServerTest.java
+++ /dev/null
@@ -1,42 +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.cloudservers.domain;
-
-import static org.testng.Assert.assertEquals;
-
-import org.testng.annotations.Test;
-
-/**
- * Tests behavior of {@code CreateImageBinder}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ServerTest {
- public void testStatusDoesntAffectEquals() {
- Server server1 = Server.builder().id(1).name("hello").status(ServerStatus.ACTIVE).build();
- Server server2 = Server.builder().id(1).name("hello").status(ServerStatus.BUILD).build();
- assertEquals(server1, server2);
- }
-
- public void testProgressDoesntAffectEquals() {
- Server server1 = Server.builder().id(1).name("hello").progress(1).build();
- Server server2 = Server.builder().id(1).name("hello").progress(2).build();
- assertEquals(server1, server2);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseAddressesFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseAddressesFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseAddressesFromJsonResponseTest.java
deleted file mode 100644
index 26b3d68..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseAddressesFromJsonResponseTest.java
+++ /dev/null
@@ -1,59 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseAddressesFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseAddressesFromJsonResponseTest {
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_addresses.json");
-
- UnwrapOnlyJsonValue<Addresses> parser = i.getInstance(Key.get(new TypeLiteral<UnwrapOnlyJsonValue<Addresses>>() {
- }));
- Addresses response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- List<String> publicAddresses = ImmutableList.of("67.23.10.132", "67.23.10.131");
-
- List<String> privateAddresses = ImmutableList.of("10.176.42.16");
-
- assertEquals(response.getPublicAddresses(), publicAddresses);
- assertEquals(response.getPrivateAddresses(), privateAddresses);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseBackupScheduleFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseBackupScheduleFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseBackupScheduleFromJsonResponseTest.java
deleted file mode 100644
index d361c81..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseBackupScheduleFromJsonResponseTest.java
+++ /dev/null
@@ -1,66 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-
-import org.jclouds.cloudservers.domain.BackupSchedule;
-import org.jclouds.cloudservers.domain.DailyBackup;
-import org.jclouds.cloudservers.domain.WeeklyBackup;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseBackupScheduleFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseBackupScheduleFromJsonResponseTest {
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_backupschedule.json");
-
- UnwrapOnlyJsonValue<BackupSchedule> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<BackupSchedule>>() {
- }));
- BackupSchedule response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- assertEquals(BackupSchedule.builder().weekly(WeeklyBackup.THURSDAY).daily(DailyBackup.H_0400_0600).enabled(true).build(), response);
- }
-
- public void testNoSchedule() throws UnknownHostException {
-
- UnwrapOnlyJsonValue<BackupSchedule> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<BackupSchedule>>() {
- }));
- BackupSchedule response = parser.apply(HttpResponse.builder()
- .statusCode(200).message("ok")
- .payload("{\"backupSchedule\":{\"enabled\" : false}}").build());
- assertEquals(BackupSchedule.builder().build(), response);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorFromJsonResponseTest.java
deleted file mode 100644
index 76d8a91..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorFromJsonResponseTest.java
+++ /dev/null
@@ -1,61 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.gson.Gson;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseFlavorFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseFlavorFromJsonResponseTest {
- public void test() {
- Flavor response = parseFlavor();
-
- String json = new Gson().toJson(response);
-
- assertEquals(json, "{\"id\":1,\"name\":\"256 MB Server\",\"disk\":10,\"ram\":256}");
- }
-
- public static Flavor parseFlavor() {
- Injector i = Guice.createInjector(new GsonModule());
-
- InputStream is = ParseFlavorFromJsonResponseTest.class.getResourceAsStream("/test_get_flavor_details.json");
-
- UnwrapOnlyJsonValue<Flavor> parser = i.getInstance(Key.get(new TypeLiteral<UnwrapOnlyJsonValue<Flavor>>() {
- }));
- Flavor response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- return response;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorListFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorListFromJsonResponseTest.java
deleted file mode 100644
index 416f622..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseFlavorListFromJsonResponseTest.java
+++ /dev/null
@@ -1,79 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.Flavor;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseFlavorListFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseFlavorListFromJsonResponseTest {
-
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testApplyInputStream() {
- InputStream is = getClass().getResourceAsStream("/test_list_flavors.json");
-
- List<Flavor> expects = ImmutableList.of(Flavor.builder().id(1).name("256 MB Server").build(),
- Flavor.builder().id(2).name("512 MB Server").build());
-
- UnwrapOnlyJsonValue<List<Flavor>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Flavor>>>() {
- }));
- List<Flavor> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- assertEquals(response, expects);
- }
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_flavors_detail.json");
-
- UnwrapOnlyJsonValue<List<Flavor>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Flavor>>>() {
- }));
- List<Flavor> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- assertEquals(response.get(0).getId(), 1);
- assertEquals(response.get(0).getName(), "256 MB Server");
- assertEquals(response.get(0).getDisk(), Integer.valueOf(10));
- assertEquals(response.get(0).getRam(), Integer.valueOf(256));
-
- assertEquals(response.get(1).getId(), 2);
- assertEquals(response.get(1).getName(), "512 MB Server");
- assertEquals(response.get(1).getDisk(), Integer.valueOf(20));
- assertEquals(response.get(1).getRam(), Integer.valueOf(512));
-
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageFromJsonResponseTest.java
deleted file mode 100644
index cc0533d..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageFromJsonResponseTest.java
+++ /dev/null
@@ -1,89 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.ImageStatus;
-import org.jclouds.date.DateService;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.jclouds.json.config.GsonModule.DateAdapter;
-import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
-import org.testng.annotations.Test;
-
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseImageFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseImageFromJsonResponseTest {
- Injector i = Guice.createInjector(new AbstractModule() {
-
- @Override
- protected void configure() {
- bind(DateAdapter.class).to(Iso8601DateAdapter.class);
- }
-
- }, new GsonModule());
-
- DateService dateService = i.getInstance(DateService.class);
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- Image response = parseImage();
-
- assertEquals(response.getId(), 2);
- assertEquals(response.getName(), "CentOS 5.2");
- assertEquals(response.getCreated(), dateService.iso8601SecondsDateParse("2010-08-10T12:00:00Z"));
- assertEquals(response.getProgress(), Integer.valueOf(80));
- assertEquals(response.getServerId(), Integer.valueOf(12));
- assertEquals(response.getStatus(), ImageStatus.SAVING);
- assertEquals(response.getUpdated(), dateService.iso8601SecondsDateParse("2010-10-10T12:00:00Z"));
-
- }
-
- public static Image parseImage() {
- Injector i = Guice.createInjector(new AbstractModule() {
-
- @Override
- protected void configure() {
- bind(DateAdapter.class).to(Iso8601DateAdapter.class);
- }
-
- }, new GsonModule());
-
- InputStream is = ParseImageFromJsonResponseTest.class.getResourceAsStream("/test_get_image_details.json");
-
- UnwrapOnlyJsonValue<Image> parser = i.getInstance(Key.get(new TypeLiteral<UnwrapOnlyJsonValue<Image>>() {
- }));
- Image response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- return response;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageListFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageListFromJsonResponseTest.java
deleted file mode 100644
index 1bb4a5b..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseImageListFromJsonResponseTest.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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.Image;
-import org.jclouds.cloudservers.domain.ImageStatus;
-import org.jclouds.date.DateService;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.jclouds.json.config.GsonModule.DateAdapter;
-import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.AbstractModule;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseImageListFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseImageListFromJsonResponseTest {
- Injector i = Guice.createInjector(new AbstractModule() {
-
- @Override
- protected void configure() {
- bind(DateAdapter.class).to(Iso8601DateAdapter.class);
- }
-
- },new GsonModule());
- DateService dateService = i.getInstance(DateService.class);
-
- public void testApplyInputStream() {
- InputStream is = getClass().getResourceAsStream("/test_list_images.json");
-
- List<Image> expects = ImmutableList.of(Image.builder().id(2).name("CentOS 5.2").build(),
- Image.builder().id(743).name("My Server Backup").build());
-
- UnwrapOnlyJsonValue<List<Image>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Image>>>() {
- }));
- List<Image> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response, expects);
- }
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_images_detail.json");
-
- UnwrapOnlyJsonValue<List<Image>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<Image>>>() {
- }));
- List<Image> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response.get(0).getId(), 2);
- assertEquals(response.get(0).getName(), "CentOS 5.2");
- assertEquals(response.get(0).getCreated(), dateService.iso8601SecondsDateParse("2010-08-10T12:00:00Z"));
- assertEquals(response.get(0).getProgress(), null);
- assertEquals(response.get(0).getServerId(), null);
- assertEquals(response.get(0).getStatus(), ImageStatus.ACTIVE);
- assertEquals(response.get(0).getUpdated(), dateService.iso8601SecondsDateParse("2010-10-10T12:00:00Z"));
-
- assertEquals(response.get(1).getId(), 743);
- assertEquals(response.get(1).getName(), "My Server Backup");
- assertEquals(response.get(1).getCreated(), dateService.iso8601SecondsDateParse("2009-07-07T09:56:16-05:00"));
-
- assertEquals(response.get(1).getProgress(), Integer.valueOf(80));
- assertEquals(response.get(1).getServerId(), Integer.valueOf(12));
- assertEquals(response.get(1).getStatus(), ImageStatus.SAVING);
- assertEquals(response.get(1).getUpdated(), dateService.iso8601SecondsDateParse("2010-10-10T12:00:00Z"));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseInetAddressListFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseInetAddressListFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseInetAddressListFromJsonResponseTest.java
deleted file mode 100644
index 4487d3c..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseInetAddressListFromJsonResponseTest.java
+++ /dev/null
@@ -1,67 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableList;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseInetAddressListFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseInetAddressListFromJsonResponseTest {
-
- Injector i = Guice.createInjector(new GsonModule());
-
- public void testPublic() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_addresses_public.json");
-
- UnwrapOnlyJsonValue<List<String>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<String>>>() {
- }));
- List<String> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response, ImmutableList.of("67.23.10.132", "67.23.10.131"));
- }
-
- public void testPrivate() throws UnknownHostException {
- InputStream is = getClass().getResourceAsStream("/test_list_addresses_private.json");
-
- UnwrapOnlyJsonValue<List<String>> parser = i.getInstance(Key
- .get(new TypeLiteral<UnwrapOnlyJsonValue<List<String>>>() {
- }));
- List<String> response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
-
- assertEquals(response, ImmutableList.of("10.176.42.16"));
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerFromJsonResponseTest.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerFromJsonResponseTest.java b/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerFromJsonResponseTest.java
deleted file mode 100644
index 18f332f..0000000
--- a/apis/cloudservers/src/test/java/org/jclouds/cloudservers/functions/ParseServerFromJsonResponseTest.java
+++ /dev/null
@@ -1,77 +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.cloudservers.functions;
-
-import static org.testng.Assert.assertEquals;
-
-import java.io.InputStream;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.jclouds.cloudservers.domain.Addresses;
-import org.jclouds.cloudservers.domain.Server;
-import org.jclouds.cloudservers.domain.ServerStatus;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.functions.UnwrapOnlyJsonValue;
-import org.jclouds.json.config.GsonModule;
-import org.testng.annotations.Test;
-
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.Lists;
-import com.google.inject.Guice;
-import com.google.inject.Injector;
-import com.google.inject.Key;
-import com.google.inject.TypeLiteral;
-
-/**
- * Tests behavior of {@code ParseServerFromJsonResponse}
- *
- * @author Adrian Cole
- */
-@Test(groups = "unit")
-public class ParseServerFromJsonResponseTest {
-
- public void testApplyInputStreamDetails() throws UnknownHostException {
- Server response = parseServer();
-
- assertEquals(response.getId(), 1234);
- assertEquals(response.getName(), "sample-server");
- assertEquals(response.getImageId(), Integer.valueOf(2));
- assertEquals(response.getFlavorId(), Integer.valueOf(1));
- assertEquals(response.getHostId(), "e4d909c290d0fb1ca068ffaddf22cbd0");
- assertEquals(response.getStatus(), ServerStatus.BUILD);
- assertEquals(response.getProgress(), Integer.valueOf(60));
- List<String> publicAddresses = Lists.newArrayList("67.23.10.132", "67.23.10.131");
- List<String> privateAddresses = Lists.newArrayList("10.176.42.16");
- Addresses addresses1 = Addresses.builder().publicAddresses(publicAddresses).privateAddresses(privateAddresses).build();
- assertEquals(response.getAddresses(), addresses1);
- assertEquals(response.getMetadata(), ImmutableMap.of("Server Label", "Web Head 1", "Image Version", "2.1"));
-
- }
-
- public static Server parseServer() {
- Injector i = Guice.createInjector(new GsonModule());
-
- InputStream is = ParseServerFromJsonResponseTest.class.getResourceAsStream("/test_get_server_detail.json");
-
- UnwrapOnlyJsonValue<Server> parser = i.getInstance(Key.get(new TypeLiteral<UnwrapOnlyJsonValue<Server>>() {
- }));
- Server response = parser.apply(HttpResponse.builder().statusCode(200).message("ok").payload(is).build());
- return response;
- }
-
-}
[5/6] jclouds git commit: JCLOUDS-716: Remove Rackspace First-Gen
Cloud Servers
Posted by ev...@apache.org.
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/AbsoluteLimit.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/AbsoluteLimit.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/AbsoluteLimit.java
deleted file mode 100644
index a519e2f..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/AbsoluteLimit.java
+++ /dev/null
@@ -1,124 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * Class AbsoluteLimit
- *
- * @author Adrian Cole
-*/
-public class AbsoluteLimit {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromAbsoluteLimit(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected String name;
- protected int value;
-
- /**
- * @see AbsoluteLimit#getName()
- */
- public T name(String name) {
- this.name = name;
- return self();
- }
-
- /**
- * @see AbsoluteLimit#getValue()
- */
- public T value(int value) {
- this.value = value;
- return self();
- }
-
- public AbsoluteLimit build() {
- return new AbsoluteLimit(name, value);
- }
-
- public T fromAbsoluteLimit(AbsoluteLimit in) {
- return this
- .name(in.getName())
- .value(in.getValue());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final String name;
- private final int value;
-
- @ConstructorProperties({
- "name", "value"
- })
- protected AbsoluteLimit(String name, int value) {
- this.name = checkNotNull(name, "name");
- this.value = value;
- }
-
- public String getName() {
- return this.name;
- }
-
- public int getValue() {
- return this.value;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(name, value);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- AbsoluteLimit that = AbsoluteLimit.class.cast(obj);
- return Objects.equal(this.name, that.name)
- && Objects.equal(this.value, that.value);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("name", name).add("value", value);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Action.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Action.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Action.java
deleted file mode 100644
index d662d2c..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Action.java
+++ /dev/null
@@ -1,25 +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.cloudservers.domain;
-
-/**
- *
- * @author Adrian Cole
- */
-public enum Action {
- CONFIRM_RESIZE, REBOOT, REBUILD, RESIZE, REVERT_RESIZE
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Addresses.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Addresses.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Addresses.java
deleted file mode 100644
index 52ba2e6..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Addresses.java
+++ /dev/null
@@ -1,143 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.util.Collection;
-import java.util.Set;
-
-import javax.inject.Named;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * Class Addresses
- *
- * @author Adrian Cole
-*/
-public class Addresses {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromAddresses(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected Set<String> publicAddresses;
- protected Set<String> privateAddresses;
-
- /**
- * @see Addresses#getPublicAddresses()
- */
- public T publicAddresses(Collection<String> publicAddresses) {
- this.publicAddresses = ImmutableSet.copyOf(checkNotNull(publicAddresses, "publicAddresses"));
- return self();
- }
-
- public T publicAddresses(String... in) {
- return publicAddresses(ImmutableSet.copyOf(in));
- }
-
- /**
- * @see Addresses#getPrivateAddresses()
- */
- public T privateAddresses(Collection<String> privateAddresses) {
- this.privateAddresses = ImmutableSet.copyOf(checkNotNull(privateAddresses, "privateAddresses"));
- return self();
- }
-
- public T privateAddresses(String... in) {
- return privateAddresses(ImmutableSet.copyOf(in));
- }
-
- public Addresses build() {
- return new Addresses(publicAddresses, privateAddresses);
- }
-
- public T fromAddresses(Addresses in) {
- return this
- .publicAddresses(in.getPublicAddresses())
- .privateAddresses(in.getPrivateAddresses());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- @Named("public")
- private final Set<String> publicAddresses;
- @Named("private")
- private final Set<String> privateAddresses;
-
- @ConstructorProperties({
- "public", "private"
- })
- protected Addresses(@Nullable Set<String> publicAddresses, @Nullable Set<String> privateAddresses) {
- this.publicAddresses = publicAddresses == null ? null : ImmutableSet.copyOf(publicAddresses);
- this.privateAddresses = privateAddresses == null ? null : ImmutableSet.copyOf(privateAddresses);
- }
-
- @Nullable
- public Set<String> getPublicAddresses() {
- return this.publicAddresses;
- }
-
- @Nullable
- public Set<String> getPrivateAddresses() {
- return this.privateAddresses;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(publicAddresses, privateAddresses);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Addresses that = Addresses.class.cast(obj);
- return Objects.equal(this.publicAddresses, that.publicAddresses)
- && Objects.equal(this.privateAddresses, that.privateAddresses);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("publicAddresses", publicAddresses).add("privateAddresses", privateAddresses);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/BackupSchedule.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/BackupSchedule.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/BackupSchedule.java
deleted file mode 100644
index 7ae86d7..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/BackupSchedule.java
+++ /dev/null
@@ -1,144 +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.cloudservers.domain;
-
-import java.beans.ConstructorProperties;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * A backup schedule can be defined to create server images at regular intervals (daily and weekly).
- * Backup schedules are configurable per server.
- *
- * @author Adrian Cole
-*/
-public class BackupSchedule {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromBackupSchedule(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected DailyBackup daily;
- protected boolean enabled;
- protected WeeklyBackup weekly;
-
- /**
- * @see BackupSchedule#getDaily()
- */
- public T daily(DailyBackup daily) {
- this.daily = daily;
- return self();
- }
-
- /**
- * @see BackupSchedule#isEnabled()
- */
- public T enabled(boolean enabled) {
- this.enabled = enabled;
- return self();
- }
-
- /**
- * @see BackupSchedule#getWeekly()
- */
- public T weekly(WeeklyBackup weekly) {
- this.weekly = weekly;
- return self();
- }
-
- public BackupSchedule build() {
- return new BackupSchedule(daily, enabled, weekly);
- }
-
- public T fromBackupSchedule(BackupSchedule in) {
- return this
- .daily(in.getDaily())
- .enabled(in.isEnabled())
- .weekly(in.getWeekly());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final DailyBackup daily;
- private final boolean enabled;
- private final WeeklyBackup weekly;
-
- @ConstructorProperties({
- "daily", "enabled", "weekly"
- })
- protected BackupSchedule(@Nullable DailyBackup daily, boolean enabled, @Nullable WeeklyBackup weekly) {
- this.daily = daily;
- this.enabled = enabled;
- this.weekly = weekly;
- }
-
- @Nullable
- public DailyBackup getDaily() {
- return this.daily;
- }
-
- public boolean isEnabled() {
- return this.enabled;
- }
-
- @Nullable
- public WeeklyBackup getWeekly() {
- return this.weekly;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(daily, enabled, weekly);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- BackupSchedule that = BackupSchedule.class.cast(obj);
- return Objects.equal(this.daily, that.daily)
- && Objects.equal(this.enabled, that.enabled)
- && Objects.equal(this.weekly, that.weekly);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("daily", daily).add("enabled", enabled).add("weekly", weekly);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/DailyBackup.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/DailyBackup.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/DailyBackup.java
deleted file mode 100644
index d76c00e..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/DailyBackup.java
+++ /dev/null
@@ -1,35 +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.cloudservers.domain;
-
-public enum DailyBackup {
-
- DISABLED, H_0000_0200, H_0200_0400, H_0400_0600, H_0600_0800, H_0800_1000, H_1000_1200, H_1200_1400, H_1400_1600, H_1600_1800, H_1800_2000, H_2000_2200, H_2200_0000, UNRECOGNIZED;
-
- public String value() {
- return name();
- }
-
- public static DailyBackup fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Flavor.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Flavor.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Flavor.java
deleted file mode 100644
index 441319f..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Flavor.java
+++ /dev/null
@@ -1,163 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * A flavor is an available hardware configuration for a server. Each flavor has a unique
- * combination of disk space and memory capacity.
- *
- * @author Adrian Cole
-*/
-public class Flavor {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromFlavor(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected int id;
- protected String name;
- protected Integer disk;
- protected Integer ram;
-
- /**
- * @see Flavor#getId()
- */
- public T id(int id) {
- this.id = id;
- return self();
- }
-
- /**
- * @see Flavor#getName()
- */
- public T name(String name) {
- this.name = name;
- return self();
- }
-
- /**
- * @see Flavor#getDisk()
- */
- public T disk(Integer disk) {
- this.disk = disk;
- return self();
- }
-
- /**
- * @see Flavor#getRam()
- */
- public T ram(Integer ram) {
- this.ram = ram;
- return self();
- }
-
- public Flavor build() {
- return new Flavor(id, name, disk, ram);
- }
-
- public T fromFlavor(Flavor in) {
- return this
- .id(in.getId())
- .name(in.getName())
- .disk(in.getDisk())
- .ram(in.getRam());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final int id;
- private final String name;
- private final Integer disk;
- private final Integer ram;
-
- @ConstructorProperties({
- "id", "name", "disk", "ram"
- })
- protected Flavor(int id, String name, @Nullable Integer disk, @Nullable Integer ram) {
- this.id = id;
- this.name = checkNotNull(name, "name");
- this.disk = disk;
- this.ram = ram;
- }
-
- public int getId() {
- return this.id;
- }
-
- public String getName() {
- return this.name;
- }
-
- @Nullable
- public Integer getDisk() {
- return this.disk;
- }
-
- @Nullable
- public Integer getRam() {
- return this.ram;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(id, name, disk, ram);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Flavor that = Flavor.class.cast(obj);
- return Objects.equal(this.id, that.id)
- && Objects.equal(this.name, that.name)
- && Objects.equal(this.disk, that.disk)
- && Objects.equal(this.ram, that.ram);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("id", id).add("name", name).add("disk", disk).add("ram", ram);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Image.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Image.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Image.java
deleted file mode 100644
index 5323b00..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Image.java
+++ /dev/null
@@ -1,220 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.util.Date;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * An image is a collection of files used to create or rebuild a server. Rackspace provides a number
- * of pre-built OS images by default. You may also create custom images from cloud servers you have
- * launched. These custom images are useful for backup purposes or for producing gold server images
- * if you plan to deploy a particular server configuration frequently.
- *
- * @author Adrian Cole
-*/
-public class Image {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromImage(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected Date created;
- protected int id;
- protected String name;
- protected Integer progress;
- protected Integer serverId;
- protected ImageStatus status;
- protected Date updated;
-
- /**
- * @see Image#getCreated()
- */
- public T created(Date created) {
- this.created = created;
- return self();
- }
-
- /**
- * @see Image#getId()
- */
- public T id(int id) {
- this.id = id;
- return self();
- }
-
- /**
- * @see Image#getName()
- */
- public T name(String name) {
- this.name = name;
- return self();
- }
-
- /**
- * @see Image#getProgress()
- */
- public T progress(Integer progress) {
- this.progress = progress;
- return self();
- }
-
- /**
- * @see Image#getServerId()
- */
- public T serverId(Integer serverId) {
- this.serverId = serverId;
- return self();
- }
-
- /**
- * @see Image#getStatus()
- */
- public T status(ImageStatus status) {
- this.status = status;
- return self();
- }
-
- /**
- * @see Image#getUpdated()
- */
- public T updated(Date updated) {
- this.updated = updated;
- return self();
- }
-
- public Image build() {
- return new Image(created, id, name, progress, serverId, status, updated);
- }
-
- public T fromImage(Image in) {
- return this
- .created(in.getCreated())
- .id(in.getId())
- .name(in.getName())
- .progress(in.getProgress())
- .serverId(in.getServerId())
- .status(in.getStatus())
- .updated(in.getUpdated());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final Date created;
- private final int id;
- private final String name;
- private final Integer progress;
- private final Integer serverId;
- private final ImageStatus status;
- private final Date updated;
-
- @ConstructorProperties({
- "created", "id", "name", "progress", "serverId", "status", "updated"
- })
- protected Image(@Nullable Date created, int id, String name, @Nullable Integer progress, @Nullable Integer serverId, @Nullable ImageStatus status, @Nullable Date updated) {
- this.created = created;
- this.id = id;
- this.name = checkNotNull(name, "name");
- this.progress = progress;
- this.serverId = serverId;
- this.status = status;
- this.updated = updated;
- }
-
- @Nullable
- public Date getCreated() {
- return this.created;
- }
-
- public int getId() {
- return this.id;
- }
-
- public String getName() {
- return this.name;
- }
-
- @Nullable
- public Integer getProgress() {
- return this.progress;
- }
-
- @Nullable
- public Integer getServerId() {
- return this.serverId;
- }
-
- @Nullable
- public ImageStatus getStatus() {
- return this.status;
- }
-
- @Nullable
- public Date getUpdated() {
- return this.updated;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(created, id, name, progress, serverId, status, updated);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Image that = Image.class.cast(obj);
- return Objects.equal(this.created, that.created)
- && Objects.equal(this.id, that.id)
- && Objects.equal(this.name, that.name)
- && Objects.equal(this.progress, that.progress)
- && Objects.equal(this.serverId, that.serverId)
- && Objects.equal(this.status, that.status)
- && Objects.equal(this.updated, that.updated);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("created", created).add("id", id).add("name", name).add("progress", progress).add("serverId", serverId).add("status", status).add("updated", updated);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ImageStatus.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ImageStatus.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ImageStatus.java
deleted file mode 100644
index e90f34a..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ImageStatus.java
+++ /dev/null
@@ -1,43 +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.cloudservers.domain;
-
-/**
- * In-flight images will have the status attribute set to SAVING and the conditional progress
- * element (0- 100% completion) will also be returned. Other possible values for the status
- * attribute include: UNKNOWN, PREPARING, ACTIVE QUEUED, FAILED. Images with an ACTIVE status are
- * available for install.
- *
- * @author Adrian Cole
- */
-public enum ImageStatus {
-
- UNRECOGNIZED, UNKNOWN, ACTIVE, SAVING, PREPARING, QUEUED, FAILED;
-
- public String value() {
- return name();
- }
-
- public static ImageStatus fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Limits.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Limits.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Limits.java
deleted file mode 100644
index 1b085c8..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Limits.java
+++ /dev/null
@@ -1,130 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.util.Map;
-import java.util.Set;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableMap;
-import com.google.common.collect.ImmutableSet;
-
-/**
- * Class Limits
-*/
-public class Limits {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromLimits(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected Set<RateLimit> rate = ImmutableSet.of();
- protected Map<String, Integer> absolute = ImmutableMap.of();
-
- /**
- * @see Limits#getRate()
- */
- public T rate(Set<RateLimit> rate) {
- this.rate = ImmutableSet.copyOf(checkNotNull(rate, "rate"));
- return self();
- }
-
- public T rate(RateLimit... in) {
- return rate(ImmutableSet.copyOf(in));
- }
-
- /**
- * @see Limits#getAbsolute()
- */
- public T absolute(Map<String, Integer> absolute) {
- this.absolute = ImmutableMap.copyOf(checkNotNull(absolute, "absolute"));
- return self();
- }
-
- public Limits build() {
- return new Limits(rate, absolute);
- }
-
- public T fromLimits(Limits in) {
- return this
- .rate(in.getRate())
- .absolute(in.getAbsolute());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final Set<RateLimit> rate;
- private final Map<String, Integer> absolute;
-
- @ConstructorProperties({
- "rate", "absolute"
- })
- protected Limits(Set<RateLimit> rate, Map<String, Integer> absolute) {
- this.rate = ImmutableSet.copyOf(checkNotNull(rate, "rate"));
- this.absolute = ImmutableMap.copyOf(checkNotNull(absolute, "absolute"));
- }
-
- public Set<RateLimit> getRate() {
- return this.rate;
- }
-
- public Map<String, Integer> getAbsolute() {
- return this.absolute;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(rate, absolute);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Limits that = Limits.class.cast(obj);
- return Objects.equal(this.rate, that.rate)
- && Objects.equal(this.absolute, that.absolute);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("rate", rate).add("absolute", absolute);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimit.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimit.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimit.java
deleted file mode 100644
index b4fe2b3..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimit.java
+++ /dev/null
@@ -1,226 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * RateLimit.
- * <p/>
- * we specify rate limits in terms of both a human readable wild-card URI and a machine processable
- * regular expression. The regular expression boundary matcher '^' takes affect after the root URI
- * path. For example, the regular expression ^/servers would match the bolded portion of the
- * following URI: https://servers.api.rackspacecloud.com/v1.0/3542812 /servers .
- * <p/>
- * Rate limits are applied in order relative to the verb, going from least to most specific. For
- * example, although the threshold for POST to /servers is 25 per day, one cannot POST to /servers
- * more than 10 times within a single minute because the rate limits for any POST is 10/min. In the
- * event you exceed the thresholds established for your identity, a 413 Rate Control HTTP response
- * will be returned with a Reply-After header to notify the client when theyagain.
- *
- * @author Adrian Cole
-*/
-public class RateLimit {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromRateLimit(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected String uri;
- protected String regex;
- protected int remaining;
- protected long resetTime;
- protected RateLimitUnit unit;
- protected int value;
- protected String verb;
-
- /**
- * @see RateLimit#getUri()
- */
- public T uri(String uri) {
- this.uri = uri;
- return self();
- }
-
- /**
- * @see RateLimit#getRegex()
- */
- public T regex(String regex) {
- this.regex = regex;
- return self();
- }
-
- /**
- * @see RateLimit#getRemaining()
- */
- public T remaining(int remaining) {
- this.remaining = remaining;
- return self();
- }
-
- /**
- * @see RateLimit#getResetTime()
- */
- public T resetTime(long resetTime) {
- this.resetTime = resetTime;
- return self();
- }
-
- /**
- * @see RateLimit#getUnit()
- */
- public T unit(RateLimitUnit unit) {
- this.unit = unit;
- return self();
- }
-
- /**
- * @see RateLimit#getValue()
- */
- public T value(int value) {
- this.value = value;
- return self();
- }
-
- /**
- * @see RateLimit#getVerb()
- */
- public T verb(String verb) {
- this.verb = verb;
- return self();
- }
-
- public RateLimit build() {
- return new RateLimit(uri, regex, remaining, resetTime, unit, value, verb);
- }
-
- public T fromRateLimit(RateLimit in) {
- return this
- .uri(in.getUri())
- .regex(in.getRegex())
- .remaining(in.getRemaining())
- .resetTime(in.getResetTime())
- .unit(in.getUnit())
- .value(in.getValue())
- .verb(in.getVerb());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final String uri;
- private final String regex;
- private final int remaining;
- private final long resetTime;
- private final RateLimitUnit unit;
- private final int value;
- private final String verb;
-
- @ConstructorProperties({
- "uri", "regex", "remaining", "resetTime", "unit", "value", "verb"
- })
- protected RateLimit(String uri, @Nullable String regex, int remaining, long resetTime, @Nullable RateLimitUnit unit,
- int value, @Nullable String verb) {
- this.uri = checkNotNull(uri, "uri");
- this.regex = regex;
- this.remaining = remaining;
- this.resetTime = resetTime;
- this.unit = unit;
- this.value = value;
- this.verb = verb;
- }
-
- public String getUri() {
- return this.uri;
- }
-
- @Nullable
- public String getRegex() {
- return this.regex;
- }
-
- public int getRemaining() {
- return this.remaining;
- }
-
- public long getResetTime() {
- return this.resetTime;
- }
-
- @Nullable
- public RateLimitUnit getUnit() {
- return this.unit;
- }
-
- public int getValue() {
- return this.value;
- }
-
- @Nullable
- public String getVerb() {
- return this.verb;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(uri, regex, remaining, resetTime, unit, value, verb);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- RateLimit that = RateLimit.class.cast(obj);
- return Objects.equal(this.uri, that.uri)
- && Objects.equal(this.regex, that.regex)
- && Objects.equal(this.remaining, that.remaining)
- && Objects.equal(this.resetTime, that.resetTime)
- && Objects.equal(this.unit, that.unit)
- && Objects.equal(this.value, that.value)
- && Objects.equal(this.verb, that.verb);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("uri", uri).add("regex", regex).add("remaining", remaining).add("resetTime", resetTime).add("unit", unit).add("value", value).add("verb", verb);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimitUnit.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimitUnit.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimitUnit.java
deleted file mode 100644
index c297b37..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RateLimitUnit.java
+++ /dev/null
@@ -1,35 +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.cloudservers.domain;
-
-public enum RateLimitUnit {
-
- MINUTE, HOUR, DAY, UNRECOGNIZED;
-
- public String value() {
- return name();
- }
-
- public static RateLimitUnit fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RebootType.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RebootType.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RebootType.java
deleted file mode 100644
index dd52737..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/RebootType.java
+++ /dev/null
@@ -1,35 +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.cloudservers.domain;
-
-/**
- *
- * @author Adrian Cole
- */
-public enum RebootType {
-
- HARD, SOFT;
-
- public String value() {
- return name();
- }
-
- public static RebootType fromValue(String v) {
- return valueOf(v);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Server.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Server.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Server.java
deleted file mode 100644
index 6c386f9..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Server.java
+++ /dev/null
@@ -1,302 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.util.Map;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableMap;
-
-/**
- * A server is a virtual machine instance in the Cloud Servers system. Flavor and image are
- * requisite elements when creating a server.
- *
- * @author Adrian Cole
-*/
-public class Server {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromServer(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected int id;
- protected String name;
- protected Map<String, String> metadata;
- protected Addresses addresses;
- protected String adminPass;
- protected Integer flavorId;
- protected String hostId;
- protected Integer imageId;
- protected Integer sharedIpGroupId;
- protected Integer progress;
- protected ServerStatus status;
-
- /**
- * @see Server#getId()
- */
- public T id(int id) {
- this.id = id;
- return self();
- }
-
- /**
- * @see Server#getName()
- */
- public T name(String name) {
- this.name = name;
- return self();
- }
-
- /**
- * @see Server#getMetadata()
- */
- public T metadata(Map<String, String> metadata) {
- this.metadata = ImmutableMap.copyOf(checkNotNull(metadata, "metadata"));
- return self();
- }
-
- /**
- * @see Server#getAddresses()
- */
- public T addresses(Addresses addresses) {
- this.addresses = addresses;
- return self();
- }
-
- /**
- * @see Server#getAdminPass()
- */
- public T adminPass(String adminPass) {
- this.adminPass = adminPass;
- return self();
- }
-
- /**
- * @see Server#getFlavorId()
- */
- public T flavorId(Integer flavorId) {
- this.flavorId = flavorId;
- return self();
- }
-
- /**
- * @see Server#getHostId()
- */
- public T hostId(String hostId) {
- this.hostId = hostId;
- return self();
- }
-
- /**
- * @see Server#getImageId()
- */
- public T imageId(Integer imageId) {
- this.imageId = imageId;
- return self();
- }
-
- /**
- * @see Server#getSharedIpGroupId()
- */
- public T sharedIpGroupId(Integer sharedIpGroupId) {
- this.sharedIpGroupId = sharedIpGroupId;
- return self();
- }
-
- /**
- * @see Server#getProgress()
- */
- public T progress(Integer progress) {
- this.progress = progress;
- return self();
- }
-
- /**
- * @see Server#getStatus()
- */
- public T status(ServerStatus status) {
- this.status = status;
- return self();
- }
-
- public Server build() {
- return new Server(id, name, metadata, addresses, adminPass, flavorId, hostId, imageId, sharedIpGroupId, progress, status);
- }
-
- public T fromServer(Server in) {
- return this
- .id(in.getId())
- .name(in.getName())
- .metadata(in.getMetadata())
- .addresses(in.getAddresses())
- .adminPass(in.getAdminPass())
- .flavorId(in.getFlavorId())
- .hostId(in.getHostId())
- .imageId(in.getImageId())
- .sharedIpGroupId(in.getSharedIpGroupId())
- .progress(in.getProgress())
- .status(in.getStatus());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final int id;
- private final String name;
- private final Map<String, String> metadata;
- private final Addresses addresses;
- private final String adminPass;
- private final Integer flavorId;
- private final String hostId;
- private final Integer imageId;
- private final Integer sharedIpGroupId;
- private final Integer progress;
- private final ServerStatus status;
-
- @ConstructorProperties({
- "id", "name", "metadata", "addresses", "adminPass", "flavorId", "hostId", "imageId", "sharedIpGroupId", "progress", "status"
- })
- protected Server(int id, String name, @Nullable Map<String, String> metadata, @Nullable Addresses addresses,
- @Nullable String adminPass, @Nullable Integer flavorId, @Nullable String hostId, @Nullable Integer imageId,
- @Nullable Integer sharedIpGroupId, @Nullable Integer progress, @Nullable ServerStatus status) {
- this.id = id;
- this.name = checkNotNull(name, "name");
- this.metadata = metadata == null ? null : ImmutableMap.copyOf(metadata);
- this.addresses = addresses;
- this.adminPass = adminPass;
- this.flavorId = flavorId;
- this.hostId = hostId;
- this.imageId = imageId;
- this.sharedIpGroupId = sharedIpGroupId;
- this.progress = progress;
- this.status = status == null ? ServerStatus.UNKNOWN : status;
- }
-
- public int getId() {
- return this.id;
- }
-
- public String getName() {
- return this.name;
- }
-
- @Nullable
- public Map<String, String> getMetadata() {
- return this.metadata;
- }
-
- @Nullable
- public Addresses getAddresses() {
- return this.addresses;
- }
-
- @Nullable
- public String getAdminPass() {
- return this.adminPass;
- }
-
- @Nullable
- public Integer getFlavorId() {
- return this.flavorId;
- }
-
- /**
- * The Cloud Servers provisioning algorithm has an anti-affinity property that attempts to spread
- * out customer VMs across hosts. Under certain situations, VMs from the same customer may be
- * placed on the same host. hostId represents the host your cloud server runs on and can be used
- * to determine this scenario if it's relevant to your application.
- * <p/>
- * Note: hostId is unique PER ACCOUNT and is not globally unique.
- */
- @Nullable
- public String getHostId() {
- return this.hostId;
- }
-
- @Nullable
- public Integer getImageId() {
- return this.imageId;
- }
-
- @Nullable
- public Integer getSharedIpGroupId() {
- return this.sharedIpGroupId;
- }
-
- @Nullable
- public Integer getProgress() {
- return this.progress;
- }
-
- /**
- * Servers contain a status attribute that can be used as an indication of the current server
- * state. Servers with an ACTIVE status are available for use.
- */
- public ServerStatus getStatus() {
- return this.status;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(id, name, metadata, addresses, adminPass, flavorId, hostId, imageId, sharedIpGroupId);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Server that = Server.class.cast(obj);
- return Objects.equal(this.id, that.id)
- && Objects.equal(this.name, that.name)
- && Objects.equal(this.metadata, that.metadata)
- && Objects.equal(this.addresses, that.addresses)
- && Objects.equal(this.adminPass, that.adminPass)
- && Objects.equal(this.flavorId, that.flavorId)
- && Objects.equal(this.hostId, that.hostId)
- && Objects.equal(this.imageId, that.imageId)
- && Objects.equal(this.sharedIpGroupId, that.sharedIpGroupId);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("id", id).add("name", name).add("metadata", metadata).add("addresses", addresses).add("adminPass", adminPass).add("flavorId", flavorId).add("hostId", hostId).add("imageId", imageId).add("sharedIpGroupId", sharedIpGroupId).add("progress", progress).add("status", status);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ServerStatus.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ServerStatus.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ServerStatus.java
deleted file mode 100644
index c353611..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ServerStatus.java
+++ /dev/null
@@ -1,52 +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.cloudservers.domain;
-
-/**
- *
- * Servers contain a status attribute that can be used as an indication of the current server state.
- * Servers with an ACTIVE status are available for use.
- * <p/>
- * <h2>Note</h2>
- * When the system changes a server's status from BUILD to ACTIVE the system will not be immediately
- * available. The 'ACTIVE' label is really misleading in the fact that it just means the system
- * doesn't have any activity going on related to it's configuration.
- * <p/>
- * Processes such as ssh will not be available until 5-10 seconds following the phase ACTIVE
- * <ul>
- * <li>[Web Hosting #119335]</li>
- * </ul>
- *
- * @author Adrian Cole
- */
-public enum ServerStatus {
-
- ACTIVE, SUSPENDED, DELETED, QUEUE_RESIZE, PREP_RESIZE, RESIZE, VERIFY_RESIZE, QUEUE_MOVE, PREP_MOVE, MOVE, VERIFY_MOVE, RESCUE, ERROR, BUILD, RESTORING, PASSWORD, REBUILD, DELETE_IP, SHARE_IP_NO_CONFIG, SHARE_IP, REBOOT, HARD_REBOOT, UNKNOWN, UNRECOGNIZED;
-
- public String value() {
- return name();
- }
-
- public static ServerStatus fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ShareIp.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ShareIp.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ShareIp.java
deleted file mode 100644
index 9c18f29..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/ShareIp.java
+++ /dev/null
@@ -1,120 +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.cloudservers.domain;
-
-import java.beans.ConstructorProperties;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * Class ShareIp
-*/
-public class ShareIp {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromShareIp(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected boolean configureServer;
- protected int sharedIpGroupId;
-
- /**
- * @see ShareIp#isConfigureServer()
- */
- public T configureServer(boolean configureServer) {
- this.configureServer = configureServer;
- return self();
- }
-
- /**
- * @see ShareIp#getSharedIpGroupId()
- */
- public T sharedIpGroupId(int sharedIpGroupId) {
- this.sharedIpGroupId = sharedIpGroupId;
- return self();
- }
-
- public ShareIp build() {
- return new ShareIp(configureServer, sharedIpGroupId);
- }
-
- public T fromShareIp(ShareIp in) {
- return this
- .configureServer(in.isConfigureServer())
- .sharedIpGroupId(in.getSharedIpGroupId());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final boolean configureServer;
- private final int sharedIpGroupId;
-
- @ConstructorProperties({
- "configureServer", "sharedIpGroupId"
- })
- protected ShareIp(boolean configureServer, int sharedIpGroupId) {
- this.configureServer = configureServer;
- this.sharedIpGroupId = sharedIpGroupId;
- }
-
- public boolean isConfigureServer() {
- return this.configureServer;
- }
-
- public int getSharedIpGroupId() {
- return this.sharedIpGroupId;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(configureServer, sharedIpGroupId);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- ShareIp that = ShareIp.class.cast(obj);
- return Objects.equal(this.configureServer, that.configureServer)
- && Objects.equal(this.sharedIpGroupId, that.sharedIpGroupId);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("configureServer", configureServer).add("sharedIpGroupId", sharedIpGroupId);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/SharedIpGroup.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/SharedIpGroup.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/SharedIpGroup.java
deleted file mode 100644
index a24df55..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/SharedIpGroup.java
+++ /dev/null
@@ -1,153 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-import java.util.List;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-import com.google.common.collect.ImmutableList;
-
-/**
- * A shared IP group is a collection of servers that can share IPs with other members of the group.
- * Any server in a group can share one or more public IPs with any other server in the group. With
- * the exception of the first server in a shared IP group, servers must be launched into shared IP
- * groups. A server may only be a member of one shared IP group.
- *
- * @author Adrian Cole
-*/
-public class SharedIpGroup {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromSharedIpGroup(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected int id;
- protected String name;
- protected List<Integer> servers = null;
-
- /**
- * @see SharedIpGroup#getId()
- */
- public T id(int id) {
- this.id = id;
- return self();
- }
-
- /**
- * @see SharedIpGroup#getName()
- */
- public T name(String name) {
- this.name = name;
- return self();
- }
-
- /**
- * @see SharedIpGroup#getServers()
- */
- public T servers(List<Integer> servers) {
- this.servers = ImmutableList.copyOf(checkNotNull(servers, "servers"));
- return self();
- }
-
- public T servers(Integer... in) {
- return servers(ImmutableList.copyOf(in));
- }
-
- public SharedIpGroup build() {
- return new SharedIpGroup(id, name, servers);
- }
-
- public T fromSharedIpGroup(SharedIpGroup in) {
- return this
- .id(in.getId())
- .name(in.getName())
- .servers(in.getServers());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final int id;
- private final String name;
- private final List<Integer> servers;
-
- @ConstructorProperties({
- "id", "name", "servers"
- })
- protected SharedIpGroup(int id, String name, @Nullable List<Integer> servers) {
- this.id = id;
- this.name = checkNotNull(name, "name");
- this.servers = servers == null ? null : ImmutableList.copyOf(servers);
- }
-
- public int getId() {
- return this.id;
- }
-
- public String getName() {
- return this.name;
- }
-
- @Nullable
- public List<Integer> getServers() {
- return this.servers;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(id, name, servers);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- SharedIpGroup that = SharedIpGroup.class.cast(obj);
- return Objects.equal(this.id, that.id)
- && Objects.equal(this.name, that.name)
- && Objects.equal(this.servers, that.servers);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("id", id).add("name", name).add("servers", servers);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Version.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Version.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Version.java
deleted file mode 100644
index 753f0eb..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/Version.java
+++ /dev/null
@@ -1,159 +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.cloudservers.domain;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import java.beans.ConstructorProperties;
-
-import org.jclouds.javax.annotation.Nullable;
-
-import com.google.common.base.Objects;
-import com.google.common.base.Objects.ToStringHelper;
-
-/**
- * Class Version
-*/
-public class Version {
-
- public static Builder<?> builder() {
- return new ConcreteBuilder();
- }
-
- public Builder<?> toBuilder() {
- return new ConcreteBuilder().fromVersion(this);
- }
-
- public abstract static class Builder<T extends Builder<T>> {
- protected abstract T self();
-
- protected String docURL;
- protected String id;
- protected VersionStatus status;
- protected String wadl;
-
- /**
- * @see Version#getDocURL()
- */
- public T docURL(String docURL) {
- this.docURL = docURL;
- return self();
- }
-
- /**
- * @see Version#getId()
- */
- public T id(String id) {
- this.id = id;
- return self();
- }
-
- /**
- * @see Version#getStatus()
- */
- public T status(VersionStatus status) {
- this.status = status;
- return self();
- }
-
- /**
- * @see Version#getWadl()
- */
- public T wadl(String wadl) {
- this.wadl = wadl;
- return self();
- }
-
- public Version build() {
- return new Version(docURL, id, status, wadl);
- }
-
- public T fromVersion(Version in) {
- return this
- .docURL(in.getDocURL())
- .id(in.getId())
- .status(in.getStatus())
- .wadl(in.getWadl());
- }
- }
-
- private static class ConcreteBuilder extends Builder<ConcreteBuilder> {
- @Override
- protected ConcreteBuilder self() {
- return this;
- }
- }
-
- private final String docURL;
- private final String id;
- private final VersionStatus status;
- private final String wadl;
-
- @ConstructorProperties({
- "docURL", "id", "status", "wadl"
- })
- protected Version(String docURL, String id, @Nullable VersionStatus status, @Nullable String wadl) {
- this.docURL = checkNotNull(docURL, "docURL");
- this.id = checkNotNull(id, "id");
- this.status = status == null ? VersionStatus.UNRECOGNIZED : status;
- this.wadl = wadl;
- }
-
- public String getDocURL() {
- return this.docURL;
- }
-
- public String getId() {
- return this.id;
- }
-
- public VersionStatus getStatus() {
- return this.status;
- }
-
- @Nullable
- public String getWadl() {
- return this.wadl;
- }
-
- @Override
- public int hashCode() {
- return Objects.hashCode(docURL, id, status, wadl);
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) return true;
- if (obj == null || getClass() != obj.getClass()) return false;
- Version that = Version.class.cast(obj);
- return Objects.equal(this.docURL, that.docURL)
- && Objects.equal(this.id, that.id)
- && Objects.equal(this.status, that.status)
- && Objects.equal(this.wadl, that.wadl);
- }
-
- protected ToStringHelper string() {
- return Objects.toStringHelper(this)
- .add("docURL", docURL).add("id", id).add("status", status).add("wadl", wadl);
- }
-
- @Override
- public String toString() {
- return string().toString();
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/VersionStatus.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/VersionStatus.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/VersionStatus.java
deleted file mode 100644
index 164dc73..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/VersionStatus.java
+++ /dev/null
@@ -1,35 +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.cloudservers.domain;
-
-public enum VersionStatus {
-
- BETA, CURRENT, DEPRECATED, UNRECOGNIZED;
-
- public String value() {
- return name();
- }
-
- public static VersionStatus fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/WeeklyBackup.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/WeeklyBackup.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/WeeklyBackup.java
deleted file mode 100644
index f629213..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/domain/WeeklyBackup.java
+++ /dev/null
@@ -1,35 +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.cloudservers.domain;
-
-public enum WeeklyBackup {
-
- DISABLED, SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, UNRECOGNIZED;
-
- public String value() {
- return name();
- }
-
- public static WeeklyBackup fromValue(String v) {
- try {
- return valueOf(v);
- } catch (IllegalArgumentException e) {
- return UNRECOGNIZED;
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/jclouds/blob/42cc3ce5/apis/cloudservers/src/main/java/org/jclouds/cloudservers/handlers/ParseCloudServersErrorFromHttpResponse.java
----------------------------------------------------------------------
diff --git a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/handlers/ParseCloudServersErrorFromHttpResponse.java b/apis/cloudservers/src/main/java/org/jclouds/cloudservers/handlers/ParseCloudServersErrorFromHttpResponse.java
deleted file mode 100644
index ab34827..0000000
--- a/apis/cloudservers/src/main/java/org/jclouds/cloudservers/handlers/ParseCloudServersErrorFromHttpResponse.java
+++ /dev/null
@@ -1,93 +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.cloudservers.handlers;
-
-import static org.jclouds.http.HttpUtils.releasePayload;
-
-import java.io.IOException;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-import javax.annotation.Resource;
-
-import org.jclouds.http.HttpCommand;
-import org.jclouds.http.HttpErrorHandler;
-import org.jclouds.http.HttpResponse;
-import org.jclouds.http.HttpResponseException;
-import org.jclouds.logging.Logger;
-import org.jclouds.rest.AuthorizationException;
-import org.jclouds.rest.ResourceNotFoundException;
-import org.jclouds.util.Strings2;
-
-/**
- * This will parse and set an appropriate exception on the command object.
- *
- * @author Adrian Cole
- *
- */
-public class ParseCloudServersErrorFromHttpResponse implements HttpErrorHandler {
- @Resource
- protected Logger logger = Logger.NULL;
- public static final Pattern RESOURCE_PATTERN = Pattern
- .compile("^/v1[^/]*/[0-9]+/([^/]+)/([0-9]+)");
-
- public void handleError(HttpCommand command, HttpResponse response) {
- Exception exception = new HttpResponseException(command, response);
- try {
- String content = parseErrorFromContentOrNull(command, response);
- exception = content != null ? new HttpResponseException(command, response, content) : exception;
- switch (response.getStatusCode()) {
- case 401:
- exception = new AuthorizationException(exception.getMessage(), exception);
- break;
- case 404:
- if (!command.getCurrentRequest().getMethod().equals("DELETE")) {
- String path = command.getCurrentRequest().getEndpoint().getPath();
- Matcher matcher = RESOURCE_PATTERN.matcher(path);
- String message;
- if (matcher.find()) {
- message = String.format("%s %s not found", matcher.group(1), matcher.group(2));
- } else {
- message = path;
- }
- exception = new ResourceNotFoundException(message);
- }
- break;
- case 409:
- exception = new IllegalStateException(content);
- break;
- default:
- exception = new HttpResponseException(command, response, content);
- break;
- }
- } finally {
- releasePayload(response);
- command.setException(exception);
- }
- }
-
- String parseErrorFromContentOrNull(HttpCommand command, HttpResponse response) {
- if (response.getPayload() != null) {
- try {
- return Strings2.toString(response.getPayload());
- } catch (IOException e) {
- logger.warn(e, "exception reading error from response", response);
- }
- }
- return null;
- }
-}