rubyipmi 0.10.0 → 0.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. checksums.yaml +5 -5
  2. data/.document +5 -0
  3. data/.gitignore +50 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +66 -0
  6. data/.travis.yml +13 -0
  7. data/Gemfile +3 -3
  8. data/README.md +9 -3
  9. data/RELEASE_NOTES.md +33 -0
  10. data/Rakefile +15 -42
  11. data/lib/rubyipmi/commands/basecommand.rb +17 -23
  12. data/lib/rubyipmi/commands/mixins/power_mixin.rb +50 -0
  13. data/lib/rubyipmi/commands/mixins/sensors_mixin.rb +54 -0
  14. data/lib/rubyipmi/freeipmi/commands/basecommand.rb +26 -35
  15. data/lib/rubyipmi/freeipmi/commands/bmc.rb +4 -7
  16. data/lib/rubyipmi/freeipmi/commands/bmcconfig.rb +7 -17
  17. data/lib/rubyipmi/freeipmi/commands/bmcdevice.rb +2 -9
  18. data/lib/rubyipmi/freeipmi/commands/bmcinfo.rb +4 -10
  19. data/lib/rubyipmi/freeipmi/commands/chassis.rb +27 -45
  20. data/lib/rubyipmi/freeipmi/commands/chassisconfig.rb +23 -38
  21. data/lib/rubyipmi/freeipmi/commands/fru.rb +23 -42
  22. data/lib/rubyipmi/freeipmi/commands/lan.rb +4 -6
  23. data/lib/rubyipmi/freeipmi/commands/power.rb +8 -51
  24. data/lib/rubyipmi/freeipmi/commands/sensors.rb +10 -67
  25. data/lib/rubyipmi/freeipmi/connection.rb +14 -17
  26. data/lib/rubyipmi/freeipmi/errorcodes.rb +11 -17
  27. data/lib/rubyipmi/ipmitool/commands/basecommand.rb +12 -16
  28. data/lib/rubyipmi/ipmitool/commands/bmc.rb +13 -22
  29. data/lib/rubyipmi/ipmitool/commands/chassis.rb +26 -44
  30. data/lib/rubyipmi/ipmitool/commands/chassisconfig.rb +11 -21
  31. data/lib/rubyipmi/ipmitool/commands/fru.rb +35 -48
  32. data/lib/rubyipmi/ipmitool/commands/lan.rb +25 -28
  33. data/lib/rubyipmi/ipmitool/commands/power.rb +7 -58
  34. data/lib/rubyipmi/ipmitool/commands/sensors.rb +10 -68
  35. data/lib/rubyipmi/ipmitool/connection.rb +10 -19
  36. data/lib/rubyipmi/ipmitool/errorcodes.rb +11 -45
  37. data/lib/rubyipmi/observablehash.rb +1 -2
  38. data/lib/rubyipmi/version.rb +5 -0
  39. data/lib/rubyipmi.rb +23 -28
  40. data/rubyipmi.gemspec +17 -128
  41. metadata +18 -101
  42. data/spec/Vagrantfile +0 -45
  43. data/spec/fixtures/freeipmi/bmc_config.txt +0 -317
  44. data/spec/fixtures/freeipmi/bmc_config_lan_conf.txt +0 -19
  45. data/spec/fixtures/freeipmi/bmc_info.txt +0 -32
  46. data/spec/fixtures/freeipmi/errors.txt +0 -3
  47. data/spec/fixtures/freeipmi/fru.txt +0 -13
  48. data/spec/fixtures/freeipmi/sensors.txt +0 -29
  49. data/spec/fixtures/ipmitool/bmc_info.txt +0 -20
  50. data/spec/fixtures/ipmitool/errors.txt +0 -10
  51. data/spec/fixtures/ipmitool/fru.txt +0 -96
  52. data/spec/fixtures/ipmitool/lan.txt +0 -17
  53. data/spec/fixtures/ipmitool/sensors.txt +0 -105
  54. data/spec/integration/bmc_spec.rb +0 -48
  55. data/spec/integration/chassis_config_spec.rb +0 -38
  56. data/spec/integration/chassis_spec.rb +0 -26
  57. data/spec/integration/connection_spec.rb +0 -45
  58. data/spec/integration/fru_spec.rb +0 -38
  59. data/spec/integration/lan_spec.rb +0 -50
  60. data/spec/integration/power_spec.rb +0 -40
  61. data/spec/integration/rubyipmi_spec.rb +0 -114
  62. data/spec/integration/sensor_spec.rb +0 -43
  63. data/spec/manifests/default.pp +0 -50
  64. data/spec/puppetmodules/archive/LICENSE-2.0.txt +0 -202
  65. data/spec/puppetmodules/archive/Modulefile +0 -8
  66. data/spec/puppetmodules/archive/README.md +0 -40
  67. data/spec/puppetmodules/archive/manifests/download.pp +0 -157
  68. data/spec/puppetmodules/archive/manifests/extract.pp +0 -81
  69. data/spec/puppetmodules/archive/manifests/init.pp +0 -70
  70. data/spec/puppetmodules/archive/manifests/tar-gz.pp +0 -7
  71. data/spec/puppetmodules/archive/manifests/zip.pp +0 -7
  72. data/spec/puppetmodules/archive/metadata.json +0 -26
  73. data/spec/spec_helper.rb +0 -47
  74. data/spec/unit/freeipmi/bmc-info_spec.rb +0 -38
  75. data/spec/unit/freeipmi/bmc_spec.rb +0 -43
  76. data/spec/unit/freeipmi/connection_spec.rb +0 -121
  77. data/spec/unit/freeipmi/errorcodes_spec.rb +0 -28
  78. data/spec/unit/freeipmi/fru_spec.rb +0 -76
  79. data/spec/unit/freeipmi/lan_spec.rb +0 -0
  80. data/spec/unit/freeipmi/sensors_spec.rb +0 -85
  81. data/spec/unit/ipmitool/bmc_spec.rb +0 -77
  82. data/spec/unit/ipmitool/connection_spec.rb +0 -122
  83. data/spec/unit/ipmitool/errorcodes_spec.rb +0 -35
  84. data/spec/unit/ipmitool/fru_spec.rb +0 -77
  85. data/spec/unit/ipmitool/lan_spec.rb +0 -94
  86. data/spec/unit/ipmitool/sensors_spec.rb +0 -96
  87. data/spec/unit/rubyipmi_spec.rb +0 -50
  88. data/spec/vagrant +0 -27
  89. data/spec/vagrant.pub +0 -1
