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

Reply via email to