Raisecom RC. Next gen perl coding style.
This commit is contained in:
@@ -47,12 +47,12 @@ $VERSION = '3.70-135';
|
||||
|
||||
sub vendor {
|
||||
my $obj = shift;
|
||||
return $obj->main($obj)->{vendor};
|
||||
return main($obj)->{vendor};
|
||||
}
|
||||
|
||||
sub os {
|
||||
my $obj = shift;
|
||||
return $obj->main($obj)->{os};
|
||||
return main($obj)->{os};
|
||||
}
|
||||
|
||||
sub main {
|
||||
@@ -74,102 +74,86 @@ sub main {
|
||||
|
||||
if ( $id =~ /41752\.26\.502/ ) {
|
||||
$model = $obj->model_oid_41752 || undef;
|
||||
|
||||
$hw = ($obj->hw_oid_41752 =~ /.*\sversion\s(.*)/)[0];
|
||||
|
||||
$obj->os_ver_oid_41752 =~ /ROS_(.*)\.(\d+)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
|
||||
$obj->brom_oid_41752 =~ /.*_BOOT_(.*)_(\d+)/;
|
||||
$brom = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
|
||||
$serial = $obj->serial_oid_41752 || undef;
|
||||
}
|
||||
elsif ($id =~ /8886\.6\.(140|191|150|21[3,4])$/) {
|
||||
$model = $obj->model_oid_8886_6_140 || undef;
|
||||
$model = $obj->session()->get('enterprises.8886.1.1.4.1.0')
|
||||
if not defined($model);
|
||||
$hw = $obj->hw_oid_8886_6_140;
|
||||
$hw =~ s/.*\s[v,V]ersion\s(.*)/$1/
|
||||
if defined $1;
|
||||
|
||||
$obj->os_ver_oid_8886_6_140 =~ /ROS_(.*)\.ISCOM.*\.(\d*\.+\d*)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
}
|
||||
|
||||
####
|
||||
# Here another ways for undetected specific crap. If you not enougth with default, place specific crap upper here
|
||||
####
|
||||
#All another known ways to model
|
||||
$model = $obj->session()->get('enterprises.8886.1.1.4.1.0') if not defined($model);
|
||||
|
||||
$model .= ' HW:' . $hw
|
||||
if (defined($model) and defined($hw));
|
||||
#All another known ways to HW
|
||||
while (not defined($hw)) {
|
||||
$hw = $obj->hw_oid_8886_6_140;
|
||||
$hw =~ s/.*\s[v,V]ersion\s(.*)/$1/ if defined $1;
|
||||
last;
|
||||
}
|
||||
|
||||
#All another known ways to OS Version
|
||||
$os_ver = $obj->os_ver_oid || undef if not defined($os_ver);
|
||||
while(not defined($os_ver)) {
|
||||
$obj->os_ver_oid_8886_6_140 =~ /ROS_(.*)\.ISCOM.*\.(\d*\.+\d*)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
last if defined($os_ver);
|
||||
|
||||
my $res = $obj->os_ver_oid_8886_6_140;
|
||||
$res =~ /(\d*\.+\d*)\(Compiled/;
|
||||
$os_ver = $1 if defined($1);
|
||||
$res =~ /ROS_(.*\d)\.+ISCOM[\d,\w,-]+\.([\d,\.]*)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
last if defined($os_ver);
|
||||
|
||||
last;
|
||||
}
|
||||
|
||||
#All another known ways to Bootrom
|
||||
$obj->brom_oid_8886_6_140 =~ /Bootstrap_([\d\W]+)\.ISCOM.*\.(\d*\.+\d*)/;
|
||||
$brom = $1 . ' (' . $2 . ')' if defined($1) and defined($2);
|
||||
|
||||
$brom = $obj->brom_oid || undef if not defined($brom);
|
||||
|
||||
#Serial
|
||||
$serial = $obj->serial_oid_8886_6_140 || undef;
|
||||
|
||||
####
|
||||
#final formatting before output.
|
||||
####
|
||||
$model .= ' HW:' . $hw if defined($model) and defined($hw);
|
||||
$os_ver .= ' bootrom:' . $brom if defined($os_ver) and defined($brom);
|
||||
|
||||
return { 'vendor' => $vendor, 'os' => $os, 'model' => $model, 'os_ver' => $os_ver, 'serial' => $serial };
|
||||
}
|
||||
|
||||
sub os_ver {
|
||||
my $obj = shift;
|
||||
my $os_ver; my $brom;
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /41752\.26\.502/) {
|
||||
$obj->os_ver_oid_41752 =~ /ROS_(.*)\.(\d+)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')';
|
||||
$obj->brom_oid_41752 =~ /.*_BOOT_(.*)_(\d+)/;
|
||||
$brom = $1 . ' (' . $2 . ')';
|
||||
}
|
||||
elsif ($id =~ /8886\.6\.(140|150)$/) {
|
||||
$obj->os_ver_oid_8886_6_140 =~ /ROS_(.*)\.ISCOM.*\.(\d*\.+\d*)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')';
|
||||
$obj->brom_oid_8886_6_140 =~ /Bootstrap_([\d\W]+)\.ISCOM.*\.(\d*\.+\d*)/;
|
||||
$brom = $1 . ' (' . $2 . ')';
|
||||
}
|
||||
elsif ($id =~ /8886\.6\.(191|21[3,4])$/) {
|
||||
my $os_ver_oid = $obj->os_ver_oid_8886_6_140;
|
||||
if ($os_ver_oid =~ /Compiled/) {
|
||||
$os_ver_oid =~ /(\d*\.+\d*)\(Compiled/;
|
||||
$os_ver = $1;
|
||||
}
|
||||
else {
|
||||
$os_ver_oid =~ /ROS_(.*\d)\.+ISCOM[\d,\w,-]+\.([\d,\.]*)/;
|
||||
$os_ver = $1 . ' (' . $2 . ')';
|
||||
}
|
||||
$brom = $obj->brom_oid_8886_6_140;
|
||||
}
|
||||
elsif ($id =~ /41752$/) {
|
||||
return SNMP::Info::Layer3::Rotek::os_ver($obj);
|
||||
}
|
||||
else {
|
||||
$os_ver = $obj->os_ver_oid || undef;
|
||||
$brom = $obj->brom_oid || undef;
|
||||
}
|
||||
|
||||
if (defined $os_ver and defined $brom) {
|
||||
return $os_ver . ' bootrom: ' . $brom;
|
||||
}
|
||||
elsif (defined $os_ver) {
|
||||
return $os_ver;
|
||||
}
|
||||
return 'unknown';
|
||||
return main($obj)->{os_ver};
|
||||
}
|
||||
sub model {
|
||||
my $obj = shift;
|
||||
return $obj->main($obj)->{model};
|
||||
return main($obj)->{model};
|
||||
}
|
||||
|
||||
sub serial {
|
||||
my $obj = shift;
|
||||
my $serial = $obj->serial_oid || 'unknown';
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /41752\.26\.502/) {
|
||||
return $obj->serial_oid_41752;
|
||||
}
|
||||
elsif ($id =~ /8886\.6\.(140|191|150|21[3,4])$/) {
|
||||
return $obj->serial_oid_8886_6_140;
|
||||
}
|
||||
return $obj->SUPER::serial;
|
||||
return main($obj)->{serial};
|
||||
}
|
||||
|
||||
sub hvver {
|
||||
my $obj = shift;
|
||||
my $id = $obj->id();
|
||||
if ($id =~ /41752\.26\.502/) {
|
||||
$obj->hw_oid_41752 =~ /.*\sversion\s(.*)/;
|
||||
return $1;
|
||||
}
|
||||
elsif ($id =~ /8886\.6\./) {
|
||||
$obj->hw_oid_8886_6_140 =~ /.*\s[v,V]ersion\s(.*)/;
|
||||
return $1
|
||||
if defined $1;
|
||||
return $obj->hw_oid_8886_6_140;
|
||||
}
|
||||
|
||||
return $obj->SUPER::hvver()
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
|
||||
|
||||
Reference in New Issue
Block a user