class Proxy::RemoteExecution::Ssh::CommandAction
Public Instance Methods
command()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 42 def command @command ||= Dispatcher::Command.new(:id => input[:task_id], :host => input[:hostname], :ssh_user => input[:ssh_user] || 'root', :effective_user => input[:effective_user], :script => input[:script], :effective_user_method => input[:effective_user_method], :host_public_key => input[:host_public_key], :verify_host => input[:verify_host], :suspended_action => suspended_action) end
failed_run?()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 78 def failed_run? output[:exit_status] != 0 end
finalize()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 33 def finalize # To mark the task as a whole as failed error! "Script execution failed" if failed_run? end
finish_run(update)
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 65 def finish_run(update) output[:exit_status] = update.exit_status end
init_run()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 54 def init_run output[:result] = [] Proxy::RemoteExecution::Ssh.dispatcher.tell([:initialize_command, command]) suspend end
kill_run()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 60 def kill_run Proxy::RemoteExecution::Ssh.dispatcher.tell([:kill, command]) suspend end
plan(input)
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 6 def plan(input) if callback = input['callback'] input[:task_id] = callback['task_id'] else input[:task_id] ||= SecureRandom.uuid end plan_with_callback(input) end
process_update(update)
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 69 def process_update(update) output[:result].concat(update.buffer_to_hash) if update.exit_status finish_run(update) else suspend end end
rescue_strategy_for_self()
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 38 def rescue_strategy_for_self Dynflow::Action::Rescue::Skip end
run(event = nil)
click to toggle source
# File lib/smart_proxy_remote_execution_ssh/command_action.rb, line 15 def run(event = nil) case event when nil init_run when CommandUpdate process_update(event) when Dynflow::Action::Cancellable::Cancel kill_run when Dynflow::Action::Skip # do nothing else raise "Unexpected event #{event.inspect}" end rescue => e action_logger.error(e) process_update(CommandUpdate.new(CommandUpdate.encode_exception("Proxy error", e))) end