-
Notifications
You must be signed in to change notification settings - Fork 4
/
physical-info.t
150 lines (126 loc) · 3.64 KB
/
physical-info.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#!/usr/bin/perl
use warnings;
use strict;
use Test::More tests => 9;
# Test physical drive information parsing
BEGIN {
use_ok( 'LSI::MegaSAS' ) || print "Bail out!
";
}
my $m; # LSI::MegaSAS object
# new_ok() does not work in Test::More version 0.62 (CentOS 5).
if (defined(&{'new_ok'})) {
$m = new_ok( 'LSI::MegaSAS' );
} else {
# use the older new() + isa_ok().
$m = LSI::MegaSAS->new();
isa_ok($m, 'LSI::MegaSAS');
}
$ENV{'TEST_MEGACLI'} = 1;
# Sample output from -LDInfo -Lall -aALL
$ENV{'TEST_MEGACLI_OUTPUT'} = <<__EOF;
Adapter #0
Enclosure Device ID: 252
Slot Number: 0
Enclosure position: 0
Device Id: 9
Sequence Number: 2
Media Error Count: 0
Other Error Count: 2
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA
Raw Size: 46.584 GB [0x5d2ba70 Sectors]
Non Coerced Size: 46.084 GB [0x5c2ba70 Sectors]
Coerced Size: 45.634 GB [0x5b45000 Sectors]
Firmware state: Online, Spun Up
SAS Address(0): 0x4433221103000000
Connected Port Number: 1(path0)
Inquiry Data: STM00012F8ADSTEC MACH8 IOPS 43W7701 42C0340IBM 2582
IBM FRU/CRU: 43W7701
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 1.5Gb/s
Link Speed: 1.5Gb/s
Media Type: Solid State Device
Drive: Not Certified
Drive Temperature :37 Celsius
Enclosure Device ID: 252
Slot Number: 1
Enclosure position: 0
Device Id: 10
Sequence Number: 2
Media Error Count: 0
Other Error Count: 588
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 68.365 GB [0x88bb6b0 Sectors]
Non Coerced Size: 67.865 GB [0x87bb6b0 Sectors]
Coerced Size: 67.054 GB [0x861c000 Sectors]
Firmware state: Online, Spun Up
SAS Address(0): 0x5000c500323cfa79
SAS Address(1): 0x0
Connected Port Number: 2(path0)
Inquiry Data: IBM-ESXSST973452SS B6296TA0AV990825B629
IBM FRU/CRU: 42D0673
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Hard Disk Device
Drive: Not Certified
Drive Temperature :38C (100.40 F)
Enclosure Device ID: 252
Slot Number: 2
Enclosure position: 0
Device Id: 8
Sequence Number: 2
Media Error Count: 0
Other Error Count: 589
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SAS
Raw Size: 68.365 GB [0x88bb6b0 Sectors]
Non Coerced Size: 67.865 GB [0x87bb6b0 Sectors]
Coerced Size: 67.054 GB [0x861c000 Sectors]
Firmware state: Online, Spun Up
SAS Address(0): 0x5000c50032358309
SAS Address(1): 0x0
Connected Port Number: 0(path0)
Inquiry Data: IBM-ESXSST973452SS B6296TA0A6Z30825B629
IBM FRU/CRU: 42D0673
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Hard Disk Device
Drive: Not Certified
Drive Temperature :38C (100.40 F)
Exit Code: 0x00
__EOF
can_ok($m, 'physical_drive_info');
my $pdinfo = $m->physical_drive_info;
# Basic datatype checks.
ok($pdinfo, 'physical_drive_info() returns sucessfully');
isa_ok($pdinfo, 'HASH', 'physical_drive_info()');
# Verify the first adapter was found.
isa_ok($pdinfo->{0}, 'HASH', 'Adapter 0');
# Verify enclosure ID #252 was found.
isa_ok($pdinfo->{0}->{252}, 'HASH', 'Enclosure 252');
# Verify enclosure ID #252 has three drives.
is(keys %{$pdinfo->{0}->{252}}, 3, 'Enclosure 252 has three physical drives');
# Verify the temperature of the third physical drive.
is($pdinfo->{0}->{252}->{2}->{'Drive Temperature'}, '38C (100.40 F)', 'Temperature of third physical drive is good');