iron_worker 2.4.3 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +352 -0
  4. data/iron_worker.gemspec +3 -8
  5. data/lib/iron_worker.rb +13 -51
  6. data/lib/iron_worker/api_client.rb +152 -0
  7. data/lib/iron_worker/version.rb +9 -1
  8. data/lib/iron_worker/worker_helper.rb +72 -0
  9. metadata +18 -183
  10. data/README.markdown +0 -73
  11. data/lib/generators/iron_worker/iron_worker_generator.rb +0 -13
  12. data/lib/generators/iron_worker/templates/template_worker.erb +0 -7
  13. data/lib/iron_worker/api.rb +0 -244
  14. data/lib/iron_worker/base.rb +0 -449
  15. data/lib/iron_worker/config.rb +0 -287
  16. data/lib/iron_worker/rails2_init.rb +0 -8
  17. data/lib/iron_worker/railtie.rb +0 -16
  18. data/lib/iron_worker/server/overrides.rb +0 -198
  19. data/lib/iron_worker/server/runner.rb +0 -82
  20. data/lib/iron_worker/service.rb +0 -644
  21. data/lib/iron_worker/used_in_worker.rb +0 -11
  22. data/lib/iron_worker/utils.rb +0 -11
  23. data/rails/init.rb +0 -0
  24. data/test/Gemfile +0 -36
  25. data/test/Gemfile.lock +0 -169
  26. data/test/README.md +0 -5
  27. data/test/batch_run.rb +0 -121
  28. data/test/config_sample.yml +0 -13
  29. data/test/models/cool_model.rb +0 -7
  30. data/test/models/db_model.rb +0 -6
  31. data/test/models/model_1.rb +0 -16
  32. data/test/models/model_2.rb +0 -16
  33. data/test/quick_run.rb +0 -36
  34. data/test/quick_schedule.rb +0 -18
  35. data/test/resources/something.yml +0 -4
  36. data/test/simple_script.rb +0 -11
  37. data/test/test_base.rb +0 -79
  38. data/test/test_database.rb +0 -31
  39. data/test/test_gems.rb +0 -31
  40. data/test/test_inheritance.rb +0 -25
  41. data/test/test_iron_worker.rb +0 -194
  42. data/test/test_merging.rb +0 -51
  43. data/test/test_non_worker_script.rb +0 -14
  44. data/test/test_rails.rb +0 -35
  45. data/test/test_scheduling.rb +0 -74
  46. data/test/test_scheduling_no_active_support.rb +0 -37
  47. data/test/test_service.rb +0 -28
  48. data/test/test_uploads.rb +0 -30
  49. data/test/test_webhooks.rb +0 -45
  50. data/test/v2quick.rb +0 -29
  51. data/test/workers/awesome_job.rb +0 -26
  52. data/test/workers/aws_s3_worker.rb +0 -10
  53. data/test/workers/big_data_worker.rb +0 -15
  54. data/test/workers/big_gems_worker.rb +0 -35
  55. data/test/workers/cool_worker.rb +0 -14
  56. data/test/workers/db_worker.rb +0 -27
  57. data/test/workers/fail_worker.rb +0 -10
  58. data/test/workers/gem_dependency_worker.rb +0 -20
  59. data/test/workers/hacker_worker.rb +0 -65
  60. data/test/workers/iw_test_worker.rb +0 -22
  61. data/test/workers/iw_test_worker_2.rb +0 -53
  62. data/test/workers/iw_test_worker_3.rb +0 -17
  63. data/test/workers/local_vs_remote_worker.rb +0 -9
  64. data/test/workers/merging_worker.rb +0 -40
  65. data/test/workers/mq_worker.rb +0 -21
  66. data/test/workers/one_line_worker.rb +0 -10
  67. data/test/workers/prawn_worker.rb +0 -32
  68. data/test/workers/progress_worker.rb +0 -26
  69. data/test/workers/qb_worker.rb +0 -17
  70. data/test/workers/rails_worker.rb +0 -24
  71. data/test/workers/rails_worker2.rb +0 -12
  72. data/test/workers/requiring_worker.rb +0 -4
  73. data/test/workers/running_back_worker.rb +0 -7
  74. data/test/workers/scheduled_worker.rb +0 -15
  75. data/test/workers/second_worker.rb +0 -16
  76. data/test/workers/third_worker.rb +0 -6
  77. data/test/workers/webhook_worker.rb +0 -7
  78. data/test/zip_vs_gzip.rb +0 -26
