Repository: incubator-taverna-common-activities
Updated Branches:
  refs/heads/docker a87941916 -> a769c05aa


Activity validator class.


Project: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/da7a5454
Tree: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/da7a5454
Diff: 
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/da7a5454

Branch: refs/heads/docker
Commit: da7a5454fd82329cfb5b19c4d48cae3182eca694
Parents: a879419
Author: Nadeesh Dilanga <[email protected]>
Authored: Sun Jul 31 01:25:26 2016 -0400
Committer: Nadeesh Dilanga <[email protected]>
Committed: Sun Jul 31 01:25:26 2016 -0400

----------------------------------------------------------------------
 .../activities/docker/DockerActivity.java       | 14 ++--
 .../activities/docker/ValidationUtil.java       | 77 ++++++++++++++++++++
 2 files changed, 85 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/da7a5454/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
----------------------------------------------------------------------
diff --git 
a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
 
b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
index 4ac2acf..48cb92d 100644
--- 
a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
+++ 
b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivity.java
@@ -205,11 +205,6 @@ public class DockerActivity extends 
AbstractAsynchronousActivity<JsonNode> {
     return out;
     }
 
-    private boolean isStarted(Container container){
-        return  container.getStatus() != null
-                && container.getStatus().startsWith("Up");
-    }
-
     private Container getContainerFromName(RemoteClient remoteClient, String 
containerName){
         List<Container> containerList = remoteClient.listContainers();
         for(Container container : containerList){
@@ -221,6 +216,13 @@ public class DockerActivity extends 
AbstractAsynchronousActivity<JsonNode> {
                 }
             }
         }
-    return null;
+        return null;
+    }
+
+    private boolean isStarted(Container container){
+        return  container.getStatus() != null
+                && container.getStatus().startsWith("Up");
     }
+
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/da7a5454/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
----------------------------------------------------------------------
diff --git 
a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
 
b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
new file mode 100644
index 0000000..6246f33
--- /dev/null
+++ 
b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/ValidationUtil.java
@@ -0,0 +1,77 @@
+package org.apache.taverna.activities.docker;
+
+import com.github.dockerjava.api.model.Container;
+
+import java.util.List;
+
+public class ValidationUtil {
+
+    /**
+     * Validates create container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateCreateContainer(DockerContainerConfiguration 
configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  
getContainerFromName(remoteClient,containerName);
+        return container == null;
+    }
+
+    /**
+     * Validates start container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateStartContainer(DockerContainerConfiguration 
configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  
getContainerFromName(remoteClient,containerName);
+        return !isStarted(container);
+    }
+
+    /**
+     * Validates stop container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateStopContainer(DockerContainerConfiguration 
configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  
getContainerFromName(remoteClient,containerName);
+        return isStarted(container);
+    }
+
+    /**
+     * Validates create container eligibility
+     * @param configuration
+     * @param containerName
+     * @return
+     */
+    public static boolean validateDeleteContainer(DockerContainerConfiguration 
configuration, String containerName){
+        RemoteClient remoteClient = new RemoteClient(configuration);
+        Container container =  
getContainerFromName(remoteClient,containerName);
+        return container != null;
+    }
+
+    private static Container getContainerFromName(RemoteClient remoteClient, 
String containerName){
+        List<Container> containerList = remoteClient.listContainers();
+        for(Container container : containerList){
+            if(container.getNames().length > 0){
+                for(String name : container.getNames()){
+                    if(name.endsWith(containerName)){
+                        return container;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+
+
+    private static boolean isStarted(Container container){
+        return  container.getStatus() != null
+                && container.getStatus().startsWith("Up");
+    }
+
+}

Reply via email to