Commit Graph
255 Commits
Author SHA1 Message Date
Yacine BENAMSILI fa52264de2 Fix: F5 LTM bandwidth controller 2020-05-28 23:15:35 +02:00
SourceDoctor f92caf8cf7 Fix - Seperate default poller id and distributed poller groups (#11584)
* Seperate Setting for default poller id

* revert change

* Travis restart

* fixes
2020-05-24 17:55:11 -05:00
SourceDoctor b89eb22cd5 Enumerate AlertState (#11665)
* Enumerate AlertState

* fix typo

* add missing use's

* .

* .
2020-05-23 21:14:36 -05:00
Jellyfrog b09bc07f8f Laravel 6.x (#11397)
* Update Laravel core files

Fix app/Http/Kernel.php

* Use RouteServiceProvider::HOME

* Sync Laravel default config files

* Update composer dependencies to Laravel 6

* fix resources/lang/en/validation.php

* Manually fixing tests

required by travis, fails locally???

* Update wpb/string-blade-compiler

* Add new viewany() authorization policies

* Update minimum PHP version to 7.2

* Re-generate our json test-dumps

Due to:
https://github.com/laravel/framework/pull/16069
https://github.com/laravel/framework/pull/31100

* update truenas data

* fix truenas

Co-authored-by: Laravel Shift <[email protected]>
Co-authored-by: Tony Murray <[email protected]>
2020-05-23 12:05:18 -05:00
Tony Murray f1502a1727 ci should fail fast (#11666) 2020-05-23 08:51:26 -05:00
Tony Murray ce21011aff Rewrite development helper to lnms dev:check (#11650)
* Refactor pre-commit to class

* docs build

* dusk check

* ci mode for checks

* full checks

* other mysql

* make other lint checks actually work
fix pylint finding

* ci is a long opt

* fix undefined index

* dusk fully working

* ask for forgiveness, not permission

* fix whitespace

* skip dusk sometimes

* Handle 3com and other os with digits

* flags instead of if else spaghetti

* convert to command

* cleanup

* missed check

* fixes

* case

* self-check :D

* argument now

* fix bugs from refactors

* another fix

* adjust file change parsing

* refactor execut a bit

* fallback to global quiet when unknown type.

* allow quiet override for specific commands

* output cleanup

* check flow

* start of tests

* file categorizer tests and fixes

* fixes and cleanup

* skipable not implemented...

* more tests, fix bugs

* more tests and cleanup

* wrong command

* fix canCheck and set env properly

* full env fix

* don't allow dusk on user's run as it will erase their db.

* fix os option

* fix whitespace

* don't need to start server

* ci doesn't like that
2020-05-22 20:27:48 -05:00
SourceDoctor 9272cb3b92 Enumerate Alert Level (#11652) 2020-05-22 20:08:05 -05:00
Facundo Caselles 2f86c66afa WebUI - Improved "dark" theme (#11417)
* -Real dark mode, (themed bootstrap)
-removed inverted colors in navbar

* Test data

* FIX: navbar in mono theme.

* Dark mode rrdtool

* Changed background on gridster to match background of the dark theme

* - Icons and links now are grey
- Modernized tabs style into pills,
- button pagemenu-selected fixed

* Improvements:
- bootgrid-th, are now visible (dark mode to the table headings)
- Changed line color of poller and ping in rrdtool

* Fix some codeclimate errors

* Fix airos.snmprec, reverted to original file
2020-05-21 19:04:54 -05:00
Heath Barnhart e414352356 OSPF SNMP Trap Handlers (#11647)
* Intitial push working tests

* Adding unit tests

* created interface state unit tests

* started ospf nbr unit tests

* finished nbr change unit tests

* precommit checks pass

* removed uneccsarry relationship
2020-05-21 15:15:39 -05:00
Tony Murray 266e80ef54 Show Laravel version in about (#11641)
* Show Laravel version in about
We haven't used silk icons in a long time...

* a few cleanups and links
2020-05-20 17:33:31 -05:00
Tony Murray d5a52ca4eb Fix various issues with loading os definitions (#11640)
* Ping only device doesn't display
if os was set to something, ping os wasn't loaded and we try to get overview graphs from it.

* Fix snmp_disable device page load error
When other os is set.

* Revamp os setting loading
the only safe way to access is Config::getOsSetting()

* Remove getOsSetting fallback behavior
Most instances don't use it and it can have unexpected results Config::getOsSetting('blah', 'group') == 'librenms'

* refactor and remove unneeded load_os/loadOs calls now since getOsSetting automatically loads it.

* restore unix overview graphs, they are different
small cleanups

* fix
2020-05-19 14:35:32 -05:00
Tony Murray a82cded552 Handle exception about unserializable route cache (#11625)
* Handle exception about unserializable route cache

* description

* Fix whitespace
2020-05-16 22:22:00 -05:00
SourceDoctor 17698a36f0 Natural Sort Applications by Display Name (#11577)
* Natural Sort Applications by Display Name

* some optimizations

* .
2020-05-15 18:32:09 +02:00
Tony Murray b573c9ef73 Implement OS specific information discovery (#11446)
* Implement OS specific information discovery
That way it doesn't have to be fetched during polling
Also improve discovery process, os is only detected once, in the core module.
EXA is the test os, a couple improvements there.

* Use local variable, then unset it so we don't pollute.

* fix style issues

* test and other fixes

* attribute update fixes

* Update exa data, need new source data

* null missing "os" values

* fix ftos odd character

* fix ftos odd character

* only null for new style or we will reset to null every discovery

* Move device observer to own class

* Handle location, relocate event logging

* update exa e7-2 data

* update ird test data, apparently unicode is now working.

* update Linux ntc, now uses correct icon

* Only load all os on the web, also, we can't load existing the the database isn't connected.

* only for devices that have a location

* revert ftos test data apparently

* revert ird
2020-05-14 11:27:59 -05:00
SourceDoctor 60b0ffbd63 Only Show in TopInterfaces Devices which are up (#11578)
* Only Show in TopInterfaces Devices which are up

* change to macro
2020-05-09 08:47:32 -05:00
Tony Murray 73ac93d729 Fix errors for some devices loading components (#11527)
* Test WIP

* WIP

* port getComponents to Eloquent

* port more

* simpler creation

* change to explicit arrays

* add missed file

* restore commented code

* fix inserting null value for component prefs

* Fix some bugs in setCompenentPrefs
Can't create tests without fixing bugs first :D

* another test

* another test

* Modernize setComponentPrefs

* Test for event log entries

* Fix delete event

* fix invalid values for component toggles

* status log too

* Use Setters to work around bad data, $casts doesn't do what we want.
2020-05-08 00:30:56 -05:00
SourceDoctor e170529692 Python3 Module Dependency Check (#11544)
* Python3 Modul Dependency Check

* code climate

* binary existance check

* move Python Modul Version Check

* .

* adding verbose argument

* args parser nicement

* enhance Validator for detailed approvements

* Update Python.php

* Update check_requirements.py

* python version to Version class
use Process

Co-authored-by: Tony Murray <[email protected]>
2020-05-06 10:58:17 -05:00
Tony Murray c48943550b Fix port permissions (#11560) 2020-05-06 09:12:33 -05:00
Tony Murray 17a8046595 Fix vmhost device page link (#11553) 2020-05-05 09:30:26 -05:00
Tony Murray 65a55dcde2 Sort Top Devices widget descending by default (#11534) 2020-05-02 12:09:41 -05:00
Tony Murray b8248ac1ee Fix show config (#11506)
if the exclude checkbox had been checked in anyway, it always hides.
2020-05-01 22:32:55 -05:00
Tony Murray 3e08e6d6d7 Restore hidden ports tab (#11502) 2020-04-29 23:38:31 -05:00
Tony Murray 055abcf443 Device page dropdown hero button, Performance -> Latency (#11328)
* Throw some shit together, rough outline.

* Reorganize tabs, use tab controllers

* Implement performance (into the latency tab)

* Update resources/views/device/header.blade.php

Co-Authored-By: Jellyfrog <[email protected]>

* Add more tabs

* All controllers created

* Implement routes

* Implement smokeping

* routing and auth

* fix smokeping check

* Implement device dropdown menu

* Update deviceUrl to new style

* Use Gates

* Fix style

* use more appropriate gates

* add show-config gate
remove Laravel helper

* Only show vlan tab if VLANs exist for the device :D

* Fix rancid file check will return false

* revert over-zealous file name changes

* don't need to request the location parameter, just cast to string to avoid bugs when not found

* Move latency tab (ping/performance) to the position of performance instead of ping.

Co-authored-by: Jellyfrog <[email protected]>
2020-04-29 07:25:13 -05:00
Tony Murray fc0c357b23 Toggle dashboard editor without refresh (#11455)
also removes needless route
2020-04-24 22:29:44 -05:00
Tony Murray 4833edb7d6 Don't access the database too soon in Device model boot (#11453)
* Don't access the DB in Device model boot

* check if db is migrated

* use self

* revert sensor link change
2020-04-21 10:19:25 -05:00
Jellyfrog 36e54ab9f1 Use model::class instead of string for binding (#11450)
* Use model::class instead of string for binding

Originally from laravel shift

Shift bindings

PHP 5.5.9+ adds the new static `class` property which provides the fully qualified class name. This is preferred over using class name strings as these references are checked by the parser.

* Shift cleanup
2020-04-21 07:28:48 -05:00
Tony Murray ad7b692654 Config CLI improvements (#11430)
* lnms config:set improvements
--ignore-checks option

* Config option completion
Could use some more refinement, but needs device commands converted to Laravel

* fix whitespace
2020-04-19 21:44:26 -05:00
SourceDoctor cc2894c0df Widget Eventlog Sensors Link and Mouseover functionality (#11380)
* Global Settings - Alert Default Settings

* Revert "Global Settings - Alert Default Settings"

This reverts commit a1af62b146.

* Widget Eventlog - Sensors link and overlib Image

* travis fix

* handling via AppServiceProvider

* collect function

* Travis ...

* static list of Sensor Types

* adding all sensor graph_types

* remove collect

* correct getTypes - remove change to lower case

* class sensor_descr switch

* class sensor_descr switch - revert

* Use standard sensor type names

* move types to attribute list

* going back to changes from 9eee7fad58

Co-authored-by: Tony Murray <[email protected]>
2020-04-19 12:57:49 -05:00
Tony Murray 1c08c11a77 Remove Laravel helpers (#11428)
* Remove Laravel helpers

* Replace qualifier with import
2020-04-18 00:37:56 +02:00
Tony Murray e4b49f59f6 Delete ports via eloquent event (#11354)
* Delete ports via eloquent event
Chunk delete during purge all operations so we don't use too much memory.

* protect against missing device

* fix whitespace

* fetch less from the database when deleting a device's ports
fix output
2020-04-16 09:19:58 -05:00
SourceDoctor f7c85fedfa Toggle visibilty of Dashboard Editor (#11321)
* Toggle visibilty of Dashboard Editor

* code climate

* reposition Menu point

* add Dashboard Menu

* unclickability ob Dashboard menu

* Global Settings - Alert Default Settings

* Revert "Global Settings - Alert Default Settings"

This reverts commit a1af62b146.

* update to Frontend rewrite

* globalize hide_dashboard_editor variable

* .

* .

* remove legacy code

* update link path to laravel routing

* Travis ...

* Travis ...
2020-04-10 14:34:44 +02:00
Tony Murray 7d2a1ae799 Display custom types as in the config file (with ucwords) (#11367)
* Display custom types as in the config file (with ucwords)

* filter same line
2020-04-02 23:38:38 +02:00
Tony Murray 3dae7784de Protect against plugins that leak output (#11364)
* Protect against plugins that leak output

* comment
2020-04-01 11:03:20 -05:00
Jellyfrog daf451cef7 Convert overview page to laravel (#10757)
* Convert overview page to laravel

* Convert more pages

* More fixes
2020-03-31 23:03:02 -05:00
Tony Murray e323074416 Top Interfaces, exclude invalid ports (#11338) 2020-03-24 12:36:19 +01:00
SourceDoctor 40062e0e08 Widget - show selected DeviceGroup in Title (#11299)
* Widget Top - show selected DeviceGroup in Title

* now for all Widgets

* change if statement
2020-03-23 19:23:04 -05:00
SourceDoctor 8c5e03423c Fix: Widget - Device specific mouseover (#11325) 2020-03-23 08:45:20 -05:00
Tony Murray 425ac28bab Fix js warning in settings, update js deps (#11324) 2020-03-22 19:30:58 +01:00
Tony Murray 43a8616efd Some Poller page cleanups (#11287)
* Some Poller page cleanups
Some queries loaded all devices into memory and the counted them, we should have sql count them if we only need a count.
Models should be singular
Use named routes for url generation
Try to keep presentation and data collection separated in blade and controller.

* Update PollerController.php

* Fix style

* Fix new PollerGroup references
2020-03-22 19:29:31 +01:00
SourceDoctor 9092988f7b Fallback to default Poller Group on delete (#11278)
* Fallback to default Poller Group on delete

* rewrite to eloquent

* replace column remove with page reload (refresh everything)

* change access verification check method

* .

* Update PollerGroups.php

Co-authored-by: Tony Murray <[email protected]>
2020-03-20 10:16:49 +01:00
Tony Murray df16de9d2f Refactor Datastores to allow future improvements. OpenTSDB Tags. (#11283)
* Datastores to object oriented code, using the Laravel IoC container

Change instantiation
better DI
move OpenTSDB

Small re-orgs

remove unused stuff

Fix graphs and other scripts

Use DI for all except rrd

fix up connection error handling

Add tests, fix up a "few" things
Add Config::forget()

Style fixes

Don't reference legacy code

remove accidental code paste

Add datastores phpunit groups

some tests

* rebase fixes

* some test fixes

* shorter tests

* shorter tests

* Don't except when rrdtool can't be started.

* restore tests

* fix rrd tests

* fix iterable change upstream

* fix isValidDataset

* fix invalid data bug

* fix mysql incorrect ds

* fix issue with data that is too long

* use regular data_update()

* Use log facade

* OpenTSDB mis-ordered arguments fix

* Making a singleton with different options makes different singletons.  Just use the global config settings to disable datastores.

* only filter tags for datastores that won't it don't modify the tags permanently

* Update copyrights to include original authors.

* Stats for all datastores

* Fix mysql sends different rrd / other ds names

* fix snmp last stats not initialized
remove unused function

* remove unused function and move single use function closer to its use

* InfluxDB does not need to update null or U values.
Skip write if all fields are empty

* Fix smart value checks

* fix style issues

* Make sure port data is stored the same way as before for Graphite and OpenTSDB
Add ifIndex tag to all to be compatible

* Missed rrdtool_tune() call

* Test update WIP

* OpenTSDB now includes tags

* fix style
2020-03-16 09:17:58 -05:00
SourceDoctor 4e349efd11 Rewrite Poller Management to Blade/Eloquent (#11277)
* Rewrite Poller Management to Blade/Eloquent

* remove further no more needed file

* Code Climate

* Code Climate

* hardcode tabs

* change URL style

* change prefix from poller-groups to poller

* .

* parameter fix

* Refactor to use more direct routing.
remove switch statement.

Co-authored-by: Tony Murray <[email protected]>
2020-03-13 20:58:37 +01:00
Tony Murray 82eddfcf27 Sort Settings by translated names (#11280)
If browser language is different from the language set in LibreNMS, it might sort slightly incorrectly.
2020-03-12 11:39:06 -05:00
Tony Murray 7fe895bd08 Revert "Refactor datastores to classes (#9179)" (#11273)
This reverts commit e5dad7a64e.
2020-03-11 07:52:52 -05:00
Tony Murray e5dad7a64e Refactor datastores to classes (#9179)
* Datastores to object oriented code, using the Laravel IoC container

Change instantiation
better DI
move OpenTSDB

Small re-orgs

remove unused stuff

Fix graphs and other scripts

Use DI for all except rrd

fix up connection error handling

Add tests, fix up a "few" things
Add Config::forget()

Style fixes

Don't reference legacy code

remove accidental code paste

Add datastores phpunit groups

some tests

* rebase fixes

* some test fixes

* shorter tests

* shorter tests

* Don't except when rrdtool can't be started.

* restore tests

* fix rrd tests

* fix iterable change upstream

* fix isValidDataset

* fix invalid data bug

* fix mysql incorrect ds

* fix issue with data that is too long

* use regular data_update()

* Use log facade

* OpenTSDB mis-ordered arguments fix

* Making a singleton with different options makes different singletons.  Just use the global config settings to disable datastores.

* only filter tags for datastores that won't it don't modify the tags permanently

* Update copyrights to include original authors.

* Stats for all datastores

* Fix mysql sends different rrd / other ds names

* fix snmp last stats not initialized
remove unused function

* remove unused function and move single use function closer to its use

* InfluxDB does not need to update null or U values.
Skip write if all fields are empty

* Fix smart value checks

* fix style issues
2020-03-10 19:08:00 -05:00
SourceDoctor 0baeab567b Added Mountpoint ignore options to global settings (#11197)
* Global Settings - Mountpoint ignore options

* enhance AppServiceProvider with regex
2020-02-26 13:01:49 +00:00
SourceDoctor c8bdd10e6a Reduce DB polling while getting SNMP data (#11162) 2020-02-18 13:26:41 +01:00
SourceDoctor 6d9deedcc1 Maintenance Mode for a complete Location (#11089)
* Maintenance mode for a complete location

* updatedatabase query

* updatedatabase query

* add missing select
2020-02-03 11:26:08 -06:00
SourceDoctor c07678d55f Mark Devices in Maintenance Mode (#11092)
* Mark Devices in Maintenance Mode

* code climate fix
2020-02-02 08:33:01 -06:00
SourceDoctor 7950893cd1 Alternate Poller IP instead of Hostname (#10981)
* optional alternative poller ip

* add missing schema update

* .

* enhance API Call 'add_device' with overwrite_ip key

* .

* .

* updating docs
2020-01-30 06:20:30 -06:00