@@ -0,0 +1,152 @@
1
+ require 'time'
2
+ require 'iron_core'
3
+
4
+ module IronWorker
5
+ class APIClient < IronCore::Client
6
+ AWS_US_EAST_HOST = 'worker-aws-us-east-1.iron.io'
7
+
8
+ def initialize(options = {})
9
+ default_options = {
10
+ :scheme => 'https',
11
+ :host => IronWorker::APIClient::AWS_US_EAST_HOST,
12
+ :port => 443,
13
+ :api_version => 2,
14
+ :user_agent => IronWorker.full_version
15
+ }
16
+
17
+ super('iron', 'worker', options, default_options, [:project_id, :token, :api_version])
18
+
19
+ IronCore::Logger.debug 'IronWorker', "nhp.proxy: #{rest.wrapper.http.proxy_uri}" if defined? Net::HTTP::Persistent
20
+ IronCore::Logger.debug 'IronWorker', "RestClient.proxy: #{RestClient.proxy}" if defined? RestClient
21
+ IronCore::Logger.debug 'IronWorker', "InternalClient.proxy: #{Rest::InternalClient.proxy}" if defined? Rest::InternalClient
22
+
23
+ IronCore::Logger.error 'IronWorker', "Token is not set", IronCore::Error if @token.nil?
24
+
25
+ check_id(@project_id, 'project_id')
26
+ end
27
+
28
+ def headers
29
+ super.merge({'Authorization' => "OAuth #{@token}"})
30
+ end
31
+
32
+ def base_url
33
+ super + @api_version.to_s + '/'
34
+ end
35
+
36
+ def stacks_list
37
+ parse_response(get("stacks"))
38
+ end
39
+
40
+ def codes_list(options = {})
41
+ parse_response(get("projects/#{@project_id}/codes", options))
42
+ end
43
+
44
+ def codes_get(id)
45
+ check_id(id)
46
+ parse_response(get("projects/#{@project_id}/codes/#{id}"))
47
+ end
48
+
49
+ def codes_create(name, file, runtime, runner, options)
50
+ parse_response(post_file("projects/#{@project_id}/codes", :file, File.new(file, 'rb'), :data, {:name => name, :runtime => runtime, :file_name => runner}.merge(options)))
51
+ end
52
+
53
+ def codes_delete(id)
54
+ check_id(id)
55
+ parse_response(delete("projects/#{@project_id}/codes/#{id}"))
56
+ end
57
+
58
+ def codes_revisions(id, options = {})
59
+ check_id(id)
60
+ parse_response(get("projects/#{@project_id}/codes/#{id}/revisions", options))
61
+ end
62
+
63
+ def codes_download(id, options = {})
64
+ check_id(id)
65
+ parse_response(get("projects/#{@project_id}/codes/#{id}/download", options), false)
66
+ end
67
+
68
+ def codes_pause_task_queue(id, options = {})
69
+ check_id(id)
70
+ parse_response(post("projects/#{@project_id}/codes/#{id}/pause_task_queue", options))
71
+ end
72
+
73
+ def codes_resume_task_queue(id, options = {})
74
+ check_id(id)
75
+ parse_response(post("projects/#{@project_id}/codes/#{id}/resume_task_queue", options))
76
+ end
77
+
78
+ def tasks_list(options = {})
79
+ parse_response(get("projects/#{@project_id}/tasks", options))
80
+ end
81
+
82
+ def tasks_get(id)
83
+ check_id(id)
84
+ parse_response(get("projects/#{@project_id}/tasks/#{id}"))
85
+ end
86
+
87
+ def tasks_create(code_name, payload, options = {})
88
+ parse_response(post("projects/#{@project_id}/tasks", {:tasks => [{:code_name => code_name, :payload => payload}.merge(options)]}))
89
+ end
90
+
91
+ def tasks_cancel(id)
92
+ check_id(id)
93
+ parse_response(post("projects/#{@project_id}/tasks/#{id}/cancel"))
94
+ end
95
+
96
+ def tasks_cancel_all(id)
97
+ check_id(id)
98
+ parse_response(post("projects/#{@project_id}/codes/#{id}/cancel_all"))
99
+ end
100
+
101
+ def tasks_log(id)
102
+ check_id(id)
103
+ if block_given?
104
+ stream_get("projects/#{@project_id}/tasks/#{id}/log") do |chunk|
105
+ yield chunk
106
+ end
107
+ else
108
+ parse_response(get("projects/#{@project_id}/tasks/#{id}/log"), false)
109
+ end
110
+ end
111
+
112
+ def tasks_set_progress(id, options = {})
113
+ check_id(id)
114
+ parse_response(post("projects/#{@project_id}/tasks/#{id}/progress", options))
115
+ end
116
+
117
+ def tasks_retry(id, options = {})
118
+ check_id(id)
119
+ parse_response(post("projects/#{@project_id}/tasks/#{id}/retry", options))
120
+ end
121
+
122
+ def schedules_list(options = {})
123
+ parse_response(get("projects/#{@project_id}/schedules", options))
124
+ end
125
+
126
+ def schedules_get(id)
127
+ check_id(id)
128
+ parse_response(get("projects/#{@project_id}/schedules/#{id}"))
129
+ end
130
+
131
+ def schedules_create(code_name, payload, options = {})
132
+ options[:start_at] = options[:start_at].iso8601 if (not options[:start_at].nil?) && options[:start_at].respond_to?(:iso8601)
133
+ options[:end_at] = options[:end_at].iso8601 if (not options[:end_at].nil?) && options[:end_at].respond_to?(:iso8601)
134
+
135
+ parse_response(post("projects/#{@project_id}/schedules", {:schedules => [{:code_name => code_name, :payload => payload}.merge(options)]}))
136
+ end
137
+
138
+ def schedules_update(id, options = {})
139
+ check_id(id)
140
+ parse_response(put("projects/#{@project_id}/schedules/#{id}", options))
141
+ end
142
+
143
+ def schedules_cancel(id)
144
+ check_id(id)
145
+ parse_response(post("projects/#{@project_id}/schedules/#{id}/cancel"))
146
+ end
147
+
148
+ def projects_get
149
+ parse_response(get("projects/#{@project_id}"))
150
+ end
151
+ end
152
+ end
@@ -1,4 +1,12 @@
1
1
  module IronWorker
