dronejob 2.0.2 → 3.0.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 6bff9afaf42c47bfef7c92aa1bdb85ddeaea4b95
4
- data.tar.gz: c2501b9caf0652c31961330d0a3e01d1fe4a46a1
2
+ SHA256:
3
+ metadata.gz: 2a63ea40c1eec60c227ff462f07e631976b3559434eee2ef791931823c7806cf
4
+ data.tar.gz: 8bf04ed23e899f5b65c3fa5f77d4cf9fffc1ccf8ef1428e82c51751ee26251bd
5
5
  SHA512:
6
- metadata.gz: 9e350ca252faff036e8e0b5c12f8a9992a1fa5302bae81f920cb342f773240471ebcf08cff6c1928ba1ca73442a8d84a5dbf1e50c3d1eaa40a0e9460d0268544
7
- data.tar.gz: ce1ed5b23071458a2269b1451cc91ca56f8338279220293a7237131beda50eb0c620a0b660413ba6aebd0767e6801bc6210548f2570e01cc231fa875b2538dca
6
+ metadata.gz: 5513d3f5cbb14d2e3f4d7cb53d10343f441567908dd7013152ca4efb7d640d7fc1e41cde665e55882345c2a9f6d01c56de21de4e1170daeee39fbd14293945fe
7
+ data.tar.gz: 51be755b012d8a2e847cb70b5dfb29d0bed271fc4038a14ff8a7065b077fb0548ad9086d063dfbd7959c683a03af2ad9d3b3fb80794503a58456f5ed3453dddb
@@ -6,10 +6,6 @@ Style/SymbolArray:
6
6
  Style/ClassCheck:
7
7
  EnforcedStyle: kind_of?
8
8
 
9
- # It's better to be more explicit about the type
10
- Style/BracesAroundHashParameters:
11
- Enabled: false
12
-
13
9
  Style/TernaryParentheses:
14
10
  Enabled: true
15
11
  EnforcedStyle: require_parentheses_when_complex
@@ -20,10 +16,10 @@ Lint/UselessAssignment:
20
16
  - '**/spec/**/*'
21
17
 
22
18
  # We could potentially enable the 2 below:
23
- Layout/IndentFirstHashElement:
19
+ Layout/FirstHashElementIndentation:
24
20
  Enabled: false
25
21
 
26
- Layout/AlignHash:
22
+ Layout/HashAlignment:
27
23
  Enabled: false
28
24
 
29
25
  # HoundCI doesn't like this rule
@@ -38,10 +34,7 @@ Style/NumericPredicate:
38
34
  Enabled: false
39
35
 
40
36
  # Sometimes we allow a rescue block that doesn't contain code
41
- Lint/HandleExceptions:
42
- Enabled: false
43
-
44
- Style/RescueStandardError:
37
+ Lint/SuppressedException:
45
38
  Enabled: false
46
39
 
47
40
  # Cop supports --auto-correct.
@@ -74,7 +67,7 @@ Metrics/CyclomaticComplexity:
74
67
  Enabled: false
75
68
 
76
69
  Metrics/BlockNesting:
77
- Max: 5
70
+ Max: 4
78
71
 
79
72
  Metrics/BlockLength:
80
73
  Enabled: false
@@ -185,8 +178,91 @@ Style/ClassVars:
185
178
  Style/FrozenStringLiteralComment:
186
179
  Enabled: false
187
180
 
181
+ Naming/FileName:
182
+ Enabled: false
183
+
184
+ Naming/MethodParameterName:
185
+ Enabled: false
186
+
187
+ Naming/MemoizedInstanceVariableName:
188
+ Enabled: false
189
+
190
+ Layout/EmptyLinesAroundAttributeAccessor:
191
+ Enabled: true
192
+
193
+ Layout/SpaceAroundMethodCallOperator:
194
+ Enabled: true
195
+
196
+ Lint/DeprecatedOpenSSLConstant:
197
+ Enabled: true
198
+
199
+ Lint/DuplicateElsifCondition:
200
+ Enabled: true
201
+
202
+ Lint/MixedRegexpCaptureTypes:
203
+ Enabled: true
204
+
205
+ Lint/RaiseException:
206
+ Enabled: true
207
+
208
+ Lint/StructNewOverride:
209
+ Enabled: true
210
+
211
+ Style/AccessorGrouping:
212
+ Enabled: true
213
+
214
+ Style/ArrayCoercion:
215
+ Enabled: true
216
+
217
+ Style/BisectedAttrAccessor:
218
+ Enabled: true
219
+
220
+ Style/CaseLikeIf:
221
+ Enabled: true
222
+
223
+ Style/ExponentialNotation:
224
+ Enabled: true
225
+
226
+ Style/HashAsLastArrayItem:
227
+ Enabled: true
228
+
229
+ Style/HashEachMethods:
230
+ Enabled: true
231
+
232
+ Style/HashLikeCase:
233
+ Enabled: true
234
+
235
+ Style/HashTransformKeys:
236
+ Enabled: true
237
+
238
+ Style/HashTransformValues:
239
+ Enabled: true
240
+
241
+ Style/RedundantAssignment:
242
+ Enabled: true
243
+
244
+ Style/RedundantFetchBlock:
245
+ Enabled: true
246
+
247
+ Style/RedundantFileExtensionInRequire:
248
+ Enabled: true
249
+
250
+ Style/RedundantRegexpCharacterClass:
251
+ Enabled: true
252
+
253
+ Style/RedundantRegexpEscape:
254
+ Enabled: true
255
+
256
+ Style/SlicingWithRange:
257
+ Enabled: true
258
+
188
259
  AllCops:
