t2-server 0.9.1 → 0.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES.rdoc +17 -0
- data/README.rdoc +32 -13
- data/bin/t2-run-workflow +10 -7
- data/bin/t2-server-info +4 -4
- data/lib/t2-server.rb +2 -0
- data/lib/t2-server/admin.rb +17 -15
- data/lib/t2-server/exceptions.rb +10 -0
- data/lib/t2-server/net/connection.rb +60 -120
- data/lib/t2-server/net/parameters.rb +4 -0
- data/lib/t2-server/port.rb +3 -3
- data/lib/t2-server/run.rb +125 -151
- data/lib/t2-server/server.rb +130 -161
- data/lib/t2-server/util.rb +39 -0
- data/t2-server.gemspec +1 -1
- data/test/tc_admin.rb +5 -2
- data/test/tc_run.rb +11 -0
- data/test/tc_server.rb +2 -2
- data/test/tc_util.rb +44 -0
- data/test/ts_t2server.rb +1 -0
- data/test/workflows/no-ports.t2flow +76 -0
- data/version.yml +1 -1
- metadata +3 -2
data/t2-server.gemspec
CHANGED
data/test/tc_admin.rb
CHANGED
@@ -37,14 +37,17 @@ class TestAdmin < Test::Unit::TestCase
|
|
37
37
|
def test_admin
|
38
38
|
T2Server::Server.new($uri, $conn_params) do |server|
|
39
39
|
|
40
|
-
#
|
40
|
+
# Test for a user that we know isn't configured on the server.
|
41
41
|
assert_raise(T2Server::AuthorizationError) do
|
42
42
|
server.administrator(T2Server::HttpBasic.new("u", "p"))
|
43
43
|
end
|
44
44
|
|
45
|
+
# Test for a user that is in the system but may or may not be a
|
46
|
+
# superuser. If the user is not a superuser then don't perform any more
|
47
|
+
# tests on the admin resource.
|
45
48
|
begin
|
46
49
|
server.administrator($creds)
|
47
|
-
rescue T2Server::
|
50
|
+
rescue T2Server::AccessForbiddenError => e
|
48
51
|
# ignore, just don't run more tests
|
49
52
|
return
|
50
53
|
end
|
data/test/tc_run.rb
CHANGED
@@ -79,6 +79,17 @@ class TestRun < Test::Unit::TestCase
|
|
79
79
|
end
|
80
80
|
end
|
81
81
|
|
82
|
+
# Test run with no input or output
|
83
|
+
def test_run_no_ports
|
84
|
+
T2Server::Run.create($uri, $wkf_no_io, $creds, $conn_params) do |run|
|
85
|
+
assert_nothing_raised { run.input_ports }
|
86
|
+
assert_nothing_raised { run.start }
|
87
|
+
assert(run.running?)
|
88
|
+
run.wait
|
89
|
+
assert_nothing_raised { run.output_ports }
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
82
93
|
# Test run with list inputs
|
83
94
|
def test_run_list_input
|
84
95
|
T2Server::Run.create($uri, $wkf_lists, $creds, $conn_params) do |run|
|
data/test/tc_server.rb
CHANGED
@@ -40,11 +40,11 @@ class TestServer < Test::Unit::TestCase
|
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
43
|
+
def test_run_creation
|
44
44
|
T2Server::Server.new($uri, $conn_params) do |server|
|
45
45
|
assert_nothing_raised(T2Server::T2ServerError) do
|
46
46
|
run = server.create_run($wkf_pass, $creds)
|
47
|
-
|
47
|
+
run.delete
|
48
48
|
end
|
49
49
|
end
|
50
50
|
end
|
data/test/tc_util.rb
CHANGED
@@ -72,3 +72,47 @@ class TestUriStripping < Test::Unit::TestCase
|
|
72
72
|
assert_equal(username, r_creds.username)
|
73
73
|
end
|
74
74
|
end
|
75
|
+
|
76
|
+
class TestUriPathAppending < Test::Unit::TestCase
|
77
|
+
def test_append
|
78
|
+
original = URI.parse("http://www.example.com:8080/old")
|
79
|
+
original_copy = URI.parse("http://www.example.com:8080/old")
|
80
|
+
extra_path = "new/bit"
|
81
|
+
blank_path = ""
|
82
|
+
appended = URI.parse("http://www.example.com:8080/old/new/bit")
|
83
|
+
|
84
|
+
# Prove it works.
|
85
|
+
assert_equal(appended, T2Server::Util.append_to_uri_path(original, extra_path))
|
86
|
+
assert_equal(original, T2Server::Util.append_to_uri_path(original, blank_path))
|
87
|
+
|
88
|
+
# Make sure the original is not changed!
|
89
|
+
assert_equal(original, original_copy)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
class TestUriPathReplacement < Test::Unit::TestCase
|
94
|
+
def test_replace
|
95
|
+
original = URI.parse("http://www.example.com:8080/old/path")
|
96
|
+
original_copy = URI.parse("http://www.example.com:8080/old/path")
|
97
|
+
new_path = "/new/path"
|
98
|
+
replaced = URI.parse("http://www.example.com:8080/new/path")
|
99
|
+
|
100
|
+
# Prove it works.
|
101
|
+
assert_equal(replaced, T2Server::Util.replace_uri_path(original, new_path))
|
102
|
+
|
103
|
+
# Make sure the original is not changed!
|
104
|
+
assert_equal(original, original_copy)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
class TestGetUriPathLeaf < Test::Unit::TestCase
|
109
|
+
def test_get_leaf
|
110
|
+
uri1 = URI.parse("http://www.example.com:8080/old/path")
|
111
|
+
uri2 = URI.parse("http://www.example.com:8080/")
|
112
|
+
uri3 = URI.parse("http://www.example.com:8080")
|
113
|
+
|
114
|
+
assert_equal("path", T2Server::Util.get_path_leaf_from_uri(uri1))
|
115
|
+
assert_equal("", T2Server::Util.get_path_leaf_from_uri(uri2))
|
116
|
+
assert_equal("", T2Server::Util.get_path_leaf_from_uri(uri3))
|
117
|
+
end
|
118
|
+
end
|
data/test/ts_t2server.rb
CHANGED
@@ -84,6 +84,7 @@ if address != ""
|
|
84
84
|
$wkf_xml = File.read("test/workflows/xml_xpath.t2flow")
|
85
85
|
$wkf_fail = File.read("test/workflows/always_fail.t2flow")
|
86
86
|
$wkf_errors = File.read("test/workflows/list_with_errors.t2flow")
|
87
|
+
$wkf_no_io = File.read("test/workflows/no-ports.t2flow")
|
87
88
|
$list_input = "test/workflows/empty_list_input.baclava"
|
88
89
|
$file_input = "test/workflows/in.txt"
|
89
90
|
$file_strs = "test/workflows/strings.txt"
|
@@ -0,0 +1,76 @@
|
|
1
|
+
<workflow xmlns="http://taverna.sf.net/2008/xml/t2flow" version="1" producedBy="taverna-2.4.0"><dataflow id="e304f436-2871-4ca7-b03d-bf4aaaddf81e" role="top"><name>Workflow1</name><inputPorts /><outputPorts /><processors><processor><name>Concatenate_two_strings</name><inputPorts><port><name>string1</name><depth>0</depth></port><port><name>string2</name><depth>0</depth></port></inputPorts><outputPorts /><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>localworker-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.localworker.LocalworkerActivity</class><inputMap><map from="string2" to="string2" /><map from="string1" to="string1" /></inputMap><outputMap /><configBean encoding="xstream"><net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean xmlns="">
|
2
|
+
<inputs>
|
3
|
+
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
4
|
+
<name>string1</name>
|
5
|
+
<depth>0</depth>
|
6
|
+
<mimeTypes>
|
7
|
+
<string>'text/plain'</string>
|
8
|
+
</mimeTypes>
|
9
|
+
<handledReferenceSchemes />
|
10
|
+
<translatedElementType>java.lang.String</translatedElementType>
|
11
|
+
<allowsLiteralValues>true</allowsLiteralValues>
|
12
|
+
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
13
|
+
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
14
|
+
<name>string2</name>
|
15
|
+
<depth>0</depth>
|
16
|
+
<mimeTypes>
|
17
|
+
<string>'text/plain'</string>
|
18
|
+
</mimeTypes>
|
19
|
+
<handledReferenceSchemes />
|
20
|
+
<translatedElementType>java.lang.String</translatedElementType>
|
21
|
+
<allowsLiteralValues>true</allowsLiteralValues>
|
22
|
+
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityInputPortDefinitionBean>
|
23
|
+
</inputs>
|
24
|
+
<outputs>
|
25
|
+
<net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
26
|
+
<name>output</name>
|
27
|
+
<depth>0</depth>
|
28
|
+
<mimeTypes>
|
29
|
+
<string>'text/plain'</string>
|
30
|
+
</mimeTypes>
|
31
|
+
<granularDepth>0</granularDepth>
|
32
|
+
</net.sf.taverna.t2.workflowmodel.processor.activity.config.ActivityOutputPortDefinitionBean>
|
33
|
+
</outputs>
|
34
|
+
<classLoaderSharing>workflow</classLoaderSharing>
|
35
|
+
<localDependencies />
|
36
|
+
<artifactDependencies />
|
37
|
+
<script>output = string1 + string2;</script>
|
38
|
+
<dependencies />
|
39
|
+
<localworkerName>org.embl.ebi.escience.scuflworkers.java.StringConcat</localworkerName>
|
40
|
+
</net.sf.taverna.t2.activities.localworker.LocalworkerActivityConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
|
41
|
+
<maxJobs>1</maxJobs>
|
42
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
|
43
|
+
<backoffFactor>1.0</backoffFactor>
|
44
|
+
<initialDelay>1000</initialDelay>
|
45
|
+
<maxDelay>5000</maxDelay>
|
46
|
+
<maxRetries>0</maxRetries>
|
47
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy><cross><port name="string1" depth="0" /><port name="string2" depth="0" /></cross></strategy></iteration></iterationStrategyStack></processor><processor><name>Text_constant</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
|
48
|
+
<value>Test</value>
|
49
|
+
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
|
50
|
+
<maxJobs>1</maxJobs>
|
51
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
|
52
|
+
<backoffFactor>1.0</backoffFactor>
|
53
|
+
<initialDelay>1000</initialDelay>
|
54
|
+
<maxDelay>5000</maxDelay>
|
55
|
+
<maxRetries>0</maxRetries>
|
56
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor><processor><name>string2_value</name><inputPorts /><outputPorts><port><name>value</name><depth>0</depth><granularDepth>0</granularDepth></port></outputPorts><annotations /><activities><activity><raven><group>net.sf.taverna.t2.activities</group><artifact>stringconstant-activity</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.activities.stringconstant.StringConstantActivity</class><inputMap /><outputMap><map from="value" to="value" /></outputMap><configBean encoding="xstream"><net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean xmlns="">
|
57
|
+
<value>silly</value>
|
58
|
+
</net.sf.taverna.t2.activities.stringconstant.StringConstantConfigurationBean></configBean><annotations /></activity></activities><dispatchStack><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig xmlns="">
|
59
|
+
<maxJobs>1</maxJobs>
|
60
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ParallelizeConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.ErrorBounce</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Failover</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Retry</class><configBean encoding="xstream"><net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig xmlns="">
|
61
|
+
<backoffFactor>1.0</backoffFactor>
|
62
|
+
<initialDelay>1000</initialDelay>
|
63
|
+
<maxDelay>5000</maxDelay>
|
64
|
+
<maxRetries>0</maxRetries>
|
65
|
+
</net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.RetryConfig></configBean></dispatchLayer><dispatchLayer><raven><group>net.sf.taverna.t2.core</group><artifact>workflowmodel-impl</artifact><version>1.4</version></raven><class>net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke</class><configBean encoding="xstream"><null xmlns="" /></configBean></dispatchLayer></dispatchStack><iterationStrategyStack><iteration><strategy /></iteration></iterationStrategyStack></processor></processors><conditions /><datalinks><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string1</port></sink><source type="processor"><processor>Text_constant</processor><port>value</port></source></datalink><datalink><sink type="processor"><processor>Concatenate_two_strings</processor><port>string2</port></sink><source type="processor"><processor>string2_value</processor><port>value</port></source></datalink></datalinks><annotations><annotation_chain_2_2 encoding="xstream"><net.sf.taverna.t2.annotation.AnnotationChainImpl xmlns="">
|
66
|
+
<annotationAssertions>
|
67
|
+
<net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
68
|
+
<annotationBean class="net.sf.taverna.t2.annotation.annotationbeans.IdentificationAssertion">
|
69
|
+
<identification>e304f436-2871-4ca7-b03d-bf4aaaddf81e</identification>
|
70
|
+
</annotationBean>
|
71
|
+
<date>2012-09-12 09:11:13.768 UTC</date>
|
72
|
+
<creators />
|
73
|
+
<curationEventList />
|
74
|
+
</net.sf.taverna.t2.annotation.AnnotationAssertionImpl>
|
75
|
+
</annotationAssertions>
|
76
|
+
</net.sf.taverna.t2.annotation.AnnotationChainImpl></annotation_chain_2_2></annotations></dataflow></workflow>
|
data/version.yml
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: t2-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-10-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -195,6 +195,7 @@ files:
|
|
195
195
|
- test/workflows/in.txt
|
196
196
|
- test/workflows/list_and_value.t2flow
|
197
197
|
- test/workflows/list_with_errors.t2flow
|
198
|
+
- test/workflows/no-ports.t2flow
|
198
199
|
- test/workflows/pass_through.t2flow
|
199
200
|
- test/workflows/secure/basic-http.t2flow
|
200
201
|
- test/workflows/secure/basic-https.t2flow
|