@@ -1,85 +1,27 @@
1
- module Rubyipmi::Freeipmi
1
+ require 'rubyipmi/commands/mixins/sensors_mixin'
2
2
 
3
+ module Rubyipmi::Freeipmi
3
4
  class Sensors < Rubyipmi::Freeipmi::BaseCommand
5
+ include Rubyipmi::SensorsMixin
4
6
 
5
7
  def initialize(opts = ObservableHash.new)
6
8
  super("ipmi-sensors", opts)
7
9
  end
8
10
 
9
- def refresh
10
- @sensors = nil
11
- list
12
- end
13
-
14
- def list
15
- @sensors ||= parse(getsensors)
16
- end
17
-
18
- def count
19
- list.count
20
- end
21
-
22
- def names
23
- list.keys
24
- end
25
-
26
- # returns a hash of fan sensors where the key is fan name and value is the sensor
27
- def fanlist(refreshdata=false)
28
- refresh if refreshdata
29
- flist = {}
30
- list.each do | name,sensor |
31
- if name =~ /.*fan.*/
32
- flist[name] = sensor
33
- end
34
- end
35
- return flist
36
- end
37
-
38
- # returns a hash of sensors where each key is the name of the sensor and the value is the sensor
39
- def templist(refreshdata=false)
40
- refresh if refreshdata
41
- tlist = {}
42
- list.each do | name , sensor |
43
- if sensor[:unit] =~ /.*degree.*/ || name =~ /.*temp.*/
44
- tlist[name] = sensor
45
- end
46
- end
47
- return tlist
48
- end
49
-
50
11
  def getsensors