189
- TargetRubyVersion: "2.3.3"
260
+ TargetRubyVersion: "2.4.0"
190
261
  Exclude:
262
+ - './vendor/**/*'
263
+ - './db/**/*'
191
264
  - './tmp/**/*'
265
+ - './log/**/*'
266
+ - './public/**/*'
267
+ - './bin/**/*'
192
268
  - './Gemfile'
@@ -1,211 +1,207 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dronejob (2.0.2)
5
- actionpack (>= 4.0.2)
6
- activejob (>= 4.0.2)
7
- activejob-google_cloud_pubsub (>= 0.7)
4
+ dronejob (3.0.1)
5
+ actionpack (>= 4.0.2, < 5.0.0)
6
+ activejob (>= 4.0.2, < 5.0.0)
7
+ bigdecimal (~> 1.4)
8
8
  bundler (>= 1.12.0, < 3.0.0)
9
9
  git (>= 1.3)
10
10
  google-cloud-logging (>= 1.2)
11
- pusher (>= 1.3)
12
11
  thor (>= 0.19)
13
- workspace (>= 1.0)
14
- workspace-archive (>= 1.0)
15
- workspace-media (>= 1.0)
16
- workspace-net (>= 1.0)
17
- workspace-parse (>= 1.0)
12
+ workspace (>= 2.0)
13
+ workspace-archive (>= 2.0)
14
+ workspace-media (>= 2.0)
15
+ workspace-net (>= 2.0)
16
+ workspace-parse (>= 2.0)
18
17
 
19
18
  GEM
20
19
  remote: http://rubygems.org/
21
20
  specs:
22
- actionpack (5.2.3)
23
- actionview (= 5.2.3)
24
- activesupport (= 5.2.3)
25
- rack (~> 2.0)
26
- rack-test (>= 0.6.3)
27
- rails-dom-testing (~> 2.0)
21
+ actionpack (4.2.11.3)
22
+ actionview (= 4.2.11.3)
23
+ activesupport (= 4.2.11.3)
24
+ rack (~> 1.6)
25
+ rack-test (~> 0.6.2)
26
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
27
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (5.2.3)
30
- activesupport (= 5.2.3)
28
+ actionview (4.2.11.3)
29
+ activesupport (= 4.2.11.3)
31
30
  builder (~> 3.1)
32
- erubi (~> 1.4)
33
- rails-dom-testing (~> 2.0)
31
+ erubis (~> 2.7.0)
32
+ rails-dom-testing (~> 1.0, >= 1.0.5)
34
33
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
- activejob (5.2.3)
36
- activesupport (= 5.2.3)
37
- globalid (>= 0.3.6)
38
- activejob-google_cloud_pubsub (0.7.1)
39
- activejob
40
- activesupport
41
- concurrent-ruby
42
- google-cloud-pubsub (>= 0.27.0)
43
- activesupport (5.2.3)
44
- concurrent-ruby (~> 1.0, >= 1.0.2)
45
- i18n (>= 0.7, < 2)
34
+ activejob (4.2.11.3)
35
+ activesupport (= 4.2.11.3)
36
+ globalid (>= 0.3.0)
37
+ activesupport (4.2.11.3)
38
+ i18n (~> 0.7)
46
39
  minitest (~> 5.1)
40
+ thread_safe (~> 0.3, >= 0.3.4)
47
41
  tzinfo (~> 1.1)
48
- addressable (2.6.0)
49
- public_suffix (>= 2.0.2, < 4.0)
50
- ast (2.4.0)
51
- builder (3.2.3)
52
- coderay (1.1.2)
53
- concurrent-ruby (1.1.5)
54
- crass (1.0.4)
55
- diff-lcs (1.3)
56
- erubi (1.8.0)
42
+ addressable (2.7.0)
43
+ public_suffix (>= 2.0.2, < 5.0)
44
+ ast (2.4.1)
45
+ bigdecimal (1.4.4)
46
+ builder (3.2.4)
47
+ coderay (1.1.3)
48
+ concurrent-ruby (1.1.6)
49
+ crass (1.0.6)
50
+ diff-lcs (1.4.4)
51
+ erubis (2.7.0)
57
52
  ethon (0.12.0)
58
53
  ffi (>= 1.3.0)
59
- faraday (0.15.4)
54
+ faraday (1.0.1)
60
55
  multipart-post (>= 1.2, < 3)
61
- ffi (1.11.0)
62
- git (1.5.0)
56
+ ffi (1.13.1)
57
+ git (1.7.0)
58
+ rchardet (~> 1.8)
63
59
  globalid (0.4.2)
64
60
  activesupport (>= 4.2.0)
