t2-server 1.1.0 → 1.2.0

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.
Files changed (68) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +1 -0
  3. data/.ruby-env +1 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +7 -1
  7. data/CHANGES.rdoc +49 -0
  8. data/README.rdoc +10 -8
  9. data/bin/t2-delete-runs +0 -3
  10. data/lib/t2-server-cli.rb +16 -9
  11. data/lib/t2-server/exceptions.rb +7 -19
  12. data/lib/t2-server/net/connection.rb +14 -6
  13. data/lib/t2-server/net/credentials.rb +12 -1
  14. data/lib/t2-server/net/parameters.rb +3 -3
  15. data/lib/t2-server/port.rb +12 -29
  16. data/lib/t2-server/run.rb +54 -35
  17. data/lib/t2-server/server.rb +3 -4
  18. data/lib/t2-server/xml.rb +0 -1
  19. data/lib/t2-server/xml/methods.rb +97 -4
  20. data/t2-server.gemspec +4 -1
  21. data/test/helpers/fake-run.rb +47 -0
  22. data/test/helpers/test-cache.rb +49 -0
  23. data/test/helpers/test-xml.rb +36 -0
  24. data/test/helpers/timezone.rb +39 -0
  25. data/test/mocked-server-responses/.gitattributes +1 -0
  26. data/test/mocked-server-responses/get-admin.raw +6 -0
  27. data/test/mocked-server-responses/get-rest-policy-runlimit.raw +6 -0
  28. data/test/mocked-server-responses/get-rest-policy.raw +6 -0
  29. data/test/mocked-server-responses/get-rest-run-input-expected.raw +6 -0
  30. data/test/mocked-server-responses/get-rest-run-input.raw +6 -0
  31. data/test/mocked-server-responses/get-rest-run-interaction-feed-0.raw +11 -0
  32. data/test/mocked-server-responses/get-rest-run-interaction-feed-1.raw +92 -0
  33. data/test/mocked-server-responses/get-rest-run-interaction-feed-2.raw +80 -0
  34. data/test/mocked-server-responses/get-rest-run-name.raw +6 -0
  35. data/test/mocked-server-responses/get-rest-run-output-list-errors.raw +6 -0
  36. data/test/mocked-server-responses/get-rest-run-output.raw +6 -0
  37. data/test/mocked-server-responses/get-rest-run-security-permissions.raw +6 -0
  38. data/test/mocked-server-responses/get-rest-run-security.raw +6 -0
  39. data/test/mocked-server-responses/get-rest-run.raw +6 -0
  40. data/test/mocked-server-responses/get-rest-runs.raw +6 -0
  41. data/test/mocked-server-responses/get-rest.raw +6 -0
  42. data/test/mocked-server-responses/log.txt +1 -0
  43. data/test/mocked-server-responses/mocks.rb +107 -0
  44. data/test/mocked-server-responses/options-admin-allownew.raw +7 -0
  45. data/test/tc_admin.rb +52 -24
  46. data/test/tc_admin_live.rb +66 -0
  47. data/test/tc_connection.rb +87 -0
  48. data/test/tc_connection_exceptions.rb +86 -0
  49. data/test/tc_credentials.rb +73 -0
  50. data/test/tc_interaction.rb +182 -0
  51. data/test/{tc_misc.rb → tc_misc_live.rb} +3 -1
  52. data/test/tc_params.rb +82 -4
  53. data/test/tc_perms.rb +54 -101
  54. data/test/tc_perms_live.rb +150 -0
  55. data/test/tc_ports.rb +192 -0
  56. data/test/tc_run.rb +333 -350
  57. data/test/tc_run_live.rb +453 -0
  58. data/test/{tc_secure.rb → tc_secure_live.rb} +30 -29
  59. data/test/tc_server.rb +115 -42
  60. data/test/tc_server_live.rb +92 -0
  61. data/test/tc_server_version.rb +19 -0
  62. data/test/tc_xml_messages.rb +201 -0
  63. data/test/ts_t2server.rb +37 -43
  64. data/test/workflows/secure/heater-pk.pem +24 -18
  65. data/test/workflows/secure/user-cert.p12 +0 -0
  66. data/version.yml +1 -1
  67. metadata +136 -29
  68. data/lib/t2-server/xml/fragments.rb +0 -78
@@ -223,7 +223,7 @@ module T2Server
223
223
 
224
224
  # :stopdoc:
225
225
  def mkdir(uri, dir, credentials = nil)
