Some minor on other stuffs
This commit is contained in:
garnier-quentin 2014-03-30 21:06:55 +02:00
parent b5be638dda
commit f0e0768b0a
16 changed files with 1697 additions and 17 deletions

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::lib::telnet;
package hardware::server::sun::mgmt_cards::lib::telnet;
use strict;
use warnings;

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::environmentsf2xx;
package hardware::server::sun::mgmt_cards::mode::environmentsf2xx;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::environmentv4xx;
package hardware::server::sun::mgmt_cards::mode::environmentv4xx;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::environmentv8xx;
package hardware::server::sun::mgmt_cards::mode::environmentv8xx;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::showboards;
package hardware::server::sun::mgmt_cards::mode::showboards;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::showenvironment;
package hardware::server::sun::mgmt_cards::mode::showenvironment;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::showfaults;
package hardware::server::sun::mgmt_cards::mode::showfaults;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::mode::showfaulty;
package hardware::server::sun::mgmt_cards::mode::showfaulty;
use base qw(centreon::plugins::mode);

View File

@ -33,7 +33,7 @@
#
####################################################################################
package hardware::server::sun::mgmtcards::plugin;
package hardware::server::sun::mgmt_cards::plugin;
use strict;
use warnings;
@ -47,13 +47,13 @@ sub new {
$self->{version} = '0.1';
%{$self->{modes}} = (
'show-faulty' => 'hardware::server::sun::mgmtcards::mode::showfaulty',
'showfaults' => 'hardware::server::sun::mgmtcards::mode::showfaults',
'showboards' => 'hardware::server::sun::mgmtcards::mode::showboards',
'showenvironment' => 'hardware::server::sun::mgmtcards::mode::showenvironment',
'environment-v8xx' => 'hardware::server::sun::mgmtcards::mode::environmentv8xx',
'environment-v4xx' => 'hardware::server::sun::mgmtcards::mode::environmentv4xx',
'environment-sf2xx' => 'hardware::server::sun::mgmtcards::mode::environmentsf2xx',
'show-faulty' => 'hardware::server::sun::mgmt_cards::mode::showfaulty',
'showfaults' => 'hardware::server::sun::mgmt_cards::mode::showfaults',
'showboards' => 'hardware::server::sun::mgmt_cards::mode::showboards',
'showenvironment' => 'hardware::server::sun::mgmt_cards::mode::showenvironment',
'environment-v8xx' => 'hardware::server::sun::mgmt_cards::mode::environmentv8xx',
'environment-v4xx' => 'hardware::server::sun::mgmt_cards::mode::environmentv4xx',
'environment-sf2xx' => 'hardware::server::sun::mgmt_cards::mode::environmentsf2xx',
);
return $self;

View File

@ -228,7 +228,7 @@ __END__
=head1 MODE
Check Inodes space usage on partitions.
Need to enable "includeAllDisk 10%" on snmpd.conf.
Need to enable "includeAllDisks 10%" on snmpd.conf.
=over 8

View File

@ -0,0 +1,910 @@
===============
Mode Lun
===============
Command to test. All: getlun -uid -state -rg -type -drivetype -capacity -prb -bind
LOGICAL UNIT NUMBER 3
UID: 60:06:01:60:F8:C0:1E:00:A2:DC:41:39:8C:0F:E1:11
State: Bound
RAIDGroup ID: 0
RAID Type: RAID5
Drive Type: SATAII
LUN Capacity(Megabytes): 1659491
LUN Capacity(Blocks): 3398637568
Prct Rebuilt: 100
Prct Bound: 100
LOGICAL UNIT NUMBER 1
UID: 60:06:01:60:F8:C0:1E:00:0E:A7:F5:5F:66:10:E1:11
State: Bound
RAIDGroup ID: 101
RAID Type: Hot Spare
Drive Type: SATAII
LUN Capacity(Megabytes): 704364
LUN Capacity(Blocks): 1442538624
Prct Rebuilt: N/A
Prct Bound: 100
For one lun: getlun 1 -uid -state -rg -type -drivetype -capacity -prb -bind
UID: 60:06:01:60:F8:C0:1E:00:0E:A7:F5:5F:66:10:E1:11
State: Bound
RAIDGroup ID: 101
RAID Type: Hot Spare
Drive Type: SATAII
LUN Capacity(Megabytes): 704364
LUN Capacity(Blocks): 1442538624
Prct Rebuilt: N/A
Prct Bound: 100
======================
Mode pour l'etat du SP
======================
La commande: getcrus
SPE3 Enclosure SPE
SP A State: Present
SP B State: Present
Enclosure SPE Power A0 State: Present
Enclosure SPE Power A1 State: Present
Enclosure SPE Power B0 State: Present
Enclosure SPE Power B1 State: Present
Enclosure SPE SPS A State: Present
Enclosure SPE SPS B State: Present
Enclosure SPE SPS A Cabling State: Valid
Enclosure SPE SPS B Cabling State: Valid
DAE3P Bus 0 Enclosure 0
Bus 0 Enclosure 0 Fan A State: Present
Bus 0 Enclosure 0 Fan B State: Present
Bus 0 Enclosure 0 Power A State: Present
Bus 0 Enclosure 0 Power B State: Present
Bus 0 Enclosure 0 LCC A State: Present
Bus 0 Enclosure 0 LCC B State: Present
Bus 0 Enclosure 0 LCC A Revision: 7.85
Bus 0 Enclosure 0 LCC B Revision: 7.85
Bus 0 Enclosure 0 LCC A Serial #: FCNBD073833259
Bus 0 Enclosure 0 LCC B Serial #: FCNBD073621646
DAE3P Bus 1 Enclosure 0
Bus 1 Enclosure 0 Fan A State: Present
Bus 1 Enclosure 0 Fan B State: Present
Bus 1 Enclosure 0 Power A State: Present
Bus 1 Enclosure 0 Power B State: Present
Bus 1 Enclosure 0 LCC A State: Present
Bus 1 Enclosure 0 LCC B State: Present
Bus 1 Enclosure 0 LCC A Revision: 7.85
Bus 1 Enclosure 0 LCC B Revision: 7.85
Bus 1 Enclosure 0 LCC A Serial #: JAHSL074355703
Bus 1 Enclosure 0 LCC B Serial #: JAHSL074355754
DAE3P Bus 0 Enclosure 1
Bus 0 Enclosure 1 Fan A State: Present
Bus 0 Enclosure 1 Fan B State: Present
Bus 0 Enclosure 1 Power A State: Present
Bus 0 Enclosure 1 Power B State: Present
Bus 0 Enclosure 1 LCC A State: Present
Bus 0 Enclosure 1 LCC B State: Present
Bus 0 Enclosure 1 LCC A Revision: 7.85
Bus 0 Enclosure 1 LCC B Revision: 7.85
Bus 0 Enclosure 1 LCC A Serial #: JAHDL084257760
Bus 0 Enclosure 1 LCC B Serial #: JAHDL084156218
DAE3P Bus 1 Enclosure 1
Bus 1 Enclosure 1 Fan A State: Present
Bus 1 Enclosure 1 Fan B State: Present
Bus 1 Enclosure 1 Power A State: Present
Bus 1 Enclosure 1 Power B State: Present
Bus 1 Enclosure 1 LCC A State: Present
Bus 1 Enclosure 1 LCC B State: Present
Bus 1 Enclosure 1 LCC A Revision: 7.85
Bus 1 Enclosure 1 LCC B Revision: 7.85
Bus 1 Enclosure 1 LCC A Serial #: FCNBD073619725
Bus 1 Enclosure 1 LCC B Serial #: FCNBD073619505
DAE3P Bus 1 Enclosure 2
Bus 1 Enclosure 2 Fan A State: Present
Bus 1 Enclosure 2 Fan B State: Present
Bus 1 Enclosure 2 Power A State: Present
Bus 1 Enclosure 2 Power B State: Present
Bus 1 Enclosure 2 LCC A State: Present
Bus 1 Enclosure 2 LCC B State: Present
Bus 1 Enclosure 2 LCC A Revision: 7.85
Bus 1 Enclosure 2 LCC B Revision: 7.85
Bus 1 Enclosure 2 LCC A Serial #: JAHSL074767593
Bus 1 Enclosure 2 LCC B Serial #: JAHSL074666885
DAE3P Bus 1 Enclosure 3
Bus 1 Enclosure 3 Fan A State: Present
Bus 1 Enclosure 3 Fan B State: Present
Bus 1 Enclosure 3 Power A State: Present
Bus 1 Enclosure 3 Power B State: Present
Bus 1 Enclosure 3 LCC A State: Present
Bus 1 Enclosure 3 LCC B State: Present
Bus 1 Enclosure 3 LCC A Revision: 7.85
Bus 1 Enclosure 3 LCC B Revision: 7.85
Bus 1 Enclosure 3 LCC A Serial #: JAHSL074767433
Bus 1 Enclosure 3 LCC B Serial #: JAHSL074666624
DAE3P Bus 1 Enclosure 4
Bus 1 Enclosure 4 Fan A State: Present
Bus 1 Enclosure 4 Fan B State: Present
Bus 1 Enclosure 4 Power A State: Present
Bus 1 Enclosure 4 Power B State: Present
Bus 1 Enclosure 4 LCC A State: Present
Bus 1 Enclosure 4 LCC B State: Present
Bus 1 Enclosure 4 LCC A Revision: 7.85
Bus 1 Enclosure 4 LCC B Revision: 7.85
Bus 1 Enclosure 4 LCC A Serial #: JAHSL074767321
Bus 1 Enclosure 4 LCC B Serial #: JAHSL074767360
DAE3P Bus 1 Enclosure 5
Bus 1 Enclosure 5 Fan A State: Present
Bus 1 Enclosure 5 Fan B State: Present
Bus 1 Enclosure 5 Power A State: Present
Bus 1 Enclosure 5 Power B State: Present
Bus 1 Enclosure 5 LCC A State: Present
Bus 1 Enclosure 5 LCC B State: Present
Bus 1 Enclosure 5 LCC A Revision: 7.85
Bus 1 Enclosure 5 LCC B Revision: 7.85
Bus 1 Enclosure 5 LCC A Serial #: JAHSL074664396
Bus 1 Enclosure 5 LCC B Serial #: JAHSL074768042
DAE3P Bus 1 Enclosure 6
Bus 1 Enclosure 6 Fan A State: Present
Bus 1 Enclosure 6 Fan B State: Present
Bus 1 Enclosure 6 Power A State: Present
Bus 1 Enclosure 6 Power B State: Present
Bus 1 Enclosure 6 LCC A State: Present
Bus 1 Enclosure 6 LCC B State: Present
Bus 1 Enclosure 6 LCC A Revision: 7.85
Bus 1 Enclosure 6 LCC B Revision: 7.85
Bus 1 Enclosure 6 LCC A Serial #: JAHSL074666153
Bus 1 Enclosure 6 LCC B Serial #: JAHSL074767483
DAE3P Bus 1 Enclosure 7
Bus 1 Enclosure 7 Fan A State: Present
Bus 1 Enclosure 7 Fan B State: Present
Bus 1 Enclosure 7 Power A State: Present
Bus 1 Enclosure 7 Power B State: Present
Bus 1 Enclosure 7 LCC A State: Present
Bus 1 Enclosure 7 LCC B State: Present
Bus 1 Enclosure 7 LCC A Revision: 7.85
Bus 1 Enclosure 7 LCC B Revision: 7.85
Bus 1 Enclosure 7 LCC A Serial #: JAHDL084155976
Bus 1 Enclosure 7 LCC B Serial #: JAHDL084153292
======================
Mode pour le controller global
======================
La commande: getcontrol -cbt -busy -write -read -idle
Controller busy ticks: 500867
Controller idle ticks: 8204812
Prct Busy: 5.75
Total Writes: 401613
Total Reads: 6653775
Prct Idle: 94.2
======================
Mode pour le cache
======================
La commande: getcache -pdp -state -mirror
Prct Dirty Cache Pages = 0
SP Read Cache State Enabled
SP Write Cache State Enabled
Write Cache Mirrored: YES
======================
Mode pour les disques
======================
La commande pour tous: getdisk -state -bytrd -bytwrt -hw -hr
Bus 1 Enclosure 7 Disk 13
State: Enabled
Kbytes Read: 311959566
Kbytes Written: 0
Hard Write Errors: 0
Hard Read Errors: 0
Bus 1 Enclosure 7 Disk 14
State: Hot Spare Ready
Kbytes Read: 1957049160
Kbytes Written: 0
Hard Write Errors: 0
Hard Read Errors: 0
La commande pour un seul: getdisk 1_7_14 -state -bytrd -bytwrt -hw -hr
Bus 1 Enclosure 7 Disk 14
State: Hot Spare Ready
Kbytes Read: 1957105480
Kbytes Written: 0
Hard Write Errors: 0
Hard Read Errors: 0
======================
Mode pour les raid group
======================
La commande globale: getrg -type -tcap -ucap -prcntdf -prcntex -state
RaidGroup ID: 40
RaidGroup Type: r5
Raw Capacity (Blocks): 5770154824
Logical Capacity (Blocks): 4327616118
Free Capacity (Blocks,non-contiguous): 246
Percent defragmented: 100
Percent expanded: 100
RaidGroup State: Explicit_Remove
Valid_luns
RaidGroup ID: 103
RaidGroup Type: hot_spare
Raw Capacity (Blocks): 1442538706
Logical Capacity (Blocks): 1442538706
Free Capacity (Blocks,non-contiguous): 82
Percent defragmented: 100
Percent expanded: 100
RaidGroup State: Valid_luns
Pour un seul: getrg 109 -type -tcap -ucap -prcntdf -prcntex -state
RaidGroup ID: 109
RaidGroup Type: hot_spare
Raw Capacity (Blocks): 1442538706
Logical Capacity (Blocks): 0
Free Capacity (Blocks,non-contiguous): 1442538706
Percent defragmented: 100
Percent expanded: 100
RaidGroup State: Valid_luns
======================
Mode pour les ports
======================
The output of the command (on ne peut pas filter par element): getall -hba
Server IP Address: 192.168.7.156
Agent Rev: 6.26.0 (2.19)
HBA Information
---------------
Total number of initiators: 16
SP Name: SP A
SP Port ID: 4
Registered Initiators: 5
Logged-In Initiators: 2
Not Logged-In Initiators: 3
SP Name: SP A
SP Port ID: 5
Registered Initiators: 2
Logged-In Initiators: 1
Not Logged-In Initiators: 1
SP Name: SP B
SP Port ID: 4
Registered Initiators: 6
Logged-In Initiators: 4
Not Logged-In Initiators: 2
SP Name: SP B
SP Port ID: 5
Registered Initiators: 3
Logged-In Initiators: 1
Not Logged-In Initiators: 2
SP Name: SP A
SP Port ID: 2
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP A
SP Port ID: 3
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP A
SP Port ID: 0
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP A
SP Port ID: 1
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP B
SP Port ID: 2
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP B
SP Port ID: 3
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP B
SP Port ID: 0
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
SP Name: SP B
SP Port ID: 1
Registered Initiators: 0
Logged-In Initiators: 0
Not Logged-In Initiators: 0
Information about each HBA:
HBA UID: 20:00:00:1B:32:89:97:AD:21:00:00:1B:32:89:97:AD
Server Name: SERVER-v3108.INTERACT.AD
Server IP Address: UNKNOWN
HBA Model Description: @oem27.inf,%ql2300.devicedesc%;QLogic Fibre Channel Adapter
HBA Vendor Description: @oem27.inf,%qlogic%;QLogic
HBA Device Driver Name: ql2300
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 4
HBA Devicename: PwrP:SCSI3:0:1:0
Trusted: NO
Logged In: YES
Source ID: 69376
Defined: YES
Initiator Type: 3
StorageGroup Name: Soft
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 4
HBA Devicename: PwrP:SCSI3:0:0:0
Trusted: NO
Logged In: YES
Source ID: 69376
Defined: YES
Initiator Type: 3
StorageGroup Name: Soft
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:00:00:00:C9:40:60:37:10:00:00:00:C9:40:60:37
Server Name: AUGUSTE
Server IP Address: 192.168.7.150
HBA Model Description: Emulex LightPulse HBA - Multi-protocol Port Driver
HBA Vendor Description: Emulex
HBA Device Driver Name: elxsli2
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 4
HBA Devicename: \\.\SCSI5:0:14:0
Trusted: NO
Logged In: YES
Source ID: 69632
Defined: YES
Initiator Type: 3
StorageGroup Name: auguste
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:01:00:1B:32:27:4B:FD:21:01:00:1B:32:27:4B:FD
Server Name: CESAR
Server IP Address: 192.168.7.155
HBA Model Description: @oem36.inf,%ql2300.devicedesc%;QLogic Fibre Channel Adapter
HBA Vendor Description: @oem36.inf,%qlogic%;QLogic
HBA Device Driver Name: ql2300
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 5
HBA Devicename: PwrP:SCSI5:0:0:0
Trusted: NO
Logged In: YES
Source ID: 91136
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 4
HBA Devicename: PwrP:SCSI4:0:1:0
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP B
SP Port ID: 4
HBA Devicename: \\.\SCSI5:0:1:0
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:00:00:1B:32:07:4B:FD:21:00:00:1B:32:07:4B:FD
Server Name: CESAR
Server IP Address: 192.168.7.155
HBA Model Description: @oem36.inf,%ql2300.devicedesc%;QLogic Fibre Channel Adapter
HBA Vendor Description: @oem36.inf,%qlogic%;QLogic
HBA Device Driver Name: ql2300
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 5
HBA Devicename: \\.\SCSI3:0:4:0
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 4
HBA Devicename: \\.\SCSI4:0:6:0
Trusted: NO
Logged In: YES
Source ID: 98048
Defined: YES
Initiator Type: 3
StorageGroup Name: None
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:01:00:1B:32:28:6F:03:21:01:00:1B:32:28:6F:03
Server Name: CESAR
Server IP Address: 192.168.7.155
HBA Model Description: @oem36.inf,%ql2300.devicedesc%;QLogic Fibre Channel Adapter
HBA Vendor Description: @oem36.inf,%qlogic%;QLogic
HBA Device Driver Name: ql2300
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 4
HBA Devicename: PwrP:SCSI6:0:1:0
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 5
HBA Devicename: PwrP:SCSI7:0:0:0
Trusted: NO
Logged In: YES
Source ID: 70912
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 4
HBA Devicename: \\.\SCSI7:0:1:0
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: Eftp
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:00:00:1B:32:08:6F:03:21:00:00:1B:32:08:6F:03
Server Name: CESAR
Server IP Address: 192.168.7.155
HBA Model Description: @oem36.inf,%ql2300.devicedesc%;QLogic Fibre Channel Adapter
HBA Vendor Description: @oem36.inf,%qlogic%;QLogic
HBA Device Driver Name: ql2300
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 4
HBA Devicename: \\.\SCSI6:0:1:0
Trusted: NO
Logged In: YES
Source ID: 65536
Defined: YES
Initiator Type: 3
StorageGroup Name: None
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each HBA:
HBA UID: 20:00:00:1B:32:1A:84:CF:21:00:00:1B:32:1A:84:CF
Server Name: oberon
Server IP Address: 192.168.249.5
HBA Model Description:
HBA Vendor Description:
HBA Device Driver Name:
Information about each port of this HBA:
SP Name: SP B
SP Port ID: 4
HBA Devicename: mpio0:c5t60060160F8C01E00282387A46D10E111d0s2
Trusted: NO
Logged In: YES
Source ID: 68608
Defined: YES
Initiator Type: 3
StorageGroup Name: Cedric_Sun
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 4
HBA Devicename: c6t5006016041E06B78d0s7
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: None
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP B
SP Port ID: 5
HBA Devicename: c6t5006016941E06B78d0s3
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: None
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
SP Name: SP A
SP Port ID: 5
HBA Devicename: c6t5006016141E06B78d0s2
Trusted: NO
Logged In: NO
Defined: YES
Initiator Type: 3
StorageGroup Name: None
ArrayCommPath: 1
Failover mode: 1
Unit serial number: Array
Information about each SPPORT:
SP Name: SP A
SP Port ID: 4
SP UID: 50:06:01:60:C1:E0:6B:78:50:06:01:60:41:E0:6B:78
Link Status: Up
Port Status: Online
Switch Present: YES
Switch UID: 10:00:00:60:69:E4:22:4C:20:0E:00:60:69:E4:22:4C
SP Source ID: 69120
ALPA Value: 0
Speed Value : 2Gbps
Auto Negotiable : NO
Available Speeds:
1Gbps
2Gbps
4Gbps
Auto
Requested Value: Auto
MAC Address: Not Applicable
SFP State: Online
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP A
SP Port ID: 5
SP UID: 50:06:01:60:C1:E0:6B:78:50:06:01:61:41:E0:6B:78
Link Status: Up
Port Status: Online
Switch Present: YES
Switch UID: 10:00:00:60:69:E4:22:4C:20:65:00:60:69:E4:22:4C
SP Source ID: 91392
ALPA Value: 0
Speed Value : 2Gbps
Auto Negotiable : NO
Available Speeds:
1Gbps
2Gbps
4Gbps
Auto
Requested Value: Auto
MAC Address: Not Applicable
SFP State: Online
Reads: 6653814
Writes: 401613
Blocks Read: 2498922225
Blocks Written: 325292333
Queue Full/Busy: 0
SP Name: SP B
SP Port ID: 4
SP UID: 50:06:01:60:C1:E0:6B:78:50:06:01:68:41:E0:6B:78
Link Status: Up
Port Status: Online
Switch Present: YES
Switch UID: 10:00:00:60:69:E4:22:4C:20:0D:00:60:69:E4:22:4C
SP Source ID: 68864
ALPA Value: 0
Speed Value : 2Gbps
Auto Negotiable : NO
Available Speeds:
1Gbps
2Gbps
4Gbps
Auto
Requested Value: Auto
MAC Address: Not Applicable
SFP State: Online
Reads: 41886606
Writes: 42365482
Blocks Read: 3601845798
Blocks Written: 1546828148
Queue Full/Busy: 3
SP Name: SP B
SP Port ID: 5
SP UID: 50:06:01:60:C1:E0:6B:78:50:06:01:69:41:E0:6B:78
Link Status: Up
Port Status: Online
Switch Present: YES
Switch UID: 10:00:00:60:69:E4:22:4C:20:16:00:60:69:E4:22:4C
SP Source ID: 71168
ALPA Value: 0
Speed Value : 2Gbps
Auto Negotiable : NO
Available Speeds:
1Gbps
2Gbps
4Gbps
Auto
Requested Value: Auto
MAC Address: Not Applicable
SFP State: Online
Reads: 744257
Writes: 325827
Blocks Read: 1303741732
Blocks Written: 324948212
Queue Full/Busy: 0
SP Name: SP A
SP Port ID: 2
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.a2
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP A
SP Port ID: 3
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.a3
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP A
SP Port ID: 0
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.a0
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP A
SP Port ID: 1
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.a1
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP B
SP Port ID: 2
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.b2
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP B
SP Port ID: 3
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.b3
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP B
SP Port ID: 0
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.b0
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0
SP Name: SP B
SP Port ID: 1
SP UID: iqn.1992-04.com.emc:cx.ck200074800997.b1
Link Status: Down
Port Status: Online
Switch Present: Not Applicable
Speed Value : N/A
Auto Negotiable : YES
Available Speeds:
1Gbps
10Mbps
100Mbps
Auto
Requested Value: Auto
MAC Address: 00:00:00:00:00:00
SFP State: None
Reads: 0
Writes: 0
Blocks Read: 0
Blocks Written: 0
Queue Full/Busy: 0

View File

@ -0,0 +1,290 @@
################################################################################
# Copyright 2005-2013 MERETHIS
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
# GPL Licence 2.0.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation ; either version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses>.
#
# Linking this program statically or dynamically with other modules is making a
# combined work based on this program. Thus, the terms and conditions of the GNU
# General Public License cover the whole combination.
#
# As a special exception, the copyright holders of this program give MERETHIS
# permission to link this program with independent modules to produce an executable,
# regardless of the license terms of these independent modules, and to copy and
# distribute the resulting executable under terms of MERETHIS choice, provided that
# MERETHIS also meet, for each linked independent module, the terms and conditions
# of the license of that module. An independent module is a module which is not
# derived from this program. If you modify this program, you may extend this
# exception to your version of the program, but you are not obliged to do so. If you
# do not wish to do so, delete this exception statement from your version.
#
# For more information : contact@centreon.com
# Authors : Quentin Garnier <qgarnier@merethis.com>
#
####################################################################################
package storage::emc::clariion::custom;
use strict;
use warnings;
use centreon::plugins::misc;
sub new {
my ($class, %options) = @_;
my $self = {};
bless $self, $class;
# $options{options} = options object
# $options{output} = output object
# $options{exit_value} = integer
# $options{noptions} = integer
if (!defined($options{output})) {
print "Class Custom: Need to specify 'output' argument.\n";
exit 3;
}
if (!defined($options{options})) {
$options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument.");
$options{output}->option_exit();
}
if (!defined($options{noptions})) {
$options{options}->add_options(arguments =>
{
"navicli-command:s" => { name => 'navicli_command', default => 'navicli' },
"navicli-path:s" => { name => 'navicli_path', default => '/opt/Navisphere/bin' },
"naviseccli-command:s" => { name => 'naviseccli_command', default => 'naviseccli' },
"naviseccli-path:s" => { name => 'naviseccli_path', default => '/opt/Navisphere/bin' },
"sudo:s" => { name => 'sudo', },
"special-arg:s@" => { name => 'special_arg' },
"hostname:s@" => { name => 'hostname' },
"secfilepath:s@" => { name => 'secfilepath' },
"username:s@" => { name => 'username' },
"password:s@" => { name => 'password' },
"scope:s@" => { name => 'scope' },
"timeout:s@" => { name => 'timeout' },
});
}
$options{options}->add_help(package => __PACKAGE__, sections => 'CLARIION OPTIONS', once => 1);
$self->{output} = $options{output};
$self->{mode} = $options{mode};
# 1 means we use a file to read
$self->{no_navicmd} = 0;
$self->{secure} = 0;
return $self;
}
# Method to manage multiples
sub set_options {
my ($self, %options) = @_;
# options{options_result}
$self->{option_results} = $options{option_results};
}
# Method to manage multiples
sub set_defaults {
my ($self, %options) = @_;
# options{default}
# Manage default value
foreach (keys %{$options{default}}) {
if ($_ eq $self->{mode}) {
for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) {
foreach my $opt (keys %{$options{default}->{$_}[$i]}) {
if (!defined($self->{option_results}->{$opt}[$i])) {
$self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt};
}
}
}
}
}
}
sub build_command {
my ($self, %options) = @_;
if ($self->{scope} !~ /^[012]$/) {
$self->{output}->add_option_msg(short_msg => "Wrong scope option '" . $self->{scope} . "'.");
$self->{output}->option_exit();
}
$self->{cmd} = $self->{option_results}->{navicli_path} . '/' . $self->{option_results}->{navicli_command};
if (defined($self->{username}) || defined($self->{secfilepath})) {
$self->{cmd} = $self->{option_results}->{naviseccli_path} . '/' . $self->{option_results}->{naviseccli_command};
$self->{secure} = 1;
}
if (defined($self->{secfilepath})) {
if (!(-x $self->{secfilepath} && -e $self->{secfilepath} . "/SecuredCLISecurityFile.xml" && -e $self->{secfilepath} . "/SecuredCLIXMLEncrypted.key")) {
$self->{output}->add_option_msg(short_msg => 'The secfilepath ' . $self->{secfilepath} . ' does not exist or SecuredCLI files are not created.');
$self->{output}->option_exit();
}
} elsif (defined($self->{username})) {
if (!defined($self->{password})) {
$self->{output}->add_option_msg(short_msg => 'Need to specify password option.');
$self->{output}->option_exit();
}
}
if (! -e $self->{cmd}) {
$self->{output}->add_option_msg(short_msg => "Command '" . $self->{cmd} . "' not exist or executable.");
$self->{output}->option_exit();
}
if (defined($self->{special_arg}) && $self->{special_arg} ne '') {
$self->{cmd} .= $self->{special_arg};
$self->{no_navicmd} = 1;
# It's ok if we use a file.
$self->{secure} = 1;
return ;
}
if (!defined($self->{hostname})) {
$self->{output}->add_option_msg(short_msg => "Need to specify hostname option.");
$self->{output}->option_exit();
}
if (defined($self->{secfilepath})) {
$self->{cmd} .= " -Secfilepath '" . $self->{secfilepath} . "'";
} elsif (defined($self->{username})) {
$self->{cmd} .= " -User '" . $self->{username} . "' -Password '" . $self->{password} . "' -Scope " . $self->{scope};
}
$self->{cmd} .= ' -t ' . $self->{timeout};
$self->{cmd} .= ' -h ' . $self->{hostname};
}
sub check_options {
my ($self, %options) = @_;
# return 1 = ok still hostname
# return 0 = no hostname left
$self->{hostname} = (defined($self->{option_results}->{hostname})) ? shift(@{$self->{option_results}->{hostname}}) : undef;
$self->{secfilepath} = (defined($self->{option_results}->{secfilepath})) ? shift(@{$self->{option_results}->{secfilepath}}) : undef;
$self->{username} = (defined($self->{option_results}->{username})) ? shift(@{$self->{option_results}->{username}}) : undef;
$self->{password} = (defined($self->{option_results}->{password})) ? shift(@{$self->{option_results}->{password}}) : undef;
$self->{scope} = (defined($self->{option_results}->{scope})) ? shift(@{$self->{option_results}->{scope}}) : 0;
$self->{timeout} = (defined($self->{option_results}->{timeout})) ? shift(@{$self->{option_results}->{timeout}}) : 30;
$self->{special_arg} = (defined($self->{option_results}->{special_arg})) ? shift(@{$self->{option_results}->{special_arg}}) : undef;
$self->{sudo} = $self->{option_results}->{sudo};
$self->build_command();
if (!defined($self->{hostname}) ||
scalar(@{$self->{option_results}->{hostname}}) == 0) {
return 0;
}
return 1;
}
##############
# Specific methods
##############
sub execute_command {
my ($self, %options) = @_;
if ($self->{no_navicmd} == 0) {
$self->{cmd} .= ' ' . $options{cmd};
}
if (defined($options{secure_only}) && $options{secure_only} == 1 && $self->{secure} != 1) {
$self->{output}->add_option_msg(short_msg => "Mode only works with naviseccli.");
$self->{output}->option_exit();
}
# Need to set timeout over command.
$self->{option_results}->{timeout} = $self->{timeout} + 5;
return centreon::plugins::misc::execute(output => $self->{output},
options => $self->{option_results},
sudo => $self->{sudo},
command => $self->{cmd},
command_path => undef,
command_options => undef
);
}
1;
__END__
=head1 NAME
Clariion
=head1 SYNOPSIS
my navisphere manage
=head1 CLARIION OPTIONS
=over 8
=item B<--navicli-path>
Specify navicli path (default: 'navicli')
=item B<--navicli-command>
Specify navicli command (default: '/opt/Navisphere/bin').
=item B<--naviseccli-path>
Specify naviseccli path (default: 'naviseccli')
=item B<--naviseccli-command>
Specify naviseccli command (default: '/opt/Navisphere/bin').
=item B<--sudo>
Use 'sudo' to execute the command.
=item B<--special-arg>
Set a special argument for the command.
To be used for set a file. (Need to change command and use 'cat' instead).
=item B<--hostname>
Emc Clariion SP Hostname.
=item B<--secfilepath>
Set directory with security files (username and password not needed.
Will use 'naviseccli').
=item B<--username>
Username to connect (will use 'naviseccli').
=item B<--password>
Password to connect (will use 'naviseccli').
=item B<--scope>
User scope to connect (will use 'naviseccli'. Default: '0' (global)).
=item B<--timeout>
Set timeout for system command (Default: '30').
=back
=head1 DESCRIPTION
B<custom>.
=cut