65
- google-cloud-core (1.3.0)
61
+ google-cloud-core (1.5.0)
66
62
  google-cloud-env (~> 1.0)
67
- google-cloud-env (1.0.5)
68
- faraday (~> 0.11)
69
- google-cloud-logging (1.6.3)
63
+ google-cloud-errors (~> 1.0)
64
+ google-cloud-env (1.3.3)
65
+ faraday (>= 0.17.3, < 2.0)
66
+ google-cloud-errors (1.0.1)
67
+ google-cloud-logging (1.10.9)
70
68
  concurrent-ruby (~> 1.1)
71
69
  google-cloud-core (~> 1.2)
72
- google-gax (~> 1.3)
73
- googleapis-common-protos-types (>= 1.0.2)
70
+ google-gax (~> 1.8)
71
+ googleapis-common-protos (>= 1.3.9, < 2.0)
72
+ googleapis-common-protos-types (>= 1.0.4, < 2.0)
74
73
  stackdriver-core (~> 1.3)
75
- google-cloud-pubsub (0.35.0)
76
- concurrent-ruby (~> 1.0)
77
- google-cloud-core (~> 1.2)
78
- google-gax (~> 1.3)
79
- grpc-google-iam-v1 (~> 0.6.9)
80
- google-gax (1.5.0)
81
- google-protobuf (~> 3.2)
82
- googleapis-common-protos (>= 1.3.5, < 2.0)
83
- googleauth (>= 0.6.2, < 0.10.0)
84
- grpc (>= 1.7.2, < 2.0)
74
+ google-gax (1.8.1)
75
+ google-protobuf (~> 3.9)
76
+ googleapis-common-protos (>= 1.3.9, < 2.0)
77
+ googleauth (~> 0.9)
78
+ grpc (~> 1.24)
85
79
  rly (~> 0.2.3)
86
- google-protobuf (3.7.1-universal-darwin)
87
- googleapis-common-protos (1.3.9)
88
- google-protobuf (~> 3.0)
89
- googleapis-common-protos-types (~> 1.0)
90
- grpc (~> 1.0)
91
- googleapis-common-protos-types (1.0.4)
92
- google-protobuf (~> 3.0)
93
- googleauth (0.8.1)
94
- faraday (~> 0.12)
80
+ google-protobuf (3.12.2-universal-darwin)
81
+ googleapis-common-protos (1.3.10)
82
+ google-protobuf (~> 3.11)
83
+ googleapis-common-protos-types (>= 1.0.5, < 2.0)
84
+ grpc (~> 1.27)
85
+ googleapis-common-protos-types (1.0.5)
86
+ google-protobuf (~> 3.11)
87
+ googleauth (0.13.0)
88
+ faraday (>= 0.17.3, < 2.0)
95
89
  jwt (>= 1.4, < 3.0)
96
90
  memoist (~> 0.16)
97
91
  multi_json (~> 1.11)
98
92
  os (>= 0.9, < 2.0)
99
- signet (~> 0.7)
100
- grpc (1.20.0-universal-darwin)
101
- google-protobuf (~> 3.7)
102
- googleapis-common-protos-types (~> 1.0.0)
103
- grpc-google-iam-v1 (0.6.9)
104
- googleapis-common-protos (>= 1.3.1, < 2.0)
105
- grpc (~> 1.0)
106
- haml (5.1.0)
93
+ signet (~> 0.14)
94
+ grpc (1.30.1-universal-darwin)
95
+ google-protobuf (~> 3.12)
96
+ googleapis-common-protos-types (~> 1.0)
97
+ haml (5.1.2)
107
98
  temple (>= 0.8.0)
108
99
  tilt
109
- httpclient (2.8.3)
110
- i18n (1.6.0)
100
+ i18n (0.9.5)
111
101
  concurrent-ruby (~> 1.0)
112
- jaro_winkler (1.5.2)
113
- jwt (2.1.0)
114
- loofah (2.2.3)
102
+ jwt (2.2.1)
103
+ loofah (2.6.0)
115
104
  crass (~> 1.0.2)
116
105
  nokogiri (>= 1.5.9)
117
- memoist (0.16.0)
118
- method_source (0.9.2)
119
- mime-types (3.2.2)
106
+ memoist (0.16.2)
107
+ method_source (1.0.0)
108
+ mime-types (3.3.1)
120
109
  mime-types-data (~> 3.2015)
121
- mime-types-data (3.2019.0331)
110
+ mime-types-data (3.2020.0512)
122
111
  mini_portile2 (2.4.0)
123
- minitest (5.11.3)
124
- multi_json (1.13.1)
112
+ minitest (5.14.1)
113
+ multi_json (1.15.0)
125
114
  multipart-post (2.1.1)
126
- nokogiri (1.10.3)
115
+ nokogiri (1.10.10)
127
116
  mini_portile2 (~> 2.4.0)
128
- os (1.0.1)
129
- parallel (1.17.0)
130
- parser (2.6.3.0)
131
- ast (~> 2.4.0)
117
+ os (1.1.0)
118
+ parallel (1.19.2)
119
+ parser (2.7.1.4)
120
+ ast (~> 2.4.1)
132
121
  piet (0.2.6)
