rubyipmi 0.10.0 → 0.11.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
}
|