* 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
* 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
* 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
* 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.
* 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 <Jellyfrog@users.noreply.github.com>
* 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 <Jellyfrog@users.noreply.github.com>
* 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
* 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 <murraytony@gmail.com>
* 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
* 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
* 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 <murraytony@gmail.com>
* From a device's SNMP edit form, when attempting to remove previously set Max Repeaters or Max OIDs values, a fatal error
was being thrown.
* Fix Call to a member function delete() on null {"userId":2,"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Call to a member function delete() on null at /opt/librenms/app/Models/Device.php:406)
* This patch corrects the ability to use the device's SNMP edit form to remove device attributes that had been previously set. The values of Max Repeaters or MaxOIDs can now be deleted from the database.
* Initial push
* power trap tests
* vmware heartbeat trap tests
* heartbeat trap test
* created utilclass for common functions
* Changed util class name to better reflect its use
* make vm power state changes to db
* Traps will modify DB
* Removed unecesarry relationship
* Added vminfo modelfactory, tests, and fixed format
* Added suspended state to ui
* extend FS switches support
* MIB compilation
* HW and Ver
* sensors and CPU
* tests
* correct version
* try to handle properly "down" as not up, for OperStat like lowerLayerDown
* try to handle properly "down" as not up, for OperStat like lowerLayerDown
* try to handle properly "down" as not up, for OperStat like lowerLayerDown
* try to replace "down" with "not up" :)
* fix other ifOperStatus checks
* update nokia mibs
* database migrations
* add code
* html code
* update db schema
* add test data
* add FIXME
* move mibs/nokia/MPLS-TE-MIB to mibs/MPLS-TE-MIB
* Device group based access
* Use Permissions class to resolve permissions
Also give port access based on device access
* Convert more pages to use Permissions class
* shorten config setting name
use Eloquent relationships in several places
alphabetize config_definitions.json
* Change Models and Permissions
* Clean up ajax_search LIMIT sql
* Convert more pages to use Permissions class
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Clean broken VRF lite code
* Change DB table for route discovery
* Add VRF simple support
* add port_id to db and discovery
* static-fy the translation arrays
* sort and search cleaning
* Sorting refactor and validation
* formatItem shortened
* Handle ifIndex==0 meaning no next hop defined (MPLS)
* Sync all create/updates
* purge in daily
* remove old route table
* get rid of inetCidrRouteNextHop_device_id
* fix wonky column orders
* add route snmprec
* fix sorting by interface
* Move to new config
* rename to route the new table
* Properly display ipv6 compressed addresses
* Translation before merge ./lnms translation:generate
* Update manifest
* Device Cache
also some additional device related models
* attribs from cache
* replace common attribute functions
* remove legacy cache usage
tidy up some collection manipulation
remove some unused or single use functions
* cleanup some items
* always return a device, to prevent bugs
* clear device cache when testing after each test
* fix double assignment
* Clean up function to take advantage of null object
* user deactivation feature
* update db_schema.yaml
* travis fix
* readd sqlfile with alter statement
* ..
* revert force push
* combine all queries
* fix query
* user enable/disable only visible on mysql authorization
* Update form.blade.php
* Update index.blade.php
* disable 'enabled' on own profile
* bootstraping checkboxes
* 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
* 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
* Fix public status location
Implementing __toString() seemed to be the most elegant way to fix it.
Added pre-loading for locations too
* Take advantage of new __toString function
* Add more api helper functions
to centralize code more
* Enable cors
* Initial Legacy route in Laravel
* Force api v0 responses to json
Add a couple more routes
* more paths, pretty print the json response
pass parameters to the api function
* devices basic functions
* Port generic graph function
check permissions function accepts callback to avoid lots of if statements
* move vlans
* links
* graphs
* fdb
* health
* wireless
* port graphs
* ip functions
split em up
* port_stack
* components
* compoment add/edit/delete
* get_device_groups
* port stats
* port graphs
* get_devices_by_group
* port_groups
* api_get_graph
* show_endpoints
* get_bill
* get_bill_graph
* get_bill_graphdata
* get_bill_history
* get_bill_history_graph
* remaining bill functions
* list_alerts
* ack/unmute alert
* Some cleanups
* Some cleanups
* list_alert_rules
* alert rule add/edit/delete
* inventory
* list_cbgp
* vrf
* list_ipsec
* list_fdb
* list_links (fix both usages)
* list_locations
* list_locations
* list_vlans
* list_ip_addresses
* list_arp
* list_ip_networks
* cleanup
* services
* list_logs and fix authlog.......
* cleanup
* cleanup 2
* remove slim
* don't load schema more than once
* basic test
* fix style
* downgrade laravel-cors to a version that supports PHP 7.1
* 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
* Added findByHostnameOrIp($hostnameOrIp) for devices.
Returns Device or null
Fixed Graylog device links, "device" parameter in URL was IP or Hostname instead of device id before
Added Severity number to name conversion. Can be activated by setting $config['graylog']['severity-names'] = "true" in config
Added Facility number to name conversion. Can be activated by setting $config['graylog']['facility-names'] = "true" in config
* Added $config['graylog']['match-any-address']. To enable matching Graylog entries by any interface address set to "true"
Added code to match Graylog entries by any interface address instead of only hostname or primary address
* Fixed missing quotation marks in <script> block in includes/html/common/graylog.inc.php:46, causing graylog page only load header with empty table. Introduced in https://github.com/librenms/librenms/pull/10447
* Modified code to reduce complexity as mentioned by codeclimate
* Changed findByHostnameOrIp($hostnameOrIp) as mentioned by https://github.com/murrant
* Added Language File "syslog.php" for Syslog Severity and Facility
Merged functions "levelName($level)" and "facilityName($facility)" to "syslogPrioParser($type, $value)" where $type should be "facility" or "severity" and $value the numeric or text facility or severity. Returns "NUMBER (NAME)" if possible, otherwhise returns $value
* Shortened findByHostnameOrIp($hostnameOrIp) as mentioned by https://github.com/murrant
* Add shortcut ipv4 and ipv6 device relationships
Better code for adding source addresses
Only translate level and facility if they are numeric
Allow level and facility to be sortable
No need for device link if we know it won't work. Before the code was punting to save sql queries.
* Cache devices
Took queries from 69 to 6 in my quick test.
* Added Documentation for $config['graylog']['match-any-address']
* Fixed missing quotation marks in app/ApiClients/GraylogApi.php:125
* 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