Files
netdisco/lib/App/Netdisco/DB/Result/DevicePortProperties.pm
Oliver Gorwits 0e9ff81cf5 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>
2022-11-04 10:03:26 +01:00

72 lines
2.2 KiB
Perl

use utf8;
package App::Netdisco::DB::Result::DevicePortProperties;
use strict;
use warnings;
use base 'App::Netdisco::DB::Result';
__PACKAGE__->table("device_port_properties");
__PACKAGE__->add_columns(
"ip",
{ data_type => "inet", is_nullable => 0 },
"port",
{ data_type => "text", is_nullable => 0 },
"error_disable_cause",
{ data_type => "text", is_nullable => 1 },
"remote_is_discoverable",
{ data_type => "boolean", default_value => \"true", is_nullable => 1 },
"remote_is_wap",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
"remote_is_phone",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
"remote_vendor",
{ data_type => "text", is_nullable => 1 },
"remote_model",
{ data_type => "text", is_nullable => 1 },
"remote_os_ver",
{ data_type => "text", is_nullable => 1 },
"remote_serial",
{ data_type => "text", is_nullable => 1 },
"remote_dns",
{ data_type => "text", is_nullable => 1 },
"raw_speed",
{ data_type => "bigint", default_value => 0, is_nullable => 1 },
"faststart",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
"ifindex",
{ data_type => "bigint", is_nullable => 1 },
"pae_authconfig_state",
{ data_type => "text", is_nullable => 1 },
"pae_authconfig_port_control",
{ data_type => "text", is_nullable => 1 },
"pae_authconfig_port_status",
{ data_type => "text", is_nullable => 1 },
"pae_authsess_user",
{ data_type => "text", is_nullable => 1 },
"pae_authsess_mab",
{ data_type => "text", is_nullable => 1 },
"pae_last_eapol_frame_source",
{ data_type => "text", is_nullable => 1 },
"pae_is_authenticator",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
"pae_is_supplicant",
{ data_type => "boolean", default_value => \"false", is_nullable => 1 },
);
__PACKAGE__->set_primary_key("port", "ip");
=head1 RELATIONSHIPS
=head2 port
Returns the entry from the C<port> table for which this Power entry applies.
=cut
__PACKAGE__->belongs_to( port => 'App::Netdisco::DB::Result::DevicePort', {
'foreign.ip' => 'self.ip', 'foreign.port' => 'self.port',
});
1;