dronejob 1.2.9 → 1.3.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7e08177ceade5bbe5e6cc87316b4c6c5bd797613
4
- data.tar.gz: f8d6934e24e5055edd50b51c982c9c122275f8e5
3
+ metadata.gz: 2f5e9e2f89bca4a32b5c4d2e22355dd8119a1e35
4
+ data.tar.gz: efe88d06655a102c61f49ed16e14c9f93372753b
5
5
  SHA512:
6
- metadata.gz: a66d0011224e6351b3cf34664ae90ef97c928cf0fd7b2fafdd1268a8c0d714ead324046cf053c35aeb81df6e8a972559a98c74d855f059b1b970cedf61100de5
7
- data.tar.gz: c6a7aa834e83ed43d9c400e4f80a062875bf4f46d1f53c56547d44945c8e0397fd68374925da5253120863537bae399be8cc84a91dd7c1b7f6086c0baba6f785
6
+ metadata.gz: cb7465f7d2a81c1a8c515164bcb0a7588f3edd9d91ac594b13b31a1579c1e5f02dee99f729639024feda35b07844a75abe6611b0faa951dd2b26100bc358e807
7
+ data.tar.gz: 60f63fd603c97fbfd8122c6179f4959f87cdd910c16acc2aa411bd753d50e1d158f2f17c663f580581a5b96727d11ff9eb91e76556456963f633261b214dd4e8
data/.gitignore CHANGED
@@ -3,4 +3,5 @@ app/*
3
3
  tmp/*
4
4
  plugins/*
5
5
  /archive/*
6
+ /dronejob.yml
6
7
  .bundle/
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dronejob (1.2.9)
4
+ dronejob (1.3.0)
5
5
  actionpack (>= 4.0)
6
6
  activejob (~> 4.2)
7
7
  bundler (>= 1.3.0, < 2.0)
@@ -10,85 +10,83 @@ PATH
10
10
  google-cloud-storage (~> 0.23)
11
11
  haml (~> 4.0)
12
12
  open_uri_redirections (~> 0.2)
13
+ pusher (~> 1.3)
13
14
  rubyzip (~> 1.1)
14
15
  sidekiq (~> 4.1)
15
- sidekiq-status (~> 0.6)
16
16
  thor (~> 0.19)
17
17
  typhoeus (~> 1.0)
18
18
 
19
19
  GEM
20
20
  remote: http://rubygems.org/
21
21
  specs:
22
- actionpack (4.2.7.1)
23
- actionview (= 4.2.7.1)
24
- activesupport (= 4.2.7.1)
22
+ actionpack (4.2.8)
23
+ actionview (= 4.2.8)
24
+ activesupport (= 4.2.8)
25
25
  rack (~> 1.6)
26
26
  rack-test (~> 0.6.2)
27
27
  rails-dom-testing (~> 1.0, >= 1.0.5)
28
28
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (4.2.7.1)
30
- activesupport (= 4.2.7.1)
29
+ actionview (4.2.8)
30
+ activesupport (= 4.2.8)
31
31
  builder (~> 3.1)
32
32
  erubis (~> 2.7.0)
33
33
  rails-dom-testing (~> 1.0, >= 1.0.5)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
- activejob (4.2.7.1)
36
- activesupport (= 4.2.7.1)
34
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
+ activejob (4.2.8)
36
+ activesupport (= 4.2.8)
37
37
  globalid (>= 0.3.0)
38
- activesupport (4.2.7.1)
38
+ activesupport (4.2.8)
39
39
  i18n (~> 0.7)
40
- json (~> 1.7, >= 1.7.7)
41
40
  minitest (~> 5.1)
42
41
  thread_safe (~> 0.3, >= 0.3.4)
43
42
  tzinfo (~> 1.1)
44
- addressable (2.5.0)
43
+ addressable (2.5.1)
45
44
  public_suffix (~> 2.0, >= 2.0.2)
46
45
  builder (3.2.3)
47
46
  coderay (1.1.1)
48
- concurrent-ruby (1.0.4)
47
+ concurrent-ruby (1.0.5)
49
48
  connection_pool (2.2.1)
49
+ declarative (0.0.9)
50
+ declarative-option (0.1.0)
50
51
  diff-lcs (1.2.5)
51
52
  digest-crc (0.4.1)
52
53
  erubis (2.7.0)
53
54
  ethon (0.10.1)
54
55
  ffi (>= 1.3.0)
55
- faraday (0.11.0)
56
+ faraday (0.12.1)
56
57
  multipart-post (>= 1.2, < 3)
57
- ffi (1.9.17)
58
+ ffi (1.9.18)
58
59
  git (1.3.0)
59
- globalid (0.3.7)
60
- activesupport (>= 4.1.0)
61
- google-api-client (0.9.28)
60
+ globalid (0.4.0)
61
+ activesupport (>= 4.2.0)
62
+ google-api-client (0.10.2)
62
63
  addressable (~> 2.3)
63
64
  googleauth (~> 0.5)
64
65
  httpclient (~> 2.7)
65
66
  hurley (~> 0.1)
66
67
  memoist (~> 0.11)
67
68
  mime-types (>= 1.6)
68
- representable (~> 2.3.0)
69
- retriable (~> 2.0)
69
+ representable (~> 3.0)
70
+ retriable (>= 2.0, < 4.0)
70
71
  google-cloud-core (0.21.1)
71
72
  googleauth (~> 0.5.1)
72
- google-cloud-logging (0.23.2)
73
+ google-cloud-logging (0.24.2)
73
74
  google-cloud-core (~> 0.21.1)
74
- google-gax (~> 0.6.0)
75
- google-protobuf (~> 3.0)
76
- googleapis-common-protos (~> 1.3)
77
- grpc (~> 1.0)
78
- orderedhash (= 0.0.6)
75
+ google-gax (~> 0.8.0)
79
76
  stackdriver-core (~> 0.21.0)
80
- google-cloud-storage (0.23.1)
77
+ google-cloud-storage (0.24.0)
81
78
  digest-crc (~> 0.4)
82
- google-api-client (~> 0.9.11)
79
+ google-api-client (~> 0.10.0)
83
80
  google-cloud-core (~> 0.21.0)
84
- google-gax (0.6.0)
85
- googleapis-common-protos (~> 1.3.1)
81
+ google-gax (0.8.2)
82
+ google-protobuf (~> 3.2)
83
+ googleapis-common-protos (~> 1.3.5)
86
84
  googleauth (~> 0.5.1)
87
85
  grpc (~> 1.0)
88
86
  rly (~> 0.2.3)
89
- google-protobuf (3.2.0)
90
- googleapis-common-protos (1.3.4)
91
- google-protobuf (~> 3.0)
87
+ google-protobuf (3.2.0.2-universal-darwin)
88
+ googleapis-common-protos (1.3.5)
89
+ google-protobuf (~> 3.2)
92
90
  grpc (~> 1.0)
93
91
  googleauth (0.5.1)
94
92
  faraday (~> 0.9)
@@ -98,18 +96,17 @@ GEM
98
96
  multi_json (~> 1.11)
99
97
  os (~> 0.9)
100
98
  signet (~> 0.7)
101
- grpc (1.1.2)
99
+ grpc (1.2.5-universal-darwin)
102
100
  google-protobuf (~> 3.1)
103
101
  googleauth (~> 0.5.1)
104
102
  haml (4.0.7)
105
103
  tilt
106
104
  httpclient (2.8.3)
107
105
  hurley (0.2)
108
- i18n (0.8.0)
109
- json (1.8.6)
106
+ i18n (0.8.1)
110
107
  jwt (1.5.6)
111
108
  little-plugger (1.1.4)
112
- logging (2.1.0)
109
+ logging (2.2.2)
113
110
  little-plugger (~> 1.1)
114
111
  multi_json (~> 1.10)
115
112
  loofah (2.0.3)
@@ -123,16 +120,20 @@ GEM
123
120
  minitest (5.10.1)
124
121
  multi_json (1.12.1)
125
122
  multipart-post (2.0.0)
126
- nokogiri (1.7.0.1)
123
+ nokogiri (1.7.1)
127
124
  mini_portile2 (~> 2.1.0)
128
125
  open_uri_redirections (0.2.1)
129
- orderedhash (0.0.6)
130
126
  os (0.9.6)
131
127
  pry (0.10.3)
132
128
  coderay (~> 1.1.0)
133
129
  method_source (~> 0.8.1)
134
130
  slop (~> 3.4)
135
131
  public_suffix (2.0.5)
132
+ pusher (1.3.1)
133
+ httpclient (~> 2.7)
134
+ multi_json (~> 1.0)
135
+ pusher-signature (~> 0.1.8)
136
+ pusher-signature (0.1.8)
136
137
  rack (1.6.5)
137
138
  rack-protection (1.5.3)
138
139
  rack
@@ -147,9 +148,11 @@ GEM
147
148
  rails-html-sanitizer (1.0.3)
148
149
  loofah (~> 2.0)
149
150
  redis (3.3.3)
150
- representable (2.3.0)
151
- uber (~> 0.0.7)
152
- retriable (2.1.0)
151
+ representable (3.0.4)
152
+ declarative (< 0.1.0)
153
+ declarative-option (< 0.2.0)
154
+ uber (< 0.2.0)
155
+ retriable (3.0.1)
153
156
  rly (0.2.3)
154
157
  rspec (3.4.0)
155
158
  rspec-core (~> 3.4.0)
@@ -165,13 +168,11 @@ GEM
165
168
  rspec-support (~> 3.4.0)
166
169
  rspec-support (3.4.1)
167
170
  rubyzip (1.2.1)
168
- sidekiq (4.2.9)
171
+ sidekiq (4.2.10)
169
172
  concurrent-ruby (~> 1.0)
170
173
  connection_pool (~> 2.2, >= 2.2.0)
171
174
  rack-protection (>= 1.5.0)
172
175
  redis (~> 3.2, >= 3.2.1)
173
- sidekiq-status (0.6.0)
174
- sidekiq (>= 2.7)
175
176
  signet (0.7.3)
176
177
  addressable (~> 2.3)
177
178
  faraday (~> 0.9)
@@ -180,13 +181,13 @@ GEM
180
181
  slop (3.6.0)
181
182
  stackdriver-core (0.21.0)
182
183
  thor (0.19.4)
183
- thread_safe (0.3.5)
184
- tilt (2.0.6)
184
+ thread_safe (0.3.6)
185
+ tilt (2.0.7)
185
186
  typhoeus (1.1.2)
186
187
  ethon (>= 0.9.0)
187
- tzinfo (1.2.2)
188
+ tzinfo (1.2.3)
188
189
  thread_safe (~> 0.1)
189
- uber (0.0.15)
190
+ uber (0.1.0)
190
191
 
191
192
  PLATFORMS
192
193
  ruby
@@ -197,4 +198,4 @@ DEPENDENCIES
197
198
  rspec (~> 3.3)
198
199
 
199
200
  BUNDLED WITH
200
- 1.13.7
201
+ 1.14.6
data/app.rb CHANGED
@@ -1,2 +1,6 @@
1
1
  require "dronejob"
2
- Dronejob.start
2
+ Dronejob::Loader.load
3
+ Dronejob::Base.queue_adapter = "sidekiq"
4
+ Sidekiq.configure_server do |config|
5
+ config.redis = { url: Dronejob::Base.options.redis_url }
6
+ end
data/dronejob.gemspec CHANGED
@@ -19,7 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.add_runtime_dependency "thor", "~> 0.19"
20
20
  s.add_runtime_dependency "haml", "~> 4.0"
21
21
  s.add_runtime_dependency "sidekiq", "~> 4.1"
22
- s.add_runtime_dependency "sidekiq-status", "~> 0.6"
23
22
  s.add_runtime_dependency "rubyzip", "~> 1.1"
24
23
  s.add_runtime_dependency "activejob", "~> 4.2"
25
24
  s.add_runtime_dependency "typhoeus", "~> 1.0"
@@ -27,6 +26,7 @@ Gem::Specification.new do |s|
27
26
  s.add_runtime_dependency "open_uri_redirections", "~> 0.2"
28
27
  s.add_runtime_dependency "google-cloud-storage", "~> 0.23"
29
28
  s.add_runtime_dependency "google-cloud-logging", "~> 0.23"
29
+ s.add_runtime_dependency "pusher", "~> 1.3"
30
30
  s.add_development_dependency "rspec", "~> 3.3"
31
31
  s.add_development_dependency "pry", "~> 0.10"
32
32
  s.files = `git ls-files`.split("\n")
@@ -10,7 +10,7 @@ module Dronejob
10
10
  def perform(params)
11
11
  @job_params = params.to_h
12
12
  @job_identifier = Dronejob::Loader.identifier_for(self)
13
- set_parameters(params)
13
+ self.params = params
14
14
  validate_parameters!
15
15
  run_callbacks :job do
16
16
  run_phases
@@ -22,7 +22,7 @@ module Dronejob
22
22
  end
23
23
  end
24
24
 
25
- def set_parameters(params)
25
+ def params=(params)
26
26
  @params = params.map{|name, value| [name, transform_parameter(name, value)]}.to_h
27
27
  end
28
28
 
@@ -30,6 +30,14 @@ module Dronejob
30
30
  if config = self.class.param_config(name)
31
31
  return Base64.strict_decode64(value) if config[:type] == :base64
32
32
  return JSON.parse(Base64.strict_decode64(value)) if config[:type] == :json64
33
+ if config[:type] === :numeric
34
+ return Integer(value) if Integer(value) rescue false
35
+ return Float(value) if Float(value) rescue false
36
+ end
37
+ if config[:type] === :boolean
38
+ return true if value === "true"
39
+ return false if value === "false"
40
+ end
33
41
  end
34
42
  value
35
43
  end
@@ -39,6 +47,16 @@ module Dronejob
39
47
  @params[key.to_s]
40
48
  end
41
49
 
50
+ def convert_param(value, config)
51
+ return nil if value.nil?
52
+
53
+ return value
54
+ end
55
+
56
+ def params
57
+ @params
58
+ end
59
+
42
60
  def validate_parameters!
43
61
  # Fill default parameters
44
62
  self.class.params.each do |param_name, param_config|
@@ -1,3 +1,4 @@
1
+ require "pusher"
1
2
  module Dronejob
2
3
  module Modules
3
4
  module Queue
@@ -20,19 +21,30 @@ module Dronejob
20
21
  end
21
22
  end
22
23
 
23
- def publish_status(data={}, status="working", backend=false)
24
+ def pusher_client
25
+ @pusher_client ||= Pusher::Client.new(
26
+ app_id: option(:pusher_app_id),
27
+ key: option(:pusher_key),
28
+ secret: option(:pusher_secret),
29
+ cluster: option(:pusher_cluster),
30
+ encrypted: true
31
+ )
32
+ end
33
+
34
+ def publish_status(data={}, status="working")
24
35
  data[:action] = "update_process"
25
36
  data[:user_id] = param(:user_id)
26
37
  data[:jid] = job_id
27
38
  data[:worker] = Loader.identifier_for(self)
28
39
  data[:timestamp] = Time.now.to_i
29
40
  data[:status] = status
30
- data[:secret_key] = option(:secret_key) if backend
31
- Redis.new(url: option(:redis_url)).publish("processes_#{backend ? 'backend' : data[:user_id]}", data.to_json)
41
+ queue = option(:dronejob_queue)
42
+ return false if data[:user_id].nil?
43
+ pusher_client.trigger("private-#{data[:user_id]}", "process", data)
32
44
  end
33
45
 
34
46
  def publish_error(e)
35
- publish_status({title: self.title, description: e.message, phase: @phase, backtrace: e.backtrace, progress: 100}, "failed") if should_notify?
47
+ publish_status({title: self.title, description: e.message, phase: @phase, progress: 100}, "failed") if should_notify?
36
48
  end
37
49
 
38
50
  def notify_before_phase
@@ -1,3 +1,3 @@
1
1
  module Dronejob
2
- VERSION = "1.2.9"
2
+ VERSION = "1.3.0"
3
3
  end
data/lib/dronejob.rb CHANGED
@@ -10,17 +10,4 @@ module Dronejob
10
10
  extend ActiveSupport::Autoload
11
11
  autoload :Base
12
12
  autoload :Loader
13
-
14
- def self.start
15
- require "dronejob/banner"
16
- require "sidekiq-status"
17
- Loader.load
18
- Dronejob::Base.queue_adapter = "sidekiq"
19
- Sidekiq.configure_server do |config|
20
- config.redis = { url: Dronejob::Base.options.redis_url }
21
- config.server_middleware do |chain|
22
- chain.add Sidekiq::Status::ServerMiddleware
23
- end
24
- end
25
- end
26
13
  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: 1.2.9
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Strebitzer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-15 00:00:00.000000000 Z
11
+ date: 2017-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -86,20 +86,6 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: '4.1'
89
- - !ruby/object:Gem::Dependency
90
- name: sidekiq-status
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '0.6'
96
- type: :runtime
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '0.6'
103
89
  - !ruby/object:Gem::Dependency
104
90
  name: rubyzip
105
91
  requirement: !ruby/object:Gem::Requirement
@@ -198,6 +184,20 @@ dependencies:
198
184
  - - "~>"
199
185
  - !ruby/object:Gem::Version
200
186
  version: '0.23'
187
+ - !ruby/object:Gem::Dependency
188
+ name: pusher
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '1.3'
194
+ type: :runtime
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '1.3'
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: rspec
203
203
  requirement: !ruby/object:Gem::Requirement
@@ -242,7 +242,6 @@ files:
242
242
  - bin/dronejob
243
243
  - dronejob.gemspec
244
244
  - lib/dronejob.rb
245
- - lib/dronejob/banner.rb
246
245
  - lib/dronejob/base.rb
247
246
  - lib/dronejob/command.rb
248
247
  - lib/dronejob/loader.rb
@@ -1,12 +0,0 @@
1
- module Sidekiq
2
- class CLI
3
- def self.banner
4
- ' ___ _ _ ' + "\n" +
5
- ' | \ _ _ ___ _ _ ___ _ | | ___ | |__ ' + "\n" +
6
- ' | |) | | `_| / _ \ | ` \ / -_) | || | / _ \ | `_ \ ' + "\n" +
7
- ' |___/ _|_|_ \___/ |_||_| \___| _\__/ \___/ |_.__/ ' + "\n" +
8
- ' _|=====|_|=====|_|=====|_|=====|_|=====|_|=====|_|=====|_|=====| ' + "\n" +
9
- ' =`-0-0-`=`-0-0-`=`-0-0-`=`-0-0-`=`-0-0-`=`-0-0-`=`-0-0-`=`-0-0-` '
10
- end
11
- end
12
- end