rubyipmi 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.document +5 -0
- data/.gitignore +50 -0
- data/.rspec +1 -0
- data/.rubocop.yml +66 -0
- data/.travis.yml +13 -0
- data/Gemfile +3 -3
- data/README.md +9 -3
- data/RELEASE_NOTES.md +33 -0
- data/Rakefile +15 -42
- data/lib/rubyipmi/commands/basecommand.rb +17 -23
- data/lib/rubyipmi/commands/mixins/power_mixin.rb +50 -0
- data/lib/rubyipmi/commands/mixins/sensors_mixin.rb +54 -0
- data/lib/rubyipmi/freeipmi/commands/basecommand.rb +26 -35
- data/lib/rubyipmi/freeipmi/commands/bmc.rb +4 -7
- data/lib/rubyipmi/freeipmi/commands/bmcconfig.rb +7 -17
- data/lib/rubyipmi/freeipmi/commands/bmcdevice.rb +2 -9
- data/lib/rubyipmi/freeipmi/commands/bmcinfo.rb +4 -10
- data/lib/rubyipmi/freeipmi/commands/chassis.rb +27 -45
- data/lib/rubyipmi/freeipmi/commands/chassisconfig.rb +23 -38
- data/lib/rubyipmi/freeipmi/commands/fru.rb +23 -42
- data/lib/rubyipmi/freeipmi/commands/lan.rb +4 -6
- data/lib/rubyipmi/freeipmi/commands/power.rb +8 -51
- data/lib/rubyipmi/freeipmi/commands/sensors.rb +10 -67
- data/lib/rubyipmi/freeipmi/connection.rb +14 -17
- data/lib/rubyipmi/freeipmi/errorcodes.rb +11 -17
- data/lib/rubyipmi/ipmitool/commands/basecommand.rb +12 -16
- data/lib/rubyipmi/ipmitool/commands/bmc.rb +13 -22
- data/lib/rubyipmi/ipmitool/commands/chassis.rb +26 -44
- data/lib/rubyipmi/ipmitool/commands/chassisconfig.rb +11 -21
- data/lib/rubyipmi/ipmitool/commands/fru.rb +35 -48
- data/lib/rubyipmi/ipmitool/commands/lan.rb +25 -28
- data/lib/rubyipmi/ipmitool/commands/power.rb +7 -58
- data/lib/rubyipmi/ipmitool/commands/sensors.rb +10 -68
- data/lib/rubyipmi/ipmitool/connection.rb +10 -19
- data/lib/rubyipmi/ipmitool/errorcodes.rb +11 -45
- data/lib/rubyipmi/observablehash.rb +1 -2
- data/lib/rubyipmi/version.rb +5 -0
- data/lib/rubyipmi.rb +23 -28
- data/rubyipmi.gemspec +17 -128
- metadata +18 -101
- data/spec/Vagrantfile +0 -45
- data/spec/fixtures/freeipmi/bmc_config.txt +0 -317
- data/spec/fixtures/freeipmi/bmc_config_lan_conf.txt +0 -19
- data/spec/fixtures/freeipmi/bmc_info.txt +0 -32
- data/spec/fixtures/freeipmi/errors.txt +0 -3
- data/spec/fixtures/freeipmi/fru.txt +0 -13
- data/spec/fixtures/freeipmi/sensors.txt +0 -29
- data/spec/fixtures/ipmitool/bmc_info.txt +0 -20
- data/spec/fixtures/ipmitool/errors.txt +0 -10
- data/spec/fixtures/ipmitool/fru.txt +0 -96
- data/spec/fixtures/ipmitool/lan.txt +0 -17
- data/spec/fixtures/ipmitool/sensors.txt +0 -105
- data/spec/integration/bmc_spec.rb +0 -48
- data/spec/integration/chassis_config_spec.rb +0 -38
- data/spec/integration/chassis_spec.rb +0 -26
- data/spec/integration/connection_spec.rb +0 -45
- data/spec/integration/fru_spec.rb +0 -38
- data/spec/integration/lan_spec.rb +0 -50
- data/spec/integration/power_spec.rb +0 -40
- data/spec/integration/rubyipmi_spec.rb +0 -114
- data/spec/integration/sensor_spec.rb +0 -43
- data/spec/manifests/default.pp +0 -50
- data/spec/puppetmodules/archive/LICENSE-2.0.txt +0 -202
- data/spec/puppetmodules/archive/Modulefile +0 -8
- data/spec/puppetmodules/archive/README.md +0 -40
- data/spec/puppetmodules/archive/manifests/download.pp +0 -157
- data/spec/puppetmodules/archive/manifests/extract.pp +0 -81
- data/spec/puppetmodules/archive/manifests/init.pp +0 -70
- data/spec/puppetmodules/archive/manifests/tar-gz.pp +0 -7
- data/spec/puppetmodules/archive/manifests/zip.pp +0 -7
- data/spec/puppetmodules/archive/metadata.json +0 -26
- data/spec/spec_helper.rb +0 -47
- data/spec/unit/freeipmi/bmc-info_spec.rb +0 -38
- data/spec/unit/freeipmi/bmc_spec.rb +0 -43
- data/spec/unit/freeipmi/connection_spec.rb +0 -121
- data/spec/unit/freeipmi/errorcodes_spec.rb +0 -28
- data/spec/unit/freeipmi/fru_spec.rb +0 -76
- data/spec/unit/freeipmi/lan_spec.rb +0 -0
- data/spec/unit/freeipmi/sensors_spec.rb +0 -85
- data/spec/unit/ipmitool/bmc_spec.rb +0 -77
- data/spec/unit/ipmitool/connection_spec.rb +0 -122
- data/spec/unit/ipmitool/errorcodes_spec.rb +0 -35
- data/spec/unit/ipmitool/fru_spec.rb +0 -77
- data/spec/unit/ipmitool/lan_spec.rb +0 -94
- data/spec/unit/ipmitool/sensors_spec.rb +0 -96
- data/spec/unit/rubyipmi_spec.rb +0 -50
- data/spec/vagrant +0 -27
- data/spec/vagrant.pub +0 -1
@@ -1,105 +0,0 @@
|
|
1
|
-
FCB FAN1 | 5600.000 | RPM | ok | na | 1500.000 | na | 25500.000 | 25500.000 | 25500.000
|
2
|
-
FCB FAN2 | 5600.000 | RPM | ok | na | 1500.000 | na | 25500.000 | 25500.000 | 25500.000
|
3
|
-
FCB FAN3 | 5600.000 | RPM | ok | na | 1500.000 | na | 25500.000 | 25500.000 | 25500.000
|
4
|
-
FCB FAN4 | 5600.000 | RPM | ok | na | 1500.000 | na | 25500.000 | 25500.000 | 25500.000
|
5
|
-
PEF Action | 0x0 | discrete | 0x1080| na | na | na | na | na | na
|
6
|
-
WatchDog2 | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
7
|
-
AC Pwr On | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
8
|
-
ACPI Pwr State | 0x0 | discrete | 0x0088| na | na | na | na | na | na
|
9
|
-
FCB Ambient1 | 21.000 | degrees C | ok | na | na | na | na | 50.000 | 255.000
|
10
|
-
FCB Ambient2 | 0.000 | degrees C | ok | na | na | na | na | 50.000 | 255.000
|
11
|
-
CPU1Status | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
12
|
-
CPU2Status | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
13
|
-
PS 12V | 12.152 | Volts | ok | 10.602 | 10.850 | 11.160 | 12.834 | 13.144 | 13.392
|
14
|
-
PS 5V | 5.018 | Volts | ok | 4.394 | 4.524 | 4.654 | 5.330 | 5.486 | 5.590
|
15
|
-
MLB TEMP 2 | 47.000 | degrees C | ok | na | na | na | 85.000 | 87.000 | 90.000
|
16
|
-
MLB TEMP 3 | 43.000 | degrees C | ok | na | na | na | 85.000 | 87.000 | 90.000
|
17
|
-
Processor 1 Temp | 23.000 | degrees C | ok | na | na | na | 81.000 | 85.000 | 90.000
|
18
|
-
MLB TEMP 1 | 45.000 | degrees C | ok | na | na | na | 85.000 | 87.000 | 90.000
|
19
|
-
Processor 2 Temp | 24.000 | degrees C | ok | na | na | na | 81.000 | 85.000 | 90.000
|
20
|
-
STBY 3.3V | 3.354 | Volts | ok | 2.907 | 2.976 | 3.079 | 3.526 | 3.629 | 3.681
|
21
|
-
PS Current | 14.000 | Amps | ok | na | na | na | 255.000 | 255.000 | 255.000
|
22
|
-
SEL Fullness | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
23
|
-
PCI BUS | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
24
|
-
Memory | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
25
|
-
VCORE 1 | 1.029 | Volts | ok | na | na | na | 2.117 | 2.117 | 2.117
|
26
|
-
VCORE 2 | 0.893 | Volts | ok | na | na | na | 2.958 | 2.958 | 2.958
|
27
|
-
NM Capability | na | discrete | na | na | na | na | na | na | na
|
28
|
-
Security | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
29
|
-
PSU 1 AC Status | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
30
|
-
PSU 2 AC Status | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
31
|
-
PSU 1 Present | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
32
|
-
PSU 2 Present | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
33
|
-
PSU 2 POUT | 21.000 | Amps | ok | na | na | na | na | na | na
|
34
|
-
PSU 1 POUT | 22.000 | Amps | ok | na | na | na | na | na | na
|
35
|
-
UID Light | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
36
|
-
Int. Health LED | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
37
|
-
Ext. Health LED | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
38
|
-
Power Supply 1 | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
39
|
-
Power Supply 2 | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
40
|
-
Power Supplies | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
41
|
-
VRM 1 | 0x0 | discrete | 0x0280| na | na | na | na | na | na
|
42
|
-
VRM 2 | 0x0 | discrete | 0x0280| na | na | na | na | na | na
|
43
|
-
Fan 1 | 45.080 | percent | ok | na | na | na | na | na | na
|
44
|
-
Fan 2 | 45.080 | percent | ok | na | na | na | na | na | na
|
45
|
-
Fan 3 | 45.080 | percent | ok | na | na | na | na | na | na
|
46
|
-
Fan 4 | 45.080 | percent | ok | na | na | na | na | na | na
|
47
|
-
Fan 5 | 41.944 | percent | ok | na | na | na | na | na | na
|
48
|
-
Fan 6 | 41.944 | percent | ok | na | na | na | na | na | na
|
49
|
-
Fan 7 | 36.064 | percent | ok | na | na | na | na | na | na
|
50
|
-
Fan 8 | 36.064 | percent | ok | na | na | na | na | na | na
|
51
|
-
Fan 9 | 36.064 | percent | ok | na | na | na | na | na | na
|
52
|
-
Fan 10 | 36.064 | percent | ok | na | na | na | na | na | na
|
53
|
-
Fan 11 | 36.064 | percent | ok | na | na | na | na | na | na
|
54
|
-
Fan 12 | 36.064 | percent | ok | na | na | na | na | na | na
|
55
|
-
Fans | 0x0 | discrete | 0x0180| na | na | na | na | na | na
|
56
|
-
Temp 1 | 37.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 67.000 | 70.000 | 75.000
|
57
|
-
Temp 2 | 20.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 37.000 | 39.000 | 44.000
|
58
|
-
Temp 3 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 68.000 | 127.000 | 127.000
|
59
|
-
Temp 4 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 68.000 | 127.000 | 127.000
|
60
|
-
Temp 5 | 49.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 74.000 | 77.000 | 82.000
|
61
|
-
Temp 6 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 68.000 | 127.000 | 127.000
|
62
|
-
Temp 7 | 40.000 | degrees C | ok | 0.000 | 0.000 | 0.000 | 68.000 | 127.000 | 127.000
|
63
|
-
Power Meter | 374 | Watts | ok | na | na | na | na | na | na
|
64
|
-
UID Light | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
65
|
-
Sys. Health LED | 0x0 | discrete | 0x0080| na | na | na | na | na | na
|
66
|
-
Memory | 0x0 | discrete | 0x4080| na | na | na | na | na | na
|
67
|
-
Power Supply 1 | 1200.000 | Watts | nc | na | na | na | na | na | na
|
68
|
-
Power Supply 2 | 1200.000 | Watts | nc | na | na | na | na | na | na
|
69
|
-
Power Supply 3 | 1200.000 | Watts | nc | na | na | na | na | na | na
|
70
|
-
Power Supply 4 | 1200.000 | Watts | nc | na | na | na | na | na | na
|
71
|
-
Fan 3 | 46.648 | unspecified | nc | na | na | na | na | na | na
|
72
|
-
Fan 4 | 46.648 | unspecified | nc | na | na | na | na | na | na
|
73
|
-
01-Inlet Ambient | 19.000 | degrees C | ok | na | na | na | na | 42.000 | 46.000
|
74
|
-
02-CPU 1 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | 0.000
|
75
|
-
03-CPU 2 | 40.000 | degrees C | ok | na | na | na | na | 70.000 | 0.000
|
76
|
-
04-P1 DIMM 1-4 | 27.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000
|
77
|
-
05-P1 DIMM 5-8 | 25.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000
|
78
|
-
06-P2 DIMM 1-4 | 26.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000
|
79
|
-
07-P2 DIMM 5-8 | 27.000 | degrees C | ok | na | na | na | na | 87.000 | 0.000
|
80
|
-
08-HD Max | 35.000 | degrees C | ok | na | na | na | na | 60.000 | 0.000
|
81
|
-
09-Chipset | 44.000 | degrees C | ok | na | na | na | na | 105.000 | 0.000
|
82
|
-
10-VR P1 | 34.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
83
|
-
11-VR P2 | 35.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
84
|
-
12-VR P1 Zone | 27.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
|
85
|
-
13-VR P2 Zone | 27.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
|
86
|
-
14-VR P1 Mem | 31.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
87
|
-
15-VR P1 Mem | 29.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
88
|
-
16-VR P2 Mem | 32.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
89
|
-
17-VR P2 Mem | 29.000 | degrees C | ok | na | na | na | na | 115.000 | 120.000
|
90
|
-
18-VR P1Mem Zone | 30.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
|
91
|
-
19-VR P2Mem Zone | 31.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
|
92
|
-
20-SuperCap Max | 21.000 | degrees C | ok | na | na | na | na | 65.000 | 0.000
|
93
|
-
21-HD Controller | 40.000 | degrees C | ok | na | na | na | na | 100.000 | 0.000
|
94
|
-
22-LOM | na | degrees C | na | na | na | na | na | 100.000 | 0.000
|
95
|
-
23-LOM Card | na | degrees C | na | na | na | na | na | 100.000 | 0.000
|
96
|
-
24-PCI 1 | na | degrees C | na | na | na | na | na | 100.000 | 0.000
|
97
|
-
25-PCI 2 Zone | 25.000 | degrees C | ok | na | na | na | na | 65.000 | 70.000
|
98
|
-
26-PCI 2 | 50.000 | degrees C | ok | na | na | na | na | 100.000 | 0.000
|
99
|
-
42-P/S Board | 24.000 | degrees C | ok | na | na | na | na | 80.000 | 85.000
|
100
|
-
43-Sys Exhaust | 29.000 | degrees C | ok | na | na | na | na | 90.000 | 95.000
|
101
|
-
44-HD zone | 29.000 | degrees C | ok | na | na | na | na | 65.000 | 0.000
|
102
|
-
C3 P2I Bay 1 | 0.000 | unspecified | nc | na | na | na | na | na | na
|
103
|
-
C3 P2I Bay 2 | 0.000 | unspecified | nc | na | na | na | na | na | na
|
104
|
-
C3 P2I Bay 3 | 0.000 | unspecified | nc | na | na | na | na | na | na
|
105
|
-
C3 P2I Bay 4 | 0.000 | unspecified | nc | na | na | na | na | na | na
|
@@ -1,48 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Bmc" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
user ||= ENV["ipmiuser"] || "admin"
|
7
|
-
pass ||= ENV["ipmipass"] || "password"
|
8
|
-
host ||= ENV["ipmihost"] || "10.0.1.16"
|
9
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
it "creates a bmc object" do
|
15
|
-
expect(@conn.bmc).not_to be_nil
|
16
|
-
end
|
17
|
-
|
18
|
-
it "options should change after calling info" do
|
19
|
-
before = @conn.bmc.options.clone
|
20
|
-
info = @conn.bmc.info
|
21
|
-
after = @conn.bmc.options.clone
|
22
|
-
expect(before.length).to be < after.length
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'should retrun a max retry count' do
|
26
|
-
expect(@conn.bmc.max_retry_count).to be > 0
|
27
|
-
end
|
28
|
-
|
29
|
-
it "should reset the bmc device" do
|
30
|
-
expect(@conn.bmc.reset('cold')).not_to be_nil
|
31
|
-
end
|
32
|
-
|
33
|
-
it "should reset the bmc device warmly" do
|
34
|
-
expect(@conn.bmc.reset('warm')).not_to be_nil
|
35
|
-
end
|
36
|
-
|
37
|
-
it "reset should fail when type is wrong" do
|
38
|
-
expect{@conn.bmc.reset('freezing')}.to raise_exception
|
39
|
-
end
|
40
|
-
|
41
|
-
it "is able to retrieve the bmc info" do
|
42
|
-
expect(@conn.bmc.info).not_to be_nil
|
43
|
-
end
|
44
|
-
|
45
|
-
it "is able to retrieve the guid" do
|
46
|
-
expect(@conn.bmc.guid).not_to be_nil
|
47
|
-
end
|
48
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
|
4
|
-
describe "Chassis Config" do
|
5
|
-
|
6
|
-
before :each do
|
7
|
-
user ||= ENV["ipmiuser"] || "admin"
|
8
|
-
pass ||= ENV["ipmipass"] || "password"
|
9
|
-
host ||= ENV["ipmihost"] || "10.0.1.16"
|
10
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
11
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
it "test to set booting from PXE" do
|
16
|
-
expect(@conn.chassis.config.bootpxe).to eq(true)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "test to set booting from Disk" do
|
20
|
-
expect(@conn.chassis.config.bootdisk).to eq(true)
|
21
|
-
end
|
22
|
-
|
23
|
-
it "test to set booting from Cdrom" do
|
24
|
-
expect(@conn.chassis.config.bootcdrom).to eq(true)
|
25
|
-
end
|
26
|
-
|
27
|
-
it "test to set booting from bios" do
|
28
|
-
expect(@conn.chassis.config.bootbios).to eq(true)
|
29
|
-
end
|
30
|
-
|
31
|
-
it "test to set boot persistent value" do
|
32
|
-
|
33
|
-
end
|
34
|
-
|
35
|
-
it "test to checkout the entire chassis config" do
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Chassis" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
user ||= ENV["ipmiuser"] || "admin"
|
7
|
-
pass ||= ENV["ipmipass"] || "password"
|
8
|
-
host ||= ENV["ipmihost"] || "10.0.1.16"
|
9
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
it "test to turn uid light on for 5 seconds" do
|
15
|
-
value = @conn.chassis.identify(true, 5)
|
16
|
-
sleep(6)
|
17
|
-
expect(value).to eq(true)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "test to turn uid light on then off" do
|
21
|
-
@conn.chassis.identify(true)
|
22
|
-
sleep(2)
|
23
|
-
expect(@conn.chassis.identify(false)).to eq(true)
|
24
|
-
end
|
25
|
-
|
26
|
-
end
|
@@ -1,45 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Connection" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
user ||= ENV["ipmiuser"] || "admin"
|
7
|
-
pass ||= ENV["ipmipass"] || "password"
|
8
|
-
host ||= ENV["ipmihost"] || "192.168.1.16"
|
9
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
end
|
12
|
-
|
13
|
-
it "creates a new object" do
|
14
|
-
expect(@conn).to be_truthy
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'creates a bmc object' do
|
18
|
-
expect(@conn.bmc).to be_truthy
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'creates a chassis object' do
|
22
|
-
expect(@conn.chassis).to be_truthy
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'can test the connection' do
|
26
|
-
expect(@conn.connection_works?).to eq true
|
27
|
-
end
|
28
|
-
|
29
|
-
it 'can test the connection when credentials are wrong' do
|
30
|
-
user ||= ENV["ipmiuser"] || "admin"
|
31
|
-
pass = "wrong_password"
|
32
|
-
host ||= ENV["ipmihost"] || "192.168.1.16"
|
33
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
34
|
-
conn = Rubyipmi.connect(user, pass, host, provider)
|
35
|
-
expect(conn.connection_works?).to eq false
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'can get diag info' do
|
39
|
-
expect(@conn.get_diag.keys).to eq([:provider, :frus, :sensors, :bmc_info, :version])
|
40
|
-
end
|
41
|
-
|
42
|
-
it 'can get version info' do
|
43
|
-
expect(@conn.bmc.version).to match(/[\d\.]{3,4}/)
|
44
|
-
end
|
45
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
describe "Fru" do
|
3
|
-
|
4
|
-
attr_accessor :provider
|
5
|
-
before :each do
|
6
|
-
user ||= ENV["ipmiuser"] || "admin"
|
7
|
-
pass ||= ENV["ipmipass"] || "password"
|
8
|
-
host ||= ENV["ipmihost"] || "10.0.1.16"
|
9
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
it "test should return manufacturer" do
|
15
|
-
expect(@conn.fru.manufacturer).not_to be nil
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
it "test should return serial" do
|
20
|
-
expect(@conn.fru.board_serial).not_to be nil
|
21
|
-
end
|
22
|
-
|
23
|
-
it "test should return product name" do
|
24
|
-
expect(@conn.fru.model).not_to be nil
|
25
|
-
end
|
26
|
-
|
27
|
-
it "test should return fru list" do
|
28
|
-
expect(@conn.fru.list.length).to be >= 1
|
29
|
-
end
|
30
|
-
|
31
|
-
it "test missing method with known good method" do
|
32
|
-
expect(@conn.fru.chassis_type).not_to be nil
|
33
|
-
end
|
34
|
-
|
35
|
-
it "test missing method with known bad method" do
|
36
|
-
expect {@conn.fru.blah}.to raise_exception
|
37
|
-
end
|
38
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
describe "Lan" do
|
3
|
-
before :all do
|
4
|
-
@user ||= ENV["ipmiuser"] || "admin"
|
5
|
-
@pass ||= ENV["ipmipass"] || "password"
|
6
|
-
@host ||= ENV["ipmihost"] || "10.0.1.16"
|
7
|
-
@provider ||= ENV["ipmiprovider"] || "ipmitool"
|
8
|
-
end
|
9
|
-
let(:conn) { Rubyipmi.connect(@user, @pass, @host, @provider) }
|
10
|
-
|
11
|
-
it "get ip address" do
|
12
|
-
expect(conn.bmc.lan.ip).to eq(@host)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "get netmask" do
|
16
|
-
expect(conn.bmc.lan.netmask).to be_truthy
|
17
|
-
end
|
18
|
-
|
19
|
-
it "get gateway address" do
|
20
|
-
expect(conn.bmc.lan.gateway).to be_truthy
|
21
|
-
end
|
22
|
-
|
23
|
-
it "get mac address" do
|
24
|
-
expect(conn.bmc.lan.mac).to be_truthy
|
25
|
-
end
|
26
|
-
|
27
|
-
it "get static or dhcp" do
|
28
|
-
expect(conn.bmc.lan.dhcp?).to be_truthy
|
29
|
-
end
|
30
|
-
|
31
|
-
it "static should be opposite of dhcp" do
|
32
|
-
expect(conn.bmc.lan.dhcp? ).to_not eq(conn.bmc.lan.static?)
|
33
|
-
end
|
34
|
-
|
35
|
-
it "should set gateway address" do
|
36
|
-
gw = conn.bmc.lan.gateway
|
37
|
-
conn.bmc.lan.gateway = gw
|
38
|
-
expect(conn.bmc.lan.gateway = gw).to be_truthy
|
39
|
-
end
|
40
|
-
|
41
|
-
it "should set netmask" do
|
42
|
-
netmask = conn.bmc.lan.netmask
|
43
|
-
expect(conn.bmc.lan.netmask = netmask).to be_truthy
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should set ip address" do
|
47
|
-
ip = conn.bmc.lan.ip
|
48
|
-
expect(conn.bmc.lan.ip = ip).to be_truthy
|
49
|
-
end
|
50
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Power" do
|
4
|
-
|
5
|
-
before :each do
|
6
|
-
user ||= ENV["ipmiuser"] || "admin"
|
7
|
-
pass ||= ENV["ipmipass"] || "password"
|
8
|
-
host ||= ENV["ipmihost"] || "10.0.1.16"
|
9
|
-
provider ||= ENV["ipmiprovider"] || "ipmitool"
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
@conn.chassis.power.off
|
12
|
-
sleep(1)
|
13
|
-
end
|
14
|
-
|
15
|
-
it "test to turn power on" do
|
16
|
-
expect(@conn.chassis.power.on).to be_truthy
|
17
|
-
sleep(2)
|
18
|
-
expect(@conn.chassis.power.status).to eq('on')
|
19
|
-
end
|
20
|
-
|
21
|
-
it "test power status" do
|
22
|
-
expect(@conn.chassis.power.status).to eq('off')
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
it "test to check if power status is off" do
|
27
|
-
@conn.chassis.power.off
|
28
|
-
max_count = 12
|
29
|
-
while 0 < max_count
|
30
|
-
if @conn.chassis.power.off?
|
31
|
-
break
|
32
|
-
else
|
33
|
-
sleep(5)
|
34
|
-
max_count = max_count - 1
|
35
|
-
end
|
36
|
-
end
|
37
|
-
expect(@conn.chassis.power.off?).to be true
|
38
|
-
end
|
39
|
-
|
40
|
-
end
|
@@ -1,114 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'fileutils'
|
3
|
-
require 'logger'
|
4
|
-
|
5
|
-
describe "rubyipmi" do
|
6
|
-
before :each do
|
7
|
-
@user ||= ENV["ipmiuser"] || "admin"
|
8
|
-
@pass ||= ENV["ipmipass"] || "password"
|
9
|
-
@host ||= ENV["ipmihost"] || "10.0.1.16"
|
10
|
-
@provider ||= ENV["ipmiprovider"] || "ipmitool"
|
11
|
-
@conn = Rubyipmi.connect(@user, @pass, @host, @provider)
|
12
|
-
|
13
|
-
end
|
14
|
-
it "creates a connection object" do
|
15
|
-
conn = Rubyipmi.connect(@user, @pass, @host, @provider)
|
16
|
-
expect(conn).to be_truthy
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should test if a provider is present" do
|
20
|
-
value = Rubyipmi.is_provider_installed?("ipmitool")
|
21
|
-
value2 = Rubyipmi.is_provider_installed?("freeipmi")
|
22
|
-
expect((value|value2)).to eq true
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
it "should create a connection object if freeipmi is present" do
|
27
|
-
begin
|
28
|
-
conn = Rubyipmi.connect(@user, @pass, @host, "freeipmi")
|
29
|
-
expect(conn.kind_of?(Rubyipmi::Freeipmi::Connection)).to eq true
|
30
|
-
rescue Exception => e
|
31
|
-
expect(e.message.match(/freeipmi\ is\ not\ installed/)).to eq true
|
32
|
-
puts "#{e.message}"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
it "should create a connection object if ipmitool is present" do
|
37
|
-
begin
|
38
|
-
conn = Rubyipmi.connect(@user, @pass, @host, "ipmitool")
|
39
|
-
rescue Exception => e
|
40
|
-
expect(e.message).to match(/ipmitool\ is\ not\ installed/)
|
41
|
-
puts "#{e.message}"
|
42
|
-
return true
|
43
|
-
end
|
44
|
-
expect(conn.kind_of?(Rubyipmi::Ipmitool::Connection)).to eq true
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should not create a connection object if a provider is not present" do
|
48
|
-
begin
|
49
|
-
conn = Rubyipmi.connect(@user, @pass, @host, "bogus")
|
50
|
-
rescue Exception => e
|
51
|
-
expect(e.message).to match(/The IPMI provider: bogus is not installed/)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
it "check to find any available installed providers" do
|
56
|
-
expect(Rubyipmi.providers_installed.length).to be > 0
|
57
|
-
end
|
58
|
-
|
59
|
-
it 'can get diag info' do
|
60
|
-
# must have both freeipmi and ipmitool for this to pass
|
61
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
62
|
-
expect(File.exists?('/tmp/rubyipmi_diag_data.txt')).to be true
|
63
|
-
FileUtils.rm('/tmp/rubyipmi_diag_data.txt')
|
64
|
-
end
|
65
|
-
|
66
|
-
describe :logger do
|
67
|
-
before :each do
|
68
|
-
FileUtils.rm_f('/tmp/rubyipmi.log')
|
69
|
-
Rubyipmi.log_level = nil
|
70
|
-
Rubyipmi.logger = nil
|
71
|
-
end
|
72
|
-
|
73
|
-
it 'should only create an info log level' do
|
74
|
-
Rubyipmi.log_level = Logger::INFO
|
75
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
76
|
-
expect(File.exists?('/tmp/rubyipmi.log')).to be true
|
77
|
-
size = File.open('/tmp/rubyipmi.log', 'r') {|f| f.read.length}
|
78
|
-
expect(size).to be_within(60).of(100)
|
79
|
-
end
|
80
|
-
|
81
|
-
it 'should create a log with debug level' do
|
82
|
-
Rubyipmi.log_level = Logger::DEBUG
|
83
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
84
|
-
expect(File.exists?('/tmp/rubyipmi.log')).to be true
|
85
|
-
size = File.open('/tmp/rubyipmi.log', 'r') {|f| f.read.length}
|
86
|
-
expect(size).to be > 100
|
87
|
-
end
|
88
|
-
|
89
|
-
it 'should use custom logger' do
|
90
|
-
FileUtils.rm_f('/tmp/rubyipmi_custom.log')
|
91
|
-
logger = Logger.new('/tmp/rubyipmi_custom.log')
|
92
|
-
logger.level = Logger::DEBUG
|
93
|
-
Rubyipmi.logger = logger
|
94
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
95
|
-
expect(File.exists?('/tmp/rubyipmi_custom.log')).to be true
|
96
|
-
size = File.open('/tmp/rubyipmi_custom.log', 'r') {|f| f.read.length}
|
97
|
-
expect(size).to be > 100
|
98
|
-
FileUtils.rm_f('/tmp/rubyipmi_custom.log')
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'should not create a log file when log level is nil' do
|
102
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
103
|
-
expect(Rubyipmi.logger.instance_of?(NullLogger)).to be true
|
104
|
-
expect(File.exists?('/tmp/rubyipmi.log')).to be false
|
105
|
-
end
|
106
|
-
|
107
|
-
it 'should not create a log file when logger is set to nil and log_level is nil' do
|
108
|
-
Rubyipmi.get_diag(@user,@pass,@host)
|
109
|
-
expect(Rubyipmi.logger.instance_of?(NullLogger)).to be true
|
110
|
-
expect(File.exists?('/tmp/rubyipmi.log')).to be false
|
111
|
-
end
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
@@ -1,43 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
describe "Sensors" do
|
3
|
-
|
4
|
-
attr_accessor :provider
|
5
|
-
before :each do
|
6
|
-
user = ENV["ipmiuser"] || 'admin'
|
7
|
-
pass = ENV["ipmipass"] || 'password'
|
8
|
-
host = ENV["ipmihost"] || "10.0.1.16"
|
9
|
-
provider = ENV["ipmiprovider"] || 'ipmitool'
|
10
|
-
@conn = Rubyipmi.connect(user, pass, host, provider)
|
11
|
-
|
12
|
-
end
|
13
|
-
|
14
|
-
it "test get all sensors" do
|
15
|
-
expect(@conn.sensors.list.count).to be > 1
|
16
|
-
end
|
17
|
-
|
18
|
-
it "test should refresh data" do
|
19
|
-
old = @conn.sensors.list
|
20
|
-
@conn.sensors.refresh
|
21
|
-
new = @conn.sensors.list
|
22
|
-
expect(old).not_to equal(new)
|
23
|
-
end
|
24
|
-
|
25
|
-
it "test should return count greater than 1" do
|
26
|
-
expect(@conn.sensors.count).to be > 1
|
27
|
-
end
|
28
|
-
|
29
|
-
it "test should return names" do
|
30
|
-
expect(@conn.sensors.names.count).to be > 1
|
31
|
-
end
|
32
|
-
|
33
|
-
it "test should return list of fans" do
|
34
|
-
expect(@conn.sensors.fanlist.count).to be > 1
|
35
|
-
end
|
36
|
-
|
37
|
-
it "test should return list of temps" do
|
38
|
-
expect(@conn.sensors.templist.count).to be > 1
|
39
|
-
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
end
|
data/spec/manifests/default.pp
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
$packages_installed = ['libgcrypt-devel', 'ipmitool', 'gcc', 'make', 'ruby-devel']
|
2
|
-
$freeipmi_version = '1.3.2'
|
3
|
-
$freeipmi_name = "freeipmi-${freeipmi_version}"
|
4
|
-
$freeipmi_dir = "/opt/${freeipmi_name}"
|
5
|
-
$directories_created = ['/opt']
|
6
|
-
$gems_installed = ['bundler']
|
7
|
-
$rubyipmi_dir = '/rubyipmi'
|
8
|
-
archive { "freeipmi-${freeipmi_version}":
|
9
|
-
ensure => present,
|
10
|
-
url => "http://ftp.gnu.org/gnu/freeipmi/freeipmi-${freeipmi_version}.tar.gz",
|
11
|
-
target => '/opt',
|
12
|
-
checksum => false,
|
13
|
-
before => Exec["configure_freeipmi"],
|
14
|
-
require => File['/opt'],
|
15
|
-
src_target => '/opt'
|
16
|
-
}
|
17
|
-
Exec{
|
18
|
-
path => ['/usr/bin/', '/sbin', '/bin', '/usr/local/bin', '/usr/local/sbin', '/usr/sbin']
|
19
|
-
}
|
20
|
-
package{$gems_installed:
|
21
|
-
ensure => present,
|
22
|
-
provider => 'gem',
|
23
|
-
before => Exec["configure_freeipmi"]
|
24
|
-
}
|
25
|
-
package{$packages_installed:
|
26
|
-
ensure => present,
|
27
|
-
before => Exec["configure_freeipmi"]
|
28
|
-
}
|
29
|
-
file{$directories_created:
|
30
|
-
ensure => directory,
|
31
|
-
before => Exec['configure_freeipmi']
|
32
|
-
}
|
33
|
-
exec{"configure_freeipmi":
|
34
|
-
cwd => $freeipmi_dir,
|
35
|
-
command => "bash ${freeipmi_dir}/configure",
|
36
|
-
creates => "${freeipmi_dir}/ipmipower/ipmipower",
|
37
|
-
before => Exec["install_freeipmi"]
|
38
|
-
}
|
39
|
-
exec{"install_freeipmi":
|
40
|
-
cwd => $freeipmi_dir,
|
41
|
-
command => "make install",
|
42
|
-
creates => "/usr/local/sbin/ipmipower"
|
43
|
-
}
|
44
|
-
|
45
|
-
exec{"bundle install":
|
46
|
-
cwd => $rubyipmi_dir,
|
47
|
-
creates => "${rubyipmi_dir}/Gem.lock"
|
48
|
-
|
49
|
-
|
50
|
-
}
|