133
122
  png_quantizator
134
123
  png_quantizator (0.2.1)
135
- pry (0.12.2)
136
- coderay (~> 1.1.0)
137
- method_source (~> 0.9.0)
138
- public_suffix (3.0.3)
139
- pusher (1.3.2)
140
- httpclient (~> 2.7)
141
- multi_json (~> 1.0)
142
- pusher-signature (~> 0.1.8)
143
- pusher-signature (0.1.8)
144
- rack (2.0.7)
145
- rack-test (1.1.0)
146
- rack (>= 1.0, < 3)
147
- rails-dom-testing (2.0.3)
148
- activesupport (>= 4.2.0)
149
- nokogiri (>= 1.6)
150
- rails-html-sanitizer (1.0.4)
151
- loofah (~> 2.2, >= 2.2.2)
124
+ pry (0.13.1)
125
+ coderay (~> 1.1)
126
+ method_source (~> 1.0)
127
+ psych (3.2.0)
128
+ public_suffix (4.0.5)
129
+ rack (1.6.13)
130
+ rack-test (0.6.3)
131
+ rack (>= 1.0)
132
+ rails-deprecated_sanitizer (1.0.3)
133
+ activesupport (>= 4.2.0.alpha)
134
+ rails-dom-testing (1.0.9)
135
+ activesupport (>= 4.2.0, < 5.0)
136
+ nokogiri (~> 1.6)
137
+ rails-deprecated_sanitizer (>= 1.0.1)
138
+ rails-html-sanitizer (1.3.0)
139
+ loofah (~> 2.3)
152
140
  rainbow (3.0.0)
141
+ rchardet (1.8.0)
142
+ regexp_parser (1.7.1)
143
+ rexml (3.2.4)
153
144
  rly (0.2.3)
154
- rmagick (3.1.0)
155
- rspec (3.8.0)
156
- rspec-core (~> 3.8.0)
157
- rspec-expectations (~> 3.8.0)
158
- rspec-mocks (~> 3.8.0)
159
- rspec-core (3.8.0)
160
- rspec-support (~> 3.8.0)
161
- rspec-expectations (3.8.3)
145
+ rmagick (3.2.0)
146
+ rspec (3.9.0)
147
+ rspec-core (~> 3.9.0)
148
+ rspec-expectations (~> 3.9.0)
149
+ rspec-mocks (~> 3.9.0)
150
+ rspec-core (3.9.2)
151
+ rspec-support (~> 3.9.3)
152
+ rspec-expectations (3.9.2)
162
153
  diff-lcs (>= 1.2.0, < 2.0)
163
- rspec-support (~> 3.8.0)
164
- rspec-mocks (3.8.0)
154
+ rspec-support (~> 3.9.0)
155
+ rspec-mocks (3.9.1)
165
156
  diff-lcs (>= 1.2.0, < 2.0)
166
- rspec-support (~> 3.8.0)
167
- rspec-support (3.8.0)
168
- rubocop (0.69.0)
169
- jaro_winkler (~> 1.5.1)
157
+ rspec-support (~> 3.9.0)
158
+ rspec-support (3.9.3)
159
+ rubocop (0.88.0)
170
160
  parallel (~> 1.10)
171
- parser (>= 2.6)
161
+ parser (>= 2.7.1.1)
172
162
  rainbow (>= 2.2.2, < 4.0)
163
+ regexp_parser (>= 1.7)
164
+ rexml
165
+ rubocop-ast (>= 0.1.0, < 1.0)
173
166
  ruby-progressbar (~> 1.7)
174
- unicode-display_width (>= 1.4.0, < 1.7)
175
- ruby-progressbar (1.10.0)
176
- rubyzip (1.2.2)
177
- signet (0.11.0)
167
+ unicode-display_width (>= 1.4.0, < 2.0)
168
+ rubocop-ast (0.2.0)
169
+ parser (>= 2.7.0.1)
170
+ ruby-progressbar (1.10.1)
171
+ rubyzip (2.3.0)
172
+ signet (0.14.0)
178
173
  addressable (~> 2.3)
179
- faraday (~> 0.9)
174
+ faraday (>= 0.17.3, < 2.0)
180
175
  jwt (>= 1.5, < 3.0)
181
176
  multi_json (~> 1.10)
182
- stackdriver-core (1.3.3)
177
+ stackdriver-core (1.4.0)
183
178
  google-cloud-core (~> 1.2)
184
- temple (0.8.1)
185
- thor (0.20.3)
179
+ temple (0.8.2)
180
+ thor (1.0.1)
186
181
  thread_safe (0.3.6)
187
- tilt (2.0.9)
188
- typhoeus (1.3.1)
182
+ tilt (2.0.10)
183
+ typhoeus (1.4.0)
189
184
  ethon (>= 0.9.0)
190
- tzinfo (1.2.5)
185
+ tzinfo (1.2.7)
191
186
  thread_safe (~> 0.1)
192
- unicode-display_width (1.6.0)
193
- workspace (1.0.16)
187
+ unicode-display_width (1.7.0)
188
+ workspace (2.0.2)
194
189
  bundler (>= 1.12.0, < 3.0.0)
