iron_worker 2.4.3 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: []