You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2016/06/27 16:19:34 UTC
[3/4] incubator-taverna-common-activities git commit: Improving test
cases and adding minor code changes based on recent code review feedbacks.
Improving test cases and adding minor code changes based on recent code review feedbacks.
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/003b859a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/003b859a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/003b859a
Branch: refs/heads/docker
Commit: 003b859aef79ccd436dd27c74d333a7ac214d99c
Parents: d4be680
Author: Nadeesh Dilanga <na...@gmail.com>
Authored: Sat Jun 25 02:49:28 2016 -0400
Committer: Nadeesh Dilanga <na...@gmail.com>
Committed: Sat Jun 25 02:49:28 2016 -0400
----------------------------------------------------------------------
taverna-docker-activity/pom.xml | 18 ++--
.../activities/docker/DockerActivity.java | 22 ++---
.../docker/DockerContainerConfiguration.java | 2 +
.../DockerContainerConfigurationImpl.java | 11 +++
.../activities/docker/DockerRemoteConfig.java | 9 --
.../taverna/activities/docker/RemoteClient.java | 11 +--
.../docker/test/DockerActivityTest.java | 95 ++++++++++++++++++++
.../docker/test/TestDockerCommands.java | 18 ++--
8 files changed, 139 insertions(+), 47 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/pom.xml
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/pom.xml b/taverna-docker-activity/pom.xml
index 8a2fc51..515e9bb 100644
--- a/taverna-docker-activity/pom.xml
+++ b/taverna-docker-activity/pom.xml
@@ -92,12 +92,18 @@
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
- <!--<dependency>-->
- <!--<groupId>org.apache.taverna.engine</groupId>-->
- <!--<artifactId>taverna-activity-test-utils</artifactId>-->
- <!--<version>${taverna.engine.version}</version>-->
- <!--<scope>test</scope>-->
- <!--</dependency>-->
+ <dependency>
+ <groupId>org.apache.taverna.engine</groupId>
+ <artifactId>taverna-activity-test-utils</artifactId>
+ <version>${taverna.engine.version}</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion> <!-- declare the exclusion here -->
+ <groupId>com.fasterxml.jackson.jaxrs</groupId>
+ <artifactId>jackson-jaxrs-json-provider</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
<dependency>
<groupId>org.apache.taverna.engine</groupId>
<artifactId>taverna-workflowmodel-impl</artifactId>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/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 aff0115..e31f09f 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
@@ -45,27 +45,27 @@ public class DockerActivity extends AbstractAsynchronousActivity<JsonNode> {
private DockerContainerConfiguration containerConfiguration;
- private static final String ACTION = "action";
+ public static final String ACTION = "action";
- private static final String INSPECT = "inspect";
+ public static final String INSPECT = "inspect";
- private static final String CREATE_CONTAINER = "create-container";
+ public static final String CREATE_CONTAINER = "create-container";
- private static final String START_CONTAINER = "start-container";
+ public static final String START_CONTAINER = "start-container";
- private static final String STOP_CONTAINER = "stop-container";
+ public static final String STOP_CONTAINER = "stop-container";
- private static final String LIST_CONTAINERS = "list-containers";
+ public static final String LIST_CONTAINERS = "list-containers";
- private static final String OUT_CONTAINER_ID = "container-id";
+ public static final String OUT_CONTAINER_ID = "container-id";
- private static final String OUT_IMAGE_ID = "container-id";
+ public static final String OUT_IMAGE_ID = "container-id";
- private static final String OUT_IMAGE_AUTHOR = "image-author";
+ public static final String OUT_IMAGE_AUTHOR = "image-author";
- private static final String OUT_IMAGE_CONTAINER = "image-container";
+ public static final String OUT_IMAGE_CONTAINER = "image-container";
- private static final String IN_IMAGE_NAME = "image-name";
+ public static final String IN_IMAGE_NAME = "image-name";
private static Logger LOG = Logger.getLogger(DockerActivity.class);
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfiguration.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfiguration.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfiguration.java
index 526fdc0..77e5204 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfiguration.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfiguration.java
@@ -26,6 +26,8 @@ public interface DockerContainerConfiguration {
public String getCmd();
+ public DockerRemoteConfig getDockerRemoteConfig();
+
//TODO add all remaining getters
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfigurationImpl.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfigurationImpl.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfigurationImpl.java
index 0f3380c..dc335ff 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfigurationImpl.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerContainerConfigurationImpl.java
@@ -122,6 +122,9 @@ public class DockerContainerConfigurationImpl extends AbstractConfigurable impl
public static final String NETWORKING_CONFIG = "networkingConfig";
+ private DockerRemoteConfig dockerRemoteConfig;
+
+
public DockerContainerConfigurationImpl(ConfigurationManager configurationManager){
super(configurationManager);
}
@@ -130,6 +133,14 @@ public class DockerContainerConfigurationImpl extends AbstractConfigurable impl
super(null);
}
+ public DockerRemoteConfig getDockerRemoteConfig() {
+ return dockerRemoteConfig;
+ }
+
+ public void setDockerRemoteConfig(DockerRemoteConfig dockerRemoteConfig) {
+ this.dockerRemoteConfig = dockerRemoteConfig;
+ }
+
public String getName() {
return this.getInternalPropertyMap().get(NAME);
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerRemoteConfig.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerRemoteConfig.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerRemoteConfig.java
index 3999253..8ab0eda 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerRemoteConfig.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/DockerRemoteConfig.java
@@ -25,7 +25,6 @@ public class DockerRemoteConfig {
private String registryPassword;
private String registryEmail;
private String registryUrl;
- private String dockerConfig;
private String dockerCertPath;
private boolean dockerTlsVerify;
private String apiVersion = "1.21";
@@ -70,14 +69,6 @@ public class DockerRemoteConfig {
this.registryUrl = registryUrl;
}
- public String getDockerConfig() {
- return dockerConfig;
- }
-
- public void setDockerConfig(String dockerConfig) {
- this.dockerConfig = dockerConfig;
- }
-
public String getDockerCertPath() {
return dockerCertPath;
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/RemoteClient.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/RemoteClient.java b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/RemoteClient.java
index 3c7c030..2f1d4c3 100644
--- a/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/RemoteClient.java
+++ b/taverna-docker-activity/src/main/java/org/apache/taverna/activities/docker/RemoteClient.java
@@ -50,13 +50,10 @@ public class RemoteClient {
public RemoteClient(DockerContainerConfiguration containerConfig) {
this.containerConfig = containerConfig;
+ init(containerConfig.getDockerRemoteConfig());
}
- public DockerRemoteConfig getRemoteConfig() {
- return remoteConfig;
- }
-
- public void init(DockerRemoteConfig remoteConfig) {
+ private void init(DockerRemoteConfig remoteConfig) {
this.remoteConfig = remoteConfig;
DockerClientConfig config = config();
dockerClient = DockerClientBuilder.getInstance(config).build();
@@ -141,10 +138,6 @@ public class RemoteClient {
builder.withDockerCertPath(remoteConfig.getDockerCertPath());
}
- if(remoteConfig.getDockerConfig() != null){
- builder.withDockerConfig(remoteConfig.getDockerConfig());
- }
-
if(remoteConfig.getRegistryUrl() != null){
builder.withRegistryUrl(remoteConfig.getRegistryUrl());
}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/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
new file mode 100755
index 0000000..4759e4c
--- /dev/null
+++ b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/DockerActivityTest.java
@@ -0,0 +1,95 @@
+/*
+* Licensed to the Apache Software Foundation (ASF) under one
+* or more contributor license agreements. See the NOTICE file
+* distributed with this work for additional information
+* regarding copyright ownership. The ASF licenses this file
+* to you under the Apache License, Version 2.0 (the
+* "License"); you may not use this file except in compliance
+* with the License. You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing,
+* software distributed under the License is distributed on an
+* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+* KIND, either express or implied. See the License for the
+* specific language governing permissions and limitations
+* under the License.
+*/
+
+package org.apache.taverna.activities.docker.test;
+
+import com.fasterxml.jackson.databind.node.JsonNodeFactory;
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import org.apache.taverna.activities.docker.DockerActivity;
+import org.apache.taverna.activities.docker.DockerContainerConfiguration;
+import org.apache.taverna.activities.docker.DockerContainerConfigurationImpl;
+import org.apache.taverna.activities.docker.DockerRemoteConfig;
+import org.apache.taverna.activities.testutils.ActivityInvoker;
+import org.apache.taverna.reference.T2Reference;
+import org.apache.taverna.workflowmodel.AbstractPort;
+import org.apache.taverna.workflowmodel.Edits;
+import org.apache.taverna.workflowmodel.impl.EditsImpl;
+import org.apache.taverna.workflowmodel.processor.activity.impl.ActivityInputPortImpl;
+import org.apache.taverna.workflowmodel.processor.activity.impl.ActivityOutputPortImpl;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.File;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+public class DockerActivityTest {
+
+ private static final String IMAGE_NAME = "training/webapp";
+
+ private static final String CONTAINER_NAME = "test-container";
+
+ private ObjectNode activityConfiguration;
+
+ private DockerContainerConfigurationImpl containerConfiguration;
+
+ @Before
+ public void setup() throws Exception {
+ activityConfiguration = JsonNodeFactory.instance.objectNode();
+
+ containerConfiguration = new DockerContainerConfigurationImpl(new TestConfigurationManager());
+ containerConfiguration.getInternalPropertyMap().put(DockerContainerConfigurationImpl.NAME, CONTAINER_NAME);
+ containerConfiguration.getInternalPropertyMap().put(DockerContainerConfigurationImpl.IMAGE,IMAGE_NAME);
+ containerConfiguration.getInternalPropertyMap().put(DockerContainerConfigurationImpl.CMD,"env");
+
+ DockerRemoteConfig remoteConfig = new DockerRemoteConfig();
+ remoteConfig.setDockerHost("tcp://192.168.99.100:2376");
+ remoteConfig.setApiVersion("1.21");
+ remoteConfig.setDockerTlsVerify(true);
+
+ // You need to copy your valid certificate file to resources directory in this test module as follows.
+ remoteConfig.setDockerCertPath(new File("src/test/resources/cert").getAbsolutePath());
+ remoteConfig.setRegistryUrl("https://registry-1.docker.io/v2");
+ containerConfiguration.setDockerRemoteConfig(remoteConfig);
+
+ }
+
+ /**
+ * Tests a simple script (String output = input + "_returned") to ensure the script is invoked correctly.
+ * @throws Exception
+ */
+ @Test
+ public void testInspectImage() throws Exception {
+ DockerActivity activity = new DockerActivity(containerConfiguration);
+ activity.configure(activityConfiguration);
+
+ Map<String,Object> inputs = new HashMap<String,Object>();
+ inputs.put(DockerActivity.ACTION, DockerActivity.INSPECT);
+ inputs.put(DockerActivity.IN_IMAGE_NAME, IMAGE_NAME);
+
+ Map<String, Class<?>> expectedOutputs = new HashMap<String, Class<?>>();
+ expectedOutputs.put("response_body", T2Reference.class);
+
+ Map<String,Object> outputs = ActivityInvoker.invokeAsyncActivity(activity, inputs, expectedOutputs);
+ System.out.println(outputs.size());
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/003b859a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/TestDockerCommands.java
----------------------------------------------------------------------
diff --git a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/TestDockerCommands.java b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/TestDockerCommands.java
index 5f44e2b..0bbb612 100644
--- a/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/TestDockerCommands.java
+++ b/taverna-docker-activity/src/test/java/org/apache/taverna/activities/docker/test/TestDockerCommands.java
@@ -27,6 +27,7 @@ import org.apache.taverna.activities.docker.RemoteClient;
import org.junit.Assert;
import org.junit.Test;
+import java.io.File;
import java.util.List;
public class TestDockerCommands {
@@ -39,14 +40,6 @@ public class TestDockerCommands {
private static final String DOCKER_LOGIN_SUCCESS = "Login Succeeded";
- public static void main(String[] args) {
- TestDockerCommands commands = new TestDockerCommands();
- commands.testLogin();
-// commands.testInspectImage();
- commands.testListContainers();
-// commands.testCreateContainer();
- }
-
public TestDockerCommands(){
DockerContainerConfigurationImpl containerConfiguration = new DockerContainerConfigurationImpl(new TestConfigurationManager());
containerConfiguration.getInternalPropertyMap().put(DockerContainerConfigurationImpl.NAME,CONTAINER_NAME);
@@ -57,11 +50,12 @@ public class TestDockerCommands {
remoteConfig.setDockerHost("tcp://192.168.99.100:2376");
remoteConfig.setApiVersion("1.21");
remoteConfig.setDockerTlsVerify(true);
- remoteConfig.setDockerCertPath("/Users/Nadeesh/Documents/docker/");
- remoteConfig.setDockerConfig("/home/user/.docker");
- remoteConfig.setRegistryUrl("https://registry-1.docker.io/v2/library/busybox/manifests/latest");
+
+ // You need to copy your valid certificate file to resources directory in this test module as follows.
+ remoteConfig.setDockerCertPath(new File("src/test/resources/cert").getAbsolutePath());
+ remoteConfig.setRegistryUrl("https://registry-1.docker.io/v2");
+ containerConfiguration.setDockerRemoteConfig(remoteConfig);
remoteClient = new RemoteClient(containerConfiguration);
- remoteClient.init(remoteConfig);
}
@Test