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"); + } + +}
