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();
}
/**