View File

@ -0,0 +1,94 @@
################################################################################
# Copyright 2005-2013 MERETHIS
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
# GPL Licence 2.0.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation ; either version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses>.
#
# Linking this program statically or dynamically with other modules is making a
# combined work based on this program. Thus, the terms and conditions of the GNU
# General Public License cover the whole combination.
#
# As a special exception, the copyright holders of this program give MERETHIS
# permission to link this program with independent modules to produce an executable,
# regardless of the license terms of these independent modules, and to copy and
# distribute the resulting executable under terms of MERETHIS choice, provided that
# MERETHIS also meet, for each linked independent module, the terms and conditions
# of the license of that module. An independent module is a module which is not
# derived from this program. If you modify this program, you may extend this
# exception to your version of the program, but you are not obliged to do so. If you
# do not wish to do so, delete this exception statement from your version.
#
# For more information : contact@centreon.com
# Authors : Quentin Garnier <qgarnier@merethis.com>
#
####################################################################################
package storage::emc::clariion::mode::faults;
use base qw(centreon::plugins::mode);
use strict;
use warnings;
use centreon::plugins::misc;
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
bless $self, $class;
$self->{version} = '1.0';
$options{options}->add_options(arguments =>
{
});
return $self;
}
sub check_options {
my ($self, %options) = @_;
$self->SUPER::init(%options);
}
sub run {
my ($self, %options) = @_;
my $clariion = $options{custom};
my $response = $clariion->execute_command(cmd => 'faults -list', secure_only => 1);
chomp $response;
if ($response =~ /The array is operating normally/msg) {
$self->{output}->output_add(severity => 'ok',
short_msg => 'The array is operating normally');
} else {
$self->{output}->output_add(long_msg => $response);
$self->{output}->output_add(severity => 'critical',
short_msg => 'Problem detected (see detailed output for more details');
}
$self->{output}->display();
$self->{output}->exit();
}
1;
__END__
=head1 MODE
Detect faults on the array.
=over 8
=back
=cut

