You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by al...@apache.org on 2016/08/21 16:53:39 UTC

[1/4] incubator-taverna-common-activities git commit: Activity validator class.

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 <na...@gmail.com>
Authored: Sun Jul 31 01:25:26 2016 -0400
Committer: Nadeesh Dilanga <na...@gmail.com>
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");
+    }
+
+}


[3/4] incubator-taverna-common-activities git commit: Adding proper health check messages.

Posted by al...@apache.org.
Adding proper health check messages.


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/8d0f8beb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/8d0f8beb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/8d0f8beb

Branch: refs/heads/docker
Commit: 8d0f8bebc54c11c364c6390317395c9b645a49c0
Parents: fe2de44
Author: Nadeesh Dilanga <na...@gmail.com>
Authored: Sun Aug 14 18:27:13 2016 -0400
Committer: Nadeesh Dilanga <na...@gmail.com>
Committed: Sun Aug 14 18:27:13 2016 -0400

----------------------------------------------------------------------
 .../taverna/activities/docker/DockerActivityHealthChecker.java  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/8d0f8beb/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
index 7d23840..aab03ec 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
@@ -29,14 +29,15 @@ public class DockerActivityHealthChecker implements HealthChecker<Object> {
                     HealthCheck.NO_PROBLEM, VisitReport.Status.OK));
         } else {
             reports.add(new VisitReport(HealthCheck.getInstance(), activity,
-                    "REST Activity - bad configuration",
+                    "Docker container creation health check failed. " +
+                            "A container with name " + containerName + " already exists.",
                     HealthCheck.INVALID_CONFIGURATION, VisitReport.Status.SEVERE));
         }
 
         // collection all reports together
         VisitReport.Status worstStatus = VisitReport.getWorstStatus(reports);
         VisitReport report = new VisitReport(HealthCheck.getInstance(), activity,
-                "REST Activity Report", HealthCheck.NO_PROBLEM, worstStatus, reports);
+                "Docker Activity Health Report", HealthCheck.NO_PROBLEM, worstStatus, reports);
 
         return report;
     }


[4/4] incubator-taverna-common-activities git commit: Merge branch 'pullrequest' into docker

Posted by al...@apache.org.
Merge branch 'pullrequest' into docker


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/a769c05a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/a769c05a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/a769c05a

Branch: refs/heads/docker
Commit: a769c05aa031cb90bc42059a1e42110ec81a83fd
Parents: a879419 8d0f8be
Author: mbassarw <al...@manchester.ac.uk>
Authored: Sun Aug 21 17:52:25 2016 +0100
Committer: mbassarw <al...@manchester.ac.uk>
Committed: Sun Aug 21 17:52:25 2016 +0100

----------------------------------------------------------------------
 .../activities/docker/DockerActivity.java       | 18 +++--
 .../docker/DockerActivityHealthChecker.java     | 49 +++++++++++++
 .../activities/docker/ValidationUtil.java       | 77 ++++++++++++++++++++
 .../spring/docker-activity-context-osgi.xml     |  1 +
 .../META-INF/spring/docker-activity-context.xml |  2 +
 .../docker/test/DockerActivityTest.java         | 12 +--
 6 files changed, 147 insertions(+), 12 deletions(-)
----------------------------------------------------------------------



[2/4] incubator-taverna-common-activities git commit: Docker activity plugin health check support.

Posted by al...@apache.org.
Docker activity plugin health check support.


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/fe2de44f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/fe2de44f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/fe2de44f

Branch: refs/heads/docker
Commit: fe2de44f6958ea077a64292d2cabdeebe59c4ac3
Parents: da7a545
Author: Nadeesh Dilanga <na...@gmail.com>
Authored: Tue Aug 9 21:26:31 2016 -0400
Committer: Nadeesh Dilanga <na...@gmail.com>
Committed: Tue Aug 9 21:26:31 2016 -0400

----------------------------------------------------------------------
 .../activities/docker/DockerActivity.java       |  4 ++
 .../docker/DockerActivityHealthChecker.java     | 48 ++++++++++++++++++++
 .../spring/docker-activity-context-osgi.xml     |  1 +
 .../META-INF/spring/docker-activity-context.xml |  2 +
 .../docker/test/DockerActivityTest.java         | 12 ++---
 5 files changed, 61 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/fe2de44f/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 48cb92d..0562a0b 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
