class MysqlSlaver::Executor

Attributes

dry_run[R]
ssh_port[R]

Public Class Methods

new(params = {}) click to toggle source
# File lib/mysql_slaver/executor.rb, line 7
def initialize(params = {})
  @ssh_port = params[:ssh_port]
  @dry_run  = params.fetch(:dry_run, false)
end

Public Instance Methods

execute(cmd) click to toggle source
# File lib/mysql_slaver/executor.rb, line 20
def execute(cmd)
  string = cmd.is_a?(Array) ? cmd.join('; ') : cmd
  log "CMD: #{string}"
  if dry_run
    "[DUMMY RESULT]"
  else
    result = `#{string}`
    success? ? result : nil
  end
end
ssh_command(cmd, host) click to toggle source
# File lib/mysql_slaver/executor.rb, line 12
def ssh_command(cmd, host)
  if ssh_port
    "ssh -p #{ssh_port} #{host} '#{cmd}'"
  else
    "ssh #{host} '#{cmd}'"
  end
end

Private Instance Methods

success?() click to toggle source
# File lib/mysql_slaver/executor.rb, line 33
def success?
  $?.success?
end