iron_worker_ng 1.6.2 → 1.6.3

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: 98b0e00e293fcd4830606d9df08dcade43b6aa11
4
- data.tar.gz: c815b1f91b12f0a065e8e258a995891f2f414627
3
+ metadata.gz: 70aa324ca6fd1f4fe49bcfe3294d37b6302926b3
4
+ data.tar.gz: 62d5a435dca86736b109a4282eb98f8476a86ee6
5
5
  SHA512:
6
- metadata.gz: 242738189db79e8bc2219df6cec277751e985bc7ce6bafabf234feb48cf215ec9d83b343af17694a53f75d54c2add90fca1b3a97c434b995a6f4c8d157fc5218
7
- data.tar.gz: 51d840ba457f9dfb0f7b8dec34b9c092cb9b5b288fff1ebf82a0115d61e128967750205eae555215b5acfd3f52577b86be7828d0df190aaef6ddc8ac5d1c8d94
6
+ metadata.gz: 9efaa8366ddd501b743cb36f64518d038daa6c50be43d70ff0e75a323def3dde72663d2959ba306940d1aef20fed60d08d086076d995beed6afb9676b92c10b0
7
+ data.tar.gz: 1d5cd976a688c710f624c8b542a697fc806da3d1bd0fabe18b7e3e3cf34efd77cc0e898f66fb2c195712d9ba733c9a67ad5efb025af938b6d3c8594792cb0982
data/README.md CHANGED
@@ -662,3 +662,11 @@ Cancel the scheduled task specified by `schedule_id`.
662
662
  ```ruby
663
663
  client.schedules.cancel('1234567890')
664
664
  ```
665
+
666
+ ### patch your worker using cli
667
+
668
+ If you have an uploaded worker named `super_code` with files `qux.rb, bar.rb, etc.` and want to replace the content of `bar.rb` with a local file `foo.rb`, `qux.rb` with `baz.rb` just run a command:
669
+
670
+ iron_worker patch super_code -p 'foo.rb=bar.rb,baz.rb=lib/qux.rb.rb,foo.rb,foo2.rb'
671
+
672
+ No need to pass the same two file names `foo.rb=foo.rb`, only one `foo.rb` would be enough. Normally the patched version is put in place of the originals.
data/bin/iron_worker CHANGED
@@ -34,6 +34,10 @@ def common_opts(opts)
34
34
  opts.on('--token TOKEN', 'token') do |v|
35
35
  @cli.token = v
36
36
  end
37
+
38
+ opts.on('--http-proxy HTTP_PROXY', 'http proxy') do |v|
39
+ @cli.http_proxy = v
40
+ end
37
41
  end
38
42
 
39
43
  if $*.size == 1 && ($*[0] == '-v' || $*[0] == '--version')
@@ -125,8 +129,8 @@ elsif command == 'patch'
125
129
  opts = OptionParser.new do |opts|
126
130
  opts.banner = "usage: iron_worker patch CODE_PACKAGE_NAME [OPTIONS]"
127
131
 
128
- opts.on('-p', '--patch PATCH', 'patch file') do |v|
129
- options[:patch] = v
132
+ opts.on('-p', '--patch PATCH', Array, 'target and patch file names: \'foo.rb=bar.rb,baz.rb=lib/qux.rb,foo1.rb,foo2.rb\'') do |v|
133
+ options[:patch] = Hash[v.map{|s| s.include?('=') ? s.split('='): [s, s]}]
130
134
  end
131
135
 
132
136
  common_opts(opts)
@@ -17,6 +17,10 @@ module IronWorkerNG
17
17
 
18
18
  super('iron', 'worker', options, default_options, [:project_id, :token, :api_version])
19
19
 
20
+ #puts "nhp.proxy yo #{rest.wrapper.http.proxy_uri}" if defined? Net::HTTP::Persistent
21
+ #puts "RestClient.proxy yo #{RestClient.proxy}" if defined? RestClient
22
+ #puts "InternalClient.proxy yo #{Rest::InternalClient.proxy}" if defined? Rest::InternalClient
23
+
20
24
  IronCore::Logger.error 'IronWorkerNG', "Token is not set", IronCore::Error if @token.nil?
21
25
 
22
26
  check_id(@project_id, 'project_id')
@@ -10,6 +10,7 @@ module IronWorkerNG
10
10
  @env = nil
11
11
  @project_id = nil
12
12
  @token = nil
13
+ @http_proxy = nil
13
14
  end
