* Add ISIS discovery and polling for iosxe devices
* remove ModuleModelObserver
* add php stan exclusions as they are already present for the base module
* change port_id to cached lookup
* Create model object instead of using arrays and set properties directly
* remove unneeded space...
* remove null from non nullable field
* revert to extending from ciscowlc rather than os
* remove OS module
* remove phpstan exclusions and fix errors
* add spacing...
* add spacing....
* add spacing
* again...
* Add tests
* Update Iosxe.php
* Update IsisAdjacency.php
* Create 2022_04_08_085504_isis_adjacencies_table_add_index.php
* Update db_schema.yaml
* Update iosxe_asr920.json
* Update Iosxe.php
* Update Iosxe.php
* Update junos_mx5t_isis.json
Co-authored-by: Tony Murray <murraytony@gmail.com>
* New device:add code
pre-requisite for updating other code paths
includes option to set display name
separate validation code from device creation
* remove duplicate community and v3 creds
* style fixes
* some lint fixes
* fix phpstan
* Exception cleanup
improved messages and translations
* port association mode to enum
well, pseudo enum
* defaults and cleanups
* fixed/improved validation messages
* fix tests
* fix stupid ide refactor mistake
* lint fixes
* 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
* Oxidized + Device remove
Was just working on oxidized, but then to properly update nodes after delete, updated delete_device()
* revert dumb style changes
* baseline update and no DI there...
* Fix OS first load and device deletion missing tables
* Configurable device display name
You can just set the display name in device settings.
It also accepts simple template format with the variables: hostname, sysName, sysName_fallback, ip
Default controlled by device_display_default, (set from old force_hostname_to_sysname and force_ip_to_sysname settings
* remove second argument to format_hostname()
* Style fixes
* Update schema
* update phpstan baseline
* Improved settings strings (and add for translation)
* 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 ??)
* 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
* 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
* Fix net-snmp unformatted strings
When net-snmp returns an unformatted string (with quotes around it), it also has backslashes to escape certain characters. Remove those.
* Clean up sysDescr and sysName when setting to Device model.
* Lint fixes
* Hmm, additional formatting spots
Seems that uptime is not fillable, but it used in the new rewrite of Core Module. This fixes it. A few devices in my master instance failed with uptime
* 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
* use Blade view and Eloquent models for plugins
* move views
* fix style
* fix style
* revert mistake
* Update Plugin.php
delete test property "name"
* rename plugin function to settings
* last but not least - rename in Test.php
* Rename Test to Example
* fix typo
* fix style
* fix style
* fix style
* fix style - I hate tabs...
* Extract view calls
* fix method calls and style
* Move Models the the abstract class
* fix style
* Convert to traits
* Change the Example description
* Fix style
* Fix style
* Fix style
* Convert plugin function to Model static methods and delete .inc.php
* fix style
* fix style
* Use scope
* final methods blows up legacy code
* Config > \LibreNMS\Config
* convert the static string to a static method
* Correct placement in the page
* fix tabs
* fix style
* Rename from tait to hook
to make it easier to understand and be complient
* rename file
* Typo
* Started to change the docu
* change to a more usefully Device_Overview example
* and activate of course
* PluginManager
* fix .gitignore
* only php files in the root folder
* corrected .gitignore with all files :)
* Rename the Hooks and ExampleClass for better readability
* Fix style
* Fix style
* Exception handling (especially if DB is not present)
* Fix style and update schema
* fix indentation
* actually correct indent
* fix migration collation check include utf8mb4_bin
* stop phpstan whining
* A view lines documentation
* add typeHints
* Allow return null on handle
* lint
* fix return types
* fix logic of column collation check
* Fix MenuEntryHook
* switch to longtext instead of json type for now :D
* try phpstan on PHP 7.3
* set phpstan target version to 7.3
* all the typehints
* optional
* more
* Use namespace to prevent view collisions
disambiguate plugin and hook
no magic guessing of names in PluginManager, bad assumptions
remove unused plugins from the DB
* cleanup plugin menu
* cleanup on shutdown and ignore but log query error on cleanup
* instanceof must be called against an instance
* Allow multiple hooks per plugin
* Port plugin ui code to Laravel
* page instead of settings for v1 plugins
* actually working settings pages
a little url cleanup plugin/admin -> plugin/settings
* fix style
* Add page hook
* PHPstan
* Try to fix Illuminate\Http\RedirectResponse
* typehint
* Rewrite the doc
* Fix style
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
* 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>
* Fping WIP
* Update availability, move ping rrd update in the same place as db update.
* move classes around
* make device:ping command work
* use new code, remove legacy code
* save metrics boolean prevents all saves
style fixes
* update device array
* style fixes
* Update unit test
* fix whitespace
* Fix Fping stub
* fix backwards if
* fix phpstan complaining
* Fix return type
* add fillable to DeviceOutage model.
* device_outage migration to add id...
* missed line in db_schema.yaml
* 1 billion more comments on the brain damage up/down code
* tests for status and status_reason fields
* fix style again :D
* Duplicate legacy isSNMPable() functionality
but with only one snmp call ever 😎
* Remove unused variable
* fix migrations for sqlite
* 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
* 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
* Common contexts for polling
Don't store contexts on the device array, use the device model
Also should be easier to add different contexts later.
* rename variables for consistency
* two-factor UI config and status display additions
* force test re-run
* removal of blade foreach via keyBy
* remove where clause against all()
* attempt where filtering with keyBy
* use @config and getPref in blade
* another forgotten @config changed
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* Definition of a new SLA module to migrate from old cisco-sla and support other devices : Juniper RPM and Huawei
* Change wrong description name of module SLA
* Re implementing Juniper RPM support in a new module Slas (Cisco SLA to be added)
* Added Graphs for Juniper RPM types
* Tried to make discover and poller generic : to handle Cisco SLA and Juniper RPM and others
* Reimplementing Cisco SLA in the new Sla module and adding condition to manage both SLA and RPM
* Definition of a new SLA module to migrate from old cisco-sla and support other devices : Juniper RPM and Huawei
* Change wrong description name of module SLA
* Re implementing Juniper RPM support in a new module Slas (Cisco SLA to be added)
* Added Graphs for Juniper RPM types
* Tried to make discover and poller generic : to handle Cisco SLA and Juniper RPM and others
* Reimplementing Cisco SLA in the new Sla module and adding condition to manage both SLA and RPM
* Fix some error due to Elequent object replacing SQL request
* Fixing indentation
* Fixed continuous integrations errors
* Fixed continuous integrations errors part 2
* Fixed continuous integrations errors part 3 : missing last new lines
* Fixed PHP Static Analysis checks
* Fixed continuous integrations errors part 4
* Fixed PHP Static Analysis checks part 2
* Trying to convert existing cisco-sla to new slas one
* Trying to add slas to fix test failure (I am pretty sure this is not enough but I don't know how to do it)
* Switching old cisco-sla module declaration to new slas module in concerned OS files
* Fixing wrong sla module name instead of slas in concerned OS files
* Fixing wrong module name sla changed to slas (as is it in power-supplies reimplementation)
* Fixing some warnings shown in the Inspection CI but skipping some that are already present
* Adding tests files from virtual Juniper VMX and adding slas modules in /tests/module_tables
* Adding missing SNMP data files
* Module Slas modifications to use inheritance
* Fix CI errors
* Fix CI errors part 2
* Fix CI errors part 3
* Fixing no value on RTT graphs
* Fixing only last SLA to be polled : problem with loops
* Fix CI errors part 4
* Optimizing a little the Juniper RPM poller part
I wanted to query only the required values but it is complicated to query a specific OID
as Cisco-SLA does because the owner and tag are hardcoded in ASCII decimal with strange values.
So I use the function snmp_walk which gets the whole OID values in text.
And I index the Juniper MIB (because we want multiple values). But I changed the DISMAN MIB
requests to get only what we want.
* Fix CI errors
* Fix CI errors part 2
* Fix CI errors part 3
* Fixing PHP Static Analysis error 2/4
* Fix CI errors
* Implementing Interfaces to fix some errors that occurs with inheritance
* Adding missing Interfaces files
* Moving generic Sla discovery code into Junos Class
* Fix CI errors
* Fix CI errors part 2
* Fixing missing definition of SlaDiscovery in Cisco shared Class
* Fixing missing import for Illuminate\Database\Eloquent\Collection
* Fix CI errors part 3
* Fix PHP Static Analysis error
* change type strings to use translations instead of config
* IOSXR test data
* remove test data garbage
* simplify discovery
* Fix style
* Updating test files to adapt mock sla_nr ID starting from 0 and not 1 : CI tests should pass
* clean up polling
add rtt field in the db
cisco icmpjitter seems to have confused a lot of values
* rtt on discovery
* use crc32 for consistent sla_nr values
* revert snmprec
* Fix style
* correct schema
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Oxidized API cleanup
Import more settings to the UI
use lnms config:set
* validate os and type exist
* map settings WIP
* oops
* editing working. Needed to add new property to pass update state to child
* implement deleting and handle text overflow a little better.
* Update app/Models/Device.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Update app/Models/Device.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* revert change
* fix style
* add return
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Define Port Groups
* .
* .
* .
* API Calls
* .
* .
* .
* minor changes
* .
* update forms
* remove link
* .
* change column settings
* change migration
* change update position
* db migration fix
* .
* .
* .
* add missing doc reference
* update test data
* update test data
* update test data
* .
* .
* .
* .
* .
* .
* .
* .
* port group association in seperate table
* .
* .
* show all found groups on port
* select multiple Portgroups per Port
* change on migration file
* change query to eloquent
* Code changes
* move port group menu to ports main menu
* port group update to eloquent
* .
* .
* update to new setting way
* add missing merge parameter
* Use select2 and port some things to Laravel
some fixes, hopefully no new added bugs
* schema
* don't use on update restrict unfortunately
* remove unused import and revert changes
Co-authored-by: Tony Murray <murraytony@gmail.com>