module Dk::Task::InstanceMethods
Public Class Methods
new(runner, params = nil)
click to toggle source
# File lib/dk/task.rb, line 25 def initialize(runner, params = nil) params ||= {} @dk_runner = runner @dk_params = ParamsHash.new{ |h, k| @dk_runner.params[k] } @dk_params.merge!(params) end
Public Instance Methods
==(other_task)
click to toggle source
# File lib/dk/task.rb, line 56 def ==(other_task) self.class == other_task.class end
dk_dsl_ssh_hosts()
click to toggle source
# File lib/dk/task.rb, line 52 def dk_dsl_ssh_hosts @dk_dsl_ssh_hosts ||= self.instance_eval(&self.class.ssh_hosts) end
dk_run()
click to toggle source
# File lib/dk/task.rb, line 32 def dk_run self.dk_run_callbacks 'before' @dk_runner.log_task_run(self.class) do catch(:halt){ self.run! } end self.dk_run_callbacks 'after' end
dk_run_callbacks(named)
click to toggle source
# File lib/dk/task.rb, line 44 def dk_run_callbacks(named) callbacks = CallbackSet.new callbacks.add_callbacks(@dk_runner.task_callbacks("prepend_#{named}", self.class)) callbacks.add_callbacks(self.class.send("#{named}_callbacks") || []) callbacks.add_callbacks(@dk_runner.task_callbacks(named, self.class)) callbacks.each{ |c| run_task(c.task_class, c.params) } end
run!()
click to toggle source
# File lib/dk/task.rb, line 40 def run! raise NotImplementedError end
Private Instance Methods
after(subject, callback, params = nil)
click to toggle source
# File lib/dk/task.rb, line 126 def after(subject, callback, params = nil) @dk_runner.add_task_callback('after', subject, callback, params) end
before(subject, callback, params = nil)
click to toggle source
# File lib/dk/task.rb, line 118 def before(subject, callback, params = nil) @dk_runner.add_task_callback('before', subject, callback, params) end
cmd(cmd_str, *args)
click to toggle source
# File lib/dk/task.rb, line 74 def cmd(cmd_str, *args) given_opts = args.last.kind_of?(::Hash) ? args.pop : nil input = args.last @dk_runner.cmd(self, cmd_str, input, given_opts) end
cmd!(cmd_str, *args)
click to toggle source
# File lib/dk/task.rb, line 80 def cmd!(cmd_str, *args) cmd = cmd(cmd_str, *args) if !cmd.success? raise CmdRunError, "error running `#{cmd.cmd_str}`", caller end cmd end
dk_build_ssh_opts(opts)
click to toggle source
# File lib/dk/task.rb, line 156 def dk_build_ssh_opts(opts) opts ||= {} opts.merge({ :hosts => dk_lookup_ssh_hosts(opts[:hosts]), :ssh_args => dk_lookup_ssh_args(opts[:ssh_args]), :host_ssh_args => dk_lookup_host_ssh_args(opts[:host_ssh_args]) }) end
dk_lookup_host_ssh_args(opts_args)
click to toggle source
# File lib/dk/task.rb, line 178 def dk_lookup_host_ssh_args(opts_args) opts_args || @dk_runner.host_ssh_args end
dk_lookup_ssh_args(opts_args)
click to toggle source
# File lib/dk/task.rb, line 174 def dk_lookup_ssh_args(opts_args) opts_args || @dk_runner.ssh_args end
dk_lookup_ssh_hosts(opts_hosts)
click to toggle source
# File lib/dk/task.rb, line 165 def dk_lookup_ssh_hosts(opts_hosts) [*( ssh_hosts[opts_hosts] || opts_hosts || ssh_hosts[self.dk_dsl_ssh_hosts] || self.dk_dsl_ssh_hosts )] end
halt()
click to toggle source
# File lib/dk/task.rb, line 148 def halt throw :halt end
log_debug(msg, *styles)
click to toggle source
# File lib/dk/task.rb, line 153 def log_debug(msg, *styles); @dk_runner.log_debug(msg, *styles); end
log_error(msg, *styles)
click to toggle source
# File lib/dk/task.rb, line 154 def log_error(msg, *styles); @dk_runner.log_error(msg, *styles); end
log_info(msg, *styles)
click to toggle source
# File lib/dk/task.rb, line 152 def log_info(msg, *styles); @dk_runner.log_info(msg, *styles); end
param?(key)
click to toggle source
# File lib/dk/task.rb, line 110 def param?(key) @dk_params.key?(key) || @dk_runner.params.key?(key) end
params()
click to toggle source
# File lib/dk/task.rb, line 102 def params @dk_params end
prepend_after(subject, callback, params = nil)
click to toggle source
# File lib/dk/task.rb, line 130 def prepend_after(subject, callback, params = nil) @dk_runner.add_task_callback('prepend_after', subject, callback, params) end
prepend_before(subject, callback, params = nil)
click to toggle source
# File lib/dk/task.rb, line 122 def prepend_before(subject, callback, params = nil) @dk_runner.add_task_callback('prepend_before', subject, callback, params) end
run_task(task_class, params = nil)
click to toggle source
Helpers
# File lib/dk/task.rb, line 64 def run_task(task_class, params = nil) @dk_runner.run_task(task_class, params) end
set_param(key, value)
click to toggle source
# File lib/dk/task.rb, line 106 def set_param(key, value) @dk_runner.set_param(key, value) end
ssh(cmd_str, *args)
click to toggle source
# File lib/dk/task.rb, line 88 def ssh(cmd_str, *args) given_opts = args.last.kind_of?(::Hash) ? args.pop : nil input = args.last @dk_runner.ssh(self, cmd_str, input, given_opts, dk_build_ssh_opts(given_opts)) end
ssh!(cmd_str, *args)
click to toggle source
# File lib/dk/task.rb, line 94 def ssh!(cmd_str, *args) cmd = ssh(cmd_str, *args) if !cmd.success? raise SSHRunError, "error running `#{cmd.cmd_str}` over ssh", caller end cmd end
ssh_cmd_str(cmd_str, opts = nil)
click to toggle source
# File lib/dk/task.rb, line 138 def ssh_cmd_str(cmd_str, opts = nil) opts ||= {} Remote.ssh_cmd_str( cmd_str, opts[:host].to_s, dk_lookup_ssh_args(opts[:ssh_args]), dk_lookup_host_ssh_args(opts[:host_ssh_args]) ) end
ssh_hosts(group_name = nil, *values)
click to toggle source
# File lib/dk/task.rb, line 134 def ssh_hosts(group_name = nil, *values) @dk_runner.ssh_hosts(group_name, *values) end
start(cmd_str, *args)
click to toggle source
# File lib/dk/task.rb, line 68 def start(cmd_str, *args) given_opts = args.last.kind_of?(::Hash) ? args.pop : nil input = args.last @dk_runner.start(self, cmd_str, input, given_opts) end
try_param(key)
click to toggle source
# File lib/dk/task.rb, line 114 def try_param(key) @dk_params.try_param(key) end