14
15
 
15
16
  def beta?
@@ -41,6 +42,11 @@ module IronWorkerNG
41
42
 
42
43
  @token = token
43
44
  end
45
+
46
+ def http_proxy=(http_proxy)
47
+ @client = nil
48
+ @http_proxy = http_proxy
49
+ end
44
50
 
45
51
  def log(msg)
46
52
  IronCore::Logger.info 'IronWorkerNG', msg
@@ -54,7 +60,9 @@ module IronWorkerNG
54
60
  if @client.nil?
55
61
  log_group "Creating client"
56
62
 
57
- @client = IronWorkerNG::Client.new(:config => @config, :env => @env, :project_id => @project_id, :token => @token)
63
+ @client = IronWorkerNG::Client.new(:config => @config, :env => @env, :project_id => @project_id, :token => @token,
64
+ :http_proxy => @http_proxy
65
+ )
58
66
 
59
67
  project = client.projects.get
60
68
 
@@ -171,8 +171,8 @@ module IronWorkerNG
171
171
 
172
172
  def codes_patch(name, options = {})
173
173
  IronCore::Logger.debug 'IronWorkerNG', "Calling codes.patch with name='#{name}' and options='#{options.to_s}'"
174
-
175
- code = codes.list(:all => true).find { |c| c.name == name }
174
+
175
+ code = codes.list(per_page: 100).find { |c| c.name == name }
176
176
 
177
177
  if code.nil?
178
178
  IronCore::Logger.error 'IronWorkerNG', "Can't find code with name='#{name}' to patch", IronCore::Error
@@ -208,9 +208,8 @@ original_code_zip.write(original_code_data)
208
208
  original_code_zip.close
209
209
  `cd code && unzip code.zip && rm code.zip && cd ..`
210
210
 
211
- patch_file = Dir['patch/*'].first
212
-
213
- system("cd code && patch -fp1 <../\#{patch_file} && cd ..") || exit(1)
211
+ patch_params = JSON.parse(params[:patch])
212
+ patch_params.each {|k, v| system("cat patch/\#{k} > code/\#{v}")}
214
213
 
215
214
  code_container = IronWorkerNG::Code::Container::Zip.new
216
215
 
@@ -233,7 +232,8 @@ EXEC_FILE
233
232
  patcher_code.runtime = :ruby
234
233
  patcher_code.name = patcher_code_name
235
234
  patcher_code.exec(exec_file_name)
236
- patcher_code.file(options[:patch], 'patch')
235
+ options[:patch].keys.each {|v| patcher_code.file(v, 'patch')}
236
+ patch_params = Hash[options[:patch].map {|k,v| [File.basename(k), v]}]
237
237
 
238
238
  patcher_container_file = patcher_code.create_container
239
239
 
@@ -242,8 +242,7 @@ EXEC_FILE
242
242
  FileUtils.rm_rf(exec_dir)
243
243
  File.unlink(patcher_container_file)
244
244
 
245
- patcher_task = tasks.create(patcher_code_name, :code_id => code._id, :client_options => @api.options.to_json)
246
-
245
+ patcher_task = tasks.create(patcher_code_name, :code_id => code._id, :client_options => @api.options.to_json, patch: patch_params.to_json)
247
246
  patcher_task = tasks.wait_for(patcher_task._id)
248
247
 
249
248
  if patcher_task.status != 'complete'
@@ -45,7 +45,7 @@ function getArgs($assoc = true) {
45
45
  return $args;
46
46
  }
47
47
 
48
- function getPayload($assoc = true) {
48
+ function getPayload($assoc = false) {
49
49
  $args = getArgs($assoc);
50
50
 
51
51
  return $args['payload'];
@@ -1,5 +1,5 @@
1
1
  module IronWorkerNG
2
- VERSION = '1.6.2'
2
+ VERSION = '1.6.3'
3
3
 
4
4
  def self.version
5
5
  VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_worker_ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kirilenko
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-23 00:00:00.000000000 Z
12
+ date: 2015-02-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iron_core
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 1.0.0
20
+ version: 1.0.6
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 1.0.0
27
+ version: 1.0.6
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -240,7 +240,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
240
  version: 1.3.6
241
241
  requirements: []
242
242
  rubyforge_project:
243
- rubygems_version: 2.2.2
243
+ rubygems_version: 2.4.2
244
244
  signing_key:
245
245
  specification_version: 4
246
246
  summary: New generation ruby client for IronWorker