Commit Graph

133 Commits

Author SHA1 Message Date
Oliver Gorwits
370d483c5a add internal worker plugin to set fqdn for cli actions 2023-09-26 09:27:14 +01:00
Oliver Gorwits
c651ff107b collapse on inventory for long lists (#1103)
implements #1083
2023-09-19 08:11:05 +01:00
Oliver Gorwits
3a820c06e4 #1084 move slow skiplist build to the first job on running backend 2023-09-05 22:55:33 +01:00
Oliver Gorwits
eb87ee00ee #1081 change ethernetCsmacd+notPresent ports from ignored to hidden 2023-09-02 19:24:52 +01:00
Oliver Gorwits
a0f4bbfbb4 #1081 change ethernetCsmacd+notPresent ports from ignored to hidden 2023-08-31 21:50:48 +01:00
Oliver Gorwits
bb15abce58 allow deferrable_actions exceptions to device deferrals 2023-08-12 19:51:05 +01:00
Oliver Gorwits
9eb537a4c1 #910 implement import of snmpwalk and more robust snapshot handling (#1086)
* initial work

* initial work

* initial work

* some fixes for time and Layer3 weird spec

* store again the snapshot after update for specific

* resolve the enums

* monkeypatch SNMP::translateObj to avoid hardware exception on macOS

* only save cache to db in the late phase worker

* no need to check for cache on transport, can just go ahead and try

* use database only for oidmap instead of netdisco-mibs

* rewrite device snapshot to gather loaded mib leafs only

* remove old walker code from snapshot worker

* allow snmp browser to work without snapshot

* only store snapshot leafs which the device responded on

* refactor to separate snapshot work from snmp transport work

* refactor to separate snapshot work from snmp transport work

* allow typeahead on MIB qualified leafs

* fixes for snmpwalk input after previous refactor

* add the extra stuff SNMP::Info device class uses into snapshot

* better width for snmp search box

* fix css for snmp options

* add spinner while snmp loading

* add spinner while snmp loading

* add spinner while snmp loading

* support SNMP::Info device class or named MIBs as extra on snapshot

* add final tidy and bug fix
2023-08-10 22:27:02 +01:00
Oliver Gorwits
47c4226788 refactor CustomFields so with_custom_fields is available on backend 2023-07-20 16:51:04 +01:00
Oliver Gorwits
04ee1e1613 #1064 display device and device port tags in web ui 2023-07-19 13:01:51 +01:00
Oliver Gorwits
4b99f0bb9c #1064 implement setting of tags on discovery based on config 2023-07-19 11:24:41 +01:00
Oliver Gorwits
eac55a581d #1066 implement snmp_try_slow_connect and fast device discover from queue 2023-07-14 17:37:52 +01:00
Oliver Gorwits
0eb26159f9 #1060 portctl_topology setting for web access to manual topo for port_control users 2023-07-12 21:53:38 +01:00
Oliver Gorwits
ef4e3f5181 explicitly use SameSite=Lax Cookie Attribute for dancer.session cookies 2023-06-28 16:39:24 +01:00
Oliver Gorwits
2cbb68889a #975 RBAC for port control with new portctl_by_role setting 2023-06-27 22:52:04 +01:00
Oliver Gorwits
1aef847af3 add "phone" to phone_platforms default config for additional phones not using capabilities 2023-06-08 16:14:20 +01:00
Oliver Gorwits
b5a8f685ab add missing validate_remote_user default to config 2023-06-08 16:14:20 +01:00
Oliver Gorwits
3b4236ed90 fix mistaken release with device ports partial search default as on 2023-06-06 07:03:54 +01:00
Oliver Gorwits
339ecd429a #1038 ability to set "partial" default "on" in device ports sidebar 2023-06-05 17:50:32 +01:00
Oliver Gorwits
195f98dff1 make safe the api calls with potential for demo site damage 2023-06-05 17:28:34 +01:00
Oliver Gorwits
01928fa85d #1037 add new names for vlan 1003 and 1005 in Cisco-land 2023-05-31 20:10:38 +01:00
Oliver Gorwits
949aeb9eea delete hook (#1032)
* make log_message optional in delete_device

* add hooks support to delete job

* make delete job high prio

* web delete now queues job instead of inline delete

* move web logging into web package and remove userlog from device delete helper

* submit delete job for expire device instead of inline delete

* fixes to get web submit form for delete device to work

* enable delete hook functionality
2023-04-30 22:58:42 +01:00
Oliver Gorwits
e268b9d522 #1010 Search port descriptions 2023-04-03 22:02:43 +01:00
Oliver Gorwits
1d988bbf7c implement ignore_layers, force_macsuck, force_arpnip config settings (#1002)
* implementation of ignore_layers, force_macsuck, force_arpnip and macwalk

* use new WalkJobs view to get devices needing macsuck

* also new query for discoverall, arpwalk, nbtwalk

* faux record has a last_defer stamp so we can see when the backend started

* fix typo
2023-03-15 14:44:42 +00:00
Oliver Gorwits
3ee0c7692c #991 Recently Added Devices report 2023-03-07 20:42:20 +00:00
Oliver Gorwits
1505a8637b #952 support user-supplied net-snmp options in SNMP Transport 2023-03-07 18:17:30 +00:00
Oliver Gorwits
02537fbfba #921 IPs on Multiple Devices report 2023-03-06 21:37:10 +00:00
Oliver Gorwits
c033687ec1 #921 Devices with Multiple Addresses report 2023-03-06 17:14:03 +00:00
Oliver Gorwits
4e6f143dec #933 separate Duplex port info into running and configured columns 2023-02-24 14:57:00 +00:00
Oliver Gorwits
c82dfc8a10 #948 Column order wrong when displaying custom fields 2022-12-13 11:30:36 +00:00
Christian Ramseyer
8cc8bdcd19 Add NAC columns to UI (#941)
* Add NAC columns to UI

* Compact variant with a "NAC Summary" column

* display PAE stuff as very short summary in web and full columbs in csv

* add tooltips for actual port status and state detail

* minor naming tweaks

Co-authored-by: Oliver Gorwits <oliver@cpan.org>
2022-12-13 09:16:32 +01:00
Oliver Gorwits
1c7c749f0e custom fields on devices and ports in the web from config (#945)
* custom device field web display and edit

* make display work; relies on T::T calling dict slot or method with same syntax

* add storing port custom fields

* use resultset method instead, use cf_ prefix

* update Pg min ver for jsonb

* allow override of position and default for port custom fields

* support hidden for custom fields

* update description of Objects API class

* allow left and mid position for custom fields

* add custom fields in csv

* change port control sidebar label

* fix default missing bug on backend jobs
2022-12-09 10:20:26 +00:00
Oliver Gorwits
826e1db39d API Endpoints to submit arpnip and macsuck results (#942)
* 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

* allow actions without transport to run when there are also no creds

* initial refactor for separate gather, process, store phases for macsuck

* factor out the vlan sanity check

* additional help with log of action workers

* cleanup logic in check macsuck

* refactor to make main phases only

* some fixes

* implement file slurp. amazingly the whole thing works

* remove outdated noop from test

* treat error as critical, use cancel to suppress further drivers

* big refactor to share mac sanity code to both paths

* fix inverted logic on vlan sanity filter

* some code tidy

* fix error in default value

* fix for vlan 0 nodes input from cli

* ensure imported MACs are IEEE format

* add api endpoint, no useful return status yet

* exit status if error from nodes PUT

* suppress other networked workers when direct workers are active

* better log showing worker

* fix status recording to get first error or last done message

* implement arpnip API PUT

* avoid package redeclaration error

* make sure write API methods require admin status

* add doc for passing JSON data to arpnip and macsuck

* update manifest

* remove option to do jobs in web handler; all by queue now

* use job entry timestamp for offline queued jobs

* fix store username and IP on api PUT

* never de-duplicate user-submitted jobs; never reset DeviceSkip for offline jobs

* myworker no longer needed

* make logic cleaner

Co-authored-by: Christian Ramseyer <ramseyer@netnea.com>
2022-11-25 15:24:23 +00:00
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
Oliver Gorwits
d6d877a406 rename setting macsuck_no_deviceport to macsuck_no_deviceports 2022-09-24 22:35:23 +01:00
Oliver Gorwits
1d5f3ce316 #929 implement first half of multi tenancy with tenant_databases setting 2022-09-24 19:01:16 +01:00
Oliver Gorwits
790c51b257 #925 implement ignore_deviceports and hide_deviceports 2022-09-20 20:32:35 +01:00
Oliver Gorwits
f4dde980ff #914 change from silent_ports to macsuck_no_deviceport 2022-08-16 09:27:50 +01:00
Oliver Gorwits
6a27a2b3b1 #914 initial implementation of silent_ports 2022-08-15 22:26:38 +01:00
Oliver Gorwits
7aca60a348 bug - fe80::/10 is not LOCAL ADDRESS like ::1/128 2022-08-15 11:26:49 -04:00
Oliver Gorwits
3684451f2a add ifindex column for show 2022-08-14 21:13:27 +01:00
Oliver Gorwits
a004db2951 add discover_routed_neighbors setting default true 2022-08-10 17:31:04 -04:00
Oliver Gorwits
3d81f3e5f6 make hide1002 and vlan_names true sidebar options and move to port properties section 2022-08-03 06:22:51 +01:00
Oliver Gorwits
89ada080da #900 add option to hide vlan 1002-1005 2022-08-02 21:41:48 +01:00
Oliver Gorwits
aad4f0ec33 #902 change order of device ports cols to put duplex after speed 2022-08-01 08:44:19 +01:00
Oliver Gorwits
7566e64886 #882 option to display vlan names instead of numbers in device ports table 2022-07-26 09:49:07 +01:00
Oliver Gorwits
796aa1c6f0 rename port options for remote inventory and always show LLDP IP with not contacted device details 2022-07-25 16:43:40 +01:00
Oliver Gorwits
07e8520bac #881 new addpseudodevice worker action 2022-07-04 22:02:47 +01:00
Oliver Gorwits
2e8384df5a fix bugs to allow bulkwalk_no snapshot, and index with trailing zeros 2021-11-25 11:37:28 +00:00
Oliver Gorwits
6545fff0c2 allow contact|location|portname|snapshot to run on pseudo devices 2021-11-06 22:32:35 +00:00
Oliver Gorwits
dc1f76c1aa Feature to gather SNMP Walk, use as Pseudo Device, and Browse Objects
* fix anomalous name

* add gather worker

* fix encoding of binary storage

* store results back to job

* now parsing mbis report to translate

* fix the broken report parser

* rename gather to snapshot

* implement walk code copied from SNMP::Info

* can now bulkwalk and parse mibs report and store resolved walk in cache

* add func/glob aliasing broken

* better aliasing

* implement aliasing from globals and funcs

* fix regexp for matching netdisco-mibs report

* fake cache entry for all ND2 methods called, add comments

* also save to logs/snapshots/IP

* add doc for netdisco-do

* add is_pseudo column to device table

* support for loading cache for pseudo devices

* check for hrSystemUptime as well as sysUpTime for snmp connect

* display pseudo devices with yellow pill for name

* color all cells for layers for pseudo

* no need to b64 encode binary data in scalars as we b64 whole thing after

* tweaked uptime check

* store snapshot to database instead of Job

* expose snapshots in device details tab

* small ux improvements on snap download

* fixes for errors in subnet mask searching

* hide snapshot management for pseudo devices

* update to use new netdisco-mibs object cache

* update for new format oids file

* start of work on loading walk into db for browsing

* store values and meta

* add auto increment col and oid index to browser

* start web plugin for browser

* add virtual search for oid children

* have all oid in separte table (60 seconds load on my laptop)

* rename table and add relation

* store oid as int array

* fix sql for children

* make jstree start working

* working very slow tree expand

* fix to work when first displaying tree

* store both oid and oid_parts

* simplify SQL to speed up (more complicated perl)

* fix sql bug, add better index, prettify tree

* render the snmp node detail

* add node template, make scrollable, pretty print data values (insecure)

* store munge hint

* some dubious code to munge the data

* make sure to filter by IP on device_browser

* make safer the rendering of value data (but need to come back to key ordering)

* fix sorting on object values

* limit the opening of child nodes to keep response good and unclutter

* factor out the munge and make safer

* reject unknown mungers

* show the munger and option (not working) to change

* additional js for munge select

* complete custom munge

* change so that saving to database is only at CLI and on request

* hide snmp tab if no browser rows in the db

* add helpful message when no browser rows for the device

* stub handler for search and add recurse control

* working search

* minor ui fixes

* implement typeahead for leaf search

* limit rows in typeahead

* make sure device_browser is visited in delete and renumber

* add requirements for this branch

* update manifest

* make sure node search and typeahead are restricted to current device only
2021-11-06 07:47:29 +00:00