* 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
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* Add bad_ifoperstatus for filtering interfaces having a status for example notPresent
* add ability to discover percent warning on mempools discovery
* remove wierd charachters from json
* remove database defaults, add defaults for Linux and Vmware
* update db schema
* update test data
* adapt hrstorage mempools
* rebase
* fix_if_discover
* Update ports.inc.php
* Fixed overwriting IfDescr and IfAlias overwriting
* removed whitespace
* added ifname, ifalias and ifdescr copy if it is emtpy or null
* removed ifAlias from update to prevent overwrite
* removed ifName and ifDescr from update to prevent overwrite
* added is_port_valid before doing copy actions between ifDescr,ifAlias&ifName also added back ifDescr&ifName update
* Update ports.inc.php
* Update functions.php
* Update ports.inc.php
* Update exa_e7-2.json
* Update fortigate.json
* Adding ifType to base_oids
* Improve discovery (update ifType) and polling (save ifType)
* Updated test data
* Updated json test data
* vlan isn't filtered by default :P
* With default ignored ports
* Update newer test data
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`
* Fix Calix OS definitions
The main change is EXA (E7, etc) and B6 (Occam) devices are now their own OS
Now the follow OS exist:
exa: E7 EXA, E5-400, E5-48, E3-48, E3-8G
occamos: B6
Unchanged:
calix: E5-1**, E3-12C
axos: E7-2 AXOS, E9-2, E3-2, E5-520, E5-16F, E3-16F, E5-30x
* fix tests
exa_e7-2 seems like bogus data.
* additional tests, fix an error in the yaml
* Remove extra line return
* Add missed file