this and two related commits implements:
- setting snmp_field_protection which can be used to protect any
database field from having a null value set
- extra device discover worker which prefetches SNMP interfaces and
performs some sanity checks and comparison against the DB
the two checks will return job status ERROR with CANCELLED if they
see anything fishy.
* initial v0 creator
* working json api for generic reports
* add require login
* move report swagger into plugin, and set new default layout of noop
* require proper role and also use new util func
* start to tidy authn
* some work on cleaning up web authn
* clean up the authN checks
* fix bug
* fix the auth for api
* fixes to json handling
* set swagger sort order
* enable most reports for api endpoints
* fix doc
* add paramters to reports
* add missed report
* allow api_parameters in reports config
* reorganise api
* add vlan search
* add port search
* make sure to enable layout processing
* add device search
* add v1 to api paths
* add Node Search
* support api_responses
* add device object search; fix spurious ports field in device result class
* handle some plugins just returning undef if search fails
* errors from api seamlessley
* fix error in date range default
* more sensible default for prefix
* change order of endpoints in swagger-ui
* all db row classes can now TO_JSON
* add device_port api endpoint
* add device ports endpoint
* do not expand docs
* add swagger ui json tree formatter
* add all relations from Device table
* add port relations
* add nodes retrieve on device or vlan
* rename to GetAPIKey
* update config for previous commit
this patch resets all pseudo devices to have no layer3 support but adds a
feature to the pseudo devices admin panel to enable layer3 support. it also
changes arpnip and arpwalk behaviour to always permit the action if layer3
is available (ignoring the vendor).
documentation will need updating to tell users to create pseudo devices
with layer3 support when they want to arpnip an unsupported platform.
arpnip with ssh/cli against a supported platform (one that can be discovered)
will continue to work normally.
Squashed commit of the following:
commit 9dad5be81d
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 09:03:53 2019 +0100
allow pseudo with layer 3 to run arpnip
commit 7d97943fcd
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 08:59:10 2019 +0100
allow pseudo devices with layer 2/3 capability
commit d1fdf574e3
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 08:55:41 2019 +0100
move pseudo and layer checks to is_able from is_able_now
commit e0f72ef67d
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 08:51:42 2019 +0100
ports defaults to one
commit 86ba01270c
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 08:50:45 2019 +0100
add tooltip for arpnip toggle
commit cdd2470228
Author: Oliver Gorwits <oliver@cpan.org>
Date: Tue Sep 3 08:34:46 2019 +0100
simplify template
commit 46236d68ea
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 23:53:56 2019 +0100
a fix up for pseudo devices which need layer 3
commit 016d249efc
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 20:37:11 2019 +0100
do not wrap buttons
commit 1ec1402e0c
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 20:33:03 2019 +0100
implement user settable layer-three service for pseudo devices
commit a267efa3d8
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 18:39:22 2019 +0100
only set layer if successful action
commit b108be5e23
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 18:32:19 2019 +0100
should defer SNMP against pseudo devices
commit 897ba3a629
Merge: e0ddbaaba7348900
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Sep 1 14:54:36 2019 +0100
Merge branch 'master' into og-pseudo-vs-cli-arpnip
commit e0ddbaab08
Author: Oliver Gorwits <oliver@cpan.org>
Date: Mon Aug 26 11:35:13 2019 +0100
as last commit, for discover
commit 61f9c89040
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Aug 25 23:55:38 2019 +0100
move pseudo and layer checks into is_*able functions
commit 8b010d4023
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Aug 25 18:38:11 2019 +0100
any device completing macsuck/arpnip must have that layer
commit a11bce7863
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Aug 25 18:33:27 2019 +0100
clean up device layers
commit d2661bff61
Author: Oliver Gorwits <oliver@cpan.org>
Date: Sun Aug 25 18:18:02 2019 +0100
first make arpnip behave like other jobs towards pseudo devices
The port free icon currently only differs from the port down icon by colour, on higher resolutions with a colour vision impairment they're not very distinguishable, a slightly different icon fixes this.
fixes this error, since device_port_power.power can be null:
Argument "" isn't numeric in numeric gt (>) at /home/netdisco/perl5/lib/perl5/auto/share/dist/App-Netdisco/views/ajax/device/ports.tt line 251.
currently only seen on cisco sb switches, which do have all other columns filled in
ip | port | module | admin | status | class | power
---------------+------+--------+-------+------------+--------+-------
10.40.254.150 | fa2 | 1 | true | otherFault | class3 |
10.40.254.150 | fa16 | 1 | true | searching | class3 |
10.40.254.150 | fa3 | 1 | true | searching | class3 |
...