195
190
  mime-types (~> 3.2)
196
- workspace-archive (1.0.16)
197
- rubyzip (~> 1.2)
198
- workspace (~> 1.0)
199
- workspace-media (1.0.16)
191
+ workspace-archive (2.0.2)
192
+ rubyzip (>= 2.0.0, < 3.0.0)
193
+ workspace (~> 2.0)
194
+ workspace-media (2.0.2)
200
195
  piet (~> 0.2)
201
196
  rmagick (~> 3.1)
202
- workspace (~> 1.0)
203
- workspace-net (1.0.16)
197
+ workspace (~> 2.0)
198
+ workspace-net (2.0.2)
204
199
  typhoeus (~> 1.3)
205
- workspace (~> 1.0)
206
- workspace-parse (1.0.16)
200
+ workspace (~> 2.0)
201
+ workspace-parse (2.0.2)
207
202
  haml (~> 5.0)
208
- workspace (~> 1.0)
203
+ psych (~> 3.2)
204
+ workspace (~> 2.0)
209
205
 
210
206
  PLATFORMS
211
207
  ruby
@@ -217,4 +213,4 @@ DEPENDENCIES
217
213
  rubocop (>= 0.50)
218
214
 
219
215
  BUNDLED WITH
220
- 1.16.3
216
+ 2.1.4
data/README.md CHANGED
@@ -13,7 +13,3 @@ Install gems:
13
13
  List dronejob commands:
14
14
 
15
15
  $ bundle exec dronejob
16
-
17
- Start server:
18
-
19
- $ bundle exec dronejob server
@@ -12,21 +12,19 @@ Gem::Specification.new do |s|
12
12
  s.homepage = "https://github.com/MagLoft/dronejob"
13
13
  s.summary = "DroneJob Drone Factory"
14
14
  s.description = "Scalable worker factory for ruby"
15
- s.required_ruby_version = '~> 2.3'
16
- s.required_rubygems_version = '~> 2.4'
15
+ s.required_ruby_version = '>= 2.4'
17
16
  s.add_dependency "bundler", "< 3.0.0", ">= 1.12.0"
18
- s.add_runtime_dependency "actionpack", ">= 4.0.2"
19
- s.add_runtime_dependency "activejob", ">= 4.0.2"
20
- s.add_runtime_dependency "activejob-google_cloud_pubsub", ">= 0.7"
17
+ s.add_runtime_dependency "actionpack", ">= 4.0.2", "< 5.0.0"
18
+ s.add_runtime_dependency "activejob", ">= 4.0.2", "< 5.0.0"
19
+ s.add_runtime_dependency "bigdecimal", "~> 1.4"
21
20
  s.add_runtime_dependency "git", ">= 1.3"
22
21
  s.add_runtime_dependency "google-cloud-logging", ">= 1.2"
23
- s.add_runtime_dependency "pusher", ">= 1.3"
24
22
  s.add_runtime_dependency "thor", ">= 0.19"
25
- s.add_runtime_dependency "workspace", ">= 1.0"
26
- s.add_runtime_dependency "workspace-archive", ">= 1.0"
27
- s.add_runtime_dependency "workspace-media", ">= 1.0"
28
- s.add_runtime_dependency "workspace-net", ">= 1.0"
29
- s.add_runtime_dependency "workspace-parse", ">= 1.0"
23
+ s.add_runtime_dependency "workspace", ">= 2.0"
24
+ s.add_runtime_dependency "workspace-archive", ">= 2.0"
25
+ s.add_runtime_dependency "workspace-media", ">= 2.0"
26
+ s.add_runtime_dependency "workspace-net", ">= 2.0"
27
+ s.add_runtime_dependency "workspace-parse", ">= 2.0"
30
28
  s.add_development_dependency "pry", ">= 0.10"
31
29
  s.add_development_dependency "rspec", ">= 3.3"
32
30
  s.add_development_dependency "rubocop", ">= 0.50"
@@ -1,13 +1,9 @@
1
- require 'activejob-google_cloud_pubsub'
2
1
  require "google/cloud/logging"
3
2
  require "active_support"
4
3
  require 'active_support/rails'
5
- require "dronejob/server"
6
4
  require "dronejob/version"
7
5
  require "psych"
8
6
 
9
- require 'dronejob/railtie' if defined?(Rails)
10
-
11
7
  module Dronejob
12
8
  extend ActiveSupport::Autoload
13
9
  autoload :Base
@@ -9,7 +9,6 @@ require 'dronejob/modules/callbacks'
9
9
  require 'dronejob/modules/core'
10
10
  require 'dronejob/modules/git'
11
11
  require 'dronejob/modules/log'
12
- require 'dronejob/modules/queue'
13
12
  require 'dronejob/modules/options'
14
13
  require 'dronejob/modules/params'
15
14
  require 'dronejob/modules/phases'
@@ -23,7 +22,6 @@ module Dronejob
23
22
  include Modules::Core
24
23
  include Modules::Git
25
24
  include Modules::Options
26
- include Modules::Queue
27
25
  include Modules::Params
28
26
  include Modules::Phases
29
27
  include Modules::Workspace
