class Consolr::Runners::Ipmitool

Public Class Methods

new(config) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 6
def initialize config
  @ipmitool = if config.empty?
                '/usr/bin/ipmitool'
              else
                config
              end
end

Public Instance Methods

can_run?(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 14
def can_run? node
  begin
    not (node.ipmi.address.empty? or node.ipmi.username.empty? or node.ipmi.password.empty?)
  rescue
    false
  end
end
console(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 26
def console node
  cmd 'sol activate', node
end
identify(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 34
def identify node
  cmd 'chassis identify', node
end
kick(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 30
def kick node
  cmd 'sol deactivate', node
end
log_clear(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 46
def log_clear node
  cmd 'sel clear', node
end
log_list(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 42
def log_list node
  cmd 'sel list', node
end
off(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 54
def off node
  cmd 'power off', node
end
on(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 50
def on node
  cmd 'power on', node
end
reboot(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 62
def reboot node
  cmd 'power cycle', node
end
sdr(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 38
def sdr node
  cmd 'sdr elist all', node
end
sensors(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 74
def sensors node
  cmd 'sensor list', node
end
soft_off(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 58
def soft_off node
  cmd 'power soft', node
end
soft_reboot(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 66
def soft_reboot node
  cmd 'power reset', node
end
sol_info(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 78
def sol_info node
  cmd 'session info active', node
end
status(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 70
def status node
  cmd 'power status', node
end
verify(node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 22
def verify node
  Net::Ping::External.new(node.ipmi.address).ping?
end

Private Instance Methods

cmd(action, node) click to toggle source
# File lib/consolr/runners/ipmitool.rb, line 83
def cmd action, node
  system("#{@ipmitool} -I lanplus -H #{node.ipmi.address} -U #{node.ipmi.username} -P #{node.ipmi.password} #{action}")
  return $?.exitstatus == 0 ? "SUCCESS" : "FAILED"
end