simple_worker 2.0.0.beta.15 → 2.0.0.beta.16
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +1 -0
- data/lib/simple_worker/api.rb +29 -22
- data/lib/simple_worker/base.rb +2 -0
- data/lib/simple_worker/config.rb +3 -3
- data/lib/simple_worker/service.rb +3 -14
- metadata +2 -2
data/README.markdown
CHANGED
data/lib/simple_worker/api.rb
CHANGED
@@ -52,7 +52,7 @@ module SimpleWorker
|
|
52
52
|
@port = options[:port] || @config.port || 443
|
53
53
|
@token = options[:token] || @config.token || token
|
54
54
|
@version = options[:version]
|
55
|
-
|
55
|
+
#@logger = options[:logger]
|
56
56
|
|
57
57
|
@base_url = "#{@scheme}://#{@host}:#{@port}/#{@version}"
|
58
58
|
|
@@ -72,15 +72,22 @@ module SimpleWorker
|
|
72
72
|
end
|
73
73
|
|
74
74
|
def url(command_path)
|
75
|
+
# @logger.debug "url: " + url.to_s
|
76
|
+
"/#{command_path}"
|
77
|
+
end
|
78
|
+
|
79
|
+
# Used for RestClient ones that haven't been converted to patron yet
|
80
|
+
def url_full(command_path)
|
75
81
|
url = "#{base_url}/#{command_path}"
|
76
82
|
# @logger.debug "url: " + url.to_s
|
77
83
|
url
|
78
84
|
end
|
79
85
|
|
80
86
|
def process_ex(ex)
|
87
|
+
logger.error "EX #{ex.class.name}: #{ex.message}"
|
81
88
|
body = ex.http_body
|
82
|
-
|
83
|
-
|
89
|
+
logger.debug 'EX http_code: ' + ex.http_code.to_s
|
90
|
+
logger.debug 'EX BODY=' + body.to_s
|
84
91
|
decoded_ex = JSON.parse(body)
|
85
92
|
exception = Exception.new(ex.message + ": " + decoded_ex["msg"])
|
86
93
|
exception.set_backtrace(decoded_ex["backtrace"].split(",")) if decoded_ex["backtrace"]
|
@@ -106,7 +113,7 @@ module SimpleWorker
|
|
106
113
|
full_url = url(method)
|
107
114
|
all_params = add_params(method, params)
|
108
115
|
url_plus_params = append_params(full_url, all_params)
|
109
|
-
|
116
|
+
logger.debug 'get url=' + url_plus_params
|
110
117
|
response = @http_sess.request(:get, url_plus_params,
|
111
118
|
{},
|
112
119
|
{})
|
@@ -119,39 +126,39 @@ module SimpleWorker
|
|
119
126
|
def post_file(method, file, params={}, options={})
|
120
127
|
begin
|
121
128
|
data = add_params(method, params).to_json
|
122
|
-
url =
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
129
|
+
url = url_full(method)
|
130
|
+
logger.debug "post_file url = " + url
|
131
|
+
logger.debug "data = " + data
|
132
|
+
logger.debug "params = " + params.inspect
|
133
|
+
logger.debug "options = " + options.inspect
|
127
134
|
# todo: replace with patron
|
128
|
-
parse_response(RestClient.post(append_params(url
|
129
|
-
rescue Exception => ex
|
135
|
+
parse_response(RestClient.post(append_params(url, add_params(method, params)), {:data => data, :file => file}, :content_type => 'application/json'), options)
|
136
|
+
rescue RestClient::Exception => ex
|
130
137
|
process_ex(ex)
|
131
138
|
end
|
132
139
|
end
|
133
140
|
|
134
141
|
def post(method, params={}, options={})
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
142
|
+
logger.debug "params = " + params.inspect
|
143
|
+
logger.debug "options = " + options.inspect
|
144
|
+
logger.debug "params.payload = " + params[:payload].inspect
|
145
|
+
logger.debug "token = "+ token.inspect
|
139
146
|
begin
|
140
147
|
url = url(method) + "?oauth=" + token
|
141
|
-
|
148
|
+
logger.debug 'post url=' + url
|
142
149
|
json = add_params(method, params).to_json
|
143
|
-
|
150
|
+
logger.debug 'body=' + json
|
144
151
|
response = @http_sess.post(url, json, {"Content-Type" => 'application/json'})
|
145
152
|
check_response(response)
|
146
|
-
|
153
|
+
logger.debug 'response: ' + response.inspect
|
147
154
|
body = response.body
|
148
155
|
parse_response(body, options)
|
149
156
|
rescue SimpleWorker::RequestError => ex
|
150
157
|
# let it throw, came from check_response
|
151
158
|
raise ex
|
152
159
|
rescue Exception => ex
|
153
|
-
|
154
|
-
|
160
|
+
logger.warn("Exception in post! #{ex.message}")
|
161
|
+
logger.warn(ex.backtrace.join("\n"))
|
155
162
|
process_ex(ex)
|
156
163
|
end
|
157
164
|
end
|
@@ -160,7 +167,7 @@ module SimpleWorker
|
|
160
167
|
def put(method, body, options={})
|
161
168
|
begin
|
162
169
|
# todo: replace with patron
|
163
|
-
parse_response RestClient.put(
|
170
|
+
parse_response RestClient.put(url_full(method), add_params(method, body).to_json, headers), options
|
164
171
|
rescue RestClient::Exception => ex
|
165
172
|
process_ex(ex)
|
166
173
|
end
|
@@ -169,7 +176,7 @@ module SimpleWorker
|
|
169
176
|
def delete(method, params={}, options={})
|
170
177
|
begin
|
171
178
|
# todo: replace with patron
|
172
|
-
parse_response RestClient.delete(append_params(
|
179
|
+
parse_response RestClient.delete(append_params(url_full(method), add_params(method, params))), options
|
173
180
|
rescue RestClient::Exception => ex
|
174
181
|
process_ex(ex)
|
175
182
|
end
|
data/lib/simple_worker/base.rb
CHANGED
@@ -6,6 +6,7 @@ module SimpleWorker
|
|
6
6
|
class Base
|
7
7
|
|
8
8
|
attr_accessor :task_set_id, :task_id, :schedule_id
|
9
|
+
attr_reader :response
|
9
10
|
|
10
11
|
class << self
|
11
12
|
attr_accessor :subclass, :caller_file
|
@@ -218,6 +219,7 @@ module SimpleWorker
|
|
218
219
|
|
219
220
|
response = SimpleWorker.service.queue(self.class.name, sw_get_data, options)
|
220
221
|
SimpleWorker.service.logger.debug 'queue response=' + response.inspect
|
222
|
+
@response = response
|
221
223
|
@task_id = response["tasks"][0]["id"]
|
222
224
|
response
|
223
225
|
end
|
data/lib/simple_worker/config.rb
CHANGED
@@ -12,7 +12,7 @@ module SimpleWorker
|
|
12
12
|
class Config
|
13
13
|
attr_accessor :token,
|
14
14
|
:project_id,
|
15
|
-
|
15
|
+
:scheme,
|
16
16
|
:host,
|
17
17
|
:port,
|
18
18
|
:global_attributes,
|
@@ -28,7 +28,7 @@ module SimpleWorker
|
|
28
28
|
:unmerged,
|
29
29
|
:merged_gems,
|
30
30
|
:unmerged_gems,
|
31
|
-
|
31
|
+
:force_upload
|
32
32
|
|
33
33
|
|
34
34
|
def initialize
|
@@ -134,7 +134,7 @@ module SimpleWorker
|
|
134
134
|
end
|
135
135
|
end
|
136
136
|
else
|
137
|
-
|
137
|
+
SimpleWorker.logger.warn "Could not find '#{gem_info[:name]}' specified in Bundler, continuing anyways."
|
138
138
|
end
|
139
139
|
# else
|
140
140
|
# SimpleWorker.logger.warn "Could not find gem spec for #{gem_info[:name]}"
|
@@ -126,7 +126,6 @@ module SimpleWorker
|
|
126
126
|
tmp_file = File.join(Dir.tmpdir(), 'runner.rb')
|
127
127
|
File.open(tmp_file, "w") do |f|
|
128
128
|
|
129
|
-
f.write("begin\n") #error handling block start
|
130
129
|
f.write("
|
131
130
|
# Find environment (-e)
|
132
131
|
dirname = ''
|
@@ -154,10 +153,7 @@ require 'json'
|
|
154
153
|
# require merged gems
|
155
154
|
merged_gems.each_pair do |k, gem|
|
156
155
|
SimpleWorker.logger.debug "Bundling gem #{gem[:name]}..."
|
157
|
-
|
158
|
-
f.write "$LOAD_PATH << File.join(File.dirname(__FILE__), '/gems/#{gem[:name]}/lib')\n"
|
159
|
-
end
|
160
|
-
# unless gem[:no_require]
|
156
|
+
f.write "$LOAD_PATH << File.join(File.dirname(__FILE__), '/gems/#{gem[:name]}/lib')\n"
|
161
157
|
SimpleWorker.logger.debug 'writing requires: ' + gem[:require].inspect
|
162
158
|
if gem[:require].nil?
|
163
159
|
gem[:require] = []
|
@@ -246,13 +242,6 @@ end
|
|
246
242
|
runner_return_data = runner.run
|
247
243
|
")
|
248
244
|
|
249
|
-
#error handling block - end
|
250
|
-
f.write("\nrescue Exception => ex
|
251
|
-
$stderr.puts '_error_from_sw_'
|
252
|
-
raise ex
|
253
|
-
end
|
254
|
-
")
|
255
|
-
|
256
245
|
end
|
257
246
|
#puts 'funner.rb=' + tmp_file
|
258
247
|
merge['runner.rb'] = {:path=>tmp_file}
|
@@ -396,8 +385,8 @@ end
|
|
396
385
|
end
|
397
386
|
|
398
387
|
def check_config
|
399
|
-
if self.config.nil? || self.config.token.nil?
|
400
|
-
raise "Invalid SimpleWorker configuration,
|
388
|
+
if self.config.nil? || self.config.token.nil? || self.config.project_id.nil?
|
389
|
+
raise "Invalid SimpleWorker configuration, token and project_id required."
|
401
390
|
end
|
402
391
|
end
|
403
392
|
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: simple_worker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: 6
|
5
|
-
version: 2.0.0.beta.
|
5
|
+
version: 2.0.0.beta.16
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Travis Reeder
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-
|
13
|
+
date: 2011-11-02 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: zip
|