* Allow different config sources to completely override a setting from the previous
This is an issue with array settings. The previous code would merge the two arrays together, possibly leaving artifacts behind.
* Missed one
* add lnms commands to get and set config settings
lnms config:get and lnms config:set
Note: you cannot override settings in config.php
* Update to check setting exists and value validation rules.
* initial db/defaults dump
* numeric values
* Remove $config['time']
* Use config_definitions.json
* try setting definition as a complete array
* a little more
* fix format
* WIP converting dynamic setting pages
* rewriting the webui
* remove legacy and add translations
* finish email section
* improve navigation
update js a bit
* Import the remaining existing settings
* Update backend still some wip
migration
* fix config loading (db not overriding defaults)
* some cleanup
* more array collapsing
* update settings
* Settings search
* add purge settings to ui, order groups and sections
* collapse more arrays
* Auth definitions WIP
* remove needless slash escapes
* add warning to json
* moving settings from defaults.inc
* remove slow_statistics
* Move rrdtool settings to the poller section
* Use translations more consistently
* removing more settings from defaults.inc.php
* show setting name in tooltip
* allow help text to be shown on mobile
* disable settings that are set in config.php
* Implement undo and reset to default.
* Vue.js functional
* Vue.js WIP
* Implement tabs component
* accordion WIP
* lodash ver update
* two items
* Accordion somewhat working
* hash navigation
* Refine Accordion
* Fix up tab styling a bit
* Cleaner tab selected property
Hide html while loading
* spinner?
* Icon support
property for accordion to active
* WIP
* Tabs/Sections from ajax
* Setting Component skeletons
* Dynamic Component resolution
* Basic functionality
* toggle class
* Refactor components
* translate tabs and accordions
* simple array attempt
* improve readonly tooltip
* array styling
* array value editing
* organize snmp info
* Handle initial tab/section in url
* Use Laravel to parse tab/section, dump old
* Draggable array entries
* v-tooltip, for clickable (and touch) help tooltips
disable draggable
* Navigation WIP
* Navigation WIP
* groups computed
* filter settings
* fix event reference
* vue.js i18n initial
* missing description = just setting name
* en fallback
* tidy up the language support and js generation
* persist value to db
* fix issue with 0
* Delete settings from DB instead of setting them to default
* ldap-groups
fixup style
* Default dashboard selection
* fix array of options instead of object
* allow custom validation for settings
* translate options in SettingSelect
* SNMP v3 WIP
* fix setting arrays
* Split persist out of set
* Hook up events for SNMP v3 Auth
correct Config::persist behaviour with arrays
* dependent settings (primitive for now)
actually update the settings values in the LibrenmsSettings component
* more complex "when" behaviour
* remove un-needed seeder
* add poller_modules.cisco-qfp
* remove en.json (disable warning)
* don't set default for log_dir or log_file, otherwise it won't be processed correctly
* Fix module order
add some missing settings
* more config corrections
* correct graphs
correct loading values set to null (although it should have no difference)
remove project_name_version
* Add nfsen settings. Docs are very confusing, so might have flubbed something
remove option for array definition of select option as numeric indexes messes it up
* Correct more upstream config differences
* Config cleanup after a bunch of merges.
* Fixes
* add version tags to js/css files
remove old js
* Print out full settings list read-only
* Add http_proxy setting
fix indents in config_definitions.json
* repeaters default is 0 (aka 20)
* cleanups
* rewrite the dynamic config docs
* add language docs
* Don't show snmp v3 auth add/remove if disabled by config.php
* Refactor tests
Boot Laravel for all tests.
Config use private static property for storage instead of global
* Backup/restore modules
* disable snmpsim log
* Fixing DBTestCase
* Fix macros loading to the wrong place
* trap and other tests should check if db is available
* don't include snmp.inc.php if mock.snmp.inc.php is already included...
* fix migration
* if we don't reset the db, run migrations at least.
* set vars for migrate too
* Fix style
* ignore issues with undefined indexes in legacy code
* Store config data serialized
This way we can store null, booleans, and more reliably.
* Use model to get the mutated output.
* fix whitespace and unused function
* use json_encode/decode and casts
migration to transfer
* json_encode JSON_UNESCAPED_SLASHES
* Use JSON_UNESCAPED_SLASHES. That is only relevant if you are printing into an HTML page.
* pre-encode the seed...
* filter other fields besides config_value
In case we try to filter the component by it's `id`, we ran into ambiguity issue because both `component` and `component_prefs` tables have column `id`. Fixed by filtering explicitly on `component` table.
* Add ECS4110 cpu usage
* Add cpu usage oid for ECS4110
* TESTED
* Fix EdgeCore ifOperStatus does not follow the Cisco convention
* Since EdgeCore use "lowerLayerDown" in ifOperStatus when port is unplugged
* On the other way, Cisco use briefly "down".
* So change "lowerLayerDown" to "down" to workaround the bug that will make port always show as up/up
* Refactor Edgecos cpu usage oid
* Codeclimate is unhappy about it maybe the refactor will make it happy.
* Add EgdeCore ECS4110 MIB
Just got MIB from EdgeCore
* Refactor Egdecos Mempool
* a bit refactor of Mempool discover and polling
* add support for ECS4110 via MIB
* Modify ECS-4110 MIB
* MODULE-IDENTITY change from ECS4110-52P-MIB to ECS4110-MIB
* strip off syntax error part(time range)
* Add EdgeCore ECS-4110 OS polling
* polling OS and Hardware via MIBs
* Fix typo
* Sorry that I am dazzled
* Fix Syntax Check
* Codeclimate is a bit aggressive
* Update edgecos.inc.php
* Update edgecos.inc.php
* Revert "Fix EdgeCore ifOperStatus does not follow the Cisco convention"
This reverts commit 27971b34a8.
* Add snmprec file for unit testing.
* Create edgecos_ecs4110-28t.json
* Added Cisco QFP processor discovery
* Fix QFP index loop variable name
* Add test data for IOS-XE processors (from ASR1001-HX)
* set the right variable
* Fix creating device groups issue
Not being able to write the device relationships file should not be fatal
* remove @
* bootstrap.php calls this, Laravel isn't booted yet
* d_echo does not include \n
* Catch exceptions generated by alert transports
The alert.php script would completely die if a single alert
transport generated an exception. For example the API transport
if CURL couldn't connect to the api endpoint. The script
should attempt to send alerts to all working transports and not
die because a single transport fails.
* Move alert transport creation into try block
Catch any potential exceptions during transport creation.
None of the transports currently implement __construct()
but the DB could throw and in the future there may be
a transport that does implement it.
* Added more DELL switches in order to get proper CPU stats
More DELL switches supported:
* N4032
* N2048
* N2024
* N3048
* N2048P
* 54XX
* fixed indent as requested by phpcbf
* fixed multiline argument function call
* removed blank lines
* Added CPU stats for N4064F
* Added test data for N4064F
* fixed indent as requested by phpcbf
* Added test data for Dell Powerconnect 5424
* Added test data for Dell Powerconnect 5448
* Added test data for Dell Powerconnect 5524
* Added test data for Dell Powerconnect N4032
* Added test data for Dell Powerconnect N2024
* Added test data for Dell Powerconnect N2048
* Added test data for Dell Powerconnect N2048P
* Added test data for Dell Powerconnect N3048
* Fixed processor usage data
* Fixed snmpsim data for 3056
* Fixed processor usage
* easier to read format
* remove space changes
* 3056 should be 8%
* Fix installer not generating tmp directory directive
This fixes a usecase when open_basedir is set, not allowing php to write to default temp directory /tmp.
In that case, temp directory is set by `php_admin_value[sys_temp_dir] = /var/www/site/tmp`
Without setting config['temp_dir'] in generated config.php, LibreNMS will use /tmp regardless of what is set in fpm configuration.
* is_writeable and is_writable are both valid, but let's stay consistent
* Make $config['temp_dir'] non static
* Remove $config['temp_dir'] from standard config.php
* Make sys_get_temp_dir() fallback to '/tmp'
* Update defaults.inc.php
* Update install.php
* Update Config.php
* Update defaults.inc.php
* Update defaults.inc.php
* Laravel 5.8
and dependencies
* Fix cache time
* upstream base file changes
* Accidentally ran composer with PHP 7.3
* fix test error
* one more
* one more
* one more
* fix dotenv loading
* Remove auth use of $_SESSION
Will break plugins that depend on $_SESSION, Weathermap was already fixed.
Port them to use Auth::check()/Auth::user()/Auth:id()
* revert accidental replacement
* initial database migrations
* first part, discovery
* second part, polling
* add SAP polling and discovery
* style checks
* rename variables in more generic way
* html global pages for sdp and sdp binds
* add Services and SAPs
* port links, database, etc.
* html device routing pages
* add tests
* checks
* rework database id relationship
* scruntinizer inspection
* fix unit test for new mpls tables
* Modification of the getUserlist fonction to use ldap filter
* Modification of the getUserlist fonction to use ldap filter V2
* documentation of auth_ldap_Userlist_filter option
* documentation of auth_ldap_Userlist_filter option V2
* Allow filtering of getUserlist LDAP function
* Changed snmptrap.php and handlers to allow for alerts.
* Moved RunRules() to Dispatcher.php
* Modified includes, passes pre-commit tests locally.
* Converted RunRules to OO, fixed formatting in files found by TravisCI
* rebase, covert alert subsy to oop
* Modified init.php to call new Alert subsystem
* fixed dependencies
* Resolved undefined functions
* Fixed PingCheck.php not triggering
* Changed runAlerts to __construct
* Fixes
Can't have Config inside empty()
incorrectly named function (my fault)
poller.php missing shebang
organize imports
* Add support for using Markdown.
Alert templates can be written using Webex Teams (i.e., Spark) Markdown,
which makes for some richer alerts. This option defaults to false to
maintain Principle of Least Astonishment.
* Update Cisco Spark docs.
* Mention that Cisco Spark is now called Webex Teams
* Add support for Markdown
* Refactor text.
Do not exceed 80 characters per line.
* Refactor code to meet style guidelines.
* Remove errant tabs and use spaces instead
* Correct type check
* Remove use of 'else'
* Allow new {{ $xxxx }} syntax
* Properly handle urlencode on variable values without braking the URL, and uses Blades
* Doc
Doc typo
* use Guzzle for HTTP requests
* Add Basic auth support
* Doc update
* clean
* Revert Blades, but keep the {{ $xxxx }} syntax
* Revert Blades, but keep the {{ $xxxx }} syntax
* Init Vars and comments
* Notifications
* api-options are not required
* Update notifications.rss
* Device Groups rewrite
Updated web ui
Static or dynamic groups allowed
Alert rule query builder
Translation support
Permissions support
* cleanup, make relationship save, and validate it
* builder WIP
* rules builder and rules saving/loading
* Parse query builder to Laravel Fluent query
* Upgrade existing groups when editing.
Properly update only dynamic groups when polling.
* remove unused old code
Update API and other places to use Eloquent
* debug output in poller restored
* Fix up some things
creating static
improved validation
fix js error on creation
Fix static groups in polling
* hide pattern for static group
* Implement authorization
Use in the menu too
* update schema
* fix rollback
* Don't abort on invalid queries
* fixes to query builder
* add test data, looks like macros aren't handled (omitted them because groups don't use them generally)
* Add macro support for QueryBuilderFluentParser
* add test for macro that accepts value
* More space in forms
Retain rules when converted to static
no duplicate names allowed
* Better error feedback
Update related devices on save
* Add button icon
* format
* update docs
* fix tests
* Fix some QueryBuilderFluentParser issues with OR
updated/more test data
* Show device groups runtime
fix querybuilder.json format
* Store table joins in the rules to minimize polling time
Update group joins in daily.sh (and when they are saved)
* Update daily.php
* Add units to time
* Device Groups rewrite
Updated web ui
Static or dynamic groups allowed
Alert rule query builder
Translation support
Permissions support
* cleanup, make relationship save, and validate it
* builder WIP
* rules builder and rules saving/loading
* Parse query builder to Laravel Fluent query
* Upgrade existing groups when editing.
Properly update only dynamic groups when polling.
* remove unused old code
Update API and other places to use Eloquent
* debug output in poller restored
* Fix up some things
creating static
improved validation
fix js error on creation
Fix static groups in polling
* hide pattern for static group
* Implement authorization
Use in the menu too
* update schema
* fix rollback
* Don't abort on invalid queries
* fixes to query builder
* add test data, looks like macros aren't handled (omitted them because groups don't use them generally)
* Add macro support for QueryBuilderFluentParser
* add test for macro that accepts value
* More space in forms
Retain rules when converted to static
no duplicate names allowed
* Better error feedback
Update related devices on save
* Add button icon
* format
* update docs
* fix tests
* WIP - Add MPLS Support
This introduce the generic MPLS support
- New database tables for MPLS LSPs
- actually discovery and polling on NOKIA SR OS (Timetra) devices
- new routing->MPLS HTML pages
- ToDo MPLS LSP paths table and views
Suggestions and improvements are welcome
* add db schema
* some fixes
* add path table, discovery and polling
* add path views
* add test data
* Convert MPLS module to new style
Implement a SyncsModels trait to simplify code a lot
* abs() for negative value from snmp (bug?), test data
* fix db schema
* Fix up test data, remove uneeded data in json
* fix whitespace
* Update Url.php
Ad css class to onmouserover event and overlib, easyer to change color of background ex.: for a dark theme vs bg color hardcoded
* Update styles.css
* Update Url.php
* Update librenmsv1.blade.php
service_alerting_enable no will properly disable alerting (may be set globally or per node)
service_alerting_frequency will no properly control frequency (set globally the same, via db is best)
* fix client count polling, add ap count polling.
* Set low warning/critical thresholds for AP count sensors
* Add Aruba AP Count Warning and Critical Alerts to collection, lint alert_rules.json
* add newline at end of alert_rules.json
* add/update tests/data/arubaos*.json test data
* Support for system APP_LOCALE
* Start preferences re-write
* port 2fa form
* Working user preferences
* Language user preference
* Don't look up locale from the DB every request
* Device list working
* Deny demo user middleware
* Finish password changing
* remove used resource methods
* remove leftover use
* warn that translation is incomplete
* fix style
* Fix Cisco MAC acounting discovery, polling and HTML templates.
* Remove empty code.
* Provide test data for cisco-mac-accounting module.
* Added module test dependency.
* Refactor LibreNMS service
add ping
* services ported
remote legacy stats collection
* alerting
* implement unique queues
* update discovery queue manager
* remove message
* more cleanup
* Don't shuffle queue
* clean up imports
* don't try to discover ping only devices
* Fix for discovery not running timer
* Update docs a bit and and add some additional config options.
Intentionally undocumented.
* Wait until the device is marked up by the poller before discovering
* Handle loosing connection to db gracefully
* Attempt to release master after 5 db failures
* Sleep to give other nodes a chance to acquire
* Update docs and rename the doc to Dispatcher Service to more accurately reflect its function.
* add local notification
* Merge pull request #54 from librenms-plugins/revert-52-PluginNamespaceCorrection
Revert "Adding namespace LibreNMS\Plugins;"
SMS Eagle prevent user mis-configuration
Only allow URLs, but automatically append http:// to ones that are only hostname
* restore whitespace
* Specific order for release section labels
Only display a PR in one section based on label priority
fix breaking change label
fix markdown for release header
* correctly ignore PRs marked as such
* no need to return a value
* Merge pull request #54 from librenms-plugins/revert-52-PluginNamespaceCorrection
Revert "Adding namespace LibreNMS\Plugins;"
Fix plugins menu
* Only use scrollable where needed
* New OS: Aruba Instant
* New OS: Aruba Instant
* recreate test data
* remove aruba_instant test data
* remove empty file includes/definitions/discovery/aruba-instant.yaml
* fix state sensor discovery
* remove minor changes to includes/polling/functions.inc.phpwq
* move mac helper functions to Rewrite class
* simplify snmpwalk_group usage, general code cleanup
* fixes
* fixes
* fixes
* fixes
* fixes
* fixes
* recreate test data for 105 variant
* Add Client sensors for 8.4.0.0+
* begin stream-lining discovery and polling. separating discovery functions
* update test data
* update test data
* update test data
* improve mempool discovery/polling, clean up os polling, improve state discovery, improve os definition, misc fixes to wireless sensors module
* attempt to implement custom AP and client discovery and polling
* code fixes
* re-add ap count top graph
* more fixes
* more fixes
* more fixes
* more fixes
* remove some debugging, update test data
* code cleanup
* code cleanup
* address some scrutinizer warnings
* Move services graph code from device to service and remove unused code
* Add proper support for services to dashboard graph weidget
* Fix phpdoc in ServiceController still pointing to MuninPluginController
* Remove legacy index php file
* fix routing page missing data
* WIP
* fix $navbar global usage
* remove global use of $locations
* ObjectCache again...
* move vars.inc.php to init.php for legacy ajax
* navbar is more local than I thought before. Fix it.
* Fix some sensors tables escaping
* restore custom menu functionality, but with blade
and docs
* cleanup
* tidy menu @if checks
* Fix up the rest of the global variables and remove print-menubar.php
* consolidate some counting in the menu
* filter out empty custom port descr types
* Fix up custom port groups
* Fix up apps menu
* Fix services menu when all are ok
* Limit cached data to the user it is for
* Fix style
* A few clean ups
* fix pseudowire bug
* initial commit of junos handlers
* added DOM alarm test, refactored handlers for DOM alarms
* fixed some formating issues with last commit
* Created DOM alarm handlers and unit tests
* Made tests for LSP Down handler
* Added trap tests for JnxVpnSes*, JnxVpnIf*, JnxVpnPw*
* Added BGP4 trap handlers and tests
* Fixed some variable names for codeclimate
* Simplified JnxBGPM2* handlers
* updated unit tests
* Added SNMP Trap Handlers for Adva Ethernet devices
* Fixed formatting.
* Fixed errors from previous commit.
* Refactored AdvaAttributeChange.php
* Updated a few handlers, added test script.
* Added changes to snmptraps.php to make handlers active
* Fixed issues found by travisci
* Missed two mistakes in travisci, fixed. Should be ready for human eyes.
* Added SNMP Trap Handlers for Adva Ethernet devices
* Fixed formatting.
* Fixed errors from previous commit.
* Refactored AdvaAttributeChange.php
* Updated a few handlers, added test script.
* Added changes to snmptraps.php to make handlers active
* Fixed issues found by travisci
* Missed two mistakes in travisci, fixed. Should be ready for human eyes.
* Added two tests.
* fixed error
* Updated handlers with changes introduced in 1.50
* Refactored and added a few tests
* Added test for StateChangeTraps
* Added AdvaObjectDeletionTest, still wip as I need to recapture flow del.
* Added Network Element Alarm Trap Test
* Added more tests, but they are wip.
* Finished traps handler tests, few handler refoactors.
* fixed style errors and refactored as requested
* made requested changes to threshold trap handlers
* removed a test script
* modified adva port threshold handler
* Update AdvaAccThresholdCrossingAlert.php
* Update AdvaNetThresholdCrossingAlert.php
* removed static method
* fixed mistake in AdvaNetThresholdCrossingAlert.php
* Security fix: unauthorized access
Affects nginx users:
Moved php files outside of public html directory (Apache was protected by .htaccess)
Affects all users:
Some files did not check for authentication and could disclose some info.
Better checks before including files from user input
* git mv html/includes/ includes/html
git mv html/pages/ includes/html/
Windows puts line returns as \r\n, when parsing LibreNMS previously left the \r, which could cause issues
Centralize the code so we just have one place to fix.
Try to fix SMSEagle, it had the options wrong (copied from another transport)
* First attempt of Up/Down time
* First attempt of Up/Down time
* Moved to Time::formatInterval()
* cleaning
* last polled in casts
* Cleaning the variants of formatUptime()
* Cleaning in ./html/includes/dev-overview-data.inc.php
* Cleaning in ./html/includes/dev-overview-data.inc.php
* Cleaning in ./html/includes/dev-overview-data.inc.php
* updated includes/polling/core.inc.php
* updated includes/alerts.inc.php
* clean accessors
* Ignore session.cookie_secure errors
They happen if the session is already started.
* Don't allow secure cookies to be enabled when not accessing via https
* Completely remove the setting
* Reorganize trap tests
* Testing db DRIVER to prevent .env from interfering
* New code to detect if Laravel is booted. Hopefully more reliable.
* WIP external test process
* revert module test helper
* Use .env in Eloquent::boot()
* Fix test database settings loading
* fix undefined classes
(didn't find the one I needed)
* Fix incorrect Config usages
And RrdDefinition return type
* fix .env loading
* use the right DB
* slightly more accurate isConnected
* Move db_name to DBSetupTest specifically
* restore $_SERVER in AuthSSOTest
* missed item
* WIP
* tear down in the correct order.
* some testing cleanups
* remove check for duplicate event listener, it's not working right
* Don't need this change anymore
* Implement Log::event to replace legacy function log_event()
* fix port tests
* fix up tests
* remove pointless TrapTestCase class
* fix style
* Fix db config not being merged...
* skip env check for tests
* defer database operations until after Laravel is booted.
* don't include dbFaciale...
* redundant use
* Reorganize trap tests
* Testing db DRIVER to prevent .env from interfering
* New code to detect if Laravel is booted. Hopefully more reliable.
* WIP external test process
* revert module test helper
* Use .env in Eloquent::boot()
* Fix test database settings loading
* fix undefined classes
(didn't find the one I needed)
* Fix incorrect Config usages
And RrdDefinition return type
* fix .env loading
* use the right DB
* slightly more accurate isConnected
* Move db_name to DBSetupTest specifically
* restore $_SERVER in AuthSSOTest
* missed item
* WIP
* tear down in the correct order.
* some testing cleanups
* remove check for duplicate event listener, it's not working right
* Don't need this change anymore
* Implement Log::event to replace legacy function log_event()
* fix port tests
* fix up tests
* remove pointless TrapTestCase class
* fix style
* adding paper tray status and error states
* adding paper tray test data
* Create jetdirect_papertray.json
* Store printer supply type
* Update json data
* fix style
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* accessing in YAML each part of the index in case oid has more than one
* Codeclimate
* Initialisation + comments
* Like this
* Cisco Sat Receiver
* Formatting Fixes
* Code Climate Fixes
* Add $entry field in the last array.
* Formatting Fixes
* Updated to correct S/N was grabbing wrong OID.
* Update test data for missing serial #
* Updated Serial # test data
* Fix icon finding
Also fix os suggest not loading all OS.
* Fix os that would have missing icon under the new code (and one under the old code)
* forgot icon
* Fixes for SZ detection
* Ruckuswireless devices
* remove registered mibs
* Code Climate Fixes
* updated test data for zd1100 & zd1200
* Updated database test data
* trying to fix smartzone test data
* updating zd test data
* more code climate fixes
* Update ruckuswireless-unleashed.yaml
* hide total clients if 1 ssid
* fixing smartzone ap status
* smartzone ap count fixes
* fixes because of git
* fix zd ap counts
* Update ruckuswireless-sz.json
* Update ZD1200 test Data
* Update ruckuswireless-sz.snmprec
* Update Database test data
* Update zd1200 database data
* Update ruckuswireless_zd1100.snmprec
* Update ruckuswireless_zd1100.json
* Update ruckuswireless_zd1100.json
* Update ruckuswireless_zd1100.json
* Code Climate Fixes
* Code Climate Fixes
* Update Ruckuswireless.php
* Code Format Fixes
* Add lnms user:add command
Uses events to mark past notifications as read (even for non-manually added users)
* Filter out previous options from auto-completion
* use validation to check cli input
* Warn if using other auth
* abstract LnmsCommand
* Use setPassword helper for hashing instead of mutator
* Extract validation function
* Removed legacy transports and templates code
* Add notification
* abstract LnmsCommand
* Only issue alerts "legacy" alerts to mail for default contacts, etc.
* Prevent no contacts error when default contact is not specified, or there are no contacts for other reasons.
* remove eval \o/
* Update notifications.rss
* Change in the Canopsis transport to make it 3.9.0 compliant and link to
the new documentation
* Add missing php72 module on Centos
* Fixing documentation for AMQP based tranport outside of the main doc
* add migrate:install to lnms, but hide it
* Fix Database migration validation
* remove extra import
* Don't allow install to continue if db build fails