t2-server 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.rdoc +8 -0
- data/README.rdoc +14 -1
- data/Rakefile +4 -3
- data/bin/t2-server-info +7 -1
- data/lib/t2-server.rb +3 -3
- data/lib/t2-server/{connection.rb → net/connection.rb} +36 -17
- data/lib/t2-server/{credentials.rb → net/credentials.rb} +0 -0
- data/lib/t2-server/{connection-parameters.rb → net/parameters.rb} +0 -1
- data/lib/t2-server/run.rb +85 -53
- data/t2-server.gemspec +10 -6
- data/test/ts_t2server.rb +3 -0
- data/version.yml +1 -1
- metadata +130 -129
- data/.rvmrc +0 -1
data/CHANGES.rdoc
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
= Changes log for the T2 Ruby Gem
|
2
2
|
|
3
|
+
== Version 0.9.1
|
4
|
+
|
5
|
+
* Update unit test code for Ruby 1.9 compatibility.
|
6
|
+
* Major reductions in the time taken to instantiate a Run object.
|
7
|
+
* t2-server-info: Don't list runs by default.
|
8
|
+
* Move to persistent HTTP connections.
|
9
|
+
* SSL certificate store changes.
|
10
|
+
|
3
11
|
== Version 0.9.0
|
4
12
|
|
5
13
|
* t2-run-workflow: Add a switch to set the expiry date/time.
|
data/README.rdoc
CHANGED
@@ -40,6 +40,17 @@ on your console output. Anything marked as deprecated will be removed in
|
|
40
40
|
version 1.0.0 so you are advised to update your code at your earliest
|
41
41
|
convenience.
|
42
42
|
|
43
|
+
== Compatibility with Ruby versions
|
44
|
+
|
45
|
+
This library is known to work with the following versions of Ruby:
|
46
|
+
* 1.8.7 *
|
47
|
+
* 1.9.2
|
48
|
+
* 1.9.3 *
|
49
|
+
* jruby 1.6.4 (in Ruby 1.8 mode)
|
50
|
+
|
51
|
+
Those marked with an asterisk (*) are supported and bugs found against them
|
52
|
+
will be fixed. Other versions may work but are not supported.
|
53
|
+
|
43
54
|
== Usage
|
44
55
|
|
45
56
|
There are two entry points for the T2Server API:
|
@@ -70,10 +81,12 @@ And can be set like this for a standard https connection:
|
|
70
81
|
|
71
82
|
conn_params = ConnectionParameters.new
|
72
83
|
conn_params[:verify_peer] = true
|
73
|
-
conn_params[:ca_path] = "/etc/ssl/certs"
|
74
84
|
|
75
85
|
This will ensure that the identity of the Taverna Server you are connecting to
|
76
86
|
will be verified using the set of certificates in <tt>/etc/ssl/certs</tt>.
|
87
|
+
<tt>:ca_path</tt> can also be set to a list of paths if required. You do not
|
88
|
+
need to include your platform's default certificate paths as these are included
|
89
|
+
automatically.
|
77
90
|
|
78
91
|
For convenience a number of standard sets of parameters have been defined. The
|
79
92
|
above example is available as +DefaultConnectionParameters+. Others available
|
data/Rakefile
CHANGED
@@ -66,6 +66,7 @@ Jeweler::Tasks.new do |s|
|
|
66
66
|
s.add_development_dependency('nokogiri', '>= 1.5.0')
|
67
67
|
s.add_development_dependency('rdoc', '>= 3.9.4')
|
68
68
|
s.add_development_dependency('jeweler', '~> 1.8.3')
|
69
|
+
s.add_runtime_dependency('net-http-persistent', '~> 2.6')
|
69
70
|
s.add_runtime_dependency('taverna-baclava', '~> 1.0.0')
|
70
71
|
s.add_runtime_dependency('hirb', '>= 0.4.0')
|
71
72
|
end
|
@@ -80,14 +81,14 @@ end
|
|
80
81
|
# t.test_files = FileList['test/ts_t2server.rb']
|
81
82
|
# t.verbose = true
|
82
83
|
# end
|
83
|
-
task :test, :server, :user1, :user2 do |t, args|
|
84
|
+
task :test, [:server, :user1, :user2] do |t, args|
|
84
85
|
args.with_defaults(:server => "", :user1 => "", :user2 => "")
|
85
86
|
RakeFileUtils.verbose(true) do
|
86
87
|
server_arg = ""
|
87
88
|
if args[:server] != ""
|
88
|
-
server_arg = "
|
89
|
+
server_arg = "#{args[:server]} #{args[:user1]} #{args[:user2]}"
|
89
90
|
end
|
90
|
-
ruby "-I\"lib:test\"
|
91
|
+
ruby "-I\"lib:test\" test/ts_t2server.rb " + server_arg
|
91
92
|
end
|
92
93
|
end
|
93
94
|
|
data/bin/t2-server-info
CHANGED
@@ -37,11 +37,17 @@ require 'hirb'
|
|
37
37
|
|
38
38
|
include T2Server::CLI
|
39
39
|
|
40
|
+
# set up options
|
41
|
+
options = {}
|
40
42
|
conn_params, creds = register_options("Usage: t2-server-info [options] " +
|
41
43
|
"server-address") do |opt|
|
42
44
|
opt.separator " Where server-address is the full URI of the server to"
|
43
45
|
opt.separator " connect to, e.g.: http://example.com:8080/taverna"
|
44
46
|
opt.separator " and [options] can be:"
|
47
|
+
|
48
|
+
opt.on("-l", "--list", "List details for the runs on this server.") do
|
49
|
+
options[:list] = true
|
50
|
+
end
|
45
51
|
end
|
46
52
|
|
47
53
|
# read and check server address and credentials
|
@@ -55,7 +61,7 @@ begin
|
|
55
61
|
print " Run limit: #{server.run_limit(creds)}\n"
|
56
62
|
runs = server.runs(creds)
|
57
63
|
print "No. of runs: #{runs.length}\n"
|
58
|
-
if runs.length > 0
|
64
|
+
if options[:list] && runs.length > 0
|
59
65
|
puts (Hirb::Helpers::ObjectTable.render runs,
|
60
66
|
:fields=>[:identifier, :status, :expiry],
|
61
67
|
:headers=>{:identifier=>'Run ID', :status=>'Status',
|
data/lib/t2-server.rb
CHANGED
@@ -34,9 +34,9 @@ require 'yaml'
|
|
34
34
|
require 't2-server/util'
|
35
35
|
require 't2-server/xml/xml'
|
36
36
|
require 't2-server/exceptions'
|
37
|
-
require 't2-server/credentials'
|
38
|
-
require 't2-server/connection'
|
39
|
-
require 't2-server/
|
37
|
+
require 't2-server/net/credentials'
|
38
|
+
require 't2-server/net/connection'
|
39
|
+
require 't2-server/net/parameters'
|
40
40
|
require 't2-server/port'
|
41
41
|
require 't2-server/server'
|
42
42
|
require 't2-server/run'
|
@@ -31,7 +31,7 @@
|
|
31
31
|
# Author: Robert Haines
|
32
32
|
|
33
33
|
require 'uri'
|
34
|
-
require 'net/
|
34
|
+
require 'net/http/persistent'
|
35
35
|
|
36
36
|
module T2Server
|
37
37
|
|
@@ -93,8 +93,8 @@ module T2Server
|
|
93
93
|
@uri = uri
|
94
94
|
@params = params || DefaultConnectionParameters.new
|
95
95
|
|
96
|
-
# set up http connection
|
97
|
-
@http = Net::HTTP.new(
|
96
|
+
# set up persistent http connection
|
97
|
+
@http = Net::HTTP::Persistent.new("Taverna_Server_Ruby_Client")
|
98
98
|
end
|
99
99
|
|
100
100
|
# :call-seq:
|
@@ -174,7 +174,8 @@ module T2Server
|
|
174
174
|
get = Net::HTTP::Get.new(path)
|
175
175
|
get["Accept"] = type
|
176
176
|
get["Range"] = "bytes=#{range.min}-#{range.max}" unless range.nil?
|
177
|
-
|
177
|
+
|
178
|
+
response = submit(get, path, credentials)
|
178
179
|
|
179
180
|
case response
|
180
181
|
when Net::HTTPOK, Net::HTTPPartialContent
|
@@ -203,7 +204,9 @@ module T2Server
|
|
203
204
|
def PUT(path, value, type, credentials)
|
204
205
|
put = Net::HTTP::Put.new(path)
|
205
206
|
put.content_type = type
|
206
|
-
|
207
|
+
put.body = value
|
208
|
+
|
209
|
+
response = submit(put, path, credentials)
|
207
210
|
|
208
211
|
case response
|
209
212
|
when Net::HTTPOK
|
@@ -251,7 +254,8 @@ module T2Server
|
|
251
254
|
def DELETE(path, credentials)
|
252
255
|
run = path.split("/")[-1]
|
253
256
|
delete = Net::HTTP::Delete.new(path)
|
254
|
-
|
257
|
+
|
258
|
+
response = submit(delete, path, credentials)
|
255
259
|
|
256
260
|
case response
|
257
261
|
when Net::HTTPNoContent
|
@@ -275,7 +279,8 @@ module T2Server
|
|
275
279
|
# of the headers returned.
|
276
280
|
def OPTIONS(path, credentials)
|
277
281
|
options = Net::HTTP::Options.new(path)
|
278
|
-
|
282
|
+
|
283
|
+
response = submit(options, path, credentials)
|
279
284
|
|
280
285
|
case response
|
281
286
|
when Net::HTTPOK
|
@@ -293,18 +298,23 @@ module T2Server
|
|
293
298
|
def _POST(path, value, type, credentials)
|
294
299
|
post = Net::HTTP::Post.new(path)
|
295
300
|
post.content_type = type
|
296
|
-
|
301
|
+
post.body = value
|
302
|
+
|
303
|
+
submit(post, path, credentials)
|
297
304
|
end
|
298
305
|
|
299
306
|
def path_leaf_from_uri(uri)
|
300
307
|
URI.parse(uri).path.split('/')[-1]
|
301
308
|
end
|
302
309
|
|
303
|
-
def submit(request,
|
310
|
+
def submit(request, path, credentials)
|
311
|
+
full_uri = @uri.clone
|
312
|
+
full_uri.path = path
|
313
|
+
|
304
314
|
credentials.authenticate(request) unless credentials.nil?
|
305
315
|
|
306
316
|
begin
|
307
|
-
@http.request(
|
317
|
+
@http.request(full_uri, request)
|
308
318
|
rescue InternalHTTPError => e
|
309
319
|
raise ConnectionError.new(e)
|
310
320
|
end
|
@@ -326,16 +336,24 @@ module T2Server
|
|
326
336
|
def initialize(uri, params = nil)
|
327
337
|
super(uri, params)
|
328
338
|
|
329
|
-
# Configure connection options using params
|
330
|
-
@http.use_ssl = true
|
331
|
-
|
332
339
|
# Peer verification
|
333
340
|
if @params[:verify_peer]
|
334
341
|
if @params[:ca_file]
|
335
342
|
@http.ca_file = @params[:ca_file]
|
336
|
-
else
|
337
|
-
@http.ca_path = @params[:ca_path]
|
338
343
|
end
|
344
|
+
|
345
|
+
if @params[:ca_path]
|
346
|
+
store = OpenSSL::X509::Store.new
|
347
|
+
store.set_default_paths
|
348
|
+
if @params[:ca_path].is_a? Array
|
349
|
+
@params[:ca_path].each { |path| store.add_path(path) }
|
350
|
+
else
|
351
|
+
store.add_path(@params[:ca_path])
|
352
|
+
end
|
353
|
+
|
354
|
+
@http.cert_store = store
|
355
|
+
end
|
356
|
+
|
339
357
|
@http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
340
358
|
else
|
341
359
|
@http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
@@ -344,8 +362,9 @@ module T2Server
|
|
344
362
|
# Client authentication
|
345
363
|
if @params[:client_certificate]
|
346
364
|
pem = File.read(@params[:client_certificate])
|
347
|
-
@http.
|
348
|
-
@http.
|
365
|
+
@http.certificate = OpenSSL::X509::Certificate.new(pem)
|
366
|
+
@http.private_key = OpenSSL::PKey::RSA.new(pem,
|
367
|
+
@params[:client_password])
|
349
368
|
end
|
350
369
|
end
|
351
370
|
end
|
File without changes
|
data/lib/t2-server/run.rb
CHANGED
@@ -58,9 +58,6 @@ module T2Server
|
|
58
58
|
# The server instance that this run is hosted on.
|
59
59
|
attr_reader :server
|
60
60
|
|
61
|
-
# The owner (username) of this run
|
62
|
-
attr_reader :owner
|
63
|
-
|
64
61
|
# :stopdoc:
|
65
62
|
XPaths = {
|
66
63
|
# Run XPath queries
|
@@ -112,10 +109,11 @@ module T2Server
|
|
112
109
|
|
113
110
|
@credentials = credentials
|
114
111
|
|
115
|
-
|
116
|
-
|
117
|
-
@
|
118
|
-
@
|
112
|
+
# The following three fields hold cached data about the run that is only
|
113
|
+
# downloaded the first time it is requested.
|
114
|
+
@run_doc = nil
|
115
|
+
@owner = nil
|
116
|
+
@links = nil
|
119
117
|
|
120
118
|
# initialize ports lists to nil as an empty list means no inputs/outputs
|
121
119
|
@input_ports = nil
|
@@ -176,6 +174,17 @@ module T2Server
|
|
176
174
|
end
|
177
175
|
# :startdoc:
|
178
176
|
|
177
|
+
# :call-seq:
|
178
|
+
# owner -> String
|
179
|
+
#
|
180
|
+
# Get the username of the owner of this run. The owner is the user who
|
181
|
+
# created the run on the server.
|
182
|
+
def owner
|
183
|
+
@owner = _get_run_owner if @owner.nil?
|
184
|
+
|
185
|
+
@owner
|
186
|
+
end
|
187
|
+
|
179
188
|
# :call-seq:
|
180
189
|
# delete
|
181
190
|
#
|
@@ -187,7 +196,7 @@ module T2Server
|
|
187
196
|
# :stopdoc:
|
188
197
|
def inputs
|
189
198
|
warn "[DEPRECATION] 'inputs' is deprecated and will be removed in 1.0."
|
190
|
-
|
199
|
+
links[:inputs]
|
191
200
|
end
|
192
201
|
|
193
202
|
def set_input(input, value)
|
@@ -273,7 +282,7 @@ module T2Server
|
|
273
282
|
#
|
274
283
|
# Return the expiry time of this run as an instance of class Time.
|
275
284
|
def expiry
|
276
|
-
Time.parse(@server.get_run_attribute(@identifier,
|
285
|
+
Time.parse(@server.get_run_attribute(@identifier, links[:expiry],
|
277
286
|
"text/plain", @credentials))
|
278
287
|
end
|
279
288
|
|
@@ -293,7 +302,7 @@ module T2Server
|
|
293
302
|
# parse timezone offsets with a colon (eg +00:00)
|
294
303
|
date_str = time.xmlschema(2)
|
295
304
|
date_str = date_str[0..-4] + date_str[-2..-1]
|
296
|
-
@server.set_run_attribute(@identifier,
|
305
|
+
@server.set_run_attribute(@identifier, links[:expiry], date_str,
|
297
306
|
"text/plain", @credentials)
|
298
307
|
end
|
299
308
|
|
@@ -303,7 +312,7 @@ module T2Server
|
|
303
312
|
# Get the workflow that this run represents.
|
304
313
|
def workflow
|
305
314
|
if @workflow == ""
|
306
|
-
@workflow = @server.get_run_attribute(@identifier,
|
315
|
+
@workflow = @server.get_run_attribute(@identifier, links[:workflow],
|
307
316
|
"application/xml", @credentials)
|
308
317
|
end
|
309
318
|
@workflow
|
@@ -315,7 +324,7 @@ module T2Server
|
|
315
324
|
# Get the status of this run. Status can be one of :initialized,
|
316
325
|
# :running or :finished.
|
317
326
|
def status
|
318
|
-
text_to_state(@server.get_run_attribute(@identifier,
|
327
|
+
text_to_state(@server.get_run_attribute(@identifier, links[:status],
|
319
328
|
"text/plain", @credentials))
|
320
329
|
end
|
321
330
|
|
@@ -332,7 +341,7 @@ module T2Server
|
|
332
341
|
# set all the inputs
|
333
342
|
_check_and_set_inputs unless baclava_input?
|
334
343
|
|
335
|
-
@server.set_run_attribute(@identifier,
|
344
|
+
@server.set_run_attribute(@identifier, links[:status],
|
336
345
|
state_to_text(:running), "text/plain", @credentials)
|
337
346
|
end
|
338
347
|
|
@@ -370,7 +379,7 @@ module T2Server
|
|
370
379
|
#
|
371
380
|
# Get the return code of the run. Zero indicates success.
|
372
381
|
def exitcode
|
373
|
-
@server.get_run_attribute(@identifier,
|
382
|
+
@server.get_run_attribute(@identifier, links[:exitcode], "text/plain",
|
374
383
|
@credentials).to_i
|
375
384
|
end
|
376
385
|
|
@@ -379,7 +388,7 @@ module T2Server
|
|
379
388
|
#
|
380
389
|
# Get anything that the run printed to the standard out stream.
|
381
390
|
def stdout
|
382
|
-
@server.get_run_attribute(@identifier,
|
391
|
+
@server.get_run_attribute(@identifier, links[:stdout], "text/plain",
|
383
392
|
@credentials)
|
384
393
|
end
|
385
394
|
|
@@ -388,7 +397,7 @@ module T2Server
|
|
388
397
|
#
|
389
398
|
# Get anything that the run printed to the standard error stream.
|
390
399
|
def stderr
|
391
|
-
@server.get_run_attribute(@identifier,
|
400
|
+
@server.get_run_attribute(@identifier, links[:stderr], "text/plain",
|
392
401
|
@credentials)
|
393
402
|
end
|
394
403
|
|
@@ -404,10 +413,10 @@ module T2Server
|
|
404
413
|
# end and add the rest of the path to the wdir link
|
405
414
|
leaf = dir.split("/")[-1]
|
406
415
|
path = dir[0...-(leaf.length + 1)]
|
407
|
-
@server.create_dir(@identifier, "#{
|
416
|
+
@server.create_dir(@identifier, "#{links[:wdir]}/#{path}", leaf,
|
408
417
|
@credentials)
|
409
418
|
else
|
410
|
-
@server.create_dir(@identifier,
|
419
|
+
@server.create_dir(@identifier, links[:wdir], dir, @credentials)
|
411
420
|
end
|
412
421
|
end
|
413
422
|
|
@@ -423,7 +432,7 @@ module T2Server
|
|
423
432
|
# The name of the file on the server is returned.
|
424
433
|
def upload_file(filename, params={})
|
425
434
|
location = params[:dir] || ""
|
426
|
-
location = "#{
|
435
|
+
location = "#{links[:wdir]}/#{location}"
|
427
436
|
rename = params[:rename] || ""
|
428
437
|
@server.upload_file(@identifier, filename, location, rename,
|
429
438
|
@credentials)
|
@@ -436,7 +445,7 @@ module T2Server
|
|
436
445
|
# remote directory to put this file in can also be specified, but if it is
|
437
446
|
# it must first have been created by a call to Run#mkdir.
|
438
447
|
def upload_data(data, remote_name, remote_directory = "")
|
439
|
-
location = "#{
|
448
|
+
location = "#{links[:wdir]}/#{remote_directory}"
|
440
449
|
@server.upload_data(@identifier, data, remote_name, location,
|
441
450
|
@credentials)
|
442
451
|
end
|
@@ -461,7 +470,7 @@ module T2Server
|
|
461
470
|
raise RunStateError.new(state, :initialized) if state != :initialized
|
462
471
|
|
463
472
|
rename = upload_file(filename)
|
464
|
-
result = @server.set_run_attribute(@identifier,
|
473
|
+
result = @server.set_run_attribute(@identifier, links[:baclava], rename,
|
465
474
|
"text/plain", @credentials)
|
466
475
|
|
467
476
|
@baclava_in = true if result
|
@@ -493,7 +502,7 @@ module T2Server
|
|
493
502
|
state = status
|
494
503
|
raise RunStateError.new(state, :initialized) if state != :initialized
|
495
504
|
|
496
|
-
@baclava_out = @server.set_run_attribute(@identifier,
|
505
|
+
@baclava_out = @server.set_run_attribute(@identifier, links[:output],
|
497
506
|
BACLAVA_FILE, "text/plain", @credentials)
|
498
507
|
end
|
499
508
|
|
@@ -533,7 +542,7 @@ module T2Server
|
|
533
542
|
|
534
543
|
raise AccessForbiddenError.new("baclava output") if !@baclava_out
|
535
544
|
@server.get_run_attribute(@identifier,
|
536
|
-
"#{
|
545
|
+
"#{links[:wdir]}/#{BACLAVA_FILE}", "*/*", @credentials)
|
537
546
|
end
|
538
547
|
|
539
548
|
# :stopdoc:
|
@@ -553,7 +562,7 @@ module T2Server
|
|
553
562
|
state = status
|
554
563
|
raise RunStateError.new(state, :finished) if state != :finished
|
555
564
|
|
556
|
-
@server.get_run_attribute(@identifier, "#{
|
565
|
+
@server.get_run_attribute(@identifier, "#{links[:wdir]}/out",
|
557
566
|
"application/zip", @credentials)
|
558
567
|
end
|
559
568
|
|
@@ -586,7 +595,7 @@ module T2Server
|
|
586
595
|
#
|
587
596
|
# Get the creation time of this run as an instance of class Time.
|
588
597
|
def create_time
|
589
|
-
Time.parse(@server.get_run_attribute(@identifier,
|
598
|
+
Time.parse(@server.get_run_attribute(@identifier, links[:createtime],
|
590
599
|
"text/plain", @credentials))
|
591
600
|
end
|
592
601
|
|
@@ -595,7 +604,7 @@ module T2Server
|
|
595
604
|
#
|
596
605
|
# Get the start time of this run as an instance of class Time.
|
597
606
|
def start_time
|
598
|
-
Time.parse(@server.get_run_attribute(@identifier,
|
607
|
+
Time.parse(@server.get_run_attribute(@identifier, links[:starttime],
|
599
608
|
"text/plain", @credentials))
|
600
609
|
end
|
601
610
|
|
@@ -604,7 +613,7 @@ module T2Server
|
|
604
613
|
#
|
605
614
|
# Get the finish time of this run as an instance of class Time.
|
606
615
|
def finish_time
|
607
|
-
Time.parse(@server.get_run_attribute(@identifier,
|
616
|
+
Time.parse(@server.get_run_attribute(@identifier, links[:finishtime],
|
608
617
|
"text/plain", @credentials))
|
609
618
|
end
|
610
619
|
|
@@ -617,7 +626,7 @@ module T2Server
|
|
617
626
|
# are. Sometimes it is useful to know if the user accessing the run is
|
618
627
|
# actually the owner of it or not.
|
619
628
|
def owner?
|
620
|
-
@credentials.username ==
|
629
|
+
@credentials.username == owner
|
621
630
|
end
|
622
631
|
|
623
632
|
# :call-seq:
|
@@ -631,7 +640,7 @@ module T2Server
|
|
631
640
|
return unless owner?
|
632
641
|
|
633
642
|
value = XML::Fragments::PERM_UPDATE % [username, permission.to_s]
|
634
|
-
@server.create_run_attribute(@identifier,
|
643
|
+
@server.create_run_attribute(@identifier, links[:sec_perms], value,
|
635
644
|
"application/xml", @credentials)
|
636
645
|
end
|
637
646
|
|
@@ -646,7 +655,7 @@ module T2Server
|
|
646
655
|
|
647
656
|
perms = {}
|
648
657
|
doc = xml_document(@server.get_run_attribute(@identifier,
|
649
|
-
|
658
|
+
links[:sec_perms], "application/xml", @credentials))
|
650
659
|
|
651
660
|
xpath_find(doc, XPaths[:sec_perm]).each do |p|
|
652
661
|
user = xml_node_content(xpath_first(p, XPaths[:sec_uname]))
|
@@ -678,7 +687,7 @@ module T2Server
|
|
678
687
|
def revoke_permission(username)
|
679
688
|
return unless owner?
|
680
689
|
|
681
|
-
path = "#{
|
690
|
+
path = "#{links[:sec_perms]}/#{username}"
|
682
691
|
@server.delete_run_attribute(@identifier, path, @credentials)
|
683
692
|
end
|
684
693
|
|
@@ -702,10 +711,10 @@ module T2Server
|
|
702
711
|
value = XML::Fragments::CREDENTIAL % cred
|
703
712
|
|
704
713
|
if id.nil?
|
705
|
-
@server.create_run_attribute(@identifier,
|
714
|
+
@server.create_run_attribute(@identifier, links[:sec_creds], value,
|
706
715
|
"application/xml", @credentials)
|
707
716
|
else
|
708
|
-
path = "#{
|
717
|
+
path = "#{links[:sec_creds]}/#{id}"
|
709
718
|
@server.set_run_attribute(@identifier, path, value, "application/xml",
|
710
719
|
@credentials)
|
711
720
|
end
|
@@ -736,7 +745,7 @@ module T2Server
|
|
736
745
|
type, password]
|
737
746
|
value = XML::Fragments::CREDENTIAL % cred
|
738
747
|
|
739
|
-
@server.create_run_attribute(@identifier,
|
748
|
+
@server.create_run_attribute(@identifier, links[:sec_creds], value,
|
740
749
|
"application/xml", @credentials)
|
741
750
|
end
|
742
751
|
|
@@ -751,7 +760,7 @@ module T2Server
|
|
751
760
|
|
752
761
|
creds = {}
|
753
762
|
doc = xml_document(@server.get_run_attribute(@identifier,
|
754
|
-
|
763
|
+
links[:sec_creds], "application/xml", @credentials))
|
755
764
|
|
756
765
|
xpath_find(doc, XPaths[:sec_cred]).each do |c|
|
757
766
|
uri = xml_node_content(xpath_first(c, XPaths[:sec_suri]))
|
@@ -783,7 +792,7 @@ module T2Server
|
|
783
792
|
def delete_credential(uri)
|
784
793
|
return unless owner?
|
785
794
|
|
786
|
-
path = "#{
|
795
|
+
path = "#{links[:sec_creds]}/#{credentials[uri]}"
|
787
796
|
@server.delete_run_attribute(@identifier, path, @credentials)
|
788
797
|
end
|
789
798
|
|
@@ -796,7 +805,7 @@ module T2Server
|
|
796
805
|
def delete_all_credentials
|
797
806
|
return unless owner?
|
798
807
|
|
799
|
-
@server.delete_run_attribute(@identifier,
|
808
|
+
@server.delete_run_attribute(@identifier, links[:sec_creds],
|
800
809
|
@credentials)
|
801
810
|
end
|
802
811
|
|
@@ -815,7 +824,7 @@ module T2Server
|
|
815
824
|
contents = Base64.encode64(IO.read(filename))
|
816
825
|
|
817
826
|
value = XML::Fragments::TRUST % [contents, type]
|
818
|
-
@server.create_run_attribute(@identifier,
|
827
|
+
@server.create_run_attribute(@identifier, links[:sec_trusts], value,
|
819
828
|
"application/xml", @credentials)
|
820
829
|
end
|
821
830
|
|
@@ -832,7 +841,7 @@ module T2Server
|
|
832
841
|
|
833
842
|
t_ids = []
|
834
843
|
doc = xml_document(@server.get_run_attribute(@identifier,
|
835
|
-
|
844
|
+
links[:sec_trusts], "application/xml", @credentials))
|
836
845
|
|
837
846
|
xpath_find(doc, XPaths[:sec_trust]). each do |t|
|
838
847
|
t_ids << xml_node_attribute(t, "href").split('/')[-1]
|
@@ -850,7 +859,7 @@ module T2Server
|
|
850
859
|
def delete_trust(id)
|
851
860
|
return unless owner?
|
852
861
|
|
853
|
-
path = "#{
|
862
|
+
path = "#{links[:sec_trusts]}/#{id}"
|
854
863
|
@server.delete_run_attribute(@identifier, path, @credentials)
|
855
864
|
end
|
856
865
|
|
@@ -863,7 +872,7 @@ module T2Server
|
|
863
872
|
def delete_all_trusts
|
864
873
|
return unless owner?
|
865
874
|
|
866
|
-
@server.delete_run_attribute(@identifier,
|
875
|
+
@server.delete_run_attribute(@identifier, links[:sec_trusts],
|
867
876
|
@credentials)
|
868
877
|
end
|
869
878
|
|
@@ -872,13 +881,19 @@ module T2Server
|
|
872
881
|
# items (leaves) as files. This method (not part of the public API)
|
873
882
|
# downloads a file from the run's working directory.
|
874
883
|
def download_output_data(path, range = nil)
|
875
|
-
@server.download_run_file(@identifier, "#{
|
884
|
+
@server.download_run_file(@identifier, "#{links[:wdir]}/out/#{path}",
|
876
885
|
range, @credentials)
|
877
886
|
end
|
878
887
|
# :startdoc:
|
879
888
|
|
880
889
|
private
|
881
890
|
|
891
|
+
def links
|
892
|
+
@links = _get_run_links if @links.nil?
|
893
|
+
|
894
|
+
@links
|
895
|
+
end
|
896
|
+
|
882
897
|
# Check each input to see if it requires a list input and call the
|
883
898
|
# requisite upload method for the entire set of inputs.
|
884
899
|
def _check_and_set_inputs
|
@@ -908,13 +923,13 @@ module T2Server
|
|
908
923
|
end
|
909
924
|
|
910
925
|
xml_value = xml_text_node(port.file)
|
911
|
-
path = "#{
|
926
|
+
path = "#{links[:inputs]}/input/#{port.name}"
|
912
927
|
@server.set_run_attribute(self, path,
|
913
928
|
XML::Fragments::RUNINPUTFILE % xml_value, "application/xml",
|
914
929
|
@credentials)
|
915
930
|
else
|
916
931
|
xml_value = xml_text_node(port.value)
|
917
|
-
path = "#{
|
932
|
+
path = "#{links[:inputs]}/input/#{port.name}"
|
918
933
|
@server.set_run_attribute(self, path,
|
919
934
|
XML::Fragments::RUNINPUTVALUE % xml_value, "application/xml",
|
920
935
|
@credentials)
|
@@ -945,7 +960,7 @@ module T2Server
|
|
945
960
|
# Create and upload the baclava data.
|
946
961
|
baclava = Taverna::Baclava::Writer.write(data_map)
|
947
962
|
upload_data(baclava, "in.baclava")
|
948
|
-
@server.set_run_attribute(@identifier,
|
963
|
+
@server.set_run_attribute(@identifier, links[:baclava], "in.baclava",
|
949
964
|
"text/plain", @credentials)
|
950
965
|
end
|
951
966
|
|
@@ -973,7 +988,7 @@ module T2Server
|
|
973
988
|
def _ls_ports(dir="", top=true)
|
974
989
|
dir = Util.strip_path_slashes(dir)
|
975
990
|
dir_list = @server.get_run_attribute(@identifier,
|
976
|
-
"#{
|
991
|
+
"#{links[:wdir]}/#{dir}", "*/*", @credentials)
|
977
992
|
|
978
993
|
# compile a list of directory entries stripping the
|
979
994
|
# directory name from the front of each filename
|
@@ -1013,10 +1028,10 @@ module T2Server
|
|
1013
1028
|
if items.include? output
|
1014
1029
|
if refs
|
1015
1030
|
return "#{@server.uri}/rest/runs/#{@identifier}/" +
|
1016
|
-
"#{
|
1031
|
+
"#{links[:wdir]}/out/#{output}"
|
1017
1032
|
else
|
1018
1033
|
return @server.get_run_attribute(@identifier,
|
1019
|
-
"#{
|
1034
|
+
"#{links[:wdir]}/out/#{output}", "application/octet-stream",
|
1020
1035
|
@credentials)
|
1021
1036
|
end
|
1022
1037
|
end
|
@@ -1037,10 +1052,10 @@ module T2Server
|
|
1037
1052
|
items.each do |item|
|
1038
1053
|
if refs
|
1039
1054
|
result << "#{@server.uri}/rest/runs/#{@identifier}/" +
|
1040
|
-
"#{
|
1055
|
+
"#{links[:wdir]}/out/#{output}/#{item}"
|
1041
1056
|
else
|
1042
1057
|
result << @server.get_run_attribute(@identifier,
|
1043
|
-
"#{
|
1058
|
+
"#{links[:wdir]}/out/#{output}/#{item}",
|
1044
1059
|
"application/octet-stream", @credentials)
|
1045
1060
|
end
|
1046
1061
|
end
|
@@ -1050,7 +1065,7 @@ module T2Server
|
|
1050
1065
|
|
1051
1066
|
def _get_input_port_info
|
1052
1067
|
ports = {}
|
1053
|
-
port_desc = @server.get_run_attribute(@identifier,
|
1068
|
+
port_desc = @server.get_run_attribute(@identifier, links[:inputexp],
|
1054
1069
|
"application/xml", @credentials)
|
1055
1070
|
|
1056
1071
|
doc = xml_document(port_desc)
|
@@ -1065,7 +1080,7 @@ module T2Server
|
|
1065
1080
|
|
1066
1081
|
def _get_output_port_info
|
1067
1082
|
ports = {}
|
1068
|
-
port_desc = @server.get_run_attribute(@identifier,
|
1083
|
+
port_desc = @server.get_run_attribute(@identifier, links[:output],
|
1069
1084
|
"application/xml", @credentials)
|
1070
1085
|
|
1071
1086
|
doc = xml_document(port_desc)
|
@@ -1078,7 +1093,24 @@ module T2Server
|
|
1078
1093
|
ports
|
1079
1094
|
end
|
1080
1095
|
|
1081
|
-
def
|
1096
|
+
def _get_run_description
|
1097
|
+
if @run_doc.nil?
|
1098
|
+
@run_doc = xml_document(@server.get_run_attribute(@identifier, "",
|
1099
|
+
"application/xml", @credentials))
|
1100
|
+
end
|
1101
|
+
|
1102
|
+
@run_doc
|
1103
|
+
end
|
1104
|
+
|
1105
|
+
def _get_run_owner
|
1106
|
+
doc = _get_run_description
|
1107
|
+
|
1108
|
+
xpath_attr(doc, XPaths[:run_desc], "owner")
|
1109
|
+
end
|
1110
|
+
|
1111
|
+
def _get_run_links
|
1112
|
+
doc = _get_run_description
|
1113
|
+
|
1082
1114
|
# first parse out the basic stuff
|
1083
1115
|
links = {}
|
1084
1116
|
|
data/t2-server.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "t2-server"
|
8
|
-
s.version = "0.9.
|
8
|
+
s.version = "0.9.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Robert Haines"]
|
12
|
-
s.date = "2012-
|
12
|
+
s.date = "2012-04-30"
|
13
13
|
s.description = "This gem provides access to the Taverna 2 Server REST interface from Ruby."
|
14
14
|
s.email = ["rhaines@manchester.ac.uk"]
|
15
15
|
s.executables = ["t2-delete-runs", "t2-run-workflow", "t2-server-info", "t2-get-output", "t2-server-admin"]
|
@@ -31,10 +31,10 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/t2-server-cli.rb",
|
32
32
|
"lib/t2-server.rb",
|
33
33
|
"lib/t2-server/admin.rb",
|
34
|
-
"lib/t2-server/connection-parameters.rb",
|
35
|
-
"lib/t2-server/connection.rb",
|
36
|
-
"lib/t2-server/credentials.rb",
|
37
34
|
"lib/t2-server/exceptions.rb",
|
35
|
+
"lib/t2-server/net/connection.rb",
|
36
|
+
"lib/t2-server/net/credentials.rb",
|
37
|
+
"lib/t2-server/net/parameters.rb",
|
38
38
|
"lib/t2-server/port.rb",
|
39
39
|
"lib/t2-server/run.rb",
|
40
40
|
"lib/t2-server/server.rb",
|
@@ -44,6 +44,7 @@ Gem::Specification.new do |s|
|
|
44
44
|
"lib/t2-server/xml/rexml.rb",
|
45
45
|
"lib/t2-server/xml/xml.rb",
|
46
46
|
"lib/t2server.rb",
|
47
|
+
"t2-server.gemspec",
|
47
48
|
"test/tc_admin.rb",
|
48
49
|
"test/tc_params.rb",
|
49
50
|
"test/tc_perms.rb",
|
@@ -75,7 +76,7 @@ Gem::Specification.new do |s|
|
|
75
76
|
s.homepage = "http://www.taverna.org.uk/"
|
76
77
|
s.rdoc_options = ["-N", "--tab-width=2", "--main=README.rdoc"]
|
77
78
|
s.require_paths = ["lib"]
|
78
|
-
s.rubygems_version = "1.8.
|
79
|
+
s.rubygems_version = "1.8.21"
|
79
80
|
s.summary = "Support for interacting with Taverna 2 Server."
|
80
81
|
s.test_files = ["test/ts_t2server.rb"]
|
81
82
|
|
@@ -88,6 +89,7 @@ Gem::Specification.new do |s|
|
|
88
89
|
s.add_development_dependency(%q<nokogiri>, [">= 1.5.0"])
|
89
90
|
s.add_development_dependency(%q<rdoc>, [">= 3.9.4"])
|
90
91
|
s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
|
92
|
+
s.add_runtime_dependency(%q<net-http-persistent>, ["~> 2.6"])
|
91
93
|
s.add_runtime_dependency(%q<taverna-baclava>, ["~> 1.0.0"])
|
92
94
|
s.add_runtime_dependency(%q<hirb>, [">= 0.4.0"])
|
93
95
|
else
|
@@ -96,6 +98,7 @@ Gem::Specification.new do |s|
|
|
96
98
|
s.add_dependency(%q<nokogiri>, [">= 1.5.0"])
|
97
99
|
s.add_dependency(%q<rdoc>, [">= 3.9.4"])
|
98
100
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
101
|
+
s.add_dependency(%q<net-http-persistent>, ["~> 2.6"])
|
99
102
|
s.add_dependency(%q<taverna-baclava>, ["~> 1.0.0"])
|
100
103
|
s.add_dependency(%q<hirb>, [">= 0.4.0"])
|
101
104
|
end
|
@@ -105,6 +108,7 @@ Gem::Specification.new do |s|
|
|
105
108
|
s.add_dependency(%q<nokogiri>, [">= 1.5.0"])
|
106
109
|
s.add_dependency(%q<rdoc>, [">= 3.9.4"])
|
107
110
|
s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
|
111
|
+
s.add_dependency(%q<net-http-persistent>, ["~> 2.6"])
|
108
112
|
s.add_dependency(%q<taverna-baclava>, ["~> 1.0.0"])
|
109
113
|
s.add_dependency(%q<hirb>, [">= 0.4.0"])
|
110
114
|
end
|
data/test/ts_t2server.rb
CHANGED
@@ -50,6 +50,9 @@ if ARGV.size != 0
|
|
50
50
|
|
51
51
|
puts "Using server at: #{address}"
|
52
52
|
puts " With user(s): #{user1} #{user2}" if user1
|
53
|
+
|
54
|
+
# Clear the commandline arguments so that we don't confuse runit.
|
55
|
+
ARGV.clear
|
53
56
|
else
|
54
57
|
# get a server address to test - 30 second timeout
|
55
58
|
print "\nPlease supply a valid Taverna 2 Server address.\n\nNOTE that " +
|
data/version.yml
CHANGED
metadata
CHANGED
@@ -1,151 +1,160 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: t2-server
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.9.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 9
|
9
|
-
- 0
|
10
|
-
version: 0.9.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Robert Haines
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-04-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: rake
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 63
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 9
|
32
|
-
- 2
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.9.2
|
34
22
|
type: :development
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: libxml-ruby
|
38
23
|
prerelease: false
|
39
|
-
|
40
|
-
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.9.2
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: libxml-ruby
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
49
37
|
version: 1.1.4
|
50
38
|
type: :development
|
51
|
-
version_requirements: *id002
|
52
|
-
- !ruby/object:Gem::Dependency
|
53
|
-
name: nokogiri
|
54
39
|
prerelease: false
|
55
|
-
|
56
|
-
none: false
|
57
|
-
requirements:
|
58
|
-
- -
|
59
|
-
- !ruby/object:Gem::Version
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.1.4
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: nokogiri
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
65
53
|
version: 1.5.0
|
66
54
|
type: :development
|
67
|
-
version_requirements: *id003
|
68
|
-
- !ruby/object:Gem::Dependency
|
69
|
-
name: rdoc
|
70
55
|
prerelease: false
|
71
|
-
|
72
|
-
none: false
|
73
|
-
requirements:
|
74
|
-
- -
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.5.0
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rdoc
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
81
69
|
version: 3.9.4
|
82
70
|
type: :development
|
83
|
-
version_requirements: *id004
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: jeweler
|
86
71
|
prerelease: false
|
87
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 3.9.4
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: jeweler
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
88
81
|
none: false
|
89
|
-
requirements:
|
82
|
+
requirements:
|
90
83
|
- - ~>
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
hash: 49
|
93
|
-
segments:
|
94
|
-
- 1
|
95
|
-
- 8
|
96
|
-
- 3
|
84
|
+
- !ruby/object:Gem::Version
|
97
85
|
version: 1.8.3
|
98
86
|
type: :development
|
99
|
-
version_requirements: *id005
|
100
|
-
- !ruby/object:Gem::Dependency
|
101
|
-
name: taverna-baclava
|
102
87
|
prerelease: false
|
103
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 1.8.3
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: net-http-persistent
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '2.6'
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '2.6'
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: taverna-baclava
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
104
113
|
none: false
|
105
|
-
requirements:
|
114
|
+
requirements:
|
106
115
|
- - ~>
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
hash: 23
|
109
|
-
segments:
|
110
|
-
- 1
|
111
|
-
- 0
|
112
|
-
- 0
|
116
|
+
- !ruby/object:Gem::Version
|
113
117
|
version: 1.0.0
|
114
118
|
type: :runtime
|
115
|
-
version_requirements: *id006
|
116
|
-
- !ruby/object:Gem::Dependency
|
117
|
-
name: hirb
|
118
119
|
prerelease: false
|
119
|
-
|
120
|
-
none: false
|
121
|
-
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.0.0
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: hirb
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ! '>='
|
132
|
+
- !ruby/object:Gem::Version
|
129
133
|
version: 0.4.0
|
130
134
|
type: :runtime
|
131
|
-
|
132
|
-
|
133
|
-
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ! '>='
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 0.4.0
|
142
|
+
description: This gem provides access to the Taverna 2 Server REST interface from
|
143
|
+
Ruby.
|
144
|
+
email:
|
134
145
|
- rhaines@manchester.ac.uk
|
135
|
-
executables:
|
146
|
+
executables:
|
136
147
|
- t2-delete-runs
|
137
148
|
- t2-run-workflow
|
138
149
|
- t2-server-info
|
139
150
|
- t2-get-output
|
140
151
|
- t2-server-admin
|
141
152
|
extensions: []
|
142
|
-
|
143
|
-
extra_rdoc_files:
|
153
|
+
extra_rdoc_files:
|
144
154
|
- CHANGES.rdoc
|
145
155
|
- LICENCE.rdoc
|
146
156
|
- README.rdoc
|
147
|
-
files:
|
148
|
-
- .rvmrc
|
157
|
+
files:
|
149
158
|
- CHANGES.rdoc
|
150
159
|
- LICENCE.rdoc
|
151
160
|
- README.rdoc
|
@@ -158,10 +167,10 @@ files:
|
|
158
167
|
- lib/t2-server-cli.rb
|
159
168
|
- lib/t2-server.rb
|
160
169
|
- lib/t2-server/admin.rb
|
161
|
-
- lib/t2-server/connection-parameters.rb
|
162
|
-
- lib/t2-server/connection.rb
|
163
|
-
- lib/t2-server/credentials.rb
|
164
170
|
- lib/t2-server/exceptions.rb
|
171
|
+
- lib/t2-server/net/connection.rb
|
172
|
+
- lib/t2-server/net/credentials.rb
|
173
|
+
- lib/t2-server/net/parameters.rb
|
165
174
|
- lib/t2-server/port.rb
|
166
175
|
- lib/t2-server/run.rb
|
167
176
|
- lib/t2-server/server.rb
|
@@ -201,38 +210,30 @@ files:
|
|
201
210
|
- version.yml
|
202
211
|
homepage: http://www.taverna.org.uk/
|
203
212
|
licenses: []
|
204
|
-
|
205
213
|
post_install_message:
|
206
|
-
rdoc_options:
|
214
|
+
rdoc_options:
|
207
215
|
- -N
|
208
216
|
- --tab-width=2
|
209
217
|
- --main=README.rdoc
|
210
|
-
require_paths:
|
218
|
+
require_paths:
|
211
219
|
- lib
|
212
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
220
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
213
221
|
none: false
|
214
|
-
requirements:
|
215
|
-
- -
|
216
|
-
- !ruby/object:Gem::Version
|
217
|
-
|
218
|
-
|
219
|
-
- 0
|
220
|
-
version: "0"
|
221
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
|
+
requirements:
|
223
|
+
- - ! '>='
|
224
|
+
- !ruby/object:Gem::Version
|
225
|
+
version: '0'
|
226
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
222
227
|
none: false
|
223
|
-
requirements:
|
224
|
-
- -
|
225
|
-
- !ruby/object:Gem::Version
|
226
|
-
|
227
|
-
segments:
|
228
|
-
- 0
|
229
|
-
version: "0"
|
228
|
+
requirements:
|
229
|
+
- - ! '>='
|
230
|
+
- !ruby/object:Gem::Version
|
231
|
+
version: '0'
|
230
232
|
requirements: []
|
231
|
-
|
232
233
|
rubyforge_project:
|
233
|
-
rubygems_version: 1.8.
|
234
|
+
rubygems_version: 1.8.21
|
234
235
|
signing_key:
|
235
236
|
specification_version: 3
|
236
237
|
summary: Support for interacting with Taverna 2 Server.
|
237
|
-
test_files:
|
238
|
+
test_files:
|
238
239
|
- test/ts_t2server.rb
|
data/.rvmrc
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
rvm use ruby-1.8.7@t2server --create
|