Class: CapistranoMulticonfigParallel::Job
- Inherits:
-
Object
- Object
- CapistranoMulticonfigParallel::Job
show all
- Includes:
- ApplicationHelper
- Defined in:
- lib/capistrano_multiconfig_parallel/classes/job.rb
Overview
class used for defining the job class
Instance Attribute Summary collapse
Instance Method Summary
collapse
action_confirmed?, check_hash_set, check_numeric, fetch_parsed_string, fetch_remaining_arguments, find_loaded_gem, find_remaining_args, get_question_details, msg_for_stdin?, msg_for_task?, multi_fetch_argv, parse_task_string, percent_of, regex_last_match, setup_command_line_standard, strip_characters_from_string, value_is_array?, verify_array_of_strings, verify_empty_options, warn_array_without_strings, wrap_string
Methods included from CoreHelper
app_debug_enabled?, ask_confirm, ask_stdout_confirmation, check_terminal_tty, debug_websocket?, error_filtered?, execute_with_rescue, find_worker_log, force_confirmation, format_error, log_error, log_output_error, log_to_file, print_to_log_file, rescue_error, rescue_interrupt, setup_filename_logger, setup_logger_formatter, show_warning, websocket_config, websocket_server_config
check_file, config_file, create_log_file, custom_commands, default_internal_config, default_internal_configuration_params, detect_root, enable_main_log_file, fail_capfile_not_found, fetch_default_internal_config, find_config_type, find_env_multi_cap_root, find_file_in_directory, internal_config_directory, internal_config_file, log_directory, main_log_file, multi_level_prop, pathname_is_root?, pwd_directory, pwd_parent_dir, root, setup_default_configuration_types, sliced_default_config, try_detect_capfile
Constructor Details
#initialize(application, options) ⇒ Job
Returns a new instance of Job.
18
19
20
21
22
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 18
def initialize(application, options)
@options = options.stringify_keys
@application = application
@manager = @application.manager
end
|
Instance Attribute Details
#exit_status=(value) ⇒ Object
Sets the attribute exit_status
9
10
11
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 9
def exit_status=(value)
@exit_status = value
end
|
#options ⇒ Object
Returns the value of attribute options.
8
9
10
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 8
def options
@options
end
|
#status=(value) ⇒ Object
Sets the attribute status
9
10
11
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 9
def status=(value)
@status = value
end
|
Instance Method Details
#command ⇒ Object
28
29
30
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 28
def command
@command ||= CapistranoMulticonfigParallel::JobCommand.new(self)
end
|
#crashed? ⇒ Boolean
95
96
97
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 95
def crashed?
failed? || dead? || worker_died? || exit_status.present?
end
|
#dead? ⇒ Boolean
99
100
101
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 99
def dead?
status.present? && status.to_s.downcase == 'dead'
end
|
#env_variable ⇒ Object
24
25
26
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 24
def env_variable
CapistranoMulticonfigParallel::ENV_KEY_JOB_ID
end
|
#failed? ⇒ Boolean
87
88
89
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 87
def failed?
['deploy:failed'].include?(status)
end
|
#finished? ⇒ Boolean
83
84
85
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 83
def finished?
status == 'finished'
end
|
#id ⇒ Object
61
62
63
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 61
def id
@id ||= @options.fetch('id', SecureRandom.uuid)
end
|
#rolling_back? ⇒ Boolean
91
92
93
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 91
def rolling_back?
['deploy:rollback'].include?(action)
end
|
#row_size ⇒ Object
47
48
49
50
51
52
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 47
def row_size
longest_hash = terminal_row.max_by do |hash|
hash[:value].size
end
(longest_hash[:value].size.to_f / 80.0).ceil
end
|
#terminal_env_variables ⇒ Object
32
33
34
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 32
def terminal_env_variables
setup_command_line(filtered_keys: [env_variable])
end
|
#terminal_row ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 36
def terminal_row
[
{ value: count.to_s },
{ value: id.to_s },
{ value: wrap_string(job_stage) },
{ value: wrap_string(capistrano_action) },
{ value: terminal_env_variables.map { |str| wrap_string(str) }.join("\n") },
{ value: wrap_string(worker_state) }
]
end
|
#worker_died? ⇒ Boolean
103
104
105
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 103
def worker_died?
status.present? && status.to_s.downcase == 'worker_died'
end
|
#worker_state ⇒ Object
54
55
56
57
58
59
|
# File 'lib/capistrano_multiconfig_parallel/classes/job.rb', line 54
def worker_state
default = status.to_s.upcase.red
return default unless @manager.alive?
worker = @manager.get_worker_for_job(id)
worker.alive? ? worker.worker_state : default
end
|