* Default to null for group yaml discovery.
* Update test data for a154bda yaml group null fix.
* Changes to guessed limit functions for sensors.
Original behaviour
===================
The file `includes/discovery/functions.inc.php` contains
`sensor_limit_low()` and `sensor_limit()` which both attempt to
guess a sane value for sensors when no explicitly defined
low_limit or high_limit can be found during discovery.
Both switch control structures used in those two functions
have empty case statements which means that if one of those matches,
it's going to fall through and run the code for each subsequent
case until a `break` is reached.
For example, when we call `function sensor_low_limit(dbm, -13.036)`
it will return the value `-12.3842` instead of `null`. That is
because there will be a match at `case 'dbm':` which falls through
all the way to `case 'cooling':`, where it performs
`$limit = -13.036 * 0.95` before hitting a `break`.
Changed behaviour
===================
Removed `power_consumed` and `count` guessed low_limit and
high_limit, I personally added those sensor classes in PR #9471
when I didn't understand that a switch control structure has
fall-through behaviour so I can guarantee that guessing limits for
those is a mistake on my behalf. It should not be there, only
power_factor can have guessed limits. Apologies for the issue,
I'm still a beginning programmer!
Furthermore, I removed guessed high_limit values for `current`
and `power` because these are supposed to draw higher values as
more devices or components are installed on for example a PDU or
a chassis.
Finally, I removed guessed low_limit and high_limit for `dbm`
sensors, there is a much too large variance in power budget on
commercially available optical transceivers for there to be a
sensible window where you can guess these values.
* Documentation on adding sensor classes.
* Update test data - sensor limit changes @ 30212d2
* clean up all but header incrementing in Creating-Transport.md
* make Device-Dependencies.md mdl happy
* make Entities.md as mdl happy as possible... one long table line left
* make mdl as happy as possible for index.md
* clean up Introduction.md as much as possible
* minor formatting cleanup... move each icon onto its own row
* make ack and notes the same style
* clean Macros.md up
* clean Rules.md up as much as possible
* tweak one line a bit to get it to format a bit nicer
* a bit more format tweaking, making sure it does not sure with >
* clean up as much as possible for Templates.md
* make Testing.md as mdl happy as possibly
* clean Transports.md up as much as possible
* clean as many issues as possible for Alerts.md
* clean up as much of ARP.md as possible
* clean up as much as possible for Bills.md
* make DeviceGroups.md as mdl happy as possible
* cleanup Devices.md
* make as mdl happy as possible Inventory.md and index.md
* mdl cleanup for Logs.md and PortGroups.md
* make Ports.md and Routing.md as happy as possible
* clean up Services.md, Switching.md, and Systems.md as much as possible
* more markup cleanup
* lots more md cleanup udner Devloping/
* reapply bits from #10343 that accidentally got removed when merging
* Split install steps into git clone and composer install
This gives the admin a little more knowledge about how to maintain the system, showing them composer_wrapper.php and su - librenms
They will get errors if composer_wrapper doesn't work because of a proxy or no internet connection
We lose stats on packagist.org (https://packagist.org/packages/librenms/librenms/stats)
If we wanted to keep stats, we could use:
```
COMPOSER_ALLOW_SUPERUSER=1 composer create-project --no-dev --no-install --keep-vcs librenms/librenms librenms dev-master
```
not sure that is worth it.
* fix composer_wrapper.php path
* documentation: Fix html/includes directory path
- Changed `html/includes` to `includes/html`
- Added overview of directories mentioned on the page
* documentation: Cleanup Code-Structure.md
- Reorganized document
- Added `includes/html/graphs` on the list
- Changed terminology (from folder to directory)
- Removed part referencing old auth method using authenticate.inc.php (changed in #8702)
* 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
* refactor: advanced sensor states
mark create_state_index($state_name) as E_USER_DEPRECATED?
* fix: minor corrections
* fix: mib has partialSync(9) and incompatibleVersion(8)
* fix: corrected netagent2upsstate - Sleeping(5)
* fix: NetAgent2 upsThreePhaseUPSStatusInverterOperating correction
* refactor: array() be gone
* Refactoring includes/discovery/sensors/state/extendair.inc.php with arrays
And tidying up array formatting in other files
* fix: minor typo
* standardising array item names
removed redundant "if ($state_index_id !== null) {"
* workaround: procurve & serverscheck
a sensor is causing create_state_index($state) to return null.
The updated code doesn't allow for this and thus a hybrid is being used.
* standardised naming of state info. Caused a typo $state_name instead of $status_name
$state_name is the standard
* converted compas to square arrays
* Converted APC states using preg_match to new create_state_index() call
* Update boss.inc.php
* be more specific about duplicate IP addresses
* generate TAGS for emacs
* note on using mkdocs, and make docs rule
* ignore emacs temp files
* Update .gitignore
* Update functions.php
* Update Makefile
* Update Creating-Documentation.md
* Fix some comment and documentation typos.
* Fix various entphysical page display issues.
- Resolve flickering during loading (missing liClosed for nested items).
- Clicking a sensor actually takes you to the matching graph now.
* Add a few nicecase() calls to clean up html page display.
* Create discover_entity_physical() function
- Add discover_entity_physical() function into includes/discovery/functions.inc.php
- This allows for an easy implementation of OS-specific entity-physical discovery.
- Update includes/discovery/entity-physical/entity-physical.inc.php to use the new function.
* Add power_consumed and power_factor sensors.
* Two new icons, make more entPhysical data visible.
* Pre-commit fix: blank line found at end of control structure.
* Add Schleifenbauer OS support.
* Now really fix the comment typo.
* Fix parsing mistakes.
* Add a generic count sensor.
* Make the Schleifenbauer discovery use count instead of state sensors.
* Don't place count sensor at the top, add sane limits for Schleifenbauer
* Finetuning the rrd_options, changing Schleifenbauer sensor names.
* Update schleifenbauer.svg
* optimize logo too
* add test data
* fix sensor value display (spaces break it)
* update entPhysicalIndex
* Add migrations and seeds
* Fix spacing validation issues
* Fix linting
* Update tabs to spaces
* Update daily and install process
* Make build-base.php use the new migrations if empty or at dbschema 1000.
Seed 1000 into the database.
Temp fix for the route table index length (this table basically isn't used...)
* Fix typo in seed.
Hard code legacy schema checks to version 1000 (999 would have worked as is)
* Port association table no longer exists
* Make database validate again
* DB schema, remove as many DB::statement as possible
* update migrations
add librenms cli entry point (artisan)
update validate to check laravel migrations
* remove statements from users migration
* Fix up daily.sh and the 1000 migration
* Update migrations to current state
Take advantage of environment variables to set DB credentials.
* Fix style issues
* Update schema
* fix test db collation
* Fix migration table definition
* update db migrations
* Update migrations
* Update stats callback. Just count the total migrations applied.
* Update 1000.sql.
* update migrations
* remove the graph type seeder, it is no longer needed
* update docs
* fix whitespace
* remove extra schema
* update tests
* fix sort
* add message
* dbSchema should actually be 1000
* add character set to db create
* Fix some artisan issues
* Update schema
Improves visual identification for sensors
- [x] Docs
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.
* Remove graph_types from DB.
This is silly since defining them in definitions.inc.php already does the same thing.
Adds missing ones in definitions.inc.php and rewrites others since I already wrote them before I realized they were duplicates.
* remove dead table
* Remove graph_types inserts from schema files.
* update db_schema.yaml
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.
* Update to Added support for HeliOS 10Ghz failover to 5Ghz state sensor
Converted /includes/discovery/sensors/state/helios.inc.php to yaml
Test units included
CLA has been signed
* Added support for CeraOS TX Mute Status state sensor, NTP Client Lock Status state sensor.
Updated CeraOS temperature sensor, now called from includes/definitions/discovery/ceraos.yaml - removed includes/discovery/sensors/temperature/ceraos.inc.php
Corrected issue with CeraOS temperature reverting to zero after polling (added a trailing . to the num_oid)
Amended includes/definitions/discovery/helios.yaml with changes as advised by Neil Lathwood and Tony Murray
* Added unit test data and corrected ceraos.yaml validation error
* Added support for Ceraos Wireless Sensors (php)
Cross Polar Interference
Wireless Frequency
Added Ceraos state sensors (yaml)
NTP Client Lock Status
Tx Mute Status
Radio Operational Status
Remote Radio Operational Status
IDU Temperature
Power Amplifier Temperature
* Fix up tests, etc
* remove helios changes, fix style
* Added snmp_max_oid config at Os level.
* Added check for snmpv1 on multi_oid requests.
* Check device_oid_limit on multi get
* Use array_chunk
* Update snmp.inc.php
* remove dump, unused variable and extra plodes
* per device settings should take priority over OS
* Update Settings.md
* don't discard the data :P
Require it explicitly. Makes it easier to understand and matches the style of other values
Questionable YAML changes (either broken before or now broken):
secureplatform: haStatCode
ptp600: receiveModulationMode
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.
* Use Laravel for authentication
Support legacy auth methods
Always create DB entry for users (segregate by auth method)
Port api auth to Laravel
restrict poller errors to devices the user has access to
Run checks on every page load. But set a 5 minute (configurable) timer.
Only run some checks if the user is an admin
Move toastr down a few pixels so it isn't as annoying.
Fix menu not loaded on laravel pages when twofactor is enabled for the system, but disabled for the user.
Add two missing menu entries in the laravel menu
Rewrite 2FA code
Simplify some and verify code before applying
Get http-auth working
Handle legacy $_SESSION differently. Allows Auth::once(), etc to work.
* Fix tests and mysqli extension check
* remove duplicate Toastr messages
* Fix new items
* Rename 266.sql to 267.sql
* Updates to snmptrap handling
fix a bug in findDeviceByIP. Add more tests for that.
Move handle outside of the Trap class, it doesn't fit.
Add developer docs.
* fix tests copy paste issue.
* Fix findByIp when port may not exist.
* Logging: Output context (and extra) if they exist
* Generic trap event logging and new config setting.
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`
Changed some values to be explicitly boolean
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`
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`
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`
* Updated XIRRUS-MIB; added Temperature
* Corrected field and indentation
* Added test data
* More test data
* Create xirrus_aos.json
* Reordered metrics back into alphabetical
* fix: Apply divisor / multiplier to high/low limits in sensors
* Updated test data for airos
* updated sensors test data
* Updated test data
* Updated test files
* updated dell-rpdu tests
* Updated to do division / multiply after check for value
* Extract DiscoveryItem and move some things to better places.
Extract model class
Fix up model construction. I have problem with construction...
Makeshift model working. Switch constructor to factory. discover() and create()
Support legacy discovery.
Remove uneeded custom pollers
Remove netonix custom detection as we try ucd on all os now.
Add a few yaml procs. Fix a couple things.
More processor discovery conversions
Move Calix e7 to standard hrProcessorLoad, but it doesn't fully implement the HR-MIB, move things around to make it work.
Add a few yaml procs. Fix a couple things. Correct some stupid mib stuff.
Move more, drop php 5.3
Add netscaler which uses string indexes. Port fiberhome to yaml and use skip_values
More conversions. BroadcomProcessorUsage Trait
Serveriron and Ironware share some mibs. Create a common abstract os for them.
Add yaml support for mib specification in each data entry
Make legacy discover_processor() set 0 for hrDeviceIndex
Untangle Dell switch OS processors
Use use shared OS for groups if they don't have a specific group.
fix silly mib mistake
Make index optional
Move HR and UCD to Traits and out of Processor.
* forgot to update the fortiswitch index
* Make sgos and avaya-ers match the old index.
* fix comware test data
* fix merge errors
* fix dsm and remove pointless empty modules
* file not found exception is in the wrong place.
* Updated processor development docs
* Add mass update to save-test-data.
Fail when snmpsim doesn't start and try to give a hint.
* Split save-test-data.php into two scripts
One for updating snmprec files.
One for updating db dump files.
* Update Initial-Detection.md
While trying to add support for awplus under https://github.com/librenms/librenms/pull/7670, I was advised to delete the os_defs.cache file.
This was hugely helpful, as I wasted a number of hours trying to figure out why I couldn't get any changes to the OS configs to work.
* Small updates