View File

@ -0,0 +1,199 @@
###############################################################################
# Copyright 2005-2013 MERETHIS
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
# GPL Licence 2.0.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation ; either version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses>.
#
# Linking this program statically or dynamically with other modules is making a
# combined work based on this program. Thus, the terms and conditions of the GNU
# General Public License cover the whole combination.
#
# As a special exception, the copyright holders of this program give MERETHIS
# permission to link this program with independent modules to produce an timeelapsedutable,
# regardless of the license terms of these independent modules, and to copy and
# distribute the resulting timeelapsedutable under terms of MERETHIS choice, provided that
# MERETHIS also meet, for each linked independent module, the terms and conditions
# of the license of that module. An independent module is a module which is not
# derived from this program. If you modify this program, you may extend this
# exception to your version of the program, but you are not obliged to do so. If you
# do not wish to do so, delete this exception statement from your version.
#
# For more information : contact@centreon.com
# Author : Florian Asche <info@florian-asche.de>
#
# Based on De Bodt Lieven plugin
# Based on Apache Mode by Simon BOMM
####################################################################################
package storage::emc::clariion::mode::listluns;
use base qw(centreon::plugins::mode);
use strict;
use warnings;
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
bless $self, $class;
$self->{version} = '1.0';
$options{options}->add_options(arguments =>
{
"filter-lunnumber:s" => { name => 'filter_lunnumber', },
"filter-lunstate:s" => { name => 'filter_lunstate', },
"filter-drivetype:s" => { name => 'filter_drivetype', },
"filter-raidtype:s" => { name => 'filter_raidtype', },
"filter-raidgroupid:s" => { name => 'filter_raidgroupid', },
});
$self->{result} = {};
return $self;
}
sub check_options {
my ($self, %options) = @_;
$self->SUPER::init(%options);
}
sub manage_selection {
my ($self, %options) = @_;
my $response = $self->{clariion}->execute_command(cmd => 'getlun -uid -state -rg -type -drivetype -capacity');
$| = 1;
while ($response =~ /^(LOGICAL UNIT NUMBER.*?\n\n)/imsg) {
#LOGICAL UNIT NUMBER 4088
#UID: 60:06:01:60:F8:C0:1E:00:58:68:46:25:C3:14:E1:11
#State: Bound
#RAIDGroup ID: 14
#RAID Type: RAID5
#Drive Type: SATAII
#LUN Capacity(Megabytes): 2817458
#LUN Capacity(Blocks): 5770154496
#LOGICAL UNIT NUMBER 11
#UID: 60:06:01:60:F8:C0:1E:00:FA:01:AE:2B:27:AF:E3:11
#State: Bound
#RAIDGroup ID: N/A
#RAID Type: N/A
#Drive Type: N/A
#LUN Capacity(Megabytes): 6339281
#LUN Capacity(Blocks): 12982847616
my $content = $1;
my ($lun_num, $raid_type, $raid_group_id, $drive_type, $state);
$lun_num = $1 if ($content =~ /^LOGICAL UNIT NUMBER\s+(\d+)/im);
$state = $1 if ($content =~ /^State:\s+(.*)$/im);
$raid_type = $1 if ($content =~ /^RAID Type:\s+(.*)$/im);
$raid_group_id = $1 if ($content =~ /^RAIDGroup ID:\s+(.*)$/im);
$drive_type = $1 if ($content =~ /^Drive Type:\s+(.*)$/im);
next if (defined($self->{option_results}->{filter_lunnumber}) && $self->{option_results}->{filter_lunnumber} ne '' &&
$lun_num !~ /$self->{option_results}->{filter_lunnumber}/);
next if (defined($self->{option_results}->{filter_lunstate}) && $self->{option_results}->{filter_lunstate} ne '' &&
$state !~ /$self->{option_results}->{filter_lunstate}/);
next if (defined($self->{option_results}->{filter_drivetype}) && $self->{option_results}->{filter_drivetype} ne '' &&
$drive_type !~ /$self->{option_results}->{filter_drivetype}/);
next if (defined($self->{option_results}->{filter_raidtype}) && $self->{option_results}->{filter_raidtype} ne '' &&
$raid_type !~ /$self->{option_results}->{filter_raidtype}/);
next if (defined($self->{option_results}->{filter_raidgroupid}) && $self->{option_results}->{filter_raidgroupid} ne '' &&
$raid_group_id !~ /$self->{option_results}->{filter_raidgroupid}/);
$self->{result}->{$lun_num} = {state => $state, drive_type => $drive_type, raid_type => $raid_type, raid_groupid => $raid_group_id};
}
}
sub run {
my ($self, %options) = @_;
$self->{clariion} = $options{custom};
$self->manage_selection();
my $lun_display = '';
my $lun_display_append = '';
foreach my $num (sort(keys %{$self->{result}})) {
$lun_display .= $lun_display_append . 'number = ' . $num .
' [' .
'state = ' . $self->{result}->{$num}->{state} .
', drive type = ' . $self->{result}->{$num}->{drive_type} .
', raid type = ' . $self->{result}->{$num}->{raid_type} .
', raid groupid = ' . $self->{result}->{$num}->{raid_groupid} .
']';
$lun_display_append = ', ';
}
$self->{output}->output_add(severity => 'OK',
short_msg => 'List LUNs: ' . $lun_display);
$self->{output}->display(nolabel => 1);
$self->{output}->exit();
}
sub disco_format {
my ($self, %options) = @_;
$self->{output}->add_disco_format(elements => ['number', 'state', 'drive_type', 'raid_type', 'raid_groupid']);
}
sub disco_show {
my ($self, %options) = @_;
$self->{clariion} = $options{custom};
$self->manage_selection();
foreach my $num (sort(keys %{$self->{result}})) {
$self->{output}->add_disco_entry(number => $num,
state => $self->{result}->{$num}->{state},
drive_type => $self->{result}->{$num}->{drive_type},
raid_type => $self->{result}->{$num}->{raid_type},
raid_groupid => $self->{result}->{$num}->{raid_groupid},
);
}
}
1;
__END__
=head1 MODE
List Logical Units (LUNs).
=over 8
=item B<--filter-lunnumber>
Filter Lun Number (regexp can be used).
=item B<--filter-lunstate>
Filter Lun State (regexp can be used).
Example: Bound, Faulted, Expanding,...
=item B<--filter-drivetype>
Filter Drive types (regexp can be used).
Example: N/A, SATAII, Fibre Channel,...
=item B<--filter-raidtype>
Filter Raid types (regexp can be used).
Example: N/A, Hot Spare, RAID5,...
=item B<--filter-raidtype>
Filter Raid Group ID (regexp can be used).
Example: N/A or a number.
=back
=cut