@@ -189,6 +189,10 @@ public class DockerActivity extends AbstractAsynchronousActivity<JsonNode> {
     }
 
 
+    public DockerContainerConfiguration getContainerConfiguration() {
+        return containerConfiguration;
+    }
+
     private String getRenderedParam(ReferenceService referenceService, InvocationContext context, T2Reference key) {
         return (String) referenceService.renderIdentifier(key, String.class, context);
 

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/fe2de44f/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
new file mode 100644
index 0000000..7d23840
--- /dev/null
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerActivityHealthChecker.java
@@ -0,0 +1,48 @@
+package org.apache.taverna.activities.docker;
+
+import org.apache.taverna.visit.VisitReport;
+import org.apache.taverna.workflowmodel.health.HealthCheck;
+import org.apache.taverna.workflowmodel.health.HealthChecker;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class DockerActivityHealthChecker implements HealthChecker<Object> {
+
+    @Override
+    public boolean canVisit(Object o) {
+        return o instanceof DockerActivity;
+    }
+
+    @Override
+    public VisitReport visit(Object o, List<Object> list) {
+        DockerActivity activity = (DockerActivity) o;
+        DockerContainerConfiguration contCfg = activity.getContainerConfiguration();
+        String containerName = contCfg.getName();
+        boolean createValid = ValidationUtil.validateCreateContainer(contCfg, containerName);
+
+        List<VisitReport> reports = new ArrayList<VisitReport>();
+
+        if (createValid) {
+            reports.add(new VisitReport(HealthCheck.getInstance(), activity,
+                    "Docker create container operation is healthy",
+                    HealthCheck.NO_PROBLEM, VisitReport.Status.OK));
+        } else {
+            reports.add(new VisitReport(HealthCheck.getInstance(), activity,
+                    "REST Activity - bad configuration",
+                    HealthCheck.INVALID_CONFIGURATION, VisitReport.Status.SEVERE));
+        }
+
+        // collection all reports together
+        VisitReport.Status worstStatus = VisitReport.getWorstStatus(reports);
+        VisitReport report = new VisitReport(HealthCheck.getInstance(), activity,
+                "REST Activity Report", HealthCheck.NO_PROBLEM, worstStatus, reports);
+
+        return report;
+    }
+
+    @Override
+    public boolean isTimeConsuming() {
+        return false;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/fe2de44f/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
index 6875bfb..69540e7 100755
--- a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
+++ b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context-osgi.xml
@@ -25,5 +25,6 @@
                       http://www.springframework.org/schema/osgi/spring-osgi.xsd">
 
     <reference id="configurationManager" interface="org.apache.taverna.configuration.ConfigurationManager" />
+    <service ref="dockerActivityHealthChecker" interface="org.apache.taverna.workflowmodel.health.HealthChecker" />
 
 </beans:beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/fe2de44f/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
index c3bb871..90d99eb 100755
--- a/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
+++ b/taverna-docker-activity/src/main/resources/META-INF/spring/docker-activity-context.xml
@@ -26,4 +26,6 @@
         <constructor-arg name="configurationManager" ref="configurationManager" />
     </bean>
 
+    <bean id="dockerActivityHealthChecker" class="org.apache.taverna.activities.docker.DockerActivityHealthChecker" />
+
 </beans>

http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/fe2de44f/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
index 751c247..8d69092 100755
--- a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
+++ b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
@@ -52,7 +52,7 @@ public class DockerActivityTest {
     public static final String DOCKER_REGISTRY = "https://registry-1.docker.io/v2";
 
     public static void main(String[] args) throws Exception {
-    DockerActivityTest activityTest = new DockerActivityTest();
+        DockerActivityTest activityTest = new DockerActivityTest();
         activityTest.setup();
         activityTest.testAll();
     }
@@ -81,12 +81,12 @@ public class DockerActivityTest {
 
     @Test
     public void testAll() throws Exception {
-//        testCreateContainer();
+        testCreateContainer();
         testInspectImage();
-//        testListContainers();
-//        testStartContainer();
-//        testStopContainer();
-//        testDeleteContainer();
+        testListContainers();
+        testStartContainer();
+        testStopContainer();
+        testDeleteContainer();
     }
 
     /**