Class: Rubyipmi::Freeipmi::Chassis
- Inherits:
-
BaseCommand
- Object
- BaseCommand
- BaseCommand
- Rubyipmi::Freeipmi::Chassis
- Defined in:
- lib/rubyipmi/freeipmi/commands/chassis.rb
Instance Attribute Summary
Attributes inherited from BaseCommand
#cmd, #lastcall, #max_retry_count, #options, #passfile, #result
Instance Method Summary collapse
-
#bootbios(reboot = false, persistent = false) ⇒ Object
boot into bios setup with option to reboot.
-
#bootcdrom(reboot = false, persistent = false) ⇒ Object
set boot device to cdrom with option to reboot.
-
#bootdevice(device, reboot = false, persistent = false) ⇒ Object
set boot device from given boot device.
-
#bootdisk(reboot = false, persistent = false) ⇒ Object
set boot device to disk with option to reboot.
-
#bootpxe(reboot = false, persistent = false) ⇒ Object
set boot device to pxe with option to reboot.
-
#config ⇒ Object
Access to the config command created on the fly.
-
#identify(status = false, delay = 0) ⇒ Object
Turn the led light on / off or with a delay.
-
#identifystatus ⇒ Object
A currently unsupported method to retrieve the led status.
-
#initialize(opts = ObservableHash.new) ⇒ Chassis
constructor
A new instance of Chassis.
-
#power ⇒ Object
Access to the power command created on the fly.
- #status ⇒ Object
Methods inherited from BaseCommand
#find_fix, #makecommand, #max_retry_count, #setpass, #validate_status
Methods inherited from BaseCommand
#dump_command, #find_fix, #locate_command, #logger, #makecommand, #removepass, #run, #runcmd, #setpass, #update, #validate_status
Constructor Details
#initialize(opts = ObservableHash.new) ⇒ Chassis
Returns a new instance of Chassis.
3 4 5 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 3 def initialize(opts = ObservableHash.new) super("ipmi-chassis", opts) end |
Instance Method Details
#bootbios(reboot = false, persistent = false) ⇒ Object
boot into bios setup with option to reboot
67 68 69 70 71 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 67 def bootbios(reboot = false, persistent = false) bootstatus = config.bootbios(persistent) # Only reboot if setting the boot flag was successful power.cycle if reboot && bootstatus end |
#bootcdrom(reboot = false, persistent = false) ⇒ Object
set boot device to cdrom with option to reboot
60 61 62 63 64 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 60 def bootcdrom(reboot = false, persistent = false) bootstatus = config.bootcdrom(persistent) # Only reboot if setting the boot flag was successful power.cycle if reboot && bootstatus end |
#bootdevice(device, reboot = false, persistent = false) ⇒ Object
set boot device from given boot device
35 36 37 38 39 40 41 42 43 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 35 def bootdevice(device, reboot = false, persistent = false) if config.bootdevices.include?(device) bootstatus = config.bootdevice(device, persistent) power.cycle if reboot && bootstatus else logger.error("Device with name: #{device} is not a valid boot device for host #{['hostname']}") if logger raise "Device with name: #{device} is not a valid boot device for host #{['hostname']}" end end |
#bootdisk(reboot = false, persistent = false) ⇒ Object
set boot device to disk with option to reboot
53 54 55 56 57 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 53 def bootdisk(reboot = false, persistent = false) bootstatus = config.bootdisk(persistent) # Only reboot if setting the boot flag was successful power.cycle if reboot && bootstatus end |
#bootpxe(reboot = false, persistent = false) ⇒ Object
set boot device to pxe with option to reboot
46 47 48 49 50 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 46 def bootpxe(reboot = false, persistent = false) bootstatus = config.bootpxe(persistent) # Only reboot if setting the boot flag was successful power.cycle if reboot && bootstatus end |
#config ⇒ Object
Access to the config command created on the fly
30 31 32 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 30 def config @config ||= Rubyipmi::Freeipmi::ChassisConfig.new(@options) end |
#identify(status = false, delay = 0) ⇒ Object
Turn the led light on / off or with a delay
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 8 def identify(status = false, delay = 0) if status if delay <= 0 ["chassis-identify"] = "FORCE" else ["chassis-identify"] = delay end else ["chassis-identify"] = "TURN-OFF" end # Run the command value = runcmd .delete_notify("chassis-identify") value end |
#identifystatus ⇒ Object
A currently unsupported method to retrieve the led status
85 86 87 88 89 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 85 def identifystatus # TODO: implement this function # parse out the identify status # status.result end |
#power ⇒ Object
Access to the power command created on the fly
25 26 27 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 25 def power @power ||= Rubyipmi::Freeipmi::Power.new(@options) end |
#status ⇒ Object
73 74 75 76 77 78 79 80 81 82 |
# File 'lib/rubyipmi/freeipmi/commands/chassis.rb', line 73 def status ["get-status"] = false value = runcmd .delete_notify("get-status") if value return parsestatus else return value end end |