From 3ae4eabd3943b9afb66ca0bbd235012f8456ff74 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 21 Mar 2018 10:53:09 +0000 Subject: [PATCH] #12 store Cisco PortFast status in device_port_properties:faststart --- Build.PL | 2 +- Changes | 1 + lib/App/Netdisco/DB.pm | 2 +- lib/App/Netdisco/DB/Result/DevicePortProperties.pm | 2 ++ lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm | 7 +++++++ share/schema_versions/App-Netdisco-DB-51-52-PostgreSQL.sql | 5 +++++ 6 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 share/schema_versions/App-Netdisco-DB-51-52-PostgreSQL.sql diff --git a/Build.PL b/Build.PL index ff13fe9a..c4bdb69d 100644 --- a/Build.PL +++ b/Build.PL @@ -67,7 +67,7 @@ Module::Build->new( 'Starman' => '0.4008', 'Storable' => '0', 'Sys::SigAction' => '0', - 'SNMP::Info' => '3.52', + 'SNMP::Info' => '3.53', 'SQL::Abstract' => '1.85', 'SQL::Translator' => '0.11024', 'Template' => '2.24', diff --git a/Changes b/Changes index b8e7334d..126cc32e 100644 --- a/Changes +++ b/Changes @@ -3,6 +3,7 @@ [ENHANCEMENTS] * #371 usernames are case insensitive but case preserving + * #12 store Cisco PortFast status in device_port_properties:faststart 2.039017 - 2018-03-20 diff --git a/lib/App/Netdisco/DB.pm b/lib/App/Netdisco/DB.pm index 0790a6a5..9bb97495 100644 --- a/lib/App/Netdisco/DB.pm +++ b/lib/App/Netdisco/DB.pm @@ -11,7 +11,7 @@ __PACKAGE__->load_namespaces( ); our # try to hide from kwalitee - $VERSION = 51; # schema version used for upgrades, keep as integer + $VERSION = 52; # schema version used for upgrades, keep as integer use Path::Class; use File::ShareDir 'dist_dir'; diff --git a/lib/App/Netdisco/DB/Result/DevicePortProperties.pm b/lib/App/Netdisco/DB/Result/DevicePortProperties.pm index c32f0460..81ea937b 100644 --- a/lib/App/Netdisco/DB/Result/DevicePortProperties.pm +++ b/lib/App/Netdisco/DB/Result/DevicePortProperties.pm @@ -27,6 +27,8 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 1 }, "raw_speed", { data_type => "bigint", is_nullable => 1 }, + "faststart", + { data_type => "boolean", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("port", "ip"); diff --git a/lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm b/lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm index f2c0e5e3..1680feac 100644 --- a/lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm +++ b/lib/App/Netdisco/Worker/Plugin/Discover/PortProperties.pm @@ -35,6 +35,13 @@ register_worker({ phase => 'main', driver => 'snmp' }, sub { $properties{ $port }->{error_disable_cause} = $err_cause->{$idx}; } + my $faststart = $snmp->i_faststart_enabled || {}; + + foreach my $idx (keys %$faststart) { + my $port = $interfaces->{$idx} or next; + $properties{ $port }->{faststart} = $faststart->{$idx}; + } + my $c_if = $snmp->c_if || {}; my $c_cap = $snmp->c_cap || {}; my $c_platform = $snmp->c_platform || {}; diff --git a/share/schema_versions/App-Netdisco-DB-51-52-PostgreSQL.sql b/share/schema_versions/App-Netdisco-DB-51-52-PostgreSQL.sql new file mode 100644 index 00000000..ff860abe --- /dev/null +++ b/share/schema_versions/App-Netdisco-DB-51-52-PostgreSQL.sql @@ -0,0 +1,5 @@ +BEGIN; + +ALTER TABLE device_port_properties ADD COLUMN "faststart" bool DEFAULT false; + +COMMIT;