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,38 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe "Bmc" do
5
- before :all do
6
- @path = '/usr/local/bin'
7
- end
8
-
9
- before :each do
10
- allow_message_expectations_on_nil
11
- provider = "freeipmi"
12
- user = "ipmiuser"
13
- pass = "impipass"
14
- host = "ipmihost"
15
- allow(Rubyipmi).to receive(:locate_command).with('ipmipower').and_return("#{@path}/ipmipower")
16
-
17
- @conn = Rubyipmi.connect(user, pass, host, provider, {:debug => true})
18
- @bmcinfo = @conn.bmc.information
19
- data = nil
20
- File.open("spec/fixtures/#{provider}/bmc_info.txt",'r') do |file|
21
- data = file.read
22
- end
23
- allow(@bmcinfo).to receive(:locate_command).with('bmc-info').and_return("#{@path}/bmc-info")
24
- allow(@bmcinfo).to receive(:`).and_return(data)
25
- allow($?).to receive(:success?).and_return(true)
26
- end
27
-
28
- it "cmd should be bmc-info with correct number of arguments" do
29
- @bmcinfo.retrieve
30
- verify_freeipmi_command(@bmcinfo, 3, "#{@path}/bmc-info")
31
- end
32
-
33
- it "cmd should be bmc-info with correct number of arguments" do
34
- @bmcinfo.guid
35
- verify_freeipmi_command(@bmcinfo, 4, "#{@path}/bmc-info")
36
- end
37
-
38
- end
@@ -1,43 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe "Bmc" do
5
- before :all do
6
- @path = '/usr/local/bin'
7
- end
8
-
9
- before :each do
10
- allow_message_expectations_on_nil
11
- provider = "freeipmi"
12
- user = "ipmiuser"
13
- pass = "impipass"
14
- host = "ipmihost"
15
- allow(Rubyipmi).to receive(:locate_command).with('ipmipower').and_return("#{@path}/ipmipower")
16
-
17
- @conn = Rubyipmi.connect(user, pass, host, provider,{:debug => true})
18
- @bmc = @conn.bmc
19
- data = nil
20
- File.open("spec/fixtures/#{provider}/bmc_info.txt",'r') do |file|
21
- data = file.read
22
- end
23
- allow(@bmc).to receive(:guid).and_return("guid")
24
- allow(@bmc).to receive(:info).and_return("info")
25
- end
26
-
27
- it "bmc should not be nil" do
28
- expect(@bmc).not_to be nil
29
- end
30
-
31
- it "lan should not be nil" do
32
- expect(@bmc.lan).not_to be_nil
33
- end
34
-
35
- it "guid should not be nil" do
36
- expect(@bmc.guid).not_to be_nil
37
- end
38
-
39
- it "info should not be nill" do
40
- expect(@bmc.info).not_to be_nil
41
- end
42
-
43
- end
@@ -1,121 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe "Bmc" do
4
-
5
- before :all do
6
- @path = '/usr/local/bin'
7
- @provider = "freeipmi"
8
- @user = "ipmiuser"
9
- @pass = "impipass"
10
- @host = "ipmihost"
11
- end
12
-
13
- before :each do
14
-
15
-
16
- allow(Rubyipmi).to receive(:locate_command).with('ipmipower').and_return("#{@path}/ipmipower")
17
-
18
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true})
19
-
20
-
21
- end
22
-
23
- it "connection should not be nil" do
24
- expect(@conn).not_to be_nil
25
- end
26
-
27
- it "fru should not be nil" do
28
- expect(@conn.fru).not_to be_nil
29
- end
30
-
31
- it "provider should not be nil" do
32
- expect(@conn.provider).not_to be_nil
33
- end
34
-
35
- it "provider should be freeipmi" do
36
- expect(@conn.provider).to eq("freeipmi")
37
- end
38
-
39
- it "bmc should not be nil" do
40
- expect(@conn.bmc).not_to be_nil
41
- end
42
-
43
- it "sensors should not be nil" do
44
- expect(@conn.sensors).not_to be_nil
45
-
46
- end
47
-
48
- it "chassis should not be nill" do
49
- expect(@conn.chassis).not_to be_nil
50
-
51
- end
52
-
53
- it 'object should have driver set to lan20 if not specified' do
54
- expect(@conn.options['driver-type']).to eq "LAN_2_0"
55
-
56
- end
57
-
58
- it 'object should have driver set to auto if not specified' do
59
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
60
- expect(@conn.options.has_key?('driver-type')).to eq false
61
- end
62
-
63
- it 'object should have priv type set to ADMINISTRATOR if not specified' do
64
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
65
- expect(@conn.options.has_key?('privilege-level')).to eq false
66
- end
67
-
68
- it 'object should have priv type set to USER ' do
69
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:privilege => 'USER', :debug => true, :driver => 'auto'})
70
- expect(@conn.options.fetch('privilege-level')).to eq('USER')
71
- end
72
-
73
- it 'should raise exception if invalid privilege type' do
74
- expect{Rubyipmi.connect(@user, @pass, @host, @provider,{:privilege => 'BLAH',:debug => true, :driver => 'auto'})}.to raise_error(RuntimeError)
75
- end
76
-
77
- it 'should raise exception if invalid driver type' do
78
- expect{Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'foo'})}.to raise_error(RuntimeError)
79
- end
80
-
81
- it 'object should have driver set to lan_2_0' do
82
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'lan20'})
83
- expect(@conn.options['driver-type']).to eq('LAN_2_0')
84
- end
85
-
86
- it 'object should have driver set to lan' do
87
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'lan15'})
88
- expect(@conn.options['driver-type']).to eq('LAN')
89
- end
90
-
91
- it 'object should have driver set to openipmi' do
92
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'open'})
93
- expect(@conn.options['driver-type']).to eq('OPENIPMI')
94
- end
95
-
96
- describe 'test' do
97
- it 'should retrun boolean on test connection when result is not a hash' do
98
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
99
- bmc = double()
100
- allow(bmc).to receive(:info).and_return('')
101
- allow(conn).to receive(:bmc).and_return(bmc)
102
- expect(conn.connection_works?).to eq false
103
- end
104
-
105
- it 'should retrun boolean on test connection when result is a hash' do
106
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
107
- bmc = double()
108
- allow(bmc).to receive(:info).and_return({:test => true})
109
- allow(conn).to receive(:bmc).and_return(bmc)
110
- expect(conn.connection_works?).to eq true
111
- end
112
-
113
- it 'should retrun boolean on test connection when nil' do
114
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
115
- bmc = double()
116
- allow(bmc).to receive(:info).and_return(nil)
117
- allow(conn).to receive(:bmc).and_return(bmc)
118
- expect(conn.connection_works?).to eq false
119
- end
120
- end
121
- end
@@ -1,28 +0,0 @@
1
- require 'spec_helper'
2
- #require 'rubyipmi/Freeipmi/errorcodes'
3
-
4
- describe "Errorcodes" do
5
- it 'should return the length of fix hash' do
6
- expect(Rubyipmi::Freeipmi::ErrorCodes.length).to be >= 1
7
- end
8
-
9
- it 'should return a hash of codes' do
10
- expect(Rubyipmi::Freeipmi::ErrorCodes.code).to be_an_instance_of Hash
11
-
12
- end
13
-
14
- it 'should return a fix if code is found' do
15
- code = 'authentication type unavailable for attempted privilege level'
16
- expect(Rubyipmi::Freeipmi::ErrorCodes.search(code)).to eq({"driver-type" => "LAN_2_0"})
17
- end
18
-
19
- it 'should throw and error if no fix is found' do
20
- code = 'Crap Shoot'
21
- expect {Rubyipmi::Freeipmi::ErrorCodes.search(code)}.to raise_error
22
- end
23
-
24
- it 'should throw and error when a bad code is given' do
25
- code = nil
26
- expect {Rubyipmi::Freeipmi::ErrorCodes.search(code)}.to raise_error
27
- end
28
- end
@@ -1,76 +0,0 @@
1
- require 'spec_helper'
2
- describe :Fru do
3
-
4
- before :all do
5
- @path = '/usr/local/bin'
6
- end
7
-
8
- before :each do
9
-
10
- allow_message_expectations_on_nil
11
- data = nil
12
- provider = "freeipmi"
13
- user = "ipmiuser"
14
- pass = "impipass"
15
- host = "ipmihost"
16
- allow(Rubyipmi).to receive(:locate_command).with('ipmipower').and_return("#{@path}/ipmipower")
17
-
18
- @conn = Rubyipmi.connect(user, pass, host, provider, {:debug => true})
19
- @fru = @conn.fru
20
- File.open("spec/fixtures/#{provider}/fru.txt",'r') do |file|
21
- data = file.read
22
- end
23
-
24
- allow(@fru).to receive(:locate_command).with('ipmi-fru').and_return("#{@path}/ipmi-fru")
25
- allow(@fru).to receive(:`).and_return(data)
26
- allow($?).to receive(:success?).and_return(true)
27
- end
28
-
29
- it "cmd should be ipmi-fru with correct number of arguments" do
30
- @fru.list
31
- verify_freeipmi_command(@fru, 3, "#{@path}/ipmi-fru")
32
- end
33
-
34
- it 'should list data' do
35
- expect(@fru.names.count).to eq(1)
36
- end
37
-
38
- it 'should return a list of unparsed frus' do
39
- expect(@fru.getfrus).not_to be_nil
40
- end
41
-
42
-
43
- it "should return a list of parsed frus" do
44
- expect(@fru.list.count).to eq(1)
45
- end
46
-
47
- it 'should return a manufacturer' do
48
- expect(@fru.board_manufacturer).to eq('HP')
49
- end
50
-
51
- it 'should return a product' do
52
- expect(@fru.board_product_name).to eq('ProLiant DL380 G5')
53
- end
54
-
55
- it 'should return a chassis serial' do
56
- expect(@fru.chassis_serial_number).to eq('2UX64201U2')
57
- end
58
-
59
- it 'should return a board serial' do
60
- expect(@fru.board_serial_number).to eq('2UX64201U2')
61
- end
62
-
63
- it 'should return a list of fru names' do
64
- expect(@fru.names.count).to eq(1)
65
- end
66
-
67
- it 'should return a fru using method missing' do
68
- @fru.names.each do |name|
69
- fru = @fru.send(name)
70
- expect(fru).to be_an_instance_of(Rubyipmi::Freeipmi::FruData)
71
- expect(fru[:name]).to eq(name)
72
-
73
- end
74
- end
75
-
76
- end
File without changes
@@ -1,85 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe :Sensors do
5
- before :all do
6
- @path = '/usr/local/bin'
7
- end
8
-
9
- before :each do
10
- allow_message_expectations_on_nil
11
- data = nil
12
- provider = "freeipmi"
13
- user = "ipmiuser"
14
- pass = "impipass"
15
- host = "ipmihost"
16
- # this stub allows us to mock the command that would be used to verify provider installation
17
- allow(Rubyipmi).to receive(:locate_command).with('ipmipower').and_return("#{@path}/ipmipower")
18
-
19
- @conn = Rubyipmi.connect(user, pass, host, provider, {:debug => true})
20
- @sensors = @conn.sensors
21
- File.open("spec/fixtures/#{provider}/sensors.txt",'r') do |file|
22
- data = file.read
23
- end
24
- # this stub allows us to mock the command that is used with this test case
25
- allow(@sensors).to receive(:locate_command).with('ipmi-sensors').and_return('/usr/local/bin/ipmi-sensors')
26
-
27
- # these stubs allow us to run the command and return the fixtures
28
- allow(@sensors).to receive(:`).and_return(data)
29
- allow($?).to receive(:success?).and_return(true)
30
-
31
- end
32
-
33
- it "cmd should be ipmi-sensors with six arguments" do
34
- @sensors.list
35
- verify_freeipmi_command(@sensors, 6, "#{@path}/ipmi-sensors")
36
- end
37
-
38
- it "can return a list of sensors" do
39
- expect(@sensors.list).not_to be_nil
40
- end
41
-
42
- it "should return a count of sensors" do
43
- expect(@sensors.count).to eq(29)
44
- end
45
-
46
- it "should return a list of fan names" do
47
- expect(@sensors.fanlist.count).to eq(13)
48
- end
49
-
50
- it 'should return a list of temp names' do
51
- expect(@sensors.templist.count).to eq(7)
52
- end
53
-
54
- it 'should return a list of sensor names as an array' do
55
- expect(@sensors.names).to be_an_instance_of(Array)
56
- expect(@sensors.names.count).to eq(29)
57
- end
58
-
59
- it 'should return an empty list if no data exists' do
60
- allow(@sensors).to receive(:getsensors).and_return(nil)
61
- expect(@sensors.names.count).to eq(0)
62
- end
63
-
64
- it 'should return a sensor using method missing' do
65
- @sensors.names.each do |name|
66
- sensor = @sensors.send(name)
67
- expect(sensor).to be_an_instance_of(Rubyipmi::Freeipmi::Sensor)
68
- expect(sensor[:name]).to eq(name)
69
- end
70
- end
71
-
72
- #it 'fix should be added to options after error occurs' do
73
- # error = nil
74
- # File.open("spec/fixtures/freeipmi/errors.txt",'r') do |file|
75
- # error = file.read
76
- # end
77
- # @sensors.stub(:`).and_return(error)
78
- # $?.stub(:success?).and_return(false)
79
- # @sensors.refresh
80
- # after = @sensors.options.fetch('driver-type', false).should_not be_false
81
- #end
82
-
83
-
84
- end
85
-
@@ -1,77 +0,0 @@
1
- require 'spec_helper'
2
-
3
-
4
- describe "Bmc" do
5
-
6
- before :all do
7
- @path = '/usr/local/bin'
8
- end
9
-
10
- before :each do
11
- allow_message_expectations_on_nil
12
- provider = "ipmitool"
13
- user = "ipmiuser"
14
- pass = "impipass"
15
- host = "ipmihost"
16
- allow(Rubyipmi).to receive(:locate_command).with('ipmitool').and_return("#{@path}/ipmitool")
17
- @conn = Rubyipmi.connect(user, pass, host, provider, {:debug => true})
18
- @bmc = @conn.bmc
19
- data = nil
20
- File.open("spec/fixtures/#{provider}/bmc_info.txt",'r') do |file|
21
- data = file.read
22
- end
23
-
24
- allow(@bmc).to receive(:locate_command).with('ipmitool').and_return("#{@path}/ipmitool")
25
- allow(@bmc).to receive(:`).and_return(data)
26
- allow($?).to receive(:success?).and_return(true)
27
-
28
- allow(@bmc).to receive(:guid).and_return("guid")
29
-
30
- end
31
-
32
- it "bmc should not be nil" do
33
- expect(@bmc).not_to be nil
34
- end
35
-
36
- it "lan should not be nil" do
37
- expect(@bmc.lan).not_to be_nil
38
- end
39
-
40
- it "guid should not be nil" do
41
- expect(@bmc.guid).not_to be_nil
42
- end
43
-
44
- it "info should not be nil" do
45
- expect(@bmc.info).not_to be_nil
46
- end
47
-
48
- it "info should parse as expected" do
49
- expect(@bmc.info).to eq(RETRIEVE)
50
- end
51
-
52
- end
53
-
54
- RETRIEVE = {
55
- 'Device ID' => '17',
56
- 'Device Revision' => '1',
57
- 'Firmware Revision' => '2.9',
58
- 'IPMI Version' => '2.0',
59
- 'Manufacturer ID' => '11',
60
- 'Manufacturer Name' => 'Hewlett-Packard',
61
- 'Product ID' => '8192 (0x2000)',
62
- 'Product Name' => 'Unknown (0x2000)',
63
- 'Device Available' => 'yes',
64
- 'Provides Device SDRs' => 'yes',
65
- 'Additional Device Support' => [
66
- 'Sensor Device',
67
- 'SDR Repository Device',
68
- 'SEL Device',
69
- 'FRU Inventory Device'
70
- ],
71
- 'Aux Firmware Rev Info' => [
72
- '0x00',
73
- '0x00',
74
- '0x00',
75
- '0x30'
76
- ]
77
- }
@@ -1,122 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe :Connection do
4
-
5
- before :all do
6
- @path = '/usr/local/bin'
7
- @provider = "ipmitool"
8
- @user = "ipmiuser"
9
- @pass = "impipass"
10
- @host = "ipmihost"
11
- end
12
-
13
- before :each do
14
-
15
- allow(Rubyipmi).to receive(:locate_command).with('ipmitool').and_return("#{@path}/ipmitool")
16
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true})
17
-
18
- end
19
-
20
- it "connection should not be nil" do
21
- expect(@conn).not_to be_nil
22
- end
23
-
24
- it "fru should not be nil" do
25
- expect(@conn.fru).not_to be_nil
26
- end
27
-
28
- it "provider should not be nil" do
29
- expect(@conn.provider).not_to be_nil
30
- end
31
-
32
- it "provider should be ipmitool" do
33
- expect(@conn.provider).to eq("ipmitool")
34
- end
35
-
36
- it "bmc should not be nil" do
37
- expect(@conn.bmc).not_to be_nil
38
- end
39
-
40
- it "sensors should not be nil" do
41
- expect(@conn.sensors).not_to be_nil
42
-
43
- end
44
-
45
- it "chassis should not be nill" do
46
- expect(@conn.chassis).not_to be_nil
47
- end
48
-
49
- it "provider should return ipmitool" do
50
- expect(@conn.provider).to eq("ipmitool")
51
- end
52
-
53
- it 'object should have driver set to auto if not specified' do
54
- expect(@conn.options['I']).to eq 'lanplus'
55
-
56
- end
57
-
58
- it 'object should have driver set to auto if not specified' do
59
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
60
- expect(@conn.options.has_key?('I')).to eq false
61
- end
62
-
63
- it 'should raise exception if invalid driver type' do
64
- expect{Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'foo'})}.to raise_error(RuntimeError)
65
- end
66
-
67
- it 'object should have priv type set to ADMINISTRATOR if not specified' do
68
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
69
- expect(@conn.options.has_key?('L')).to eq false
70
- end
71
-
72
- it 'object should have priv type set to USER ' do
73
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:privilege => 'USER', :debug => true, :driver => 'auto'})
74
- expect(@conn.options.fetch('L')).to eq('USER')
75
- end
76
-
77
- it 'should raise exception if invalid privilege type' do
78
- expect{Rubyipmi.connect(@user, @pass, @host, @provider,{:privilege => 'BLAH',:debug => true, :driver => 'auto'})}.to raise_error(RuntimeError)
79
- end
80
-
81
- it 'object should have driver set to lanplus' do
82
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'lan20'})
83
- expect(@conn.options['I']).to eq('lanplus')
84
- end
85
-
86
- it 'object should have driver set to lanplus' do
87
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'lan15'})
88
- expect(@conn.options['I']).to eq('lan')
89
- end
90
-
91
- it 'object should have driver set to open' do
92
- @conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'open'})
93
- expect(@conn.options['I']).to eq('open')
94
- end
95
- describe 'test' do
96
- it 'should retrun boolean on test connection when result is not a hash' do
97
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
98
- bmc = double()
99
- allow(bmc).to receive(:info).and_return('')
100
- allow(conn).to receive(:bmc).and_return(bmc)
101
- expect(conn.connection_works?).to eq false
102
- end
103
-
104
- it 'should retrun boolean on test connection when result is a hash' do
105
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
106
- bmc = double()
107
- allow(bmc).to receive(:info).and_return({:test => true})
108
- allow(conn).to receive(:bmc).and_return(bmc)
109
- expect(conn.connection_works?).to eq true
110
- end
111
-
112
- it 'should retrun boolean on test connection when nil' do
113
- conn = Rubyipmi.connect(@user, @pass, @host, @provider,{:debug => true, :driver => 'auto'})
114
- bmc = double()
115
- allow(bmc).to receive(:info).and_return(nil)
116
- allow(conn).to receive(:bmc).and_return(bmc)
117
- expect(conn.connection_works?).to eq false
118
- end
119
- end
120
-
121
-
122
- end
@@ -1,35 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'rubyipmi/ipmitool/errorcodes'
4
-
5
- describe "Errorcodes" do
6
-
7
-
8
-
9
- it 'should return the length of fix hash' do
10
- expect(Rubyipmi::Ipmitool::ErrorCodes.length).to be > 1
11
- end
12
-
13
- it 'should return a hash of codes' do
14
- expect(Rubyipmi::Ipmitool::ErrorCodes.code).to be_an_instance_of Hash
15
-
16
- end
17
-
18
- it 'should return a fix if code is found' do
19
- code = 'Authentication type NONE not supported'
20
- expect(Rubyipmi::Ipmitool::ErrorCodes.search(code)).to eq({"I"=>"lanplus"})
21
- end
22
-
23
- it 'should throw and error if no fix is found' do
24
- code = 'Crap Shoot'
25
- expect {Rubyipmi::Ipmitool::ErrorCodes.search(code)}.to raise_error
26
- end
27
-
28
- it 'should throw and error when a bad code is given' do
29
- code = nil
30
- expect {Rubyipmi::Ipmitool::ErrorCodes.search(code)}.to raise_error
31
- end
32
-
33
-
34
-
35
- end