Commit Graph

306 Commits

Author SHA1 Message Date
Tony Murray
75ba74fe5b Migrate addhost.php to lnms device:add (#13870)
* Migrate addhost.php to lnms device:add
Have snmp-scan.py call lnms device:add (make exit codes line up so this works)
Fix issue with ping only devices trying to detect os via snmp
Reorder options in device:add help and improve formatting
Update docs to remove references to addhost.php
Fix a bit of code that was in functional code

* fixes

* fix snmp version message
2022-04-04 10:41:18 -05:00
Tony Murray
22209732dd Bump version to 22.3.0 2022-03-17 23:00:10 -05:00
Tony Murray
379627243a Remove addHost from ModuleTestHelper (#13847) 2022-03-12 21:53:40 -06:00
Jellyfrog
09929bd686 Implement OAuth and SAML2 support (#13764)
* Implement OAuth and SAML2 support via Socialite

* Add socialite docs

* fixes

* Additional information added

* wip

* 22.3.0 targeted version

* Allow mysql auth as long as there is a password saved

Co-authored-by: laf <gh+n@laf.io>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-02-20 22:05:51 +01:00
Jellyfrog
513fbf06e2 Add MIB to OS helper to tests (#13795) 2022-02-18 09:17:40 -06:00
Dan Langille
0c08670acc Bump version to 22.2.1 (#13798)
* Bump version to 22.2.0

This was missed?

* Update Version.php

Co-authored-by: Neil Lathwood <gh+n@laf.io>
2022-02-18 09:12:46 +00:00
Jellyfrog
d8f96a46b0 Fix PHPStan Deprecated test (#13794) 2022-02-16 07:10:32 -06:00
Jellyfrog
67c68b5965 Bump test timeout to 2 hours (#13769) 2022-02-11 09:10:33 -06:00
Tony Murray
29bd6789cb Stp module rewrite (#13570)
* STP module rewrite WIP

* Finish rewrite

* Ignore disabled and log root/topology changes

* Remove interfaces for now

* fix style

* Lint fixes

* Document ResolvesPortIds and hide map functions

* whitespace fixes

* Revert to stpInstances in case someone writes mstp support

* missed one

* phpstan fixes

* Handle table and oids separately

* forgot to register observer

* Test data and correct non-table handling in SnmpResponse->table()

* update test

* test data

* revert aos7 silly things

* minimal polling

* Update test data

* order ports_ntp and rename new field to port_index

* forgot the db_schema

* revert ciena-sds port things

* MSTP support, maybe

* Adding test data

* Filter bad lines instead of discarding the entire snmp response
and capture fixes and test data

* fresh data

* add os data

* update data, ignore unfound ports, obviously bad device implementation.

* fixes

* Ignore context files in os detection test

* Remove empty table data

* add ciena-sds vlan

* designatedCost column is too small

* Update stp webui

* Refactor code to interfaces, to allow vendor mibs

* update schema

* fix issues added by abstraction

* STP fixes

* Default to no context for vlan 1

* never store vlan 1

* Update test data

* remove eltex brokenness

* fix style

* fix stan

* Fix Rewrite MAC to Hex padding with floats

* fix sqlite migration
2022-01-30 16:28:18 -06:00
ilGino
25ab5df986 Correct prefix for "kilo" should be small k, not capital K (#13714)
Ref: https://en.wikipedia.org/wiki/Kilo-

For example in the Fanspeed values 4500 RPM (Rounds Per Minute) should be written as 4.5 kRPM, not 4.5 KRPM.

Regards
GG
2022-01-27 01:31:57 +01:00
Jellyfrog
7d0bbb98eb Replace Requests with HTTP Client (#13689) 2022-01-26 16:04:26 -06:00
Tony Murray
f195478444 lnms dev:check add --os-modules-only option (#13700)
* lnms dev:check add --os-modules-only option
And improve debug output

* Style fixes

* Add false flag
2022-01-26 08:31:51 -06:00
Jellyfrog
6c1726d2d1 Use commit date to compare pull requestes (#13701)
"The created_at attribute is the date of the commit used for the release, and not the date when the release was drafted or published."
2022-01-24 15:40:42 -06:00
Jellyfrog
8b67feabd7 Improve Proxy::shouldBeUsed (#13702)
* Improve Proxy::shouldBeUsed

* Update Proxy.php

* Create ProxyTest.php

* Update ProxyTest.php

* Update Proxy.php
2022-01-24 14:55:52 -06:00
Tony Murray
e1908f26d6 Bump version to 22.1.0 2022-01-23 08:47:41 -06:00
Jellyfrog
36d8d9102e Use PHP_BINARY directly instead of trying to build path to PHP binary (#13690) 2022-01-20 08:50:43 -06:00
Tony Murray
9f42abd6c6 snmp timeout is a float (#13676) 2022-01-15 10:00:16 -06:00
Tony Murray
b27efefb91 Bump version to 21.12.0 2021-12-21 19:57:55 -06:00
Tony Murray
d5656d826e Tests dont include empty tables (#13619)
* Do not include empty tables in test data

* empty data is simpler to check now

* Update test data

* revert comment options that block update all test data

* clean existing data

* fixes

* another fix

* remov extra sensors???

* why is that using that ip...

* missed an empty table

* missed one

* restore ftos

* revert another ftos

* revert ird

* restore timos

* restore timos_7705

* oops

* double oops

* timos mpls

* timos_hc

* another timos_hc fix
2021-12-15 19:48:44 -06:00
Tony Murray
bc2be0efc1 Remove accidental dump() (#13607) 2021-12-09 08:53:34 -06:00
Jellyfrog
e803fa57ac use http for proxy urls via guzzle (#13601)
Fixes #13598
2021-12-08 08:22:20 -06:00
Tony Murray
a95efd6d2a Global search: search device display (#13583)
* Global search: search device display
Add display field to search (also port_desc_descr, portName, and bgpPeerDescr)
Rewrite backend
update typeahead bundle
update devices and ports indexes
reduce some port field sizes so we can index them

* Style fixes

* remove nonsense
2021-12-06 16:12:24 +01:00
Tony Murray
b32524294c collect-snmp-data.php can now capture snmp context test data (#13596)
* collect-snmp-data.php can now capture snmp context test data
This is helpful for devices that use context for multiple data sets such as VLANs and VRFs.  Allows us to test things that use those now, but does make more snmprec files :/

* update typehints on affected methods and baseline
2021-12-03 13:27:06 -06:00
Tony Murray
b94f08cfdb Remove color markers when logging to files (#13541)
* Remove color markers when logging to files

* Update lint

* safety checks

* back to simple formatters, but two of them

* more correct comment
2021-11-24 23:33:02 +01:00
Tony Murray
c79b187d72 Poller rewrite (Try 2) (#13525)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts

* Catch exceptions in device ip lookup

* Revert accidental snmp.inc.php poller target change
(should have been ?: not ??)
2021-11-17 19:23:55 -06:00
Tony Murray
f8764ddcb5 Revert "Poller command rewrite (#13414)" (#13524)
This reverts commit 1752d1efd4.
2021-11-16 21:40:29 -06:00
Tony Murray
1752d1efd4 Poller command rewrite (#13414)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts
2021-11-16 16:59:46 -06:00
Tony Murray
7e98e03338 Polling cleanup, fix PHP warnings (#13460)
* Fix warnings up to Arbos

* fixes a-c

* a-r

* a-vrp

* There and back again

* Update test data, couple fixes

* PHPSStan fixes

* style fixes, and fix Asyncos, whoops

* flip serial back.......

* less bogus data

* Poweralert sysName during polling too

* make sure things are calculated in the correct order

* fix style and bad nullables

* update test data

* A comple more conversions

* cambium ptp, misc, and hardware_mib

* remaining except vmware-esxi

* Fixes

* Update baseline

* fixes and fix up baseline

* adjust SnmpQueryMock to upstream options change

* data corrections

* restore slashes

* correctly handle all options input in SnmpQueryMock

* undo ftos changes

* restore vccodec sysDescr
2021-11-14 14:58:13 -06:00
Tony Murray
6b41c29f5f Bump version to 21.11.0 2021-11-12 11:03:39 -06:00
Tony Murray
06701870cd Change how options are handled for SnmpQuery (#13488)
* Change how options are handled for SnmpQuery
Fix added backslashes when collecting snmp data.

* fix lint
2021-11-10 20:49:06 -06:00
PipoCanaja
9eb3950546 [bug] Fix & extend MAC OUI table updates (#13479)
* get the OUIs from Wireshark CSV instead of macaddress.io which is not free anymore

* style

* optimize

* master wireshark repo

* fix Cache::get prefix ordering

* fix double cache get

Co-authored-by: Tony Murray <murraytony@gmail.com>

Co-authored-by: Tony Murray <murraytony@gmail.com>
2021-11-09 07:47:38 -06:00
Tony Murray
01345b5fba Fix don't run phpstan in test actions (#13470) 2021-11-03 12:55:22 -05:00
Tony Murray
f4ee508f31 Run phpstan locally with lnms dev:check lint (#13458)
* Run phpstan locally with `lnms dev:check lint`
Separate result cache for deprecated functions so we don't break the cache every time.

* Skip phpstan flag
Skip all lints on ci except php lint (so we can check on multiple php versions)

* forgot default value

* fix up test cases

* Update LibreNMS/Util/CiHelper.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-11-03 00:17:35 +01:00
Tony Murray
2c77edf4d2 Better handling of some alerting errors (#13446)
* Better handling of some alerting errors

* Better error output

* Consolidate simple template parsing

* Fixes reported by phpstan (one was a bug, yay!)

* add back forgotten trim

* don't remove the template if there is no match

* Match previous behavior, which was inconsistent.

* use anonymous class for tests instead

* Oopsie, Stringable is PHP8+

* fix style
2021-10-29 22:12:20 -05:00
Tony Murray
b979761cef Don't use proxy for localhost (Oxidized and Prometheus) (#13450)
fixes #13382
2021-10-29 10:10:17 +02:00
Tony Murray
f94f7f23b8 Fully convert core to a modern module (#13347)
* Core module WIP

* update OS::make()

* core WIP

* try to finish up

* switch all core do os Model

* Mock WIP

* Working tests

* cleanup

* phpstan fixes

* style fixes

* fix agent

* trim space too
and a couple of cleanups

* corrected ios test data

* missed space

* update test data

* put escapes back

* another net-snmp difference

* Fix class description

* revert snmp.inc.php change, that can be a different PR

* revert snmp.inc.php change, that can be a different PR
2021-10-19 15:43:43 -05:00
Tony Murray
98ee237420 Bump version to 21.10.0 2021-10-16 08:02:35 -05:00
Tony Murray
0b8b97bb68 Push Notifications (Mobile and PC) (#13277)
* Update manifest and add service worker
cleanup icons a bit

* Push notifications WIP

* navigate working

* cleanup

* acknowledge wired up

* Set VAPID keys on composer install

* Component to control notification permissions.

* Allow all user option to validate

* Enable on browser load if transport exists.

* Check for transport before showing user permissions
translations

* Documentation

* style fixes

* access via the attribute model

* fix alerting test

* update schema

* cleanup subscription on disable

* non-configurable db and table for webpush subscriptions (respect system connection)

* revert AlertTransport change
hopefully phpstan can figure it out

* phpstan fixes

* Support custom details display

* Match transport names to brand's preferred display

* less duplicate id errors

* Tests are done in Laravel code now so
remove legacy function usage... could be better, but ok

* Style fixes

* Style fixes 2

* Fix alert test

* Doc updates requires HTTPS and GMP

* unregister subscription when permission is set to denied

* cleanup after user deletion

* delete the right thing

* fix whitespace

* update install docs to include php-gmp

* suggest ext-gmp

* update javascript

* Update functions.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-10-06 07:29:47 -05:00
Tony Murray
8a883140cb Infer character encoding for ifAlias and sysLocation (#13248)
* Infer character encoding for ifAlias and sysLocation
Tries to convert character encoding for non-UTF-8 encoded strings.
This will only work for snmp strings that are type-hinted, not ones forced to ASCII with -Oa or similar
Only works for your default charset or Windows-1251 or LATIN1.
You can set your character encoding in .env with CHARSET

Please save us all and just use UTF-8

* style fixes

* less Yoda

* ensure return type

* fall back to passed string

* don't convert strings with any unprintable characters (such as line return)

* Update LibreNMS/Util/StringHelpers.php

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>

* Fix CP850

* fix space

Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
2021-09-21 08:47:44 -05:00
Tony Murray
c41c25cab6 reorganize release categories a bit (#13249) 2021-09-18 13:22:54 -05:00
Tony Murray
b4b4820cba Bump version to 21.9.0 2021-09-16 22:45:07 -05:00
Jellyfrog
258505ed44 Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
Tony Murray
c5b63bde86 New Blade Components: x-device-link, x-port-link, x-graph-row, x-popup (#13197)
* working popover

* popup component

* cleanup

* finalize device-link component

* attributes WIP

* working graph component

* widgets WIP

* More dynamic configs

* Graph row component

* Build CSS so we can use a dark theme

* graph row set columns

* only one popup visible at a time.

* Just set graph row width statically

* responsive WIP

* rsponsive option for graph-row "working"

* remove @deviceLink and @portLink

* fix non-responsive graph row

* update js/css

* fix style

* bad type?

* types

* types

* types #3

* remove testing code

* full rebel, no closing tags for meta and link

* match previous formatting

* fix vlans display

* restore newline

* remove silly comment

* remove unused line

* style I guess
2021-09-10 08:07:08 -05:00
Jellyfrog
26b95c0ccc Apply fixes from StyleCI (#13208) 2021-09-08 23:35:56 +02:00
Jellyfrog
232b9a414c Apply fixes from StyleCI (#13201) 2021-09-07 20:33:54 -05:00
Tony Murray
9b8b1b814a Validate APP_KEY (#13171)
* Validate APP_KEY
key:rotate command to rotate keys, only rotates validation data for now

* fixes, swapped encrypters, not saving new value to db, check that key exists first

* add confirmation

* Option to generate new key, re-encrypt data and then save it to .env
A lot more text to try to prevent disaster.  Print out both keys 1-2 times.
Fix bug in EnvHelper (when key is commented but not empty)

* fix style

* oops, good phpstan
2021-08-27 22:48:21 -05:00
Tony Murray
8e409ba051 Rewrite ISIS Adjacency discovery/polling (#13155)
* Rewrite ISIS Adjacency discovery/polling
hopefully much faster now, do most work in discovery and just check up/down in poller.

* unused variable

* Implement option for OS override

* fix an incorrect typehint

* test data

* work around stupid migration name

* update schema

* better handling for the on-demand discovery

* more detailed phpdoc

* fix when adjacency is not found

* don't clear out data when adjacency goes away

* Adjust nullable fields

* fixes

* fix class name

* correct migration

* fix bug causing adjacency data to always be blank

* port popups for port links

* isisISAdjState does not need to be nullable

* remove extra space

* default off

* If port is missing return $text

* update schema

* Cleanup old components

* correc copy paste error
2021-08-23 21:19:55 -05:00
Tony Murray
54964e0c42 Release script updates (#13161)
add mibs category
revert changelog when exiting to prevent double log
2021-08-22 19:46:06 -05:00
Tony Murray
e5e2633fbb Bump version to 21.8.0 2021-08-22 15:49:45 -05:00
Kevin Wallace
e981570c34 enclose IPv6 literal in [brackets] for snmpget and unix-agent (#13130)
Co-authored-by: Kevin Wallace <kevinwallace@users.noreply.github.com>
2021-08-19 18:00:06 -05:00