Repository: jclouds-labs Updated Branches: refs/heads/2.1.x b8ab3758d -> 6b4aa2c85
JCLOUDS-1457 - Add Clean Server operation to ServerApi. Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/6b4aa2c8 Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/6b4aa2c8 Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/6b4aa2c8 Branch: refs/heads/2.1.x Commit: 6b4aa2c85c45587d2e4a8848e5a85a0b9dc8a89d Parents: b8ab375 Author: Trevor Flanagan <[email protected]> Authored: Thu Oct 18 10:50:27 2018 +0100 Committer: Ignasi Barrera <[email protected]> Committed: Thu Oct 18 11:58:25 2018 +0200 ---------------------------------------------------------------------- .../dimensiondata/cloudcontrol/domain/State.java | 2 +- .../jclouds/dimensiondata/cloudcontrol/domain/Vlan.java | 2 ++ .../dimensiondata/cloudcontrol/features/ServerApi.java | 12 ++++++++++++ .../cloudcontrol/features/ServerApiMockTest.java | 8 ++++++++ dimensiondata/src/test/resources/cleanServer.json | 9 +++++++++ 5 files changed, 32 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6b4aa2c8/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/State.java ---------------------------------------------------------------------- diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/State.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/State.java index cece134..9e7255c 100644 --- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/State.java +++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/State.java @@ -22,7 +22,7 @@ import static com.google.common.base.Preconditions.checkNotNull; public enum State { - NORMAL, FAILED_ADD, FAILED_CHANGE, FAILED_DELETE, PENDING_DELETE, DELETED, UNRECOGNIZED, PENDING_CHANGE; + NORMAL, FAILED_ADD, FAILED_CHANGE, FAILED_DELETE, PENDING_DELETE, DELETED, UNRECOGNIZED, PENDING_CHANGE, PENDING_CLEAN, REQUIRES_SUPPORT; @Override public String toString() { http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6b4aa2c8/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java ---------------------------------------------------------------------- diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java index 4e40beb..867a528 100644 --- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java +++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java @@ -17,6 +17,7 @@ package org.jclouds.dimensiondata.cloudcontrol.domain; import com.google.auto.value.AutoValue; +import org.jclouds.javax.annotation.Nullable; import org.jclouds.json.SerializedNames; import java.util.Date; @@ -35,6 +36,7 @@ public abstract class Vlan { public abstract String name(); + @Nullable public abstract String description(); public abstract String datacenterId(); http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6b4aa2c8/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java ---------------------------------------------------------------------- diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java index 6338258..7c0cd1b 100644 --- a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java +++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApi.java @@ -152,6 +152,18 @@ public interface ServerApi { @MapBinder(BindToJsonPayload.class) void startServer(@PayloadParam("id") String id); + /** + * Operation for cleaning servers with FAILED_ADD state + * + * @see org.jclouds.dimensiondata.cloudcontrol.domain.State.FAILED_ADD + */ + @Named("server:cleanServer") + @POST + @Path("/cleanServer") + @Produces(MediaType.APPLICATION_JSON) + @MapBinder(BindToJsonPayload.class) + void cleanServer(@PayloadParam("id") String id); + @Named("server:shutdown") @POST @Path("/shutdownServer") http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6b4aa2c8/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiMockTest.java ---------------------------------------------------------------------- diff --git a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiMockTest.java b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiMockTest.java index e396139..ad7e1e5 100644 --- a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiMockTest.java +++ b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/features/ServerApiMockTest.java @@ -196,6 +196,14 @@ public class ServerApiMockTest extends BaseAccountAwareCloudControlMockTest { assertBodyContains(recordedRequest, "{\"id\":\"12345\"}"); } + public void testCleanServer() throws Exception { + server.enqueue(jsonResponse("/cleanServer.json")); + serverApi().cleanServer("12345"); + final RecordedRequest recordedRequest = assertSent(POST, + "/caas/2.4/6ac1e746-b1ea-4da5-a24e-caf1a978789d/server/cleanServer"); + assertBodyContains(recordedRequest, "{\"id\":\"12345\"}"); + } + private ServerApi serverApi() { return api.getServerApi(); } http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/6b4aa2c8/dimensiondata/src/test/resources/cleanServer.json ---------------------------------------------------------------------- diff --git a/dimensiondata/src/test/resources/cleanServer.json b/dimensiondata/src/test/resources/cleanServer.json new file mode 100644 index 0000000..bcfae07 --- /dev/null +++ b/dimensiondata/src/test/resources/cleanServer.json @@ -0,0 +1,9 @@ +{ + "operation": "CLEAN_SERVER", + "responseCode": "IN_PROGRESS", + "message": "Request to Clean Server has been accepted. Please use appropriate Get or List API for status.", + "info": [], + "warning": [], + "error": [], + "requestId": "na9_20160321T074626030-0400_7e9fffe7-190b-46f2-9107-9d52fe57d0ad" +} \ No newline at end of file
