* Add Laravel to LibreNMS.
* Try to set permissions during initial install and first composer update to Laravel.
* Fix composer.lock
Fix missing db config keys
* Start building v1 layout
Port ajax_setresolution, inject csrf into jquery ajax calls
Layout works, building menu
Partially done.
* Fix device group list
remove stupid count relationships
* Print messages for common boot errors.
Don't log to laravel.log file.
Log to error_log until booted, then librenms.log
* Fix up some issues with Config loading
Start of custom directives
* Custom blade directives: config, notconfig, admin
* Preflight checks
Only load config files once.
* Update the composer.lock for php 5.6
* Menu through routing
* Start of alert menu
* Better alert scopes
* reduce cruft in models
* Alerting menu more or less working :D
* Fix style
* Improved preflight
* Fix chicken-eggs!
* Remove examples
* Better alert_rule status queries
Debugbar
* fix app.env check
* User Menu
* Settings bar (dropped refresh)
Search JS
* Toastr messages
* Rename preflight
* Use hasAccess(User) on most models.
Add port counts
* Missed a Preflight -> Checks rename
* Fix some formatting
* Boot Eloquent outside of Laravel
Use Eloquent for Config and Plugins so we don't have to connect with dbFacile inside Laravel.
Move locate_binary() into Config class
* Config WIP
* Try to fix a lot of config loading issues.
* Improve menu for non-admins removing unneeded menus
url() for all in menu
* Only use eloquent if it exists
* Include APP_URL in initial .env settings
* Implement Legacy User Provider
* Helper class for using Eloquent outside of Laravel.
Allows access to DB style queries too and checking the connection status.
* Fix up tests
* Fix device groups query
* Checking Travis
* copy config.test.php earlier
* dbFacile check config before connecting
Don't use exception to check if eloquent is connected, it gets grabbed by the exception handler.
Ignore missing config.php error.
* Fix config load with database is not migrated yet.
* Remove Config::load() from early boot.
* Use laravel config settings to init db (this prefers .env settings)
Fix bgp vars not set in menu
add _ide_helper.php to .gitignore
* Restrict dependencies to versions that support php 5.6
* Update ConfigTest
* Fix a couple of installation issues
* Add unique NODE_ID to .env
* Correct handling of title image
* Fix database config not loading. Thanks @laf
* Don't prepend /
* add class_exists checks for development service providers
* Fix config value casting
* Don't use functions that may not exist
* Update dbFacile.php
* d_echo may not be defined when Config used called.
* Add SELinux configuration steps
More detailed permissions check.
Check all and give complete corrective commands in one step.
* Ignore node_modules directory
* Re-add accidetal removal
* refactor: Use snmp.version config option to allow users to set versions available
* Updated to just use snmp default version for auto discovery
* remove additional spaces
* remove use Config
* Refactor database and config init
Connect to the database without loading full config
Load config completely so post-processing is always done consistently.
Erase existing $config when loading, fixes issues in case we load the config twice.
If the database is not connected, don't try to load database settings. (Fixes some db errors on install)
Attempt to remove $config access/modification before init.php
Remove usage of db_name, that might not match the connected database.
Centralize db config loading, so we consistently apply db_test database settings.
Many of these changes are influenced by Laravel port.
* Some safety so we don't assign strings to numeric port field
Smooth out phpunit bootstrap
* Fix a couple of scrutinizer warnings.
* Show composer status in web validate.
Don't duplicate in validate.php
* Create variable to check if a group has been completed.
No longer skips database checks.
Extract a base class.
Fix locate_binary and find_executable issues (mostly exposed by lack of db)
* Update Validator.php
* bgp-peers update
Use IP parsing library more effectively.
Fix update issue
Include comware bgp-peers test data
deeper refactoring
Allow JunOS fallback to BGP4-MIB, some models only use that.
Add junos bgp4 data
Actually update all bpg data in the poller
* fix arista data. refactor some to prevent missing data from mucking things up
* refactor to use $oid_map for BGP4-MIB too
* A few comments to break up teh file a bit
* Junos bgp data an a quick revert for now.
* small cleanup
* fix ios bgp polling, add test data
* check the correct variable
* refactor: Updated discovery to use a core module for sysDescr/sysObjectID use
* final update hopefully
* revert changes
* more changes + docs
* migrated poller to use numerical sysObjectID
* more updates for sysObjectID
* update any alert rules which might have enterprises. in
* moved schema file
* small updates
* updated getHostOS()
* scrut fixes
* updated sysObjectId -> sysObjectID
* updated sysObjectId -> sysObjectID
* updated remainder of sysObjectId -> sysObjectID
* another sysObjectId -> sysObjectID
* fixed secureplatform test data
* Fix tests: $device is not pulled from the database before polling
Also, update the db in the core discovery module.
* Processor Tests!
* Capture data from live devices easily.
* fix up some stuff, remove powerconnect things as they seem to be just broken.
* formatting, fix missing assignment
add netonix processor data
* fix multi-line, always add sysDescr and sysObjectID
ios cpm test file
* revert composer change and fix whitespace issues
* add help text
* missed help text
* tighter debug output
* handle empty strings properly and mibs with numbers
* use keys for sorting as intended
* fix type with empty data
* oops :)
* whitespace fix
* try installing fping
* Fix TestCase collision + cleanup
* mark TestCase as abstract
don't run two instances of snmpsim
* better database dumps, improved capture
* style fixes
* fix quotes add a few more tables
* add --prefer-new, properly merge data
* Support separate discovery and poller data. But don't waste space if they aren't needed.
* refactor to use class
collects all code in one place for reusability
* reorganize
* Print out when not saving.
* Support for running multiple (or all) modules at once.
* tidy
* Change unit test to a generic name and test all modules we have data for.
* Add documentation and a few more tidies
* whitespace fixes
* Fix tests, add a couple more modules, more docs
* More docs updates
* Fix scrutinizer issues
* add bgp-peers
* mib_dir consistency
also, all the snmpget mib_dir lines were unneeded.
* re-add mib_dir for now, can remove the redundancy later if I come up with something.
* fix tests
* fix: devices detected as ibmtl
Guess at the sysObjectID, please report if you have devices that should be ibmtl and are no longer detected.
Add output of os in discovery.
* Always load all os for discovery. Should be cached most of the time.
* feature: Allow snmpget in os discovery yaml
Re-submit after release
* Remove extra trim in discovery and in snmp_get.
also trim() always returns a string, so is_string() check is a waste of cpu cycles.
* fix: ping fails on servers that don't set PATH in cron
Find the full path to fping and persist it in the database.
Adds the ability to persist settings with Config::set()
* Add ability to set webui settings.
No display of for paths, because it would be inconsistent.
* Added support for ping only devices.
* Renamed sql-schema/206 to 207.
* Discovery tried to detect the OS when it shouldn't.
* Updated db_schema.yaml
* Added ping icon.
* Don't show unused graphs and tabs when SNMP is disabled.
* Allow the user to specify OS of ping only devices.
* Removing custom OS now changes it to 'ping'.
* Removed unnecessary use of mres().
* UI select box for SNMP enable/disable.
* Hide device_ping_perf if ping is disable on device.
* Fixed SNMP settings update status messages.
* Added functionality to add ping only devices via the web ui.
* Added ping only option to addhost.php
* Added ping only support to snmp-scan.py
* Moved sql 208 to 211
* Fixed scrutinizer issues.
* Fixed broken ossearch.
* Added ping only support to the API.
* Updated API doc.
* Added (optional) to OS and hardware description. Hid Port Settings, Applications, Modules, Storage, Processors, Memory and Components from the edit menu
* Style fix.
* Updated ping icon.
* clean() instead of mres(). More escaping. Better help in snmp-scan.py and addhost.php
* Fixed scrutinizer issue.
* Always try SNMP in snmp-scan.py, new option for it in addhost.php. Slice instead of chunk in ajax_ossuggest.php. Other minor style changes.
* Updated sql modifications to insert the new column in the same place as in db_schema.yaml.
* feature: Allow snmpget in os discovery yaml
Convert all remaining os except airos.
Affected OS: asuswrt-merlin, ddnons, dsm, extrahop, huaweiups, ibmtl, pcoweb, pktj, qnap, remoteeye4, sentry3, sentry4, tomato
There should be not change in detection.
* Fix, asuswrt-merlin and tomato with snmpsim. May not have been an issue with actual devices because of -Oa leading " was a bit odd.
* missed file
* refactor: convert validations to modules to prep for gui integration
* accidentally dropped, schema update
* fix accidental output to webui
* mention discovery-wrapper.py and re-arrange.
* refine some fix statements
* rename the Config validation group to Configuration.
* fix some scrutinizer issues
remove as many local functions from validator.php as possible
move extensions from pre-check
remove duplicate timezone check
looks like there is some db schema differences between mariadb 10.1 and 10.2, investigating
* mariadb version diff take2
* Check schema version first for database.
Remove stop to go back to command line for install docs.
Add helpful link when there is no devices added to /addhost
* fix incorrect validation for empty string defaults
* Fix style
* Add additional file permissions checks
* catch exception and fail for invalid timezone
Change visuals a bit.
* add php version warning
* fix space
* Added IronWare iface dBm sensor and related OID pr~e-cache
* fixed syntax violations
* added return_num() function and modified ironware dbm sensor to use it
* Update functions.php
* Update ironware.inc.php
* refactor: discovery protocols re-write
extract more code to make it easier to read
use snmpwalk_group
walk lldpRemTable instead of lldpRemoteSystemsData
Optimize discover_device to reduce dns lookups of bad dns names
Make discovery_by_ip behavior consistent between cdp and lldp
move can_skip_discovery to discovery functions
Tested lldp, cdp, and ospf.
* always discover links even if the remote device isn't in system
Fix discover_link always updating
* fix style
* fix update, not fetching id
* increase platform length. Most devices use sysDescr here, which is max length 255
* remove orphaned links
* update db_schema.yaml
* refactor: speed up is_valid_port()
Convert is_valid_port to Config
Several Config optimizations
Update documentation
* fix getCombined() when os key is not set, but global is.
Add more tests
* feature: Improve yaml state discovery
Handle state values that are returned as strings instead of int
Synchronize state values for existing state translations so we can change them without creating a new translation and losing historical data
More extensive/verbose yaml discovery phpunit tests
dbBulkInsert, use the first entry instead of requiring the first entry to be at index 0
* Update sensor state documentation
re-order values for better readability
remove os check
Use snmpwalk_group since it is more flexible
* Add some more debug output in dynamic discovery
* Fixed IPv6 host renaming
* Added get_rrd_dir() and modified other files to use it where appropriate.
* rrd_name() now uses the new function get_rrd_dir(), to make it simpler to modify the escaping in the future.
* Wrong function name in rrdstep.php
* Refactor remove use of pear Net_IPv4 and Net_IPv6
Caution, I added tests to test the functionality of the new functions, but I'm not 100% certain the replaced usages match 100%. Please test.
Left usage in generate-iplist.php because I'm not sure the use of that script, so I didn't want to implement additional functionality to support it.
Add support for ipv6 fo ipInNetwork() function
Add phpdocs to functions
Remove accidental inclusion
Use binary operations instead of string for networKFromIp()
Tidy up binary operations in ipInNetwork()
tidy parsing cidr network
Change to a class based implementation.
Update phpdocs.
Fully catch exceptions for hex parsing.
Fix mistake.
support older phpunit versions
Fix php shifting to negative with php 5
* Fix graph authorization. Uncaught exception and checking an ipv4 against an ipv6 network == fail.
* Also remove colons from hex strings.
* Fix typo in bgp polling
Two passes of removing invalid characters from hex strings. (That way we don't mangle valid IPs)