t2-server 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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>