t2-server 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/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.
|