capistrano_sentinel 0.0.2 → 0.0.3

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: a85bc5bd4389a2201db6f894977fac6ba3e68916
4
- data.tar.gz: e0652f5af4dc2f02d429ac92ff1b02f7972405cd
3
+ metadata.gz: 7281ef91ca49872bf389712c641d09a18d4b9ef5
4
+ data.tar.gz: ad67df5a0f82502974869c386e95f99b77e935d1
5
5
  SHA512:
6
- metadata.gz: e95267d93ce0d3994d2582215c2e3b51e6950be605eca8c0864e68a9e0a0b4fe4e57f02743aedb125747e1a1519903e8354ec4754a2e582e47d887f1464f745a
7
- data.tar.gz: b35e2427ae68a052335967816f38d6dcc82fa0eceb4207fc846a6590c36f662c5f11bebdffb58e4bcd83d421f763c5291556b96d8d82425e900f9d1776935099
6
+ metadata.gz: 0c8fc536eb801158032d5351a38e509eebb0f2a4c6cf50d222ad513479e0e159f412ef4a987b66082ad9c38b676dfb735e203607d533aec6a54efa1e096a5e4e
7
+ data.tar.gz: 565e21233c9bac28bf32ef25d216b529cf019a21d1b44c057d47abd882c7d47f83873238b503cf8d88f5dae87ae2a24117b5e71a0a0e38de332e0560ede50ce7
@@ -21,10 +21,13 @@ require_relative './classes/gem_finder'
21
21
  Gem.find_files("#{CapistranoSentinel::GemFinder.get_current_gem_name}/#{folder_name}/**/*.rb").each { |path| require path }
22
22
  end
23
23
 
24
- if !CapistranoSentinel::GemFinder.value_blank?(ENV[CapistranoSentinel::RequestHooks::ENV_KEY_JOB_ID]) && CapistranoSentinel::GemFinder.fetch_gem_version('capistrano')
25
- if CapistranoSentinel::GemFinder.capistrano_version_2?
26
- require_relative './patches/capistrano2'
27
- else
28
- require_relative './patches/rake'
24
+ if !CapistranoSentinel::GemFinder.value_blank?(ENV[CapistranoSentinel::RequestHooks::ENV_KEY_JOB_ID])
25
+
26
+ if CapistranoSentinel::GemFinder.fetch_gem_version('capistrano')
27
+ if CapistranoSentinel::GemFinder.capistrano_version_2?
28
+ require_relative './patches/capistrano2'
29
+ else
30
+ require_relative './patches/rake'
31
+ end
29
32
  end
30
33
  end
@@ -1,11 +1,9 @@
1
- require_relative '../helpers/actor'
2
1
  require_relative './websocket_client'
3
2
  require_relative '../helpers/application_helper'
4
3
  module CapistranoSentinel
5
4
  # class that handles the rake task and waits for approval from the celluloid worker
6
5
  class RequestWorker
7
6
  include CapistranoSentinel::ApplicationHelper
8
- #include CapistranoSentinel::Actor
9
7
 
10
8
  attr_reader :client, :job_id, :action, :task,
11
9
  :task_approved, :stdin_result, :executor
@@ -103,10 +101,10 @@ module CapistranoSentinel
103
101
  def task_approval(message)
104
102
  return if !message_is_about_a_task?(message)
105
103
  log_to_file("RakeWorker #{@job_id} #{task_name} task_approval : #{message.inspect}")
106
- if @job_id == message['job_id'] && message['task'].to_s == task_name.to_s && message['approved'] == 'yes'
104
+ if @job_id.to_s == message['job_id'].to_s && message['task'] && message['approved'] == 'yes'
107
105
  @task_approved = true
108
106
  else
109
- show_warning "unknown task_approval #{message.inspect} #{task_data}"
107
+ show_warning "unknown task_approval #{message} #{task_data}"
110
108
  end
111
109
  end
112
110
 
@@ -1,9 +1,7 @@
1
1
  require_relative './websocket/errors'
2
- require_relative '../helpers/actor'
3
2
  require_relative '../helpers/application_helper'
4
3
  module CapistranoSentinel
5
4
  class WebsocketClient
6
- include CapistranoSentinel::AsyncActor
7
5
  include CapistranoSentinel::ApplicationHelper
8
6
 
9
7
  HOST = '0.0.0.0'
@@ -46,34 +44,59 @@ module CapistranoSentinel
46
44
  @channel ||= @options.fetch(:channel, nil)
47
45
  raise "#{self}: Please provide an actor in the options list!!!" if @actor.blank?
48
46
 
47
+
49
48
  @auto_pong = @options.fetch(:auto_pong, true) || true
50
49
  @closed = false
51
50
  @opened = false
52
51
 
53
52
  @on_open = lambda {
54
- log_to_file("#{@actor.class} websocket connection opened")
53
+ log_to_file("native websocket client websocket connection opened")
55
54
  subscribe(@channel) if @channel.present?
56
55
  }
57
56
 
58
57
  @on_close = lambda { |message|
59
- log_to_file("#{@actor.class} dispatching on close #{message}")
60
- @actor.on_close(message)
58
+ log_to_file("native websocket client received on_close #{message.inspect}")
59
+ if @actor.respond_to?(:on_close)
60
+ if @actor.respond_to?(:async)
61
+ @actor.async.on_close(message)
62
+ else
63
+ @actor.on_close(message)
64
+ end
65
+ end
61
66
  }
62
67
 
63
68
  @on_ping = lambda { |message|
64
- @actor.on_ping(message) if @actor.respond_to?(:on_ping)
69
+ log_to_file("native websocket client received PING #{message.inspect}")
70
+ if @actor.respond_to?(:on_ping)
71
+ if @actor.respond_to?(:async)
72
+ @actor.async.on_ping(message)
73
+ else
74
+ @actor.on_ping(message)
75
+ end
76
+ end
65
77
  }
66
78
 
67
79
  @on_error = lambda { |error|
68
- @actor.on_error(message) if @actor.respond_to?(:on_error)
80
+ log_to_file("native websocket client received ERROR #{error.inspect} #{error.backtrace}")
81
+ if @actor.respond_to?(:on_error)
82
+ if @actor.respond_to?(:async)
83
+ @actor.async.on_error(error)
84
+ else
85
+ @actor.on_error(error)
86
+ end
87
+ end
69
88
  }
70
89
 
71
90
  @on_message = lambda { |message|
72
91
  message = parse_json(message)
73
- log_to_file("#{@actor.class} received JSON #{message}")
74
- @actor.on_message(message)
92
+ log_to_file("native websocket client received JSON #{message}")
93
+ if @actor.respond_to?(:async)
94
+ @actor.async.on_message(message)
95
+ else
96
+ @actor.on_message(message)
97
+ end
75
98
  }
76
- connect
99
+ connect
77
100
  end
78
101
 
79
102
  def is_windows?
@@ -17,7 +17,7 @@ module CapistranoSentinel
17
17
  # minor release version
18
18
  MINOR = 0
19
19
  # tiny release version
20
- TINY = 2
20
+ TINY = 3
21
21
  # prelease version ( set this only if it is a prelease)
22
22
  PRE = nil
23
23
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: capistrano_sentinel
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - bogdanRada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-11 00:00:00.000000000 Z
11
+ date: 2016-07-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: websocket
@@ -45,7 +45,6 @@ files:
45
45
  - lib/capistrano_sentinel/classes/request_worker.rb
46
46
  - lib/capistrano_sentinel/classes/websocket/errors.rb
47
47
  - lib/capistrano_sentinel/classes/websocket_client.rb
48
- - lib/capistrano_sentinel/helpers/actor.rb
49
48
  - lib/capistrano_sentinel/helpers/application_helper.rb
50
49
  - lib/capistrano_sentinel/helpers/logging.rb
51
50
  - lib/capistrano_sentinel/initializers/active_support/blank.rb
@@ -1,52 +0,0 @@
1
- require_relative './application_helper'
2
- module CapistranoSentinel
3
- module AsyncActor
4
- include CapistranoSentinel::ApplicationHelper
5
-
6
- Context = Struct.new(:method, :args, :block)
7
-
8
- Async = Struct.new(:instance, :mailbox) do
9
- extend Forwardable
10
- def_delegator :instance, :respond_to?
11
-
12
- private :instance
13
- private :mailbox
14
-
15
- def initialize(instance, mailbox)
16
- super(instance, mailbox)
17
- run!
18
- end
19
-
20
- def method_missing(method, *args, &block)
21
- mailbox << CapistranoSentinel::AsyncActor::Context.new(method, args, block)
22
- nil
23
- end
24
- end
25
-
26
- private
27
-
28
- def run!
29
- Thread.new do
30
- loop do
31
- break if mailbox.empty?
32
- begin
33
- mailbox.synchronize do
34
- ctx = mailbox.pop
35
- instance.public_send(ctx.method, *ctx.args, &ctx.block)
36
- end
37
- rescue => e
38
- log_to_file("crashed with #{e.inspect} #{e.backtrace}")
39
- end
40
- end
41
- end
42
- end
43
-
44
- def async_queue
45
- @async_queue ||= Queue.new.extend(MonitorMixin)
46
- end
47
-
48
- def async
49
- @async ||= CapistranoSentinel::AsyncActor::Async.new(self, async_queue)
50
- end
51
- end
52
- end