Add worker to collect various PortAccessEntity (NAC) attributes (PR #937, partially implements #887)

* Add macsuck worker to collect various PortAccessEntity (NAC) attributes

* Incorporate PAE feedback on #937

 * missing Result/Device.pm column added
 * pae_is... columns instead of pae_capabilities
 * moved most code to Util/PortAccessEntity.pm so the update can
   be done in discover and macsuck

* Refactor PAE attributes during discover as separate Plugin

* PortAccessEntity: don't use device->dns in log string

* Fix "Experimental keys on scalar is now forbidden" test failure

* Revamp pae_control and add missing attribute

 - device.pae_control (text) is now device.pae_is_enabled (bool)
 - also store pae_authconfig_port_control (port mode auto/force(un)Auth)

* Fix "Experimental keys on scalar is now forbidden" test failure

 - ... again because of botched merge
 - at least perlgolfed away a set of curly braces

* Update PortAccessEntity.pm

* Incorporate @ollyg PR feedback

Co-authored-by: Christian Ramseyer <ramseyer@netnea.com>
This commit is contained in:
Oliver Gorwits
2022-11-04 09:03:26 +00:00
committed by GitHub
parent 893c0abdef
commit 0e9ff81cf5
7 changed files with 157 additions and 1 deletions

View File

@@ -0,0 +1,18 @@
package App::Netdisco::Worker::Plugin::Discover::PortProperties::PortAccessEntity;
use Dancer ':syntax';
use App::Netdisco::Worker::Plugin;
use aliased 'App::Netdisco::Worker::Status';
use Dancer::Plugin::DBIC 'schema';
use App::Netdisco::Util::Worker;
use App::Netdisco::Util::PortAccessEntity qw/update_pae_attributes/;
register_worker({ phase => 'main', driver => 'snmp' }, sub {
my ($job, $workerconf) = @_;
my $device = $job->device;
return update_pae_attributes($device)
});
true;

View File

@@ -0,0 +1,18 @@
package App::Netdisco::Worker::Plugin::Macsuck::Nodes::PortAccessEntity;
use Dancer ':syntax';
use App::Netdisco::Worker::Plugin;
use aliased 'App::Netdisco::Worker::Status';
use Dancer::Plugin::DBIC 'schema';
use App::Netdisco::Util::Worker;
use App::Netdisco::Util::PortAccessEntity qw/update_pae_attributes/;
register_worker({ phase => 'main', driver => 'snmp' }, sub {
my ($job, $workerconf) = @_;
my $device = $job->device;
return update_pae_attributes($device)
});
true;