@@ -39,7 +37,6 @@ module Dronejob
39
37
 
40
38
  rescue_from(Exception) do |exception|
41
39
  error_rescue(exception) if respond_to?(:error_rescue)
42
- publish_error(exception)
43
40
  error(exception)
44
41
  end
45
42
 
@@ -4,14 +4,12 @@ require "active_job"
4
4
  module Dronejob
5
5
  class Command < Thor
6
6
  Dronejob::Loader.workers(:base).each do |identifier, worker|
7
- desc identifier, "Queue #{identifier} worker"
7
+ desc identifier, "Run #{identifier} worker"
8
8
 
9
9
  # Worker options
10
- method_option(:run, aliases: "-r", type: :boolean, default: false)
11
10
  method_option(:break, aliases: "-b", type: :boolean, default: false)
12
11
  method_option(:skip, aliases: "-s", type: :array, default: [])
13
12
  method_option(:from, aliases: "-f", type: :string)
14
- method_option(:notify, aliases: "-n", type: :boolean, default: true)
15
13
  method_option(:jobs_path, type: :string)
16
14
  method_option(:output_path, type: :string)
17
15
 
@@ -24,13 +22,8 @@ module Dronejob
24
22
  Dronejob::Base.jobs_path = options.jobs_path if options.jobs_path
25
23
  Dronejob::Base.output_path = options.output_path if options.output_path
26
24
 
27
- # Execute / queue job
28
- if options.run
29
- worker.perform_now(options)
30
- else
31
- job = worker.perform_later(options.to_hash)
32
- Dronejob::Base.log("info", "Enqueued job #{job.job_id}")
33
- end
25
+ # Execute job
26
+ worker.perform_now(options)
34
27
  end
35
28
  end
36
29
 
@@ -87,16 +80,5 @@ module Dronejob
87
80
  job_params["from"] = options.from
88
81
  worker.perform_now(job_params)
89
82
  end
90
-
91
- desc :server, "Start Dronejob Server"
92
- def server
93
- server = Server.new(Dronejob::Base.options)
94
- begin
95
- server.start
96
- rescue Interrupt
97
- server.stop
98
- exit
99
- end
100
- end
101
83
  end
102
84
  end
@@ -7,6 +7,7 @@ module Dronejob
7
7
 
8
8
  included do
9
9
  attr_reader :git, :commits
10
+
10
11
  set_callback :job, :before, :git_init_job, if: :stateful?
11
12
  set_callback(:phase, :after, if: :stateful?) { git_commit(@phase) }
12
13
  end
@@ -16,9 +16,10 @@ module Dronejob
16
16
  included do
17
17
  cattr_accessor(:logger) do
18
18
  dronejob_log = option(:dronejob_log) || "STDOUT"
19
- if dronejob_log == "STDOUT"
19
+ case dronejob_log
20
+ when "STDOUT"
20
21
  custom_logger = ActiveSupport::Logger.new(STDOUT)
21
- elsif dronejob_log == "google"
22
+ when "google"
22
23
  logging = Google::Cloud::Logging.new(project: option(:google_cloud_project_id))
23
24
  resource = logging.resource("gce_instance", { zone: option(:google_cloud_zone), instance_id: option(:google_cloud_instance_id) })
24
25
  custom_logger = logging.logger(option(:dronejob_queue), resource)
@@ -6,6 +6,7 @@ module Dronejob
6
6
 
7
7
  included do
8
8
  attr_accessor :phase, :phase_config
9
+
9
10
  set_callback(:phase, :around) { |r, block| logger.tagged(@phase, &block) }
10
11
  end
11
12
 
@@ -1,3 +1,3 @@
1
1
  module Dronejob
2
- VERSION = "2.0.2"
2
+ VERSION = "3.0.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dronejob
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Strebitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-21 00:00:00.000000000 Z
11
+ date: 2020-07-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -37,6 +37,9 @@ dependencies:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 4.0.2
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: 5.0.0
40
43
  type: :runtime
41
44
  prerelease: false
42
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -44,6 +47,9 @@ dependencies:
44
47
  - - ">="
45
48
  - !ruby/object:Gem::Version
46
49
  version: 4.0.2
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: 5.0.0
47
53
  - !ruby/object:Gem::Dependency
48
54
  name: activejob
49
55
  requirement: !ruby/object:Gem::Requirement
@@ -51,6 +57,9 @@ dependencies:
51
57
  - - ">="
52
58
  - !ruby/object:Gem::Version
53
59
  version: 4.0.2
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: 5.0.0
54
63
  type: :runtime
55
64
  prerelease: false
56
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,20 +67,23 @@ dependencies:
58
67
  - - ">="
59
68
  - !ruby/object:Gem::Version
60
69
  version: 4.0.2
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: 5.0.0
61
73
  - !ruby/object:Gem::Dependency
62
- name: activejob-google_cloud_pubsub
74
+ name: bigdecimal
63
75
  requirement: !ruby/object:Gem::Requirement
64
76
  requirements:
65
- - - ">="
77
+ - - "~>"
66
78
  - !ruby/object:Gem::Version
67
- version: '0.7'
79
+ version: '1.4'
68
80
  type: :runtime
