rbbt-util 5.5.50 → 5.5.51
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/rbbt/resource.rb +14 -9
- data/lib/rbbt/tsv/manipulate.rb +12 -5
- data/lib/rbbt/workflow/accessor.rb +6 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZjQ0ZDU1ZWJkNWY0MDJhYzZhNTZiOGMxZTQ1ZGY1YTcxYTg2YmMxZg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZTlhYjJjZDE0MTEyMWYxNTM0ZTQ3NmJiYjIwM2UxM2NiNTM3ZGJkYQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTE4Njc0ODNiYjY5MjJjYjQ4YjIwZDBjZWUyMjdmMWVlZTA1OGQ2MTZlYjlm
|
10
|
+
NjgxODBjNzJjZTMxYzMwMjJhODJkYTk0ZWZiMDJiNmJjMDNlNjI1NmQxMWRh
|
11
|
+
NDUwOTQyYzFlYTc4MDIwOGM3MmQwMmEwYmY0M2YzNTdjYTcwZTY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NmI3MWVjMDEyM2U3YjRkM2MyYTUyZjc5NDY4NThkMzI0YTEyNDg1ZjAwNzdi
|
14
|
+
NWVhYTE2OWRlMDAyN2FkMzU4NTA2MTJhNTMzZjg4ZDQ3NzU2OGZlMzcwOTYy
|
15
|
+
ODA5M2EwZjJlODAzOGQwMzRhMWRmMTYyOWU1NDM3MDMwMDFhYjI=
|
data/lib/rbbt/resource.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rbbt/util/open'
|
|
2
2
|
require 'rbbt/util/log'
|
3
3
|
require 'rbbt/resource/path'
|
4
4
|
require 'net/http'
|
5
|
+
require 'set'
|
5
6
|
|
6
7
|
|
7
8
|
module Resource
|
@@ -55,11 +56,14 @@ module Resource
|
|
55
56
|
end
|
56
57
|
end
|
57
58
|
|
59
|
+
attr_accessor :server_missing_resource_cache
|
58
60
|
def get_from_server(path, final_path)
|
59
61
|
url = File.join(remote_server, '/resource/', self.to_s, 'get_file')
|
60
62
|
url << "?" << Misc.hash2GET_params(:file => path, :create => false)
|
61
63
|
|
62
64
|
begin
|
65
|
+
@server_missing_resource_cache ||= Set.new
|
66
|
+
raise "Resource Not Found" if @server_missing_resource_cache.include? url
|
63
67
|
Net::HTTP.get_response URI(url) do |response|
|
64
68
|
case response
|
65
69
|
when Net::HTTPSuccess, Net::HTTPOK
|
@@ -70,22 +74,23 @@ module Resource
|
|
70
74
|
end
|
71
75
|
end
|
72
76
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
77
|
+
when Net::HTTPRedirection, Net::HTTPFound
|
78
|
+
location = response['location']
|
79
|
+
Log.debug("Feching directory from: #{location}. Into: #{final_path}")
|
80
|
+
FileUtils.mkdir_p final_path unless File.exists? final_path
|
81
|
+
Misc.in_dir final_path do
|
82
|
+
CMD.cmd('tar xvfz -', :in => Open.open(location))
|
83
|
+
end
|
84
|
+
when Net::HTTPInternalServerError
|
85
|
+
@server_missing_resource_cache << url
|
86
|
+
raise "Resource Not Found"
|
80
87
|
else
|
81
|
-
exit
|
82
88
|
raise "Response not understood: #{response.inspect}"
|
83
89
|
end
|
84
90
|
end
|
85
91
|
rescue
|
86
92
|
Log.warn "Could not retrieve (#{self.to_s}) #{ path } from #{ remote_server }"
|
87
93
|
Log.error $!.message
|
88
|
-
Log.error $!.backtrace * "\n"
|
89
94
|
FileUtils.rm_rf final_path if File.exists? final_path
|
90
95
|
return false
|
91
96
|
end
|
data/lib/rbbt/tsv/manipulate.rb
CHANGED
@@ -249,12 +249,19 @@ module TSV
|
|
249
249
|
when :double
|
250
250
|
new_key_field_name, new_field_names = through new_key_field, new_fields, uniq, zipped do |key, value|
|
251
251
|
if data[key].nil?
|
252
|
-
#data[key] = value.collect{|v| v.dup}
|
253
|
-
data[key] = value.
|
252
|
+
#data[key] = value.collect{|v| v.nil? ? nil : v.dup}
|
253
|
+
data[key] = value.dup
|
254
254
|
else
|
255
|
-
current = data[key]
|
256
|
-
|
257
|
-
|
255
|
+
if current = data[key]
|
256
|
+
value.each_with_index do |v, i|
|
257
|
+
if _c = current[i]
|
258
|
+
_c.concat v if v
|
259
|
+
else
|
260
|
+
current[i] = v || []
|
261
|
+
end
|
262
|
+
end
|
263
|
+
else
|
264
|
+
current = v.collect{|e| [e] }
|
258
265
|
end
|
259
266
|
data[key] = current if data.respond_to? :tokyocabinet_class
|
260
267
|
end
|
@@ -28,13 +28,16 @@ class Step
|
|
28
28
|
def info
|
29
29
|
return {} if info_file.nil? or not Open.exists? info_file
|
30
30
|
begin
|
31
|
-
Misc.insist(2,
|
32
|
-
|
33
|
-
|
31
|
+
Misc.insist(2, 2) do
|
32
|
+
Misc.insist(2, 0.5) do
|
33
|
+
Open.open(info_file) do |file|
|
34
|
+
INFO_SERIALIAZER.load(file) || {}
|
35
|
+
end
|
34
36
|
end
|
35
37
|
end
|
36
38
|
rescue Exception
|
37
39
|
Log.debug{"Error loading info file: " + info_file}
|
40
|
+
Open.write(info_file, {:status => :error, :messages => ["Info file lost"]}.to_yaml)
|
38
41
|
raise $!
|
39
42
|
end
|
40
43
|
end
|