rbbt-util 5.17.66 → 5.17.67

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ef711b3e60776fe76714a2e0d71b86a36fe6287
4
- data.tar.gz: b46b1eda7bb4fedb500f423bc096c820d0cc9f68
3
+ metadata.gz: 9d4ef9267e2bc495c4a096fb0ff068bcc8452292
4
+ data.tar.gz: 79a7fd2e3f155d664b6e44fa3b2009c8feefda17
5
5
  SHA512:
6
- metadata.gz: 7d10d1091b0fb9a7c309071e2489532ecc19752417a98fdb104cc7f816a17508edcfc707824592fa9872c69438007b6938a5e77d6adfb8c1ff7315a4f80971e0
7
- data.tar.gz: 652e85cd3c4347ee50c69d899167e6f5beaf3c4320b8c9d6c8e0e68a9476ea07c12e4befdb7c2b1e0a93eb0506ed7cb901a603291d49488daa4854c8b3d13524
6
+ metadata.gz: 165e5c19edb0a4954c7f152293b23138739513cfa1f003a4157450ee38dd19be29bf2a62df17a27092cde4245abda1f78db811dd68dcb6716d47d733e45fe764
7
+ data.tar.gz: 520f8ed20a43daee1f9acfc0a7df2993f4e4fcbd78dcebe891e80e791fa40bc3638973c048af101ae8155dd8156a842e5099764f68efff7d7ef25152af891261
@@ -29,14 +29,14 @@ class WorkflowRESTClient
29
29
  end
30
30
 
31
31
  def info(check_lock=false)
32
- done = @info and @info[:status] and @info[:status].to_sym == :done
33
- @info ||= Persist.memory("RemoteSteps Info", :url => @url, :persist => !done) do
34
- init_job unless url
35
- info = WorkflowRESTClient.get_json(File.join(url, 'info'))
36
- info = WorkflowRESTClient.fix_hash(info)
37
- info[:status] = info[:status].to_sym if String === info[:status]
38
- info
39
- end
32
+ @done = @info and @info[:status] and @info[:status].to_sym == :done
33
+ @info = Persist.memory("RemoteSteps Info", :url => @url, :persist => !!@done) do
34
+ init_job unless url
35
+ info = WorkflowRESTClient.get_json(File.join(url, 'info'))
36
+ info = WorkflowRESTClient.fix_hash(info)
37
+ info[:status] = info[:status].to_sym if String === info[:status]
38
+ info
39
+ end
40
40
  end
41
41
 
42
42
  def status
@@ -71,48 +71,6 @@ class WorkflowRESTClient
71
71
  nil
72
72
  end
73
73
 
74
- def load_res(res, result_type = nil)
75
- result_type ||= self.result_type
76
- case result_type
77
- when :string
78
- res
79
- when :boolean
80
- res == "true"
81
- when :tsv
82
- TSV.open(StringIO.new(res))
83
- when :annotations
84
- Annotated.load_tsv(TSV.open(StringIO.new(res)))
85
- when :array
86
- res.split("\n")
87
- else
88
- JSON.parse res
89
- end
90
- end
91
-
92
- def get
93
- params ||= {}
94
- params = params.merge(:_format => [:string, :boolean, :tsv, :annotations,:array].include?(result_type.to_sym) ? :raw : :json )
95
- Misc.insist 3, rand(2) + 1 do
96
- begin
97
- WorkflowRESTClient.get_raw(url, params)
98
- rescue
99
- Log.exception $!
100
- raise $!
101
- end
102
- end
103
- end
104
-
105
- def load
106
- params = {}
107
- load_res get
108
- end
109
-
110
- def exec_job
111
- res = WorkflowRESTClient.capture_exception do
112
- RestClient.post(URI.encode(File.join(base_url, task.to_s)), inputs.merge(:_cache_type => :exec, :_format => [:string, :boolean, :tsv, :annotations].include?(result_type) ? :raw : :json))
113
- end
114
- load_res res, result_type == :array ? :json : result_type
115
- end
116
74
 