69
81
  prerelease: false
70
82
  version_requirements: !ruby/object:Gem::Requirement
71
83
  requirements:
72
- - - ">="
84
+ - - "~>"
73
85
  - !ruby/object:Gem::Version
74
- version: '0.7'
86
+ version: '1.4'
75
87
  - !ruby/object:Gem::Dependency
76
88
  name: git
77
89
  requirement: !ruby/object:Gem::Requirement
@@ -100,20 +112,6 @@ dependencies:
100
112
  - - ">="
101
113
  - !ruby/object:Gem::Version
102
114
  version: '1.2'
103
- - !ruby/object:Gem::Dependency
104
- name: pusher
105
- requirement: !ruby/object:Gem::Requirement
106
- requirements:
107
- - - ">="
108
- - !ruby/object:Gem::Version
109
- version: '1.3'
110
- type: :runtime
111
- prerelease: false
112
- version_requirements: !ruby/object:Gem::Requirement
113
- requirements:
114
- - - ">="
115
- - !ruby/object:Gem::Version
116
- version: '1.3'
117
115
  - !ruby/object:Gem::Dependency
118
116
  name: thor
119
117
  requirement: !ruby/object:Gem::Requirement
@@ -134,70 +132,70 @@ dependencies:
134
132
  requirements:
135
133
  - - ">="
136
134
  - !ruby/object:Gem::Version
137
- version: '1.0'
135
+ version: '2.0'
138
136
  type: :runtime
139
137
  prerelease: false
140
138
  version_requirements: !ruby/object:Gem::Requirement
141
139
  requirements:
142
140
  - - ">="
143
141
  - !ruby/object:Gem::Version
144
- version: '1.0'
142
+ version: '2.0'
145
143
  - !ruby/object:Gem::Dependency
146
144
  name: workspace-archive
147
145
  requirement: !ruby/object:Gem::Requirement
148
146
  requirements:
149
147
  - - ">="
150
148
  - !ruby/object:Gem::Version
151
- version: '1.0'
149
+ version: '2.0'
152
150
  type: :runtime
153
151
  prerelease: false
154
152
  version_requirements: !ruby/object:Gem::Requirement
155
153
  requirements:
156
154
  - - ">="
157
155
  - !ruby/object:Gem::Version
158
- version: '1.0'
156
+ version: '2.0'
159
157
  - !ruby/object:Gem::Dependency
160
158
  name: workspace-media
161
159
  requirement: !ruby/object:Gem::Requirement
162
160
  requirements:
163
161
  - - ">="
164
162
  - !ruby/object:Gem::Version
165
- version: '1.0'
163
+ version: '2.0'
166
164
  type: :runtime
167
165
  prerelease: false
168
166
  version_requirements: !ruby/object:Gem::Requirement
169
167
  requirements:
170
168
  - - ">="
171
169
  - !ruby/object:Gem::Version
172
- version: '1.0'
170
+ version: '2.0'
173
171
  - !ruby/object:Gem::Dependency
174
172
  name: workspace-net
175
173
  requirement: !ruby/object:Gem::Requirement
176
174
  requirements:
177
175
  - - ">="
178
176
  - !ruby/object:Gem::Version
179
- version: '1.0'
177
+ version: '2.0'
180
178
  type: :runtime
181
179
  prerelease: false
182
180
  version_requirements: !ruby/object:Gem::Requirement
183
181
  requirements:
184
182
  - - ">="
185
183
  - !ruby/object:Gem::Version
186
- version: '1.0'
184
+ version: '2.0'
187
185
  - !ruby/object:Gem::Dependency
188
186
  name: workspace-parse
189
187
  requirement: !ruby/object:Gem::Requirement
190
188
  requirements:
191
189
  - - ">="
192
190
  - !ruby/object:Gem::Version
193
- version: '1.0'
191
+ version: '2.0'
194
192
  type: :runtime
195
193
  prerelease: false
196
194
  version_requirements: !ruby/object:Gem::Requirement
197
195
  requirements:
198
196
  - - ">="
199
197
  - !ruby/object:Gem::Version
200
- version: '1.0'
198
+ version: '2.0'
201
199
  - !ruby/object:Gem::Dependency
202
200
  name: pry
203
201
  requirement: !ruby/object:Gem::Requirement
@@ -267,11 +265,7 @@ files:
267
265
  - lib/dronejob/modules/options.rb
268
266
  - lib/dronejob/modules/params.rb
269
267
  - lib/dronejob/modules/phases.rb
270
- - lib/dronejob/modules/queue.rb
271
268
  - lib/dronejob/modules/workspace.rb
272
- - lib/dronejob/railtie.rb
273
- - lib/dronejob/railties/dronejob.rake
274
- - lib/dronejob/server.rb
275
269
  - lib/dronejob/version.rb
276
270
  homepage: https://github.com/MagLoft/dronejob
277
271
  licenses:
@@ -283,17 +277,16 @@ require_paths:
283
277
  - lib
284
278
  required_ruby_version: !ruby/object:Gem::Requirement
285
279
  requirements:
286
- - - "~>"
280
+ - - ">="
287
281
  - !ruby/object:Gem::Version