2
- VERSION = "2.4.3"
2
+ VERSION = "3.0.0"
3
+
4
+ def self.version
5
+ VERSION
6
+ end
7
+
8
+ def self.full_version
9
+ 'iron_worker_ruby_-' + IronWorker.version + ' (iron_core_ruby-' + IronCore.version + ')'
10
+ end
3
11
  end
4
12
 
@@ -0,0 +1,72 @@
1
+ # This could be a gem to help worker users with common functions like getting config and payload.
2
+ require 'json'
3
+
4
+ module IronWorker
5
+ @@loaded = false
6
+ @@args = {}
7
+ @@payload = {}
8
+ @@config = {}
9
+
10
+ def self.loaded
11
+ return @@loaded
12
+ end
13
+
14
+ def self.load
15
+ return if @@loaded
16
+ 0.upto($*.length - 2) do |i|
17
+ @@args[:root] = $*[i + 1] if $*[i] == '--dir'
18
+ @@args[:payload_file] = $*[i + 1] if $*[i] == '--payload'
19
+ @@args[:config_file] = $*[i + 1] if $*[i] == '--config'
20
+ @@args[:task_id] = $*[i + 1] if $*[i] == '--id'
21
+ end
22
+
23
+ # puts "args: #{@@args.inspect}"
24
+
25
+ if args[:payload_file]
26
+ @@payload = File.read(@@args[:payload_file])
27
+
28
+ begin
29
+ @@payload = JSON.parse(@@payload)
30
+ rescue => ex
31
+ puts "Couldn't parse IronWorker payload into json, leaving as string. #{ex}"
32
+ end
33
+ end
34
+
35
+ if args[:config_file]
36
+ if args[:config_file]
37
+ @@config = File.read(args[:config_file])
38
+ begin
39
+ @@config = JSON.parse(@@config)
40
+ rescue
41
+ # try yaml
42
+ begin
43
+ @@config = YAML.load(@@config)
44
+ rescue => ex
45
+
46
+ end
47
+ end
48
+ end
49
+ end
50
+ @@loaded = true
51
+ end
52
+
53
+ def self.payload
54
+ load
55
+ @@payload
56
+ end
57
+
58
+ def self.config
59
+ load
60
+ @@config
61
+ end
62
+
63
+ def self.task_id
64
+ @@args[:task_id]
65
+ end
66
+
67
+ def self.args
68
+ return @@args
69
+ end
70
+
71
+
72
+ end
metadata CHANGED
@@ -1,168 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_worker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.3
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Reeder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-28 00:00:00.000000000 Z
11
+ date: 2015-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iron_core
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.5.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.5.1
27
- - !ruby/object:Gem::Dependency
28
- name: rubyzip
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '>='
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '>='
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rest-client
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - '>='
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - '>='
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: rest
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
- - - '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - '>='
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - '>='
31
+ - - ">="
74
32
  - !ruby/object:Gem::Version
