App-Netdisco
view release on metacpan or search on metacpan
lib/App/Netdisco/Worker/Plugin/LoadMIBs.pm view on Meta::CPAN
leaf => $leaf,
type => $type,
access => $access,
index => [($index ? (split m/:/, $index) : ())],
status => $status,
enum => [($enum ? (split m/:/, $enum ) : ())],
descr => $descr,
};
}
foreach my $row (@browser) {
$row->{num_children} = $children{ $row->{oid} } || 0;
}
debug sprintf "loadmibs - loaded %d objects from netdisco-mibs",
scalar @browser;
schema('netdisco')->txn_do(sub {
my $gone = schema('netdisco')->resultset('SNMPObject')->delete;
debug sprintf 'loadmibs - removed %d oids', $gone;
schema('netdisco')->resultset('SNMPObject')->populate(\@browser);
debug sprintf 'loadmibs - added %d new oids', scalar @browser;
});
#Â promote snapshots prior to loadmibs to be browsable
schema('netdisco')->txn_do(sub {
my @devices = schema('netdisco')
->resultset('DeviceBrowser')
->search({ -bool => \q{ array_length(oid_parts, 1) IS NULL } })
->distinct('ip')->get_column('ip')->all;
foreach my $ip (@devices) {
my $dev = get_device($ip);
next unless $dev->in_storage;
debug sprintf 'loadmibs - promoting snapshot for %s to be browsable', $dev->ip;
make_snmpwalk_browsable($dev);
}
});
#Â legacy snapshot upgrade
schema('netdisco')->txn_do(sub {
my $legacy_rs = schema('netdisco')
->resultset('DeviceBrowser')
->search({ -bool => \q{ jsonb_typeof(value) != 'array' } });
if ($legacy_rs->count) {
my @rows = $legacy_rs->hri->all;
my $gone = $legacy_rs->delete;
#Â the legacy looks like encode_base64( nfreeze( [$data] ) )
foreach my $row (@rows) {
my $value = (@{ thaw( decode_base64( from_json($row->{value}) ) ) })[0];
$value = (ref {} eq ref $value)
? { map {($_ => (defined $value->{$_} ? encode_base64($value->{$_}, '') : undef))}
keys %$value }
: (defined $value ? encode_base64($value, '') : undef);
$row->{value} = to_json([$value]);
}
schema('netdisco')->resultset('DeviceBrowser')->populate(\@rows);
debug sprintf 'loadmibs - updated %d legacy snapshot rows', scalar @rows;
}
});
return Status->done('Loaded MIBs');
});
true;
__DATA__
ad_lag_ports SNMP::Info::munge_port_list
adminAgentPhysAddress SNMP::Info::munge_mac
adminAgentPhysAddress.0 SNMP::Info::munge_mac
ag_mod2_type SNMP::Info::munge_e_type
ag_mod_type SNMP::Info::munge_e_type
agentInterfaceMacAddress SNMP::Info::munge_mac
aipAMAPRemHostname SNMP::Info::munge_null
airespace_ap_ethermac SNMP::Info::munge_mac
airespace_ap_mac SNMP::Info::munge_mac
airespace_bl_mac SNMP::Info::munge_mac
airespace_if_mac SNMP::Info::munge_mac
airespace_sta_mac SNMP::Info::munge_mac
alHardwareFan1RpmAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwareFan2RpmAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwareFan3RpmAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwarePs1Voltage3vAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwarePs1Voltage5vAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwarePs2Voltage3vAlarm SNMP::Info::Layer3::Altiga::munge_alarm
alHardwarePs2Voltage5vAlarm SNMP::Info::Layer3::Altiga::munge_alarm
amap_rem_sysname SNMP::Info::munge_null
ap_if_mac SNMP::Info::munge_mac
aruba_ap_bssid_ssid SNMP::Info::munge_null
aruba_ap_fqln SNMP::Info::Layer3::Aruba::munge_aruba_fqln
aruba_ap_type SNMP::Info::munge_e_type
aruba_card_type SNMP::Info::munge_e_type
aruba_user_bssid SNMP::Info::munge_mac
atPhysAddress SNMP::Info::munge_mac
at_paddr SNMP::Info::munge_mac
awcIfPhysAddress SNMP::Info::munge_mac
awc_mac SNMP::Info::munge_mac
b_mac SNMP::Info::munge_mac
bs_mac SNMP::Info::munge_mac
bsnAPDot3MacAddress SNMP::Info::munge_mac
bsnAPEthernetMacAddress SNMP::Info::munge_mac
bsnBlackListClientMacAddress SNMP::Info::munge_mac
bsnMobileStationAPMacAddr SNMP::Info::munge_mac
bsnMobileStationMacAddress SNMP::Info::munge_mac
bsnMobileStationPacketsReceived SNMP::Info::Airespace::munge_64bits
bsnMobileStationPacketsSent SNMP::Info::Airespace::munge_64bits
cDot11ClientCurrentTxRateSet SNMP::Info::Layer2::Aironet::munge_cd11_txrate
cDot11ClientDataRateSet SNMP::Info::Layer2::Aironet::munge_cd11_txrate
cInetNetToMediaPhysAddress SNMP::Info::IPv6::munge_physaddr
cLApIfMacAddress SNMP::Info::munge_mac
c_id SNMP::Info::Layer2::HP::munge_hp_c_id
c_inet_phys_addr SNMP::Info::IPv6::munge_physaddr
cbgpPeer2LastError SNMP::Info::munge_octet2hex
cbgpPeer2LocalAddr SNMP::Info::munge_inetaddress
cd11_proto SNMP::Info::Layer2::Airespace::munge_cd11_proto
cd11_rateset SNMP::Info::Layer2::Aironet::munge_cd11_txrate
cd11_rxpkt SNMP::Info::Airespace::munge_64bits
cd11_ssid SNMP::Info::munge_null
( run in 0.998 second using v1.01-cache-2.11-cpan-39bf76dae61 )