View File

@ -0,0 +1,109 @@
################################################################################
# Copyright 2005-2013 MERETHIS
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
# GPL Licence 2.0.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation ; either version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses>.
#
# Linking this program statically or dynamically with other modules is making a
# combined work based on this program. Thus, the terms and conditions of the GNU
# General Public License cover the whole combination.
#
# As a special exception, the copyright holders of this program give MERETHIS
# permission to link this program with independent modules to produce an executable,
# regardless of the license terms of these independent modules, and to copy and
# distribute the resulting executable under terms of MERETHIS choice, provided that
# MERETHIS also meet, for each linked independent module, the terms and conditions
# of the license of that module. An independent module is a module which is not
# derived from this program. If you modify this program, you may extend this
# exception to your version of the program, but you are not obliged to do so. If you
# do not wish to do so, delete this exception statement from your version.
#
# For more information : contact@centreon.com
# Authors : Quentin Garnier <qgarnier@merethis.com>
#
####################################################################################
package storage::emc::clariion::mode::spinfo;
use base qw(centreon::plugins::mode);
use strict;
use warnings;
use centreon::plugins::misc;
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
bless $self, $class;
$self->{version} = '1.0';
$options{options}->add_options(arguments =>
{
});
return $self;
}
sub check_options {
my ($self, %options) = @_;
$self->SUPER::init(%options);
}
sub run {
my ($self, %options) = @_;
my $clariion = $options{custom};
my $response = $clariion->execute_command(cmd => 'getagent -ver -rev -prom -model -type -mem -serial -spid');
my $sp_id = 'unknown';
my $sp_agent_rev = 'unknown';
my $sp_flare_rev = 'unknown';
my $sp_prom_rev = 'unknown';
my $sp_model = 'unknown';
my $sp_model_type = 'unknown';
my $sp_memory_total = 'unknown';
my $sp_serial_number = 'unknown';
$sp_id = $1 if ($response =~ /^SP Identifier:\s+(.*)$/im);
$sp_agent_rev = $1 if ($response =~ /^Agent Rev:\s+(.*)$/im);
$sp_flare_rev = $1 if ($response =~ /^Revision:\s+(.*)$/im);
$sp_prom_rev = $1 if ($response =~ /^Prom Rev:\s+(.*)$/im);
$sp_model = $1 if ($response =~ /^Model:\s+(.*)$/im);
$sp_model_type = $1 if ($response =~ /^Model Type:\s+(.*)$/im);
$sp_memory_total = ($1 * 1024 * 1024) if ($response =~ /^SP Memory:\s+(.*)$/im);
$sp_serial_number = $1 if ($response =~ /^Serial No:\s+(.*)$/im);
my ($memory_value, $memory_unit) = $self->{perfdata}->change_bytes(value => $sp_memory_total);
$self->{output}->output_add(severity => 'ok',
short_msg => sprintf('[SP ID: %s] [Agent Revision: %s] [FLARE Revision: %s] [PROM Revision: %s] [Model: %s, %s] [Memory: %s %s] [Serial Number: %s]',
$sp_id, $sp_agent_rev, $sp_flare_rev, $sp_prom_rev,
$sp_model, $sp_model_type, $memory_value, $memory_unit, $sp_serial_number));
$self->{output}->display();
$self->{output}->exit();
}
1;
__END__
=head1 MODE
Display informations on the storage processor.
=over 8
=back
=cut