75
- version: '0'
33
+ version: 3.0.6
76
34
  type: :runtime
77
35
  prerelease: false
78
36
  version_requirements: !ruby/object:Gem::Requirement
79
37
  requirements:
80
- - - '>='
38
+ - - ">="
81
39
  - !ruby/object:Gem::Version
82
- version: '0'
83
- description: DEPRECATED!! Use iron_worker_ng now. The official IronWorker gem for
84
- IronWorker by Iron.io. http://www.iron.io
40
+ version: 3.0.6
41
+ description: The official IronWorker gem for IronWorker by Iron.io. http://iron.io
85
42
  email:
86
43
  - travis@iron.io
87
44
  executables: []
88
45
  extensions: []
89
46
  extra_rdoc_files: []
90
47
  files:
91
- - .gitignore
48
+ - ".gitignore"
92
49
  - LICENSE
93
- - README.markdown
50
+ - README.md
94
51
  - Rakefile
95
52
  - iron_worker.gemspec
96
- - lib/generators/iron_worker/iron_worker_generator.rb
97
- - lib/generators/iron_worker/templates/template_worker.erb
98
53
  - lib/iron_worker.rb
99
- - lib/iron_worker/api.rb
100
- - lib/iron_worker/base.rb
101
- - lib/iron_worker/config.rb
102
- - lib/iron_worker/rails2_init.rb
103
- - lib/iron_worker/railtie.rb
104
- - lib/iron_worker/server/overrides.rb
105
- - lib/iron_worker/server/runner.rb
106
- - lib/iron_worker/service.rb
107
- - lib/iron_worker/used_in_worker.rb
108
- - lib/iron_worker/utils.rb
54
+ - lib/iron_worker/api_client.rb
109
55
  - lib/iron_worker/version.rb
110
- - rails/init.rb
111
- - test/Gemfile
112
- - test/Gemfile.lock
113
- - test/README.md
114
- - test/batch_run.rb
115
- - test/config_sample.yml
116
- - test/models/cool_model.rb
117
- - test/models/db_model.rb
118
- - test/models/model_1.rb
119
- - test/models/model_2.rb
120
- - test/quick_run.rb
121
- - test/quick_schedule.rb
122
- - test/resources/something.yml
123
- - test/simple_script.rb
124
- - test/test_base.rb
125
- - test/test_database.rb
126
- - test/test_gems.rb
127
- - test/test_inheritance.rb
128
- - test/test_iron_worker.rb
129
- - test/test_merging.rb
130
- - test/test_non_worker_script.rb
131
- - test/test_rails.rb
132
- - test/test_scheduling.rb
133
- - test/test_scheduling_no_active_support.rb
134
- - test/test_service.rb
135
- - test/test_uploads.rb
136
- - test/test_webhooks.rb
137
- - test/v2quick.rb
138
- - test/workers/awesome_job.rb
139
- - test/workers/aws_s3_worker.rb
140
- - test/workers/big_data_worker.rb
141
- - test/workers/big_gems_worker.rb
142
- - test/workers/cool_worker.rb
143
- - test/workers/db_worker.rb
144
- - test/workers/fail_worker.rb
145
- - test/workers/gem_dependency_worker.rb
146
- - test/workers/hacker_worker.rb
147
- - test/workers/iw_test_worker.rb
148
- - test/workers/iw_test_worker_2.rb
149
- - test/workers/iw_test_worker_3.rb
150
- - test/workers/local_vs_remote_worker.rb
151
- - test/workers/merging_worker.rb
152
- - test/workers/mq_worker.rb
153
- - test/workers/one_line_worker.rb
154
- - test/workers/prawn_worker.rb
155
- - test/workers/progress_worker.rb
156
- - test/workers/qb_worker.rb
157
- - test/workers/rails_worker.rb
158
- - test/workers/rails_worker2.rb
159
- - test/workers/requiring_worker.rb
160
- - test/workers/running_back_worker.rb
161
- - test/workers/scheduled_worker.rb
162
- - test/workers/second_worker.rb
163
- - test/workers/third_worker.rb
164
- - test/workers/webhook_worker.rb
165
- - test/zip_vs_gzip.rb
56
+ - lib/iron_worker/worker_helper.rb
166
57
  homepage: https://github.com/iron-io/iron_worker_ruby