288
- version: '2.3'
282
+ version: '2.4'
289
283
  required_rubygems_version: !ruby/object:Gem::Requirement
290
284
  requirements:
291
- - - "~>"
285
+ - - ">="
292
286
  - !ruby/object:Gem::Version
293
- version: '2.4'
287
+ version: '0'
294
288
  requirements: []
295
- rubyforge_project:
296
- rubygems_version: 2.5.2
289
+ rubygems_version: 3.1.2
297
290
  signing_key:
298
291
  specification_version: 4
299
292
  summary: DroneJob Drone Factory
@@ -1,76 +0,0 @@
1
- require "pusher"
2
-
3
- module Dronejob
4
- module Modules
5
- module Queue
6
- extend ActiveSupport::Concern
7
-
8
- included do
9
- queue_as option(:dronejob_queue) || :dronejob
10
- set_callback :phase, :before, :notify_before_phase
11
- set_callback :job, :after, :notify_after_job
12
- end
13
-
14
- class_methods do
15
- def pubsub
16
- @pubsub ||= Google::Cloud::Pubsub.new(project_id: option(:google_cloud_project_id), credentials: option(:google_cloud_service_account))
17
- end
18
-
19
- def queue_adapter
20
- @queue_adapter ||= ActiveJob::GoogleCloudPubsub::Adapter.new(async: false, logger: logger, pubsub: pubsub)
21
- end
22
-
23
- def notify(value = true)
24
- @notify = value
25
- end
26
-
27
- def notify?
28
- !!@notify
29
- end
30
- end
31
-
32
- def pusher_client
33
- @pusher_client ||= Pusher::Client.new(
34
- app_id: option(:pusher_app_id),
35
- key: option(:pusher_key),
36
- secret: option(:pusher_secret),
37
- cluster: option(:pusher_cluster),
38
- encrypted: true
39
- )
40
- end
41
-
42
- def publish_status(data = {}, status = "working")
43
- data[:action] = "update_process"
44
- data[:user_id] = param(:user_id)
45
- data[:jid] = job_id
46
- data[:worker] = Loader.identifier_for(self)
47
- data[:timestamp] = Time.now.to_i
48
- data[:status] = status
49
- return false if data[:user_id].nil?
50
-
51
- pusher_client.trigger("private-#{data[:user_id]}", "process", data)
52
- end
53
-
54
- def publish_error(event)
55
- publish_status({ title: self.title, description: event.message, phase: @phase, progress: 100 }, "failed") if should_notify?
56
- end
57
-
58
- def notify_before_phase
59
- publish_status({ title: self.title, description: @phase_config[:title], phase: @phase, progress: @phase_config[:progress] }, "working") if @phase_config[:notify] and should_notify?
60
- end
61
-
62
- def notify_after_job
63
- publish_status({ title: self.title, description: "Job Completed!", phase: @phase, progress: 100 }, "complete") if should_notify?
64
- end
65
-
66
- def should_notify?
67
- self.class.notify? and param(:notify) and !param(:run)
68
- end
69
-
70
- def publish_progress(progress, description = nil, details = {})
71
- message = { title: self.title, description: description, phase: @phase, progress: progress, details: details }
72
- publish_status(message, "working") if should_notify?
73
- end
74
- end
75
- end
76
- end
@@ -1,25 +0,0 @@
1
- require 'global_id/railtie'
2
- require 'dronejob'
3
-
4
- module Dronejob
5
- # = Dronejob Railtie
6
- class Railtie < Rails::Railtie
7
- config.dronejob = ActiveSupport::OrderedOptions.new
8
-
9
- initializer 'dronejob.logger' do
10
- ActiveSupport.on_load(:dronejob) { self.logger = ::Rails.logger }
11
- end
12
-
13
- initializer "dronejob.set_configs" do |app|
14
- options = app.config.dronejob
15
-
16
- ActiveSupport.on_load(:dronejob) do
17
- options.each { |k, v| send("#{k}=", v) }
18
- end
19
- end
20
-
21
- rake_tasks do
22
- load "dronejob/railties/dronejob.rake"
23
- end
24
- end
25
- end
@@ -1,5 +0,0 @@
1
- namespace :dronejob do
2
- task server: :environment do
3
- Dronejob::Base.run_worker!
4
- end
5
- end
@@ -1,21 +0,0 @@
1
- module Dronejob
2
- class Dronejob::Server
3
- attr_reader :worker, :queue, :min_threads, :max_threads
4
-
5
- def initialize(options)
6
- @queue = options.dronejob_queue || "drone"
7
- @min_threads = options.min_threads || 1
8
- @max_threads = options.max_threads || 1
9
- end
10
-
11
- def start
12
- @worker = ActiveJob::GoogleCloudPubsub::Worker.new(queue: @queue, pubsub: Dronejob::Base.pubsub, min_threads: self.min_threads, max_threads: self.max_threads)
13
- Dronejob::Base.log("info", "Starting server for queue #{@queue} ...", nil)
14
- @worker.run
15
- end
16
-
17
- def stop
18
- Dronejob::Base.log("info", "Stopping server ...", nil)
19
- end
20
- end
21
- end