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