167
58
  licenses: []
168
59
  metadata: {}
@@ -172,74 +63,18 @@ require_paths:
172
63
  - lib
173
64
  required_ruby_version: !ruby/object:Gem::Requirement
174
65
  requirements:
175
- - - '>='
66
+ - - ">="
176
67
  - !ruby/object:Gem::Version
177
68
  version: '1.9'
178
69
  required_rubygems_version: !ruby/object:Gem::Requirement
179
70
  requirements:
180
- - - '>='
71
+ - - ">="
181
72
  - !ruby/object:Gem::Version
182
73
  version: 1.3.6
183
74
  requirements: []
184
75
  rubyforge_project:
185
- rubygems_version: 2.2.2
76
+ rubygems_version: 2.4.2
186
77
  signing_key:
187
78
  specification_version: 4
188
- summary: DEPRECATED!! Use iron_worker_ng now. The official IronWorker gem for IronWorker
189
- by Iron.io. http://www.iron.io
190
- test_files:
191
- - test/Gemfile
192
- - test/Gemfile.lock
193
- - test/README.md
194
- - test/batch_run.rb
195
- - test/config_sample.yml
196
- - test/models/cool_model.rb
197
- - test/models/db_model.rb
198
- - test/models/model_1.rb
199
- - test/models/model_2.rb
200
- - test/quick_run.rb
201
- - test/quick_schedule.rb
202
- - test/resources/something.yml
203
- - test/simple_script.rb
204
- - test/test_base.rb
205
- - test/test_database.rb
206
- - test/test_gems.rb
207
- - test/test_inheritance.rb
208
- - test/test_iron_worker.rb
209
- - test/test_merging.rb
210
- - test/test_non_worker_script.rb
211
- - test/test_rails.rb
212
- - test/test_scheduling.rb
213
- - test/test_scheduling_no_active_support.rb
214
- - test/test_service.rb
215
- - test/test_uploads.rb
216
- - test/test_webhooks.rb
217
- - test/v2quick.rb
218
- - test/workers/awesome_job.rb
219
- - test/workers/aws_s3_worker.rb
220
- - test/workers/big_data_worker.rb
221
- - test/workers/big_gems_worker.rb
222
- - test/workers/cool_worker.rb
223
- - test/workers/db_worker.rb
224
- - test/workers/fail_worker.rb
225
- - test/workers/gem_dependency_worker.rb
226
- - test/workers/hacker_worker.rb
227
- - test/workers/iw_test_worker.rb
228
- - test/workers/iw_test_worker_2.rb
229
- - test/workers/iw_test_worker_3.rb
230
- - test/workers/local_vs_remote_worker.rb
231
- - test/workers/merging_worker.rb
232
- - test/workers/mq_worker.rb
233
- - test/workers/one_line_worker.rb
234
- - test/workers/prawn_worker.rb
235
- - test/workers/progress_worker.rb
236
- - test/workers/qb_worker.rb
237
- - test/workers/rails_worker.rb
238
- - test/workers/rails_worker2.rb
239
- - test/workers/requiring_worker.rb
240
- - test/workers/running_back_worker.rb
241
- - test/workers/scheduled_worker.rb
242
- - test/workers/second_worker.rb
243
- - test/workers/third_worker.rb
244
- - test/workers/webhook_worker.rb
245
- - test/zip_vs_gzip.rb
79
+ summary: The official IronWorker gem for IronWorker by Iron.io. http://iron.io
80
+ test_files: []