51
12
  @options["no-header-output"] = false
52
13
  @options["output-sensor-state"] = false
53
14
  @options["entity-sensor-names"] = false
54
- value = runcmd
15
+ runcmd
55
16
  @options.delete_notify('no-header-output')
56
17
  @options.delete_notify('output-sensor-state')
57
18
  @options.delete_notify('entity-sensor-names')
58
19
  @result
59
20
  end
60
21
 
61
- private
62
-
63
- def method_missing(method, *args, &block)
64
- if not list.has_key?(method.to_s)
65
- raise NoMethodError
66
- else
67
- list[method.to_s]
68
- end
69
- end
70
-
71
- def parse(data)
72
- sensorlist = {}
73
- if ! data.nil?
74
- data.lines.each do | line|
75
- # skip the header
76
- sensor = Sensor.new(line)
77
- sensorlist[sensor[:name]] = sensor
78
- end
79
- end
80
- return sensorlist
22
+ def sensor_class
23
+ Sensor
81
24
  end
82
-
83
25
  end
84
26
 
85
27
  class Sensor < Hash
@@ -89,6 +31,7 @@ module Rubyipmi::Freeipmi
89
31
  end
90
32
 
91
33
  private
34
+
92
35
  def normalize(text)
93
36
  text.gsub(/\ /, '_').gsub(/\./, '').downcase
94
37
  end
@@ -97,16 +40,16 @@ module Rubyipmi::Freeipmi
97
40
  # Note: not all fields will exist on every server
98
41
  def parse(line)
99
42
  fields = [:id_num, :name, :value, :unit, :status, :type, :state, :lower_nonrec,
100
- :lower_crit,:lower_noncrit, :upper_crit, :upper_nonrec, :asserts_enabled, :deasserts_enabled ]
43
+ :lower_crit, :lower_noncrit, :upper_crit, :upper_nonrec, :asserts_enabled, :deasserts_enabled]
101
44
  data = line.split(/\|/)
102
45
  # should we ever encounter a field not in the fields list, just use a counter based fieldname so we just
103
46
  # use field1, field2, field3, ...
104
47
  i = 0
105
- data.each do | value |
48
+ data.each do |value|
106
49
  field ||= fields.shift || "field#{i}"
107
50
  self[field] = value.strip
108
51
  i = i.next
109
52
  end
110
53
  end
111
54
  end
112
- end
55
+ end
@@ -6,11 +6,18 @@ require 'rubyipmi/freeipmi/commands/basecommand'
6
6
  Dir[File.dirname(__FILE__) + '/commands/*.rb'].each do |file|
7
7
  require file
8
8
  end
9
+
9
10
  module Rubyipmi
10
11
  module Freeipmi
11
12
  class Connection
12
13
  attr_accessor :options
13
14
 
15
+ DRIVERS_MAP = {
16
+ 'lan15' => 'LAN',
17
+ 'lan20' => 'LAN_2_0',
18
+ 'open' => 'OPENIPMI'
19
+ }
20
+
14
21
  def initialize(user, pass, host, opts)
15
22
  @options = Rubyipmi::ObservableHash.new
16
23
  raise("Must provide a host to connect to") unless host
@@ -19,29 +26,19 @@ module Rubyipmi
19
26
  # So they are not required
20
27
  @options["username"] = user if user
21
28
  @options["password"] = pass if pass