117
75
  def fork
118
76
  init_job(:asynchronous)
@@ -133,7 +91,7 @@ class WorkflowRESTClient
133
91
  if @is_exec
134
92
  exec_job
135
93
  else
136
- init_job(:synchronous)
94
+ init_job
137
95
  self.load
138
96
  end
139
97
  end
@@ -146,16 +104,77 @@ class WorkflowRESTClient
146
104
  end
147
105
 
148
106
  def join
149
- return if self.done?
150
- self.load
151
- self
107
+ sleep 0.2 unless self.done?
108
+ sleep 1 unless self.done?
109
+ sleep 3 while not self.done?
110
+ end
111
+
112
+ def get
113
+ params ||= {}
114
+ params = params.merge(:_format => [:string, :boolean, :tsv, :annotations,:array].include?(result_type.to_sym) ? :raw : :json )
115
+ Misc.insist 3, rand(2) + 1 do
116
+ begin
117
+ WorkflowRESTClient.get_raw(url, params)
118
+ rescue
119
+ Log.exception $!
120
+ raise $!
121
+ end
122
+ end
123
+ end
124
+
125
+ def load_res(res, result_type = nil)
126
+ join
127
+ result_type ||= self.result_type
128
+ case result_type
129
+ when :string
130
+ res
131
+ when :boolean
132
+ res == "true"
133
+ when :tsv
134
+ TSV.open(StringIO.new(res))
135
+ when :annotations
136
+ Annotated.load_tsv(TSV.open(StringIO.new(res)))
137
+ when :array
138
+ res.split("\n")
139
+ else
140
+ JSON.parse res
141
+ end
142
+ end
143
+
144
+ def load
145
+ params = {}
146
+ load_res get
147
+ end
148
+
149
+ def exec_job
150
+ res = WorkflowRESTClient.capture_exception do
151
+ RestClient.post(URI.encode(File.join(base_url, task.to_s)), inputs.merge(:_cache_type => :exec, :_format => [:string, :boolean, :tsv, :annotations].include?(result_type) ? :raw : :json))
152
+ end
153
+ load_res res, result_type == :array ? :json : result_type
154
+ end
155
+
156
+ def _restart
157
+ @done = nil
158
+ @name = nil
159
+ new_inputs = {}
160
+ inputs.each do |k,i|
161
+ if File === i
162
+ new_inputs[k] = File.open(i.path)
163
+ else
164
+ new_inputs[k] = i
165
+ end
166
+ end
167
+ @inputs = new_inputs
152
168
  end
153
169
 
154
170
  def recursive_clean
155
171
  begin
156
172
  inputs = Array === self.inputs ? Hash[*self.inputs.flatten] : self.inputs
157
173
  params = inputs.merge(:_update => :recursive_clean)
174
+ init_job
158
175
  WorkflowRESTClient.get_raw(url, params)
176
+ _restart
177
+ init_job
159
178
  rescue Exception
160
179
  Log.exception $!
161
180
  end
@@ -166,7 +185,10 @@ class WorkflowRESTClient
166
185
  begin
167
186
  inputs = Array === self.inputs ? Hash[*self.inputs.flatten] : self.inputs
168
187
  params = inputs.merge(:_update => :clean)
188
+ init_job
169
189
  WorkflowRESTClient.get_raw(url, params)
190
+ _restart
191
+ init_job
170
192
  rescue Exception
171
193
  Log.exception $!
172
194
  end
@@ -348,7 +348,7 @@ begin
348
348
  if options.delete(:printpath)
349
349
  job.join
350
350
  if Open.remote? job.path
351
- puts job.path + Log.color(:blue, "?_format=raw")
351
+ puts job.url + Log.color(:blue, "?_format=raw")
352
352
  else
353
353
  puts job.path
354
354
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.17.66
4
+ version: 5.17.67
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-17 00:00:00.000000000 Z
11
+ date: 2015-08-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake