* 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
* device search by (valid) ip address
* add device_ip & not empty conditions to search results
* updated comments
* spaces after commas
* search ip and overwrite_ip for name based searches, too
* All of the images in html/images/manifest.json 404 because the src specified was relative
* The resulting URL was /images/images/android-chrome-192x192.png (which does not exist). The files are in /images/.
* This fix adds a leading / to the src members, which effectively uses the correct path (e.g. /images/android-chrome-192x192.png)
* For reference, when using web manifests for icons, https://developer.mozilla.org/en-US/docs/Web/Manifest/icons
"If src is a relative URL, the base URL will be the URL of the manifest."
* librenmsv1.blade.php uses asset('images/manifest.json'); many other blades use it. This fix applies to all of these views.
/opt/librenms/resources/views/about/index.blade.php
/opt/librenms/resources/views/auth/2fa.blade.php
/opt/librenms/resources/views/auth/deny-demo.blade.php
/opt/librenms/resources/views/auth/external-auth-failed.blade.php
/opt/librenms/resources/views/auth/login.blade.php
/opt/librenms/resources/views/auth/public-status.blade.php
/opt/librenms/resources/views/device-group/create.blade.php
/opt/librenms/resources/views/device-group/edit.blade.php
/opt/librenms/resources/views/device-group/index.blade.php
/opt/librenms/resources/views/layouts/legacy_page.blade.php
/opt/librenms/resources/views/locations.blade.php
/opt/librenms/resources/views/settings/index.blade.php
/opt/librenms/resources/views/user/authlog.blade.php
/opt/librenms/resources/views/user/create.blade.php
/opt/librenms/resources/views/user/edit.blade.php
/opt/librenms/resources/views/user/index.blade.php
/opt/librenms/resources/views/user/preferences.blade.php
/opt/librenms/resources/views/vue.blade.php
/opt/librenms/resources/views/map/device-dependency.blade.php
* Added WUT 57606,57613,57720
* Added os wut-*
* fixed MIB Names and try to generalize wut
* more general sysObjectID mapping, and mib directory
* Delete WUT-57606-MIB
* Delete WUT-57613-MIB
* Delete WUT-57720-MIB
* Rename wut-57613.snmprec to wut_57613.snmprec
* Rename wut-57720.snmprec to wut_57720.snmprec
* Rename wut-57606.snmprec to wut_57606.snmprec
* Delete wut-57606.yaml
* Delete wut-57720.yaml
* Delete wut-57613.yaml
* Delete wut-57606.yaml
* Delete wut-57720.yaml
* Delete wut-57613.yaml
* Update wut.yaml
* Try to correct the Temperature part
This should work for temperature, according to MIB. Pressure and Humidity are not described in this mibfile, so we cannot poll them.
* change wut.yaml
* Add and fix wut_57720
* after ./scripts/save-test-data.php ?
* Add test data
Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
* Add support for TRENDnet switch, TEG-S80ES in particular
* Add trendnet.snmprec
* Add test data (JSON)
* Remove mib comment from yaml
* Update copyright info
* Use sysDescr value for Hardware
* When searching from the web interface, librenms produces
production.ERROR SQLSTATE: Column not found: 1054 Unknown column
'$perms_sql' in 'where clause'
* Above feeds resources/views/layouts/menu.blade.php which, because
of the failed query, has no device_ports as a value. Thus the search
results do not produce the expected 'name ... device with X port(s)'
* As well, the previous query did not exclude deleted and ignored
ports. Therefore, the value for X port(s) was incorrect and did not
correspond to the device's ports screen.
* 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>
* Update menu.blade.php
* Swap username and notification icon
* Hide count-notifications when zero
* slight tidy
* Accidental key press
* Decrease space to tie them together better
* Update styles.css version
* Add option to authenticate user independtly of OU
* Set config option in webui
* Compatibility with bind username option
* ran ./lnms translation:generate
* update doc
* 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
additional translatable strings: Filter Settings in settings page and Global Search on all pages.
remove duplicate fr key
also, language file signatures were wrong as I had a testing version of the vue generator
* Unbundle javascript language files
automatically generated for each install
* update docs
* update laravel-vue-i18n-generator
a newer (unreleased) verison is need for English fallback to work
* Add Graylog settings
Fix order of settings
Don't clobber text input when validation fails
fixed spacing for setting reset/undo buttons and help
* fix style
* Remove $_SESSION usage, except install
Fixes issue with device debug capture
Removes secure_cookies setting, use the .env variable SESSION_SECURE_COOKIE instead. Reminder secure cookies requires cookies are transported over https, if everything is already transported via https, the setting won't make a difference.
* Fix availability map controls
* 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
* 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
* 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
* 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
* Add 2 class for graph / mini graph (styles.css)
Add 2 class for graph / mini graph (styles.css)
for changing bg color and more (mini graph port / device) (graph port / general)
* Update styles.css
Add 2 class for graph / mini graph (styles.css)
for changing bg color and more (mini graph port / device) (graph port / general)
* Add class CSS for mini graph
Add class CSS for mini graph
* Update graph.inc.php
Change graph.inc.php, add css class / overlib
* restore original bg #f5f5f5 .graph-all-common
restore original bg #f5f5f5 .graph-all-common
* Update ports.inc.php
correct extra \
* Update graph.inc.php
* Update ports.inc.php
* Update ports.inc.php
* Update graph.inc.php
* Comment line 88 URL.php, because description of location enlarge too much overlib devices's title
* Update Url.php
* Update Url.php
Line 88 -> re ident to pass travis...
* 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
* Check ../config.php for older installations in installer
For older installations, install.php is still available for installations that have the configuration file in the parent directory. This PR fixes this.
* Replace relative directory with absolute path
* Update install.php
* Update install.php
* 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
* Replace Cyberoam with Sophos (icon and logo)
Cyberoam has been completely incorporated by Sophos since many years.
I'll try to replace everything related to Cyberoam, staring from logo and icon.
* Updated Sophos logo
Updated Sophos logo
* Added Sophos logo
Added Sophos logo
* 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
* Realtime graph handle server caching
Handle server caching more gracefully than setting the throughput to 0 Mbps
* smoother estimated interval
* don't change the graphing timescale
* Added support for Zmtel greenpacket devices (os: zmtel)
* added more sensors
* move count sensors to features
* rename MIB and move modulation scheme to state sensor
* added test data
* graph pCID
* 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/
Fixes an issue with several uptime graphs using the average value when it should be using the minimum value.
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
It was using a non-existent function
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [ ] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
Add FDB API calls to resolve this [forum request](https://community.librenms.org/t/fdb-table-search-via-api-mac-ip-switch-port/1772/4)
DO NOT DELETE THIS TEXT
#### Please note
> Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting.
- [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/)
#### Testers
If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
After you are done testing, you can remove the changes with `./scripts/github-remove`. If there are schema changes, you can ask on discord how to revert.
* Added support for IONODES video encoders
* fixed expected number instead of string value error when running tests
* removed extra colon
* added mibs_dir for ionodes
* removed IF-MIB from ionodes.yaml
* ovaldi UPS support
* ovaldi UPS tests
* serial + model + version inc tests
* update of the code using details from requester
* update of the code using details from requester
* update of the tests
* forgot discovery yaml ...
* Added support for Ruijie Networks
* Extend discovery
Let's extend to all the products from this brand, at least until we have more detailed discovery
* New Device: ATS - Automatic Transfer Switch
* Small fixes
* Fixed test data
* More fixes, again
* Moved temp to php to retrieve limits from device
* Fixed perms again...
* Final test file. Or I hope so...
* Removal of the unused variable
* Replace double quotes by single quotes when possible
* Adding spaces between operands of the concatenation operator
* Rewrite of code echoed to the browser
* Reuse the logic of the Device/Health page for displaying current and limit values
* New helper function to determine the unit for the different sensor classes
* Fixing wrong value for current unit
* Fix device list down devices that have never been polled
* Suggestion with 'Never' in case last_polled empty and down
* Improve handling of all cases
* fix doc comment
* 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
* added new OS - sensatronics-em1
* #9960 - added logo, icon, and update skip_values
* #9960 - fixed over: value
* #9960 - updated icon, logo, and updated descr: from static to table names
* Always boot Laravel
That way we can depend on it being available.
Saves us crashes if some code accidentally uses something that isn't booted and a lot of silly if/elses.
* ignore init php errors
* 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
* Dantel WebMon Support
Webmon tep discovery changes
Fix Code Climate Issues
* WebMon - Move MIB to folder and create json reference
* Minor changes to Webmon polling
* 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