#214 SNMP::Info Device models Genua, ATMedia, Liebert
This commit is contained in:
6
Changes
6
Changes
@@ -1,3 +1,9 @@
|
||||
Version 3.59
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
* #214 SNMP::Info Device models Genua, ATMedia, Liebert
|
||||
|
||||
Version 3.58 (2018-04-29)
|
||||
|
||||
[NEW FEATURES]
|
||||
|
||||
6
MANIFEST
6
MANIFEST
@@ -46,6 +46,7 @@ lib/SNMP/Info/Layer2/Aerohive.pm
|
||||
lib/SNMP/Info/Layer2/Airespace.pm
|
||||
lib/SNMP/Info/Layer2/Aironet.pm
|
||||
lib/SNMP/Info/Layer2/Allied.pm
|
||||
lib/SNMP/Info/Layer2/Atmedia.pm
|
||||
lib/SNMP/Info/Layer2/Baystack.pm
|
||||
lib/SNMP/Info/Layer2/C1900.pm
|
||||
lib/SNMP/Info/Layer2/C2900.pm
|
||||
@@ -95,6 +96,7 @@ lib/SNMP/Info/Layer3/F5.pm
|
||||
lib/SNMP/Info/Layer3/Force10.pm
|
||||
lib/SNMP/Info/Layer3/Fortinet.pm
|
||||
lib/SNMP/Info/Layer3/Foundry.pm
|
||||
lib/SNMP/Info/Layer3/Genua.pm
|
||||
lib/SNMP/Info/Layer3/H3C.pm
|
||||
lib/SNMP/Info/Layer3/HP9300.pm
|
||||
lib/SNMP/Info/Layer3/Huawei.pm
|
||||
@@ -125,6 +127,7 @@ lib/SNMP/Info/Layer7/APC.pm
|
||||
lib/SNMP/Info/Layer7/Arbor.pm
|
||||
lib/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
lib/SNMP/Info/Layer7/Gigamon.pm
|
||||
lib/SNMP/Info/Layer7/Liebert.pm
|
||||
lib/SNMP/Info/Layer7/Neoteris.pm
|
||||
lib/SNMP/Info/Layer7/Netscaler.pm
|
||||
lib/SNMP/Info/LLDP.pm
|
||||
@@ -187,6 +190,7 @@ xt/lib/Test/SNMP/Info/Layer2/Aerohive.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Airespace.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Aironet.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Allied.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Atmedia.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/Baystack.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/C1900.pm
|
||||
xt/lib/Test/SNMP/Info/Layer2/C2900.pm
|
||||
@@ -236,6 +240,7 @@ xt/lib/Test/SNMP/Info/Layer3/F5.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Force10.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Fortinet.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Foundry.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Genua.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/H3C.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/HP9300.pm
|
||||
xt/lib/Test/SNMP/Info/Layer3/Huawei.pm
|
||||
@@ -266,6 +271,7 @@ xt/lib/Test/SNMP/Info/Layer7/APC.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Arbor.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/CiscoIPS.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Gigamon.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Liebert.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Neoteris.pm
|
||||
xt/lib/Test/SNMP/Info/Layer7/Netscaler.pm
|
||||
xt/lib/Test/SNMP/Info/LLDP.pm
|
||||
|
||||
@@ -532,6 +532,12 @@ Allied Telesis switches.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Allied> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Atmedia
|
||||
|
||||
Subclass for atmedia encryptors.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer2::Atmedia> for details.
|
||||
|
||||
=item SNMP::Info::Layer2::Baystack
|
||||
|
||||
Subclass for Avaya/Nortel/Bay Ethernet Switch/Baystack switches. This
|
||||
@@ -846,6 +852,12 @@ Subclass for Brocade (Foundry) Network devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Foundry> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::Genua
|
||||
|
||||
Subclass for Genua security devices.
|
||||
|
||||
See documentation in L<SNMP::Info::Layer3::Genua> for details.
|
||||
|
||||
=item SNMP::Info::Layer3::H3C
|
||||
|
||||
SNMP Interface to Layer 3 Devices, H3C & HP A-series.
|
||||
@@ -1035,6 +1047,12 @@ Subclass for Gigamon devices
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Gigamon> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Liebert
|
||||
|
||||
Subclass for Liebert devices
|
||||
|
||||
See documentation in L<SNMP::Info::Layer7::Liebert> for details.
|
||||
|
||||
=item SNMP::Info::Layer7::Netscaler
|
||||
|
||||
Subclass for Citrix Netscaler appliances
|
||||
@@ -1609,6 +1627,7 @@ sub device_type {
|
||||
3224 => 'SNMP::Info::Layer3::Netscreen',
|
||||
3375 => 'SNMP::Info::Layer3::F5',
|
||||
3417 => 'SNMP::Info::Layer3::BlueCoatSG',
|
||||
3717 => 'SNMP::Info::Layer3::Genua',
|
||||
4526 => 'SNMP::Info::Layer2::Netgear',
|
||||
4874 => 'SNMP::Info::Layer3::ERX',
|
||||
5624 => 'SNMP::Info::Layer3::Enterasys',
|
||||
@@ -1664,6 +1683,7 @@ sub device_type {
|
||||
9303 => 'SNMP::Info::Layer3::PacketFront',
|
||||
10418 => 'SNMP::Info::Layer1::Cyclades',
|
||||
11898 => 'SNMP::Info::Layer2::Orinoco',
|
||||
13458 => 'SNMP::Info::Layer2::Atmedia',
|
||||
14179 => 'SNMP::Info::Layer2::Airespace',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
14823 => 'SNMP::Info::Layer3::Aruba',
|
||||
@@ -1680,6 +1700,7 @@ sub device_type {
|
||||
|
||||
my %l7sysoidmap = (
|
||||
318 => 'SNMP::Info::Layer7::APC',
|
||||
476 => 'SNMP::Info::Layer7::Liebert',
|
||||
5951 => 'SNMP::Info::Layer7::Netscaler',
|
||||
9694 => 'SNMP::Info::Layer7::Arbor',
|
||||
14525 => 'SNMP::Info::Layer2::Trapeze',
|
||||
|
||||
165
lib/SNMP/Info/Layer2/Atmedia.pm
Normal file
165
lib/SNMP/Info/Layer2/Atmedia.pm
Normal file
@@ -0,0 +1,165 @@
|
||||
# SNMP::Info::Layer2::Atmedia
|
||||
#
|
||||
# Copyright (c) 2018 Netdisco Developers
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer2::Atmedia;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer2;
|
||||
|
||||
@SNMP::Info::Layer2::Atmedia::ISA = qw/SNMP::Info::Layer2/;
|
||||
@SNMP::Info::Layer2::Atmedia::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.58';
|
||||
|
||||
%MIBS = ( %SNMP::Info::Layer2::MIBS );
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer2::GLOBALS,
|
||||
'os_ver' => '.1.3.6.1.4.1.13458.1.2.1.0',
|
||||
'atm_serial' => '.1.3.6.1.4.1.13458.1.1.2.0',
|
||||
'atm_hardversion' => '.1.3.6.1.4.1.13458.1.3.1.0',
|
||||
'atm_model' => '.1.3.6.1.4.1.13458.1.1.6.0',
|
||||
);
|
||||
|
||||
%FUNCS = (%SNMP::Info::Layer2::FUNCS);
|
||||
|
||||
%MUNGE = (%SNMP::Info::Layer2::MUNGE);
|
||||
|
||||
sub serial {
|
||||
my $atmedia = shift;
|
||||
|
||||
return $atmedia->atm_serial();
|
||||
}
|
||||
|
||||
sub os {
|
||||
return 'Atmedia-OS';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $atmedia = shift;
|
||||
|
||||
my $atmedia_model = $atmedia->atm_model();
|
||||
$atmedia_model =~ s/\<|\>//g;
|
||||
$atmedia_model =~ s/\//_/g;
|
||||
|
||||
return $atmedia_model;
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'atmedia';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer2::Atmedia - SNMP Interface to atmedia encryptors
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $atmedia = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $atmedia->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to information obtainable from a atmedia encryptor
|
||||
through SNMP. See inherited classes' documentation for inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer2
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited MIBs
|
||||
|
||||
See L<SNMP::Info::Layer2/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $atmedia->vendor()
|
||||
|
||||
Returns 'atmedia'
|
||||
|
||||
=item $atmedia->os()
|
||||
|
||||
Returns 'Atmedia-OS'
|
||||
|
||||
=item $atmedia->os_ver()
|
||||
|
||||
(C<acSoftVersion>)
|
||||
|
||||
=item $atmedia->model()
|
||||
|
||||
(C<acDescr>)
|
||||
|
||||
=item $atmedia->serial()
|
||||
|
||||
(C<acSerialNumber>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer2
|
||||
|
||||
See L<SNMP::Info::Layer2/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
188
lib/SNMP/Info/Layer3/Genua.pm
Normal file
188
lib/SNMP/Info/Layer3/Genua.pm
Normal file
@@ -0,0 +1,188 @@
|
||||
# SNMP::Info::Layer3::Genua
|
||||
#
|
||||
# Copyright (c) 2018 Netdisco Developers
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer3::Genua;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer3;
|
||||
|
||||
@SNMP::Info::Layer3::Genua::ISA = qw/SNMP::Info::Layer3/;
|
||||
@SNMP::Info::Layer3::Genua::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.58';
|
||||
|
||||
%MIBS = (%SNMP::Info::Layer3::MIBS);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer3::GLOBALS,
|
||||
'genua_os' => '.1.3.6.1.4.1.3717.2.3.1.0',
|
||||
'genua_osver_rel' => '.1.3.6.1.4.1.3717.2.3.3.0',
|
||||
'genua_osver_patch' => '.1.3.6.1.4.1.3717.2.3.4.0',
|
||||
'genua_model' => '.1.3.6.1.4.1.3717.2.3.5.0',
|
||||
'genua_serial' => '.1.3.6.1.4.1.3717.2.3.6.0',
|
||||
);
|
||||
|
||||
%FUNCS = (%SNMP::Info::Layer3::FUNCS);
|
||||
|
||||
%MUNGE = (%SNMP::Info::Layer3::MUNGE);
|
||||
|
||||
sub serial {
|
||||
my $genua = shift;
|
||||
|
||||
return $genua->genua_serial();
|
||||
}
|
||||
|
||||
sub os {
|
||||
my $genua = shift;
|
||||
|
||||
return $genua->genua_os();
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $genua = shift;
|
||||
|
||||
my $genua_osver_rel = $genua->genua_osver_rel();
|
||||
my $genua_osver_patch = $genua->genua_osver_patch();
|
||||
|
||||
my $genua_osver;
|
||||
|
||||
if ( defined $genua_osver_rel and defined $genua_osver_patch ) {
|
||||
return $genua_osver_rel . "_PL_" . $genua_osver_patch;
|
||||
}
|
||||
return $genua_osver;
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $genua = shift;
|
||||
|
||||
my $genua_model = $genua->genua_model();
|
||||
|
||||
if ( $genua_model =~ m/GeNUA.+(GS.+?)\s/i ) {
|
||||
$genua_model = $1;
|
||||
}
|
||||
elsif ( $genua_model =~ m/genua\s+(.+?)\s+/i ) {
|
||||
$genua_model = $1;
|
||||
}
|
||||
else {
|
||||
$genua_model = 'unknown';
|
||||
}
|
||||
return $genua_model;
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'genua';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer3::Genua - SNMP Interface to Genua security devices
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $genua = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $genua->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to information obtainable from a Genua security device
|
||||
through SNMP. See inherited classes' documentation for inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer3
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited MIBs
|
||||
|
||||
See L<SNMP::Info::Layer3/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $genua->vendor()
|
||||
|
||||
Returns 'genua'
|
||||
|
||||
=item $genua->os()
|
||||
|
||||
(C<infoSoftwareversion>)
|
||||
|
||||
=item $genua->os_ver()
|
||||
|
||||
(C<infoRelease>) and (C<infoPatchlevel>)
|
||||
|
||||
=item $genua->model()
|
||||
|
||||
(C<infoHardwareversion>)
|
||||
|
||||
=item $genua->serial()
|
||||
|
||||
(C<infoSerialnumber>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer3
|
||||
|
||||
See L<SNMP::Info::Layer3/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer3
|
||||
|
||||
See L<SNMP::Info::Layer3/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
165
lib/SNMP/Info/Layer7/Liebert.pm
Normal file
165
lib/SNMP/Info/Layer7/Liebert.pm
Normal file
@@ -0,0 +1,165 @@
|
||||
# SNMP::Info::Layer7::Liebert
|
||||
#
|
||||
# Copyright (c) 2018 Netdisco Developers
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package SNMP::Info::Layer7::Liebert;
|
||||
|
||||
use strict;
|
||||
use Exporter;
|
||||
use SNMP::Info::Layer7;
|
||||
|
||||
@SNMP::Info::Layer7::Liebert::ISA = qw/SNMP::Info::Layer7/;
|
||||
@SNMP::Info::Layer7::Liebert::EXPORT_OK = qw//;
|
||||
|
||||
use vars qw/$VERSION %FUNCS %GLOBALS %MIBS %MUNGE/;
|
||||
|
||||
$VERSION = '3.58';
|
||||
|
||||
%MIBS = (
|
||||
%SNMP::Info::Layer7::MIBS,
|
||||
'LIEBERT-GP-AGENT-MIB' => 'lgpAgentDeviceSerialNumber',
|
||||
);
|
||||
|
||||
%GLOBALS = (
|
||||
%SNMP::Info::Layer7::GLOBALS,
|
||||
'serial' => 'lgpAgentDeviceSerialNumber.1',
|
||||
'os_ver' => 'lgpAgentDeviceFirmwareVersion.1',
|
||||
'liebert_model' => 'lgpAgentDeviceModel.1',
|
||||
);
|
||||
|
||||
%FUNCS = (%SNMP::Info::Layer7::FUNCS);
|
||||
|
||||
%MUNGE = (%SNMP::Info::Layer7::MUNGE);
|
||||
|
||||
sub os {
|
||||
return 'LiebertOS';
|
||||
}
|
||||
|
||||
sub model {
|
||||
my $liebert = shift;
|
||||
|
||||
return $liebert->liebert_model();
|
||||
}
|
||||
|
||||
sub vendor {
|
||||
return 'liebert';
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
SNMP::Info::Layer7::Liebert - SNMP Interface to Liebert devices
|
||||
|
||||
=head1 AUTHOR
|
||||
|
||||
Netdisco Developers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
# Let SNMP::Info determine the correct subclass for you.
|
||||
my $liebert = new SNMP::Info(
|
||||
AutoSpecify => 1,
|
||||
Debug => 1,
|
||||
DestHost => 'myhub',
|
||||
Community => 'public',
|
||||
Version => 1
|
||||
)
|
||||
or die "Can't connect to DestHost.\n";
|
||||
|
||||
my $class = $liebert->class();
|
||||
print "SNMP::Info determined this device to fall under subclass : $class\n";
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
Provides abstraction to information obtainable from a Liebert device
|
||||
through SNMP. See inherited classes' documentation for inherited methods.
|
||||
|
||||
=head2 Inherited Classes
|
||||
|
||||
=over
|
||||
|
||||
=item SNMP::Info::Layer7
|
||||
|
||||
=back
|
||||
|
||||
=head2 Required MIBs
|
||||
|
||||
=over
|
||||
|
||||
=item F<LIEBERT-GP-AGENT-MIB>
|
||||
|
||||
=back
|
||||
|
||||
=head2 Inherited MIBs
|
||||
|
||||
See L<SNMP::Info::Layer7/"Required MIBs"> for its MIB requirements.
|
||||
|
||||
=head1 GLOBALS
|
||||
|
||||
These are methods that return scalar value from SNMP
|
||||
|
||||
=head2 Overrides
|
||||
|
||||
=over
|
||||
|
||||
=item $liebert->vendor()
|
||||
|
||||
Returns 'liebert'
|
||||
|
||||
=item $liebert->os()
|
||||
|
||||
Returns 'LiebertOS'
|
||||
|
||||
=item $liebert->os_ver()
|
||||
|
||||
(C<lgpAgentDeviceFirmwareVersion.1>)
|
||||
|
||||
=item $liebert->model()
|
||||
|
||||
(C<lgpAgentDeviceModel.1>)
|
||||
|
||||
=item $liebert->serial()
|
||||
|
||||
(C<lgpAgentDeviceSerialNumber.1>)
|
||||
|
||||
=back
|
||||
|
||||
=head2 Globals imported from SNMP::Info::Layer7
|
||||
|
||||
See L<SNMP::Info::Layer7/"GLOBALS"> for details.
|
||||
|
||||
=head1 TABLE METHODS
|
||||
|
||||
=head2 Table Methods imported from SNMP::Info::Layer7
|
||||
|
||||
See L<SNMP::Info::Layer7/"TABLE METHODS"> for details.
|
||||
|
||||
=cut
|
||||
89
xt/lib/Test/SNMP/Info/Layer2/Atmedia.pm
Normal file
89
xt/lib/Test/SNMP/Info/Layer2/Atmedia.pm
Normal file
@@ -0,0 +1,89 @@
|
||||
# Test::SNMP::Info::Layer2::Atmedia
|
||||
#
|
||||
# Copyright (c) 2018 Eric Miller
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package Test::SNMP::Info::Layer2::Atmedia;
|
||||
|
||||
use Test::Class::Most parent => 'My::Test::Class';
|
||||
|
||||
use SNMP::Info::Layer2::Atmedia;
|
||||
|
||||
sub setup : Tests(setup) {
|
||||
my $test = shift;
|
||||
$test->SUPER::setup;
|
||||
|
||||
# Start with a common cache that will serve most tests
|
||||
my $cache_data = {
|
||||
'_layers' => 2,
|
||||
'_description' => 'ATMedia Crypt 3.3.0 <1000Base-X>',
|
||||
|
||||
# AT-PRODUCT-MIB::atGS970M10
|
||||
'_id' => '.1.3.6.1.4.1.13458.1.1',
|
||||
'_atm_serial' => '123456',
|
||||
'_atm_model' => '<1000Base-X>',
|
||||
'store' => {},
|
||||
};
|
||||
$test->{info}->cache($cache_data);
|
||||
}
|
||||
|
||||
sub os : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'os');
|
||||
is($test->{info}->os(), 'Atmedia-OS', q(OS returns 'Atmedia-OS'));
|
||||
}
|
||||
|
||||
sub vendor : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'vendor');
|
||||
is($test->{info}->vendor(), 'atmedia', q(Vendor returns 'atmedia'));
|
||||
}
|
||||
|
||||
sub model : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'model');
|
||||
is($test->{info}->model(), '1000Base-X', q(Model is expected value));
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->model(), undef, q(No description returns undef model));
|
||||
}
|
||||
|
||||
sub serial : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'serial');
|
||||
is($test->{info}->serial(), '123456', q(Serial is expected value));
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->serial(), undef,
|
||||
q(No description returns undef OS version));
|
||||
}
|
||||
|
||||
1;
|
||||
105
xt/lib/Test/SNMP/Info/Layer3/Genua.pm
Normal file
105
xt/lib/Test/SNMP/Info/Layer3/Genua.pm
Normal file
@@ -0,0 +1,105 @@
|
||||
# Test::SNMP::Info::Layer3::Genua
|
||||
#
|
||||
# Copyright (c) 2018 Eric Miller
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package Test::SNMP::Info::Layer3::Genua;
|
||||
|
||||
use Test::Class::Most parent => 'My::Test::Class';
|
||||
|
||||
use SNMP::Info::Layer3::Genua;
|
||||
|
||||
sub setup : Tests(setup) {
|
||||
my $test = shift;
|
||||
$test->SUPER::setup;
|
||||
|
||||
# Start with a common cache that will serve most tests
|
||||
my $cache_data = {
|
||||
'_layers' => 4,
|
||||
'_description' => 'GeNUScreen 3.0 patchlevel 5 (build.8.D026)',
|
||||
'_id' => '.1.3.6.1.4.1.3717.4.4',
|
||||
'_genua_os' => 'GeNUScreen',
|
||||
'_genua_osver_rel' => '3.0',
|
||||
'_genua_osver_patch' => '5',
|
||||
'_genua_model' => 'GeNUA GS0300 - 20100526 005',
|
||||
'_genua_serial' => '16792-GS-CQTP-7UAR-CEPF-9Z5M',
|
||||
'store' => {},
|
||||
};
|
||||
$test->{info}->cache($cache_data);
|
||||
}
|
||||
|
||||
sub os : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'os');
|
||||
is($test->{info}->os(), 'GeNUScreen', q(OS returns 'GeNUScreen'));
|
||||
}
|
||||
|
||||
sub os_ver : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'os_ver');
|
||||
is($test->{info}->os_ver(), '3.0_PL_5', q(OS version is expected value));
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->os_ver(), undef,
|
||||
q(No description returns undef OS version));
|
||||
}
|
||||
|
||||
sub vendor : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'vendor');
|
||||
is($test->{info}->vendor(), 'genua', q(Vendor returns 'genua'));
|
||||
}
|
||||
|
||||
sub model : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'model');
|
||||
is($test->{info}->model(), 'GS0300', q(Model is expected value));
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->model(), 'unknown', q(No description returns 'unknown'));
|
||||
}
|
||||
|
||||
sub serial : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'serial');
|
||||
is(
|
||||
$test->{info}->serial(),
|
||||
'16792-GS-CQTP-7UAR-CEPF-9Z5M',
|
||||
q(Serial is expected value)
|
||||
);
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->serial(), undef,
|
||||
q(No description returns undef OS version));
|
||||
}
|
||||
|
||||
1;
|
||||
81
xt/lib/Test/SNMP/Info/Layer7/Liebert.pm
Normal file
81
xt/lib/Test/SNMP/Info/Layer7/Liebert.pm
Normal file
@@ -0,0 +1,81 @@
|
||||
# Test::SNMP::Info::Layer7::Liebert
|
||||
#
|
||||
# Copyright (c) 2018 Eric Miller
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions are met:
|
||||
#
|
||||
# * Redistributions of source code must retain the above copyright notice,
|
||||
# this list of conditions and the following disclaimer.
|
||||
# * Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in the
|
||||
# documentation and/or other materials provided with the distribution.
|
||||
# * Neither the name of the University of California, Santa Cruz nor the
|
||||
# names of its contributors may be used to endorse or promote products
|
||||
# derived from this software without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
# LIABLE FOR # ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
package Test::SNMP::Info::Layer7::Liebert;
|
||||
|
||||
use Test::Class::Most parent => 'My::Test::Class';
|
||||
|
||||
use SNMP::Info::Layer7::Liebert;
|
||||
|
||||
sub setup : Tests(setup) {
|
||||
my $test = shift;
|
||||
$test->SUPER::setup;
|
||||
|
||||
# Start with a common cache that will serve most tests
|
||||
my $cache_data = {
|
||||
'_layers' => 72,
|
||||
'_description' => '',
|
||||
|
||||
# LIEBERT-GP-REGISTRATION-MIB::liebertGlobalProducts
|
||||
'_id' => '.1.3.6.1.4.1.476.1.42',
|
||||
'_liebert_model' => 'Advanced Microprocessor Control',
|
||||
'store' => {},
|
||||
};
|
||||
$test->{info}->cache($cache_data);
|
||||
}
|
||||
|
||||
sub vendor : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'vendor');
|
||||
is($test->{info}->vendor(), 'liebert', q(Vendor returns 'liebert'));
|
||||
}
|
||||
|
||||
sub os : Tests(2) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'os');
|
||||
is($test->{info}->os(), 'LiebertOS', q(OS returns 'LiebertOS'));
|
||||
}
|
||||
|
||||
sub model : Tests(3) {
|
||||
my $test = shift;
|
||||
|
||||
can_ok($test->{info}, 'model');
|
||||
is(
|
||||
$test->{info}->model(),
|
||||
'Advanced Microprocessor Control',
|
||||
q(Model is expected value)
|
||||
);
|
||||
|
||||
$test->{info}->clear_cache();
|
||||
is($test->{info}->model(), undef, q(No data returns undef model));
|
||||
}
|
||||
|
||||
1;
|
||||
Reference in New Issue
Block a user