22
- if opts.has_key?(:privilege)
23
- @options["privilege-level"] = opts[:privilege] # privilege type
29
+ if opts.key?(:privilege)
30
+ @options["privilege-level"] = opts[:privilege] # privilege type
24
31
  end
25
32
  # Note: rubyipmi should auto detect which driver to use so its unnecessary to specify the driver unless
26
33
  # the user really wants to
27
- @options['driver-type'] = drivers_map[opts[:driver]] unless drivers_map[opts[:driver]].nil?
34
+ @options['driver-type'] = DRIVERS_MAP[opts[:driver]] unless DRIVERS_MAP[opts[:driver]].nil?
28
35
  end
29
36
 
30
37
  # test the connection to ensure we can at least make a single call
31
38
  def connection_works?
32
- begin
33
- ! (bmc.info.nil? || bmc.info.empty? )
34
- rescue
35
- false
36
- end
37
- end
38
-
39
- def drivers_map
40
- {
41
- 'lan15' => 'LAN',
42
- 'lan20' => 'LAN_2_0',
43
- 'open' => 'OPENIPMI'
44
- }
39
+ ! (bmc.info.nil? || bmc.info.empty?)
40
+ rescue
41
+ false
45
42
  end
46
43
 
47
44
  def provider
@@ -75,4 +72,4 @@ module Rubyipmi
75
72
  end
76
73
  end
77
74
  end
78
- end
75
+ end
@@ -1,37 +1,31 @@
1
1
  module Rubyipmi::Freeipmi
2
-
3
2
  class ErrorCodes
