t2-server 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +1 -1
- data/bin/run_workflow +34 -6
- data/lib/t2server/run.rb +34 -2
- data/lib/t2server/server.rb +8 -1
- metadata +8 -6
data/README.rdoc
CHANGED
data/bin/run_workflow
CHANGED
@@ -61,6 +61,7 @@ end
|
|
61
61
|
inputs = {}
|
62
62
|
wkf_file = ""
|
63
63
|
print_output = true
|
64
|
+
baclava_out = ""
|
64
65
|
opts = OptionParser.new do |opt|
|
65
66
|
opt.banner = "Usage: run_workflow [options] server-address"
|
66
67
|
opt.separator ""
|
@@ -75,7 +76,19 @@ opts = OptionParser.new do |opt|
|
|
75
76
|
input, value = val.chomp.split(':')
|
76
77
|
inputs[input] = value
|
77
78
|
end
|
78
|
-
opt.on("-
|
79
|
+
opt.on("-b BACLAVA", "--baclava-in=BACLAVA", "Set baclava file for input port values") do |val|
|
80
|
+
inputs[:baclava] = val
|
81
|
+
end
|
82
|
+
opt.on("-o", "--baclava-out[=BACLAVA]", "Return outputs in baclava format." +
|
83
|
+
" A filename may be specified or 'out.xml' is used") do |val|
|
84
|
+
if val != nil and val.include? "."
|
85
|
+
baclava_out = val
|
86
|
+
else
|
87
|
+
baclava_out = "out.xml"
|
88
|
+
end
|
89
|
+
end
|
90
|
+
opt.on("-p", "--[no-]print", "Print outputs to the console. On by default " +
|
91
|
+
"unless baclava output is selected") do |val|
|
79
92
|
print_output = val
|
80
93
|
end
|
81
94
|
opt.on_tail("-h", "-?", "--help", "Show this message") do
|
@@ -117,11 +130,19 @@ puts "Created run with uuid: #{run.uuid}"
|
|
117
130
|
puts "Created at #{run.create_time}"
|
118
131
|
|
119
132
|
# set inputs
|
120
|
-
inputs.
|
121
|
-
|
122
|
-
|
133
|
+
if inputs.has_key?(:baclava)
|
134
|
+
run.upload_baclava_file(inputs[:baclava])
|
135
|
+
puts "Uploaded baclava input file"
|
136
|
+
else
|
137
|
+
inputs.each do |input, value|
|
138
|
+
puts "Set input '#{input}' to #{value}"
|
139
|
+
run.set_input(input, value)
|
140
|
+
end
|
123
141
|
end
|
124
142
|
|
143
|
+
# output baclava?
|
144
|
+
run.set_baclava_output(baclava_out) unless baclava_out == ""
|
145
|
+
|
125
146
|
# start run and wait until it is finished
|
126
147
|
run.start
|
127
148
|
puts "Started at #{run.start_time}"
|
@@ -138,8 +159,15 @@ if stdout != "" then puts "Stdout:\n#{stdout}" end
|
|
138
159
|
if stderr != "" then puts "Stderr:\n#{stderr}" end
|
139
160
|
|
140
161
|
if exitcd == 0
|
141
|
-
|
142
|
-
|
162
|
+
if baclava_out != ""
|
163
|
+
File.open(baclava_out, "w") do |file|
|
164
|
+
file.syswrite(run.get_baclava_output)
|
165
|
+
end
|
166
|
+
puts "Baclava file written to '#{baclava_out}'"
|
167
|
+
else
|
168
|
+
puts "Outputs:"
|
169
|
+
get_outputs(run, print_output)
|
170
|
+
end
|
143
171
|
end
|
144
172
|
|
145
173
|
# delete run
|
data/lib/t2server/run.rb
CHANGED
@@ -46,6 +46,9 @@ module T2Server
|
|
46
46
|
# download.
|
47
47
|
class Run
|
48
48
|
private_class_method :new
|
49
|
+
|
50
|
+
# The identifier of this run on the server. It is currently a UUID
|
51
|
+
# (version 4).
|
49
52
|
attr_reader :uuid
|
50
53
|
|
51
54
|
# :stopdoc:
|
@@ -61,7 +64,8 @@ module T2Server
|
|
61
64
|
@server = server
|
62
65
|
@uuid = uuid
|
63
66
|
@workflow = ""
|
64
|
-
@
|
67
|
+
@baclava_in = false
|
68
|
+
@baclava_out = ""
|
65
69
|
|
66
70
|
@links = get_attributes(@server.get_run_attribute(uuid, ""))
|
67
71
|
#@links.each {|key, val| puts "#{key}: #{val}"}
|
@@ -315,11 +319,39 @@ module T2Server
|
|
315
319
|
state = status
|
316
320
|
raise RunStateError.new(state, STATE[:initialized]) if state != STATE[:initialized]
|
317
321
|
|
318
|
-
@
|
322
|
+
@baclava_in = true
|
319
323
|
rename = upload_file(filename)
|
320
324
|
@server.set_run_attribute(@uuid, @links[:baclava], rename)
|
321
325
|
end
|
322
326
|
|
327
|
+
# :call-seq:
|
328
|
+
# run.set_baclava_output(name="out.xml") -> bool
|
329
|
+
#
|
330
|
+
# Set the server to save the outputs of this run in baclava format. The
|
331
|
+
# filename can be specified with the _name_ parameter otherwise a default
|
332
|
+
# of 'out.xml' is used. This must be done before the run is started.
|
333
|
+
def set_baclava_output(name="out.xml")
|
334
|
+
state = status
|
335
|
+
raise RunStateError.new(state, STATE[:initialized]) if state != STATE[:initialized]
|
336
|
+
|
337
|
+
@baclava_out = name.strip_path
|
338
|
+
@server.set_run_attribute(@uuid, @links[:output], @baclava_out)
|
339
|
+
end
|
340
|
+
|
341
|
+
# :call-seq:
|
342
|
+
# run.get_baclava_output -> string
|
343
|
+
#
|
344
|
+
# Get the outputs of this run in baclava format. This can only be done if
|
345
|
+
# the output has been requested in baclava format by #set_baclava_output
|
346
|
+
# before starting the run.
|
347
|
+
def get_baclava_output
|
348
|
+
state = status
|
349
|
+
raise RunStateError.new(state, STATE[:finished]) if state != STATE[:finished]
|
350
|
+
|
351
|
+
raise AttributeNotFoundError.new("#{@links[:wdir]}/#{@baclava_out}") if @baclava_out == ""
|
352
|
+
@server.get_run_attribute(@uuid, "#{@links[:wdir]}/#{@baclava_out}")
|
353
|
+
end
|
354
|
+
|
323
355
|
# :call-seq:
|
324
356
|
# run.ls(dir="") -> [[dirs], [objects]]
|
325
357
|
#
|
data/lib/t2server/server.rb
CHANGED
@@ -42,7 +42,14 @@ module T2Server
|
|
42
42
|
# instances.
|
43
43
|
class Server
|
44
44
|
private_class_method :new
|
45
|
-
|
45
|
+
|
46
|
+
# The URI of this server instance as a String.
|
47
|
+
attr_reader :uri
|
48
|
+
|
49
|
+
# The maximum number of runs that this server will allow at any one time.
|
50
|
+
# Runs in any state (+Initialized+, +Running+ and +Finished+) are counted
|
51
|
+
# against this maximum.
|
52
|
+
attr_reader :run_limit
|
46
53
|
|
47
54
|
# list of servers we know about
|
48
55
|
@@servers = []
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: t2-server
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Robert Haines
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-09-
|
18
|
+
date: 2010-09-03 00:00:00 +01:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -26,10 +26,12 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
hash:
|
29
|
+
hash: 49
|
30
30
|
segments:
|
31
31
|
- 0
|
32
|
-
|
32
|
+
- 8
|
33
|
+
- 7
|
34
|
+
version: 0.8.7
|
33
35
|
type: :development
|
34
36
|
version_requirements: *id001
|
35
37
|
description: This gem provides access to the Taverna 2 Server REST interface from Ruby.
|