226
- @connection.POST(uri, XML::Fragments::MKDIR % dir, "application/xml",
226
+ @connection.POST(uri, xml_mkdir_fragment(dir), "application/xml",
227
227
  credentials)
228
228
  end
229
229
 
@@ -248,9 +248,8 @@ module T2Server
248
248
  @connection.PUT(put_uri, data, "application/octet-stream", credentials)
249
249
  else
250
250
  contents = Base64.encode64(data)
251
- @connection.POST(uri,
252
- XML::Fragments::UPLOAD % [remote_name, contents], "application/xml",
253
- credentials)
251
+ @connection.POST(uri, xml_upload_fragment(remote_name, contents),
252
+ "application/xml", credentials)
254
253
  end
255
254
  end
256
255
 
@@ -31,6 +31,5 @@
31
31
  # Author: Robert Haines
32
32
 
33
33
  require_relative 'xml/namespaces'
34
- require_relative 'xml/fragments'
35
34
  require_relative 'xml/methods'
36
35
  require_relative 'xml/xpath_cache'
@@ -42,10 +42,6 @@ module T2Server
42
42
  LibXML::XML::Document.string(string)
43
43
  end
44
44
 
45
- def xml_text_node(text)
46
- LibXML::XML::Node.new_text(text)
47
- end
48
-
49
45
  def xml_first_child(node)
50
46
  node.first
51
47
  end
@@ -95,6 +91,103 @@ module T2Server
95
91
 
96
92
  uris
97
93
  end
94
+
95
+ def xml_input_fragment(input, type = :value)
96
+ node = create_node("nsr:runInput", ["nsr:#{type}", input.to_s])
97
+ create_document(node).to_s
98
+ end
99
+
100
+ def xml_mkdir_fragment(name)
101
+ node = create_node("nsr:mkdir", { "nsr:name" => name })
102
+ create_document(node).to_s
103
+ end
104
+
105
+ def xml_upload_fragment(name, data)
106
+ node = create_node("nsr:upload", { "nsr:name" => name }, data)
107
+ create_document(node).to_s
108
+ end
109
+
110
+ def xml_permissions_fragment(username, permission)
111
+ node = create_node("nsr:permissionUpdate",
112
+ ["nsr:userName", username], ["nsr:permission", permission])
113
+ create_document(node).to_s
114
+ end
115
+
116
+ def xml_password_cred_fragment(uri, username, password)
117
+ node = create_node("nsr:credential",
118
+ ["nss:userpass",
119
+ ["nss:serviceURI", uri],
120
+ ["nss:username", username],
121
+ ["nss:password", password]
122
+ ]
123
+ )
124
+
125
+ create_document(node).to_s
126
+ end
127
+
128
+ def xml_keypair_cred_fragment(uri, name, key, type, password)
129
+ node = create_node("nsr:credential",
130
+ ["nss:keypair",
131
+ ["nss:serviceURI", uri],
132
+ ["nss:credentialName", name],
133
+ ["nss:credentialBytes", key],
134
+ ["nss:fileType", type],
135
+ ["nss:unlockPassword", password]
136
+ ]
137
+ )
138
+
139
+ create_document(node).to_s
140
+ end
141
+
142
+ def xml_trust_fragment(contents, type)
143
+ node = create_node("nss:trustedIdentity",
144
+ ["nss:certificateBytes", contents], ["nss:fileType", type])
145
+ create_document(node).to_s
146
+ end
147
+
148
+ private
149
+
150
+ def create_document(root)
151
+ doc = LibXML::XML::Document.new
152
+ doc.root = root
153
+
154
+ Namespaces::MAP.each do |prefix, uri|
155
+ LibXML::XML::Namespace.new(root, prefix, uri)
156
+ end
157
+
158
+ doc
159
+ end
160
+
161
+ def create_node(name, *rest)
162
+ contents = nil
163
+ attributes = {}
164
+ children = []
165
+
166
+ rest.each do |param|
167
+ case param
168
+ when Hash
169
+ attributes = param
170
+ when Array
171
+ children.push(param)
172
+ else
173
+ contents = param
174
+ end
175
+ end
176
+
177
+ node = LibXML::XML::Node.new(name, contents)
178
+
179
+ attributes.each do |attr, value|
180
+ LibXML::XML::Attr.new(node, attr, value)
181
+ end
182
+
183
+ children.each do |c|
184
+ n = create_node(c.shift, *c)
185
+ node << n
186
+ end
187
+
188
+ node
189
+ end
190
+
98
191
  end
99
192
  end
100
193
  end
@@ -48,17 +48,20 @@ Gem::Specification.new do |s|
48
48
  s.require_path = "lib"
49
49
  s.bindir = "bin"
50
50
  s.files = `git ls-files`.split($/)
51
+ s.test_files = `git ls-files -- test/*`.split($/)
51
52
  s.executables = ["t2-delete-runs", "t2-run-workflow", "t2-server-info",
52
53
  "t2-get-output", "t2-server-admin"]
53
- s.test_file = "test/ts_t2server.rb"
54
54
  s.has_rdoc = true
55
55
  s.extra_rdoc_files = ["README.rdoc", "LICENCE.rdoc", "CHANGES.rdoc"]
56
56
  s.rdoc_options = ["-N", "--tab-width=2", "--main=README.rdoc"]
57
+ s.required_ruby_version = ">= 1.9.3"
57
58
  s.add_development_dependency('rake', '~> 10.0')
58
59
  s.add_development_dependency('bundler', '~> 1.5')
59
60
  s.add_development_dependency('rdoc', '~> 4.1')
60
61
  s.add_development_dependency('launchy', '~> 2.2')
61
62
  s.add_development_dependency('hirb', '~> 0.7')
63
+ s.add_development_dependency('webmock', '~> 1.17')
64
+ s.add_development_dependency('coveralls')
62
65
  s.add_runtime_dependency('net-http-persistent', '~> 2.6')
63
66
  s.add_runtime_dependency('taverna-baclava', '~> 1.0')
64
67
  s.add_runtime_dependency('ratom', '~> 0.8.2')
@@ -0,0 +1,47 @@
1
+ # Copyright (c) 2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ # A fake run class that can be "initialized" and use "baclava" as needed.
34
+ class FakeRun
35
+ def initialize(init = true, baclava = false)
36
+ @init = init
37
+ @baclava = baclava
38
+ end
39
+
40
+ def initialized?
41
+ @init
42
+ end
43
+
44
+ def baclava_input?
45
+ @baclava
46
+ end
47
+ end
@@ -0,0 +1,49 @@
1
+ # Copyright (c) 2010-2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ # A class to test data streaming.
34
+ class TestCache
35
+ attr_reader :data
36
+
37
+ def initialize
38
+ @data = ""
39
+ end
40
+
41
+ def write(data)
42
+ @data += data
43
+ data.size
44
+ end
45
+
46
+ def size
47
+ return @data.size
48
+ end
49
+ end
@@ -0,0 +1,36 @@
1
+ # Copyright (c) 2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ # A class to simplify testing the XML methods.
34
+ class TestXML
35
+ include T2Server::XML::Methods
36
+ end
@@ -0,0 +1,39 @@
1
+ # Copyright (c) 2014 The University of Manchester, UK.
2
+ #
3
+ # All rights reserved.
4
+ #
5
+ # Redistribution and use in source and binary forms, with or without
6
+ # modification, are permitted provided that the following conditions are met:
7
+ #
8
+ # * Redistributions of source code must retain the above copyright notice,
9
+ # this list of conditions and the following disclaimer.
10
+ #
11
+ # * Redistributions in binary form must reproduce the above copyright notice,
12
+ # this list of conditions and the following disclaimer in the documentation
13
+ # and/or other materials provided with the distribution.
14
+ #
15
+ # * Neither the names of The University of Manchester nor the names of its
16
+ # contributors may be used to endorse or promote products derived from this
17
+ # software without specific prior written permission.
18
+ #
19
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22
+ # ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23
+ # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24
+ # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
+ # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
+ # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
+ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
+ # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
+ # POSSIBILITY OF SUCH DAMAGE.
30
+ #
31
+ # Author: Robert Haines
32
+
33
+ # For time-based tests to run we have to mangle the timezone to match the
34
+ # local server. Sigh.
35
+ def timezone
36
+ z = Time.zone_offset(Time.now.zone) / 3600
37
+ s = z.abs < 10 ? "0#{z.abs.to_s}" : z.abs.to_s
38
+ z < 0 ? "-#{s}" : "+#{s}"
39
+ end
@@ -0,0 +1 @@
1
+ *.raw -text
@@ -0,0 +1,6 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/xml
4
+ Content-Length: 604
5
+
6
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><admin:description xmlns:ts="http://ns.taverna.org.uk/2010/xml/server/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:ur="http://schema.ogf.org/urf/2003/09/urf" xmlns:feed="http://ns.taverna.org.uk/2010/xml/server/feed/" xmlns:ts-soap="http://ns.taverna.org.uk/2010/xml/server/soap/" xmlns:ts-rest="http://ns.taverna.org.uk/2010/xml/server/rest/" xmlns:admin="http://ns.taverna.org.uk/2010/xml/server/admin/" xmlns:xlink="http://www.w3.org/1999/xlink"><admin:allowNew xlink:href="https://localhost/taverna/admin/allowNew"/></admin:description>
@@ -0,0 +1,6 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: text/plain
4
+ Content-Length: 1
5
+
6
+ 3
@@ -0,0 +1,6 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/xml
4
+ Content-Length: 1262
5
+
6
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ts-rest:policyDescription xmlns:ts="http://ns.taverna.org.uk/2010/xml/server/" xmlns:feed="http://ns.taverna.org.uk/2010/xml/server/feed/" xmlns:port="http://ns.taverna.org.uk/2010/port/" xmlns:ts-soap="http://ns.taverna.org.uk/2010/xml/server/soap/" xmlns:ts-rest="http://ns.taverna.org.uk/2010/xml/server/rest/" xmlns:admin="http://ns.taverna.org.uk/2010/xml/server/admin/" xmlns:xlink="http://www.w3.org/1999/xlink" ts:serverVersion="2.5.4" ts:serverRevision="d285a5fbfa86b6e7e8e33baffb54830ecec256af (tag: jenkins-taverna-server-2.5-auto-263)" ts:serverBuildTimestamp="25.04.2014 @ 10:54:50 BST"><ts-rest:runLimit xlink:href="https://localhost/taverna/rest/policy/runLimit"/><ts-rest:operatingLimit xlink:href="https://localhost/taverna/rest/policy/operatingLimit"/><ts-rest:permittedWorkflows xlink:href="https://localhost/taverna/rest/policy/permittedWorkflows"/><ts-rest:permittedListenerTypes xlink:href="https://localhost/taverna/rest/policy/permittedListenerTypes"/><ts-rest:enabledNotificationFabrics xlink:href="https://localhost/taverna/rest/policy/enabledNotificationFabrics"/><ts-rest:capabilities xlink:href="https://localhost/taverna/rest/policy/capabilities"/></ts-rest:policyDescription>
@@ -0,0 +1,6 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/xml
4
+ Content-Length: 578
5
+
6
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><port:inputDescription xmlns:port="http://ns.taverna.org.uk/2010/port/" xmlns:run="http://ns.taverna.org.uk/2010/run/" xmlns:xlink="http://www.w3.org/1999/xlink" port:workflowId="" port:workflowRun="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/input/expected" port:workflowRunId="a341b87f-25cc-4dfd-be36-f5b073a6ba74"><port:input xlink:href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/input/expected/input/IN" port:name="IN" port:depth="0"/></port:inputDescription>
@@ -0,0 +1,6 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/xml
4
+ Content-Length: 906
5
+
6
+ <?xml version="1.0" encoding="UTF-8" standalone="yes"?><ts-rest:runInputs xmlns:ts="http://ns.taverna.org.uk/2010/xml/server/" xmlns:feed="http://ns.taverna.org.uk/2010/xml/server/feed/" xmlns:port="http://ns.taverna.org.uk/2010/port/" xmlns:ts-soap="http://ns.taverna.org.uk/2010/xml/server/soap/" xmlns:ts-rest="http://ns.taverna.org.uk/2010/xml/server/rest/" xmlns:admin="http://ns.taverna.org.uk/2010/xml/server/admin/" xmlns:xlink="http://www.w3.org/1999/xlink" ts:serverVersion="2.5.4" ts:serverRevision="d285a5fbfa86b6e7e8e33baffb54830ecec256af (tag: jenkins-taverna-server-2.5-auto-263)" ts:serverBuildTimestamp="25.04.2014 @ 10:54:50 BST"><ts-rest:expected xlink:href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/input/expected"/><ts-rest:baclava xlink:href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/input/baclava"/></ts-rest:runInputs>
@@ -0,0 +1,11 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/atom+xml; type=feed;charset=UTF-8
4
+ Transfer-Encoding: chunked
5
+
6
+ <?xml version='1.0' encoding='UTF-8'?>
7
+ <feed xmlns="http://www.w3.org/2005/Atom">
8
+ <title type="text">Interactions for Taverna Run "Multi_interactor"</title>
9
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/interaction" rel="self"/>
10
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74" rel="workflowrun"/>
11
+ </feed>
@@ -0,0 +1,92 @@
1
+ HTTP/1.1 200 OK
2
+ Server: Apache-Coyote/1.1
3
+ Content-Type: application/atom+xml; type=feed;charset=UTF-8
4
+ Transfer-Encoding: chunked
5
+
6
+ <?xml version='1.0' encoding='UTF-8'?>
7
+ <feed xmlns="http://www.w3.org/2005/Atom">
8
+ <title type="text">Interactions for Taverna Run "Multi_interactor"</title>
9
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/interaction" rel="self"/>
10
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74" rel="workflowrun"/>
11
+ <entry xmlns:interaction="http://ns.taverna.org.uk/2012/interaction">
12
+
13
+ <id>urn:uuid:2ba41de9-73d7-4e7f-99b8-0a71e03b75b7</id>
14
+
15
+ <published>2014-05-25T15:09:13.688Z</published>
16
+
17
+ <updated>2014-05-25T15:09:13.688Z</updated>
18
+
19
+ <author>
20
+
21
+ <name>Taverna</name>
22
+ </author>
23
+
24
+ <title type="text">Interaction from Taverna for 966ac40e-6c2a-4650-b094-f6c14d893de6:facade0:Multi_interactor:ask:invocation6</title>
25
+
26
+ <interaction:run-id>a341b87f-25cc-4dfd-be36-f5b073a6ba74</interaction:run-id>
27
+
28
+ <interaction:path>ask</interaction:path>
29
+
30
+ <interaction:count>0</interaction:count>
31
+
32
+ <interaction:id>db4c26e742a14bba93356a473e314ce4</interaction:id>
33
+
34
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiondb4c26e742a14bba93356a473e314ce4.html" rel="presentation"/>
35
+
36
+ <content type="xhtml">
37
+
38
+ <div xmlns="http://www.w3.org/1999/xhtml">
39
+
40
+ <p>
41
+
42
+ <a href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiondb4c26e742a14bba93356a473e314ce4.html">Open: https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiondb4c26e742a14bba93356a473e314ce4.html</a>
43
+ </p>
44
+ </div>
45
+ </content>
46
+
47
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/interaction/entry_1" rel="self"/>
48
+
49
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74" rel="workflowrun"/>
50
+ </entry>
51
+ <updated>2014-05-25T15:09:13.688Z</updated>
52
+ <entry xmlns:interaction="http://ns.taverna.org.uk/2012/interaction">
53
+
54
+ <id>urn:uuid:7eb364c8-3462-4299-afcf-8362a56e94f7</id>
55
+
56
+ <published>2014-05-25T15:09:13.894Z</published>
57
+
58
+ <updated>2014-05-25T15:09:13.894Z</updated>
59
+
60
+ <author>
61
+
62
+ <name>Taverna</name>
63
+ </author>
64
+
65
+ <title type="text">Interaction from Taverna for 966ac40e-6c2a-4650-b094-f6c14d893de6:facade0:Multi_interactor:Nested_workflow:invocation3:facade1:Workflow10:Interaction:invocation7</title>
66
+
67
+ <interaction:run-id>a341b87f-25cc-4dfd-be36-f5b073a6ba74</interaction:run-id>
68
+
69
+ <interaction:path>Nested_workflow:Interaction</interaction:path>
70
+
71
+ <interaction:count>0</interaction:count>
72
+
73
+ <interaction:id>d1dfbdb616ae42598d2987837ffaa332</interaction:id>
74
+
75
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiond1dfbdb616ae42598d2987837ffaa332.html" rel="presentation"/>
76
+
77
+ <content type="xhtml">
78
+
79
+ <div xmlns="http://www.w3.org/1999/xhtml">
80
+
81
+ <p>
82
+
83
+ <a href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiond1dfbdb616ae42598d2987837ffaa332.html">Open: https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/wd/interactions/interactiond1dfbdb616ae42598d2987837ffaa332.html</a>
84
+ </p>
85
+ </div>
86
+ </content>
87
+
88
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74/interaction/entry_2" rel="self"/>
89
+
90
+ <link href="https://localhost/taverna/rest/runs/a341b87f-25cc-4dfd-be36-f5b073a6ba74" rel="workflowrun"/>
91
+ </entry>
92
+ </feed>