4
-
5
- @@codes = {
6
- "authentication type unavailable for attempted privilege level" => {"driver-type" => "LAN_2_0"},
7
- "authentication type unavailable for attempted privilege level\n" => {"driver-type" => "LAN_2_0"},
3
+ CODES = {
4
+ "authentication type unavailable for attempted privilege level" => {"driver-type" => "LAN_2_0"},
5
+ "authentication type unavailable for attempted privilege level\n" => {"driver-type" => "LAN_2_0"}
8
6
  }
9
7
 
10
8
  def self.length
11
- @@codes.length
9
+ CODES.length
12
10
  end
13
11
 
14
12
  def self.code
15
- @@codes
13
+ CODES
16
14
  end
17
15
 
18
16
  def self.search(code)
19
17
  # example error code:
20
18
  # "/usr/local/sbin/bmc-info: authentication type unavailable for attempted privilege level\n"
21
- code.chomp! # clean up newline
22
- code = code.split(':').last.strip # clean up left hand side and strip white space from sides
23
- fix = @@codes.fetch(code,nil)
19
+ code.chomp! # clean up newline
20
+ code = code.split(':').last.strip # clean up left hand side and strip white space from sides
21
+ fix = CODES.fetch(code, nil)
24
22
  if fix.nil?
25
- @@codes.each do | error, result |
26
- if code =~ /.*#{error}.*/i
27
- fix = result
28
- end
23
+ CODES.each do |error, result|
24
+ fix = result if code =~ /.*#{error}.*/i
29
25
  end
30
26
  end
31
27
  raise "No Fix found" if fix.nil?
32
- return fix
28
+ fix
33
29
  end
34
-
35
30
  end
36
-
37
31
  end
@@ -1,13 +1,11 @@
1
1
  require 'rubyipmi/ipmitool/errorcodes'
2
2
 
3
3
  module Rubyipmi::Ipmitool
4
-
5
4
  class BaseCommand < Rubyipmi::BaseCommand
6
-
7
5
  def setpass
8
6
  super
9
7
  @options["f"] = @passfile.path
10
- @passfile.write "#{@options["P"]}"
8
+ @passfile.write "#{@options['P']}"
11
9
  @passfile.rewind
12
10
  @passfile.close
13
11
  end
@@ -19,7 +17,7 @@ module Rubyipmi::Ipmitool
19
17
  def makecommand
20
18
  args = ''
21
19
  # need to format the options to ipmitool format
22
- @options.each do |k,v|
20
+ @options.each do |k, v|
23
21
  # must remove from command line as its handled via conf file
24
22
  next if k == "P"
25
23
  next if k == "cmdargs"
@@ -27,26 +25,24 @@ module Rubyipmi::Ipmitool
27
25
  end
28
26
 
29
27
  # since ipmitool requires commands to be in specific order
30
-
31
28
  args << ' ' + options.fetch('cmdargs', '')
32
29
 
33
- return "#{cmd} #{args.lstrip}"
30
+ "#{cmd} #{args.lstrip}"
34
31
  end
35
32
 
36
33
  # The findfix method acts like a recursive method and applies fixes defined in the errorcodes
37
34
  # If a fix is found it is applied to the options hash, and then the last run command is retried
38
35
  # until all the fixes are exhausted or a error not defined in the errorcodes is found
39
36
  def find_fix(result)
40
- if result
41
- # The errorcode code hash contains the fix
42
- begin
43
- fix = ErrorCodes.search(result)
44
- @options.merge_notify!(fix)
45
-
46
- rescue
47
- raise "Could not find fix for error code: \n#{result}"
48
- end
37
+ return unless result
38
+ # The errorcode code hash contains the fix
39
+ begin
40
+ fix = ErrorCodes.search(result)
41
+ @options.merge_notify!(fix)
42
+
43
+ rescue
44
+ raise "Could not find fix for error code: \n#{result}"
49
45
  end
50
46
  end
51
47
  end
52
- end
48
+ end
@@ -1,7 +1,5 @@
1
1
  module Rubyipmi::Ipmitool
2
-
3
2
  class Bmc < Rubyipmi::Ipmitool::BaseCommand
4
-
5
3
  attr_accessor :config
6
4
 
7
5
  def initialize(opts = ObservableHash.new)
@@ -23,38 +21,33 @@ module Rubyipmi::Ipmitool
23
21
 
24
22
  def version
25
23
  @options['V'] = nil
26
- value = runcmd
24
+ runcmd
27
25
  @options.delete_notify('V')
28
26
  @result.slice(/\d\.\d.\d/)
29
27
  end
30
28
 
31
29
  # reset the bmc device, useful for troubleshooting
32
- def reset(type='cold')
30
+ def reset(type = 'cold')
33
31
  if ['cold', 'warm'].include?(type)
34
- @options["cmdargs"] = "bmc reset #{type}"
35
- value = runcmd()
36
- @options.delete_notify("cmdargs")
37
- return value
32
+ @options["cmdargs"] = "bmc reset #{type}"
33
+ value = runcmd
34
+ @options.delete_notify("cmdargs")
35
+ return value
38
36
  else
39
37
  logger.error("reset type: #{type} is not a valid choice, use warm or cold") if logger
40
38
  raise "reset type: #{type} is not a valid choice, use warm or cold"
41
39
  end
42
-
43
40
  end
44
41
 
45
42
  def guid
46
43
  @options["cmdargs"] = "bmc guid"
47
- value = runcmd()
44
+ value = runcmd
48
45
  @options.delete_notify("cmdargs")
49
- if value
50
- @result.lines.each { | line |
51
- line.chomp
52
- if line =~ /GUID/
53
- line.split(":").last.strip
54
- end
55
- }
46
+ return unless value
47
+ @result.lines.each do |line|
48
+ line.chomp
49
+ line.split(":").last.strip if line =~ /GUID/
56
50
  end
57
-
58
51
  end
59
52
 
60
53
  # This function will get the bmcinfo and return a hash of each item in the info
@@ -63,7 +56,7 @@ module Rubyipmi::Ipmitool
63
56
  status = runcmd
64
57
  @options.delete_notify("cmdargs")
65
58
  subkey = nil
66
- if not status
59
+ if !status
67
60
  raise @result
68
61
  else
69
62
  @result.lines.each do |line|
@@ -75,7 +68,7 @@ module Rubyipmi::Ipmitool
75
68
  if value.empty?
76
69
  subkey = key
77
70
  @bmcinfo[subkey] = []
78
- elsif key == value and subkey
71
+ elsif key == value && subkey
79
72
  # subvalue found
80
73
  @bmcinfo[subkey] << value
81
74
  else
@@ -87,7 +80,5 @@ module Rubyipmi::Ipmitool
87
80
  return @bmcinfo
88
81
  end
89
82
  end
90
-
91
-
92
83
  end
93
84
  end
@@ -1,17 +1,14 @@
1
1
  module Rubyipmi::Ipmitool
2
-
3
2
  class Chassis < Rubyipmi::Ipmitool::BaseCommand
4
-
5
3
  def initialize(opts = ObservableHash.new)
6
4
  super("ipmitool", opts)
7
-
8
5
  end
9
6
 
10
7
  # Turn the led light on / off or with a delay
11
8
  # status means to enable or disable the blinking
12
- def identify(status=false, delay=0)
9
+ def identify(status = false, delay = 0)
13
10
  if status
14
- if not delay.between?(1,255)
11
+ if !delay.between?(1, 255)
15
12
  options["cmdargs"] = "chassis identify 255"
16
13
  else
17
14
  options["cmdargs"] = "chassis identify #{delay}"
@@ -22,7 +19,7 @@ module Rubyipmi::Ipmitool
22
19
  # Run the command
23
20
  value = runcmd
24
21
  options.delete_notify("cmdargs")
25
- return value
22
+ value
26
23
  end
27
24
 
28
25
  # Access to the power command created on the fly
@@ -36,65 +33,54 @@ module Rubyipmi::Ipmitool
36
33
  end
37
34
 
38
35
  # set boot device from given boot device
39
- def bootdevice(device, reboot=false,persistent=false)
36
+ def bootdevice(device, reboot = false, persistent = false)
40
37
  if config.bootdevices.include?(device)
41
38
  bootstatus = config.bootdevice(device, persistent)
42
- if reboot and status
43
- power.cycle
44
- end
45
-
39
+ power.cycle if reboot && status
46
40
  else
47
- logger.debug("Device with name: #{device} is not a valid boot device for host #{options["hostname"]}") if logger
48
- raise "Device with name: #{device} is not a valid boot device for host #{options["hostname"]}"
41
+ logger.debug("Device with name: #{device} is not a valid boot device for host #{options['hostname']}") if logger
42
+ raise "Device with name: #{device} is not a valid boot device for host #{options['hostname']}"
49
43
  end
50
- return bootstatus
44
+ bootstatus
51
45
  end
52
46
 
53
47
  # set boot device to pxe with option to reboot
54
- def bootpxe(reboot=false,persistent=false)
48
+ def bootpxe(reboot = false, persistent = false)
55
49
  bootstatus = config.bootpxe(persistent)
56
50
  # Only reboot if setting the boot flag was successful
57
- if reboot and bootstatus
58
- power.cycle
59
- end
60
- return bootstatus
51
+ power.cycle if reboot && bootstatus
52
+ bootstatus
61
53
  end
62
54
 
63
55
  # set boot device to disk with option to reboot
64
- def bootdisk(reboot=false,persistent=false)
56
+ def bootdisk(reboot = false, persistent = false)
65
57
  bootstatus = config.bootdisk(persistent)
66
58
  # Only reboot if setting the boot flag was successful
67
- if reboot and bootstatus
68
- power.cycle
69
- end
70
- return bootstatus
59
+ power.cycle if reboot && bootstatus
60
+ bootstatus
71
61
  end
72
62
 
73
63
  # set boot device to cdrom with option to reboot
74
- def bootcdrom(reboot=false,persistent=false)
64
+ def bootcdrom(reboot = false, persistent = false)
75
65
  bootstatus = config.bootcdrom(persistent)
76
66
  # Only reboot if setting the boot flag was successful
77
- if reboot and bootstatus
78
- power.cycle
79
- end
80
- return bootstatus
67
+ power.cycle if reboot && bootstatus
68
+ bootstatus
81
69
  end
82
70
 
83
71
  # boot into bios setup with option to reboot
84
- def bootbios(reboot=false,persistent=false)
72
+ def bootbios(reboot = false, persistent = false)
85
73
  bootstatus = config.bootbios(persistent)
86
74
  # Only reboot if setting the boot flag was successful
87
- if reboot and bootstatus
88
- power.cycle
89
- end
90
- return bootstatus
75
+ power.cycle if reboot && bootstatus
76
+ bootstatus
91
77
  end
92
78
 
93
79
  def status
94
- options["cmdargs"] = "chassis status"
95
- value = runcmd
96
- options.delete_notify("cmdargs")
97
- return { :result => @result, :value => value }
80
+ options["cmdargs"] = "chassis status"
81
+ value = runcmd
82
+ options.delete_notify("cmdargs")
83
+ {:result => @result, :value => value}
98
84
  end
99
85
 
100
86
  # A currently unsupported method to retrieve the led status
@@ -102,11 +88,7 @@ module Rubyipmi::Ipmitool
102
88
  options["cmdargs"] = "chassis identify status"
103
89
  value = runcmd
104
90
  options.delete_notify("cmdargs")
105
- if value
106
- @result.chomp.split(":").last.strip
107
- end
91
+ @result.chomp.split(":").last.strip if value
108
92
  end
109
-
110
-
111
93
  end
112
- end
94
+ end
@@ -1,20 +1,11 @@
1
1
  module Rubyipmi::Ipmitool
2
-
3
2
  class ChassisConfig < Rubyipmi::Ipmitool::BaseCommand
4
-
5
3
  def initialize(opts = ObservableHash.new)
6
4
  super("ipmitool", opts)
7
-
8
- end
9
-
10
- # Get the current boot device
11
- def bootdevice
12
- # Not available with ipmitool
13
- false
14
5
  end
15
6
 
16
7
  # Set the boot device
17
- def bootdevice(device, persistent=false)
8
+ def bootdevice(device, persistent = false)
18
9
  if persistent
19
10
  @options["cmdargs"] = "chassis bootdev #{device}"
20
11
  else
@@ -22,7 +13,7 @@ module Rubyipmi::Ipmitool
22
13
  end
23
14
  value = runcmd
24
15
  @options.delete_notify("cmdargs")
25
- return value
16
+ value
26
17
  end
27
18
 
28
19
  # Get list of available boot devices
@@ -33,24 +24,23 @@ module Rubyipmi::Ipmitool
33
24
  end
34
25
 
35
26
  # shortcut to set boot device to pxe
36
- def bootpxe(persistent=true)
37
- bootdevice("pxe",persistent)
27
+ def bootpxe(persistent = true)
28
+ bootdevice("pxe", persistent)
38
29
  end
39
30
 
40
31
  # shortcut to set boot device to disk
41
- def bootdisk(persistent=true)
42
- bootdevice("disk",persistent)
32
+ def bootdisk(persistent = true)
33
+ bootdevice("disk", persistent)
43
34
  end
44
35
 
45
36
  # shortcut to set boot device to cdrom
46
- def bootcdrom(persistent=true)
47
- bootdevice("cdrom",persistent)
37
+ def bootcdrom(persistent = true)
38
+ bootdevice("cdrom", persistent)
48
39
  end
49
40
 
50
41
  # shortcut to boot into bios setup
51
- def bootbios(persistent=true)
52
- bootdevice("bios",persistent)
42
+ def bootbios(persistent = true)
43
+ bootdevice("bios", persistent)
53
44
  end
54
-
55
45
  end
56
- end
46
+ end