View File

@ -0,0 +1,78 @@
################################################################################
# Copyright 2005-2013 MERETHIS
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
# GPL Licence 2.0.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License as published by the Free Software
# Foundation ; either version 2 of the License.
#
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, see <http://www.gnu.org/licenses>.
#
# Linking this program statically or dynamically with other modules is making a
# combined work based on this program. Thus, the terms and conditions of the GNU
# General Public License cover the whole combination.
#
# As a special exception, the copyright holders of this program give MERETHIS
# permission to link this program with independent modules to produce an executable,
# regardless of the license terms of these independent modules, and to copy and
# distribute the resulting executable under terms of MERETHIS choice, provided that
# MERETHIS also meet, for each linked independent module, the terms and conditions
# of the license of that module. An independent module is a module which is not
# derived from this program. If you modify this program, you may extend this
# exception to your version of the program, but you are not obliged to do so. If you
# do not wish to do so, delete this exception statement from your version.
#
# For more information : contact@centreon.com
# Authors : Quentin Garnier <qgarnier@merethis.com>
#
####################################################################################
package storage::emc::clariion::plugin;
use strict;
use warnings;
use base qw(centreon::plugins::script_custom);
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
bless $self, $class;
# $options->{options} = options object
$self->{version} = '0.1';
%{$self->{modes}} = (
'faults' => 'storage::emc::clariion::mode::faults',
'list-luns' => 'storage::emc::clariion::mode::listluns',
'sp-info' => 'storage::emc::clariion::mode::spinfo',
);
$self->{custom_modes}{clariion} = 'storage::emc::clariion::custom';
return $self;
}
sub init {
my ($self, %options) = @_;
$self->SUPER::init(%options);
}
1;
__END__
=head1 PLUGIN DESCRIPTION
Check EMC Clariion with 'navicli/naviseccli'.
=over 8
=back
=cut