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 CHANGED
@@ -18,6 +18,7 @@ You really just need your token, which you can get [here][2]
18
18
 
19
19
  SimpleWorker.configure do |config|
20
20
  config.token = TOKEN
21
+ config.project_id = MY_PROJECT_ID
21
22
  end
22
23
 
23
24
  Generate a Worker with Rails
@@ -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
- @logger = options[:logger]
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
- @logger.debug 'EX http_code: ' + ex.http_code.to_s
83
- @logger.debug 'EX BODY=' + body.to_s
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
- @logger.debug 'get url=' + url_plus_params
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 = url(method) + "?oauth=" + token
123
- @logger.debug "post_file url = " + url
124
- @logger.debug "data = " + data
125
- @logger.debug "params = " + params.inspect
126
- @logger.debug "options = " + options.inspect
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(method), add_params(method, params)), {:data => data, :file => file}, :content_type => 'application/json'), options)
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
- @logger.debug "params = " + params.inspect
136
- @logger.debug "options = " + options.inspect
137
- @logger.debug "params.payload = " + params[:payload].inspect
138
- @logger.debug "token = "+ token.inspect
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
- @logger.debug 'post url=' + url
148
+ logger.debug 'post url=' + url
142
149
  json = add_params(method, params).to_json
143
- @logger.debug 'body=' + json
150
+ logger.debug 'body=' + json
144
151
  response = @http_sess.post(url, json, {"Content-Type" => 'application/json'})
145
152
  check_response(response)
146
- @logger.debug 'response: ' + response.inspect
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
- @logger.warn("Exception in post! #{ex.message}")
154
- @logger.warn(ex.backtrace.join("\n"))
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(url(method), add_params(method, body).to_json, headers), options
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(url(method), add_params(method, params))), options
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
@@ -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
@@ -12,7 +12,7 @@ module SimpleWorker
12
12
  class Config
13
13
  attr_accessor :token,
14
14
  :project_id,
15
- :scheme,
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
- :force_upload
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
- SimpleWorker.logger.warn "Could not find '#{gem_info[:name]}' specified in Bundler, continuing anyways."
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
- if gem[:merge]
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, no access key specified."
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.15
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-10-27 00:00:00 Z
13
+ date: 2011-11-02 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: zip