Stubrenderer Update
[transportpce.git] / tests / stubrenderer / src / main / java / org / opendaylight / transportpce / stubrenderer / SendingRendererRPCs.java
index 8f17cc0d6980cd2a3c1c195b8c62e73d08a1ffc5..c7f587c7fe00e52a63c3b57c0edd13098dda2690 100644 (file)
@@ -8,8 +8,12 @@
 
 package org.opendaylight.transportpce.stubrenderer;
 
+import com.google.common.util.concurrent.ListenableFuture;
+import com.google.common.util.concurrent.ListeningExecutorService;
+
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.Callable;
 
 import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.service.TopologyBuilder;
 import org.opendaylight.yang.gen.v1.http.org.openroadm.topology.rev161014.topology.AToZ;
@@ -18,27 +22,32 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- * Class for Sending Renderer requests :
+ *Class for Sending
+ * Renderer requests :
  * - Service-implementation-request
  * - Service-delete-request.
  * @author Martial Coulibaly ( martial.coulibaly@gfi.com ) on behalf of Orange
  *
  */
 public class SendingRendererRPCs {
-    /* Logging. */
+    /** Logging. */
     private static final Logger LOG = LoggerFactory.getLogger(SendingRendererRPCs.class);
-    /* define procedure success (or not ). */
+    /** define procedure success (or not ). */
     private Boolean success;
-    /* define type of request<br>
+    /** define type of request<br>
      * <code>true</code> pathcomputation <br>
      * <code>false</code> cancelresourcereserve. */
     private TopologyBuilder topology;
     private List<AToZ> atoz;
     private List<ZToA> ztoa;
+    private String error;
+    private final ListeningExecutorService executor;
 
-    public SendingRendererRPCs() {
+    public SendingRendererRPCs(ListeningExecutorService executor) {
         success = true;
         setTopology(null);
+        this.executor = executor;
+        setError("");
     }
 
     private void buildAtoZ() {
@@ -49,30 +58,52 @@ public class SendingRendererRPCs {
         ztoa = new ArrayList<ZToA>();
     }
 
-    public void serviceDelete() {
-        LOG.info("Wait for 10s til beginning the Renderer ServiceDelete request");
-        try {
-            Thread.sleep(10000); //sleep for 10s
-        } catch (InterruptedException e) {
-            LOG.error(e.toString());
-        }
-        LOG.info("ServiceDelete ...");
+    public ListenableFuture<Boolean> serviceDelete() {
+        LOG.info("ServiceDelete request ...");
+        success = false;
+        return executor.submit(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                Boolean output = true;
+                LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
+                try {
+                    Thread.sleep(10000); //sleep for 10s
+                } catch (InterruptedException e) {
+                    output = false;
+                    LOG.error(e.toString());
+                }
+                buildAtoZ();
+                buildZtoA();
+                success = true;
+                return output;
+            }
+        });
     }
 
-    public void serviceImplementation() {
-        LOG.info("Wait for 10s til beginning the Renderer serviceImplementation request");
-        try {
-            Thread.sleep(10000); //sleep for 10s
-        } catch (InterruptedException e) {
-            LOG.error(e.toString());
-        }
-        LOG.info("serviceImplementation ...");
-        buildAtoZ();
-        buildZtoA();
-
-        setTopology(new TopologyBuilder()
-            .setAToZ(atoz)
-            .setZToA(ztoa));
+    public ListenableFuture<Boolean> serviceImplementation() {
+        LOG.info("serviceImplementation request ...");
+        success = false;
+        return executor.submit(new Callable<Boolean>() {
+            @Override
+            public Boolean call() throws Exception {
+                Boolean output = true;
+                LOG.info("Wait for 10s til beginning the Renderer serviceDelete request");
+                try {
+                    Thread.sleep(10000); //sleep for 10s
+                } catch (InterruptedException e) {
+                    output = false;
+                    LOG.error(e.toString());
+                }
+                buildAtoZ();
+                buildZtoA();
+                setTopology(new TopologyBuilder()
+                        .setAToZ(atoz)
+                        .setZToA(ztoa));
+                output = true;
+                success = true;
+                return output;
+            }
+        });
     }
 
     public Boolean getSuccess() {
@@ -90,4 +121,12 @@ public class SendingRendererRPCs {
     public void setTopology(TopologyBuilder topo) {
         this.topology = topo;
     }
+
+    public String getError() {
+        return error;
+    }
+
+    public void setError(String error) {
+        this.error = error;
+    }
 }