capistrano_multiconfig_parallel 0.8.2 → 0.8.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 +4 -4
- data/lib/capistrano_multiconfig_parallel/celluloid/celluloid_worker.rb +1 -1
- data/lib/capistrano_multiconfig_parallel/celluloid/child_process.rb +12 -9
- data/lib/capistrano_multiconfig_parallel/{helpers → extensions}/extension_helper.rb +4 -1
- data/lib/capistrano_multiconfig_parallel/extensions/rake.rb +1 -1
- data/lib/capistrano_multiconfig_parallel/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b20d2ee84ec2ed3ed429a379cfed127acc0aeb88
|
4
|
+
data.tar.gz: b18344f2beaadc2e8471ae5a8b974853e912e59b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 609aba7897211c50b8c2877c677b1a94d24f10c8a829317d4a63ba47162603f139b3a848b1a9cdb806c830871ef35fae423df7bc391317973ca7cf0911c93dee
|
7
|
+
data.tar.gz: c0c38bf78cf472833d5dc49f704627ce2c04dd9ac29788c1ff2eb65efa9d685dbb752db470ba82e38866d7376460a850bc0c805aa86247fc1bfbb2a62752c048
|
@@ -229,7 +229,7 @@ module CapistranoMulticonfigParallel
|
|
229
229
|
return unless @execute_deploy
|
230
230
|
if exit_status.exitstatus != 0
|
231
231
|
debug("worker #{job_id} tries to terminate") if debug_enabled?
|
232
|
-
raise(CapistranoMulticonfigParallel::CelluloidWorker::TaskFailed, "task #{
|
232
|
+
raise(CapistranoMulticonfigParallel::CelluloidWorker::TaskFailed, "task failed with exit status #{exit_status.inspect} ") # force worker to rollback
|
233
233
|
else
|
234
234
|
update_machine_state('FINISHED')
|
235
235
|
debug("worker #{job_id} notifies manager has finished") if debug_enabled?
|
@@ -4,13 +4,15 @@ module CapistranoMulticonfigParallel
|
|
4
4
|
include Celluloid
|
5
5
|
include Celluloid::Logger
|
6
6
|
|
7
|
-
attr_accessor :actor, :pid, :exit_status, :process, :filename, :worker_log
|
7
|
+
attr_accessor :actor, :pid, :exit_status, :process, :filename, :worker_log, :job_id, :debug_enabled
|
8
8
|
|
9
9
|
finalizer :process_finalizer
|
10
10
|
|
11
11
|
def work(cmd, options = {})
|
12
12
|
@options = options
|
13
13
|
@actor = @options.fetch(:actor, nil)
|
14
|
+
@job_id = @actor.job_id
|
15
|
+
@debug_enabled = @actor.debug_enabled?
|
14
16
|
set_worker_log
|
15
17
|
EM.run do
|
16
18
|
EM.next_tick do
|
@@ -21,8 +23,8 @@ module CapistranoMulticonfigParallel
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
EM.error_handler do|e|
|
24
|
-
|
25
|
-
|
26
|
+
@worker_log.debug "Error during event loop for worker #{@job_id}: #{e.inspect}" if @debug_enabled
|
27
|
+
@worker_log.debug e.backtrace if @debug_enabled
|
26
28
|
EM.stop
|
27
29
|
end
|
28
30
|
end
|
@@ -47,10 +49,10 @@ module CapistranoMulticonfigParallel
|
|
47
49
|
def check_exit_status
|
48
50
|
return unless @exit_status.present?
|
49
51
|
if @options[:dry_run]
|
50
|
-
debug("worker #{@actor.job_id} starts execute deploy") if @
|
52
|
+
debug("worker #{@actor.job_id} starts execute deploy") if @debug_enabled
|
51
53
|
@actor.async.execute_deploy
|
52
54
|
elsif !@actor.worker_finshed?
|
53
|
-
debug("worker #{@actor.job_id} startsnotify finished") if @
|
55
|
+
debug("worker #{@actor.job_id} startsnotify finished") if @debug_enabled
|
54
56
|
@actor.notify_finished(@exit_status)
|
55
57
|
end
|
56
58
|
end
|
@@ -61,6 +63,7 @@ module CapistranoMulticonfigParallel
|
|
61
63
|
target: self,
|
62
64
|
environment: options[:environment].present? ? options[:environment] : nil,
|
63
65
|
pid_handler: :on_pid,
|
66
|
+
input: :on_input_stdin ,
|
64
67
|
stdout_handler: :on_read_stdout,
|
65
68
|
stderr_handler: :on_read_stderr,
|
66
69
|
watch_handler: :watch_handler,
|
@@ -85,12 +88,12 @@ module CapistranoMulticonfigParallel
|
|
85
88
|
end
|
86
89
|
|
87
90
|
def on_exit(status)
|
88
|
-
|
91
|
+
@worker_log.debug "Child process for worker #{@job_id} on_exit disconnected due to error #{status.inspect}" if @debug_enabled
|
89
92
|
@exit_status = status
|
90
93
|
end
|
91
94
|
|
92
95
|
def async_exception_handler(*data)
|
93
|
-
debug "Child process for worker #{@
|
96
|
+
@worker_log.debug "Child process for worker #{@job_id} async_exception_handler disconnected due to error #{data.inspect}" if @debug_enabled
|
94
97
|
io_callback('stderr', data)
|
95
98
|
@exit_status = 1
|
96
99
|
end
|
@@ -98,7 +101,7 @@ module CapistranoMulticonfigParallel
|
|
98
101
|
def watch_handler(process)
|
99
102
|
@process ||= process
|
100
103
|
end
|
101
|
-
|
104
|
+
|
102
105
|
def get_question_details(data)
|
103
106
|
question = ''
|
104
107
|
default = nil
|
@@ -123,7 +126,7 @@ module CapistranoMulticonfigParallel
|
|
123
126
|
|
124
127
|
def io_callback(io, data)
|
125
128
|
@worker_log.debug("#{io.upcase} ---- #{data}")
|
126
|
-
|
129
|
+
# user_prompt_needed?(data)
|
127
130
|
end
|
128
131
|
end
|
129
132
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'celluloid/autostart'
|
2
|
+
require_relative "../celluloid/rake_worker"
|
1
3
|
module CapistranoMulticonfigParallel
|
2
4
|
class ExtensionHelper
|
3
5
|
class << self
|
@@ -8,6 +10,7 @@ module CapistranoMulticonfigParallel
|
|
8
10
|
def job_id
|
9
11
|
ENV[CapistranoMulticonfigParallel::ENV_KEY_JOB_ID]
|
10
12
|
end
|
13
|
+
|
11
14
|
|
12
15
|
def rake_actor_id
|
13
16
|
ENV['count_rake'].present? ? "rake_worker_#{job_id}_count" : "rake_worker_#{job_id}"
|
@@ -34,7 +37,7 @@ module CapistranoMulticonfigParallel
|
|
34
37
|
until Celluloid::Actor[rake_actor_id].task_approved
|
35
38
|
Celluloid::Actor[rake_actor_id].wait_execution
|
36
39
|
end
|
37
|
-
yield if Celluloid::Actor[rake_actor_id].task_approved
|
40
|
+
yield Celluloid::Actor[rake_actor_id] if Celluloid::Actor[rake_actor_id].task_approved
|
38
41
|
end
|
39
42
|
end
|
40
43
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano_multiconfig_parallel
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- bogdanRada
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: celluloid-pmap
|
@@ -646,9 +646,9 @@ files:
|
|
646
646
|
- lib/capistrano_multiconfig_parallel/celluloid/terminal_table.rb
|
647
647
|
- lib/capistrano_multiconfig_parallel/cli.rb
|
648
648
|
- lib/capistrano_multiconfig_parallel/configuration.rb
|
649
|
+
- lib/capistrano_multiconfig_parallel/extensions/extension_helper.rb
|
649
650
|
- lib/capistrano_multiconfig_parallel/extensions/rake.rb
|
650
651
|
- lib/capistrano_multiconfig_parallel/helpers/base_manager.rb
|
651
|
-
- lib/capistrano_multiconfig_parallel/helpers/extension_helper.rb
|
652
652
|
- lib/capistrano_multiconfig_parallel/helpers/multi_app_manager.rb
|
653
653
|
- lib/capistrano_multiconfig_parallel/helpers/single_app_manager.rb
|
654
654
|
- lib/capistrano_multiconfig_parallel/helpers/standard_deploy.rb
|