84 Commits

Author SHA1 Message Date
Tony Murray 0a5c174f4f Fix test regressions introduced while tests were broken (#16399)
* AuthSSOTest: clear roles cache

* PollingJob: When a poller module doesn't exist, return null instead of false.  Skip all other checks and disable polling in that case.

* Sensors: Guess high and low limits separately as needed

* Sensors: drac test psu current data was wrong, referencing the snmprec, 8 / 10 and 0 / 10 should be the values
NOTE: drac is messed up and runs a billion snmp queriess for no reason

* please phpstan

* Sensors: limits reference old code
move to "creating"

* Fix gw-eydfa accidental assignment

* Fix ies5000 test data now that the bad state is removed

* Fix ies5000 test data part 2

* Move sensor discovery reset into discover_device()

* infinera remove duplicate sensor (also a lot of trailing whitespace apparently)

* Fix innovaphone bad yaml discovery

* module tests should be using null when test data doesn't exist, not an empty array

* When discovery or polling is not supported, dump null instead of an array.
Account for nulls in testing

* update ISE serial

* Janitza was seemingly wrong before

* Remove some private data

* bgp-peers requires ipv4-addresses and ipv6-addresses for bgpPeerIface

* fix polycomLens broken state sensor discovery

* Raritan pdu and pdu2 test data was combined in one test file, split it out

* scs-ks duplicate temperature sensor indexes

* sentry3 someone tried to avoid breaking stuff but just broke things more

* smartos-dcp-m fix incorrect numeric oids

* ssu2000 apparently test data was wrong, must have fixed a bug in the code.

* timos remove duplicate dbm sensor definitions

* bgpPeerIface is working in tests now

* Fix moxa-etherdevice when mibs are a bit different

* xw_to_dbm negative values should return null

* Update cisco test data due previous fixes/changes

* One more bgpPeerIface

* Add orderBy to ospf module db dumps

* Remove links test data for now

* Improve handling of bad data in ipv6-addresses module
2024-09-23 10:11:05 -05:00
Tony Murray 7b767dd7cc Fix setting the device wrong field in module tests (#16296) 2024-08-27 17:03:41 -05:00
Tony Murray db5fdf705d Poll device job (#16306)
* Split out single device polling to a Laravel Job
Probably totally broken :)

* Add dispatch option to device:poll

* Fix up submodules

* Add missing logger parameter

* Apply fixes from StyleCI

* Update module format in test helper

* Apply fixes from StyleCI

* Use Log facade to match other code

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
2024-08-25 19:56:50 -05:00
Tony Murray 1cceafb887 Improve Snmpsim usage to ease testing (#15471)
* Snmpsim use python venv
Patch to enable listening while minimizing output
Update lnms dev:simulate, tests, and ./scripts/save-test-data.php
removed old option to start snmpsim from older scripts, use lnms dev:simulate

* Apply fixes from StyleCI

* various fixes

* Remove patch official package is updated

---------

Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-07-17 16:05:07 -05:00
Tony Murray 3aedfb4f3b Fix some testing issues (#16174)
* Fix some testing issues
index doesn't exist in ModuleTestHelper
Cache issue in NetSnmpQuery (specifically affects testing)

* Apply fixes from StyleCI

---------

Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
2024-07-02 09:21:39 -05:00
Walkablenormal c855d6c2fe Support for InfluxDB V2 API (#15861)
* Addition of influxdb-client-php to Composer.

* Addtion of InfluxDBv2 support.

* Addition of front-end options.

* Addition of documentation.

* Addition of the acknowledgement of the PHP library used.

* Fixed a unneeded bracket.

* Addition of a basic datastore test.

* StyleCI fixes.

* StyleCI fixes.

* StyleCI fixes.

* Fixed exception class.

* Revert accidental change.

* Fix to composer lock to not update all packages.

* Fix to composer lock to not update all packages, but still include the new Influx lib.

* Another attempt at getting Composer to behave the way I think it should work.

* Fixed merge-conflict in Composer due to #15869.

* Update composer.json

* Update composer.lock

* Update composer.json

* Update composer.lock

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2024-03-07 12:26:21 -06:00
Peca Nesovanovic eb6006248f Rewrite ups-nut discovery to SnmpQuery:: (#15850)
* modernize and move ups-nut to unix

* fix test data (group and invalid runtime)

* add Battery Temperature to test data

* lnms dev:check style
2024-02-26 17:48:40 +01:00
Tony Murray f0aa80e73d ports ifPhysAddress use MAC helper (#15478)
* Ports min polled period of 1
Prevent divide by 0
Use Mac utility

* fix bad snmprec for airos-af-ltu

* Update a large amount of invalid mac addresses
either the script is capturing them wrong or users are mangling them

* More updated test data

* Update test data with bad input

* Fix ones using encoded <private> and attempt to fix capture

* Update awplus data

* restore missing data

* update other DNOS

* Fix ones using encoded <private> and attempt to fix capture

* Fix ones using encoded <private> and attempt to fix capture

* fix typo

* Update some data

* update data

* update ruijie
2023-10-19 20:10:52 +02:00
Tony Murray abf4fa0004 Exclude availability module from default testing (#15462) 2023-10-16 07:02:35 -05:00
Nick Peelman 8a64526e34 Fix a bug when creating test data; if a community contained the strin… (#14739)
* Fix a bug when creating test data; if a community contained the string 'snmp', it would cause test data to not be generated.

Add line start/end anchors, and search for specific SNMP commands, instead of a snmp<wildcard>, and a couple of other minor tweaks...

* Fix unwanted 'g'
2023-04-16 13:42:26 -05:00
Jellyfrog 68e0b3df28 Apply fixes from StyleCI (#14899)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2023-03-13 22:32:22 +01:00
Tony Murray e8c3b2c924 Improve SnmpResponse value() (#14605)
* Improve SnmpResponse value
Can now return a specific oid or the first non-empty oid in a list.
Cache values() call on object to avoid repeated parsing
Improved types

* fix style

* extract getOidParts to fix errors from different parts of the code parsing differently

* new object to deal with cache

* More tests

* whitespace

* style
2022-11-30 19:50:46 -06:00
Tony Murray 6cbe6fde4f Mock astext (#14581)
* Mock astext
avoid dns failures

* whitespace

* fix arista

* restore test data except astext

* restore test data except astext

* Full fresh run

* Move DI call into class
2022-11-05 01:18:52 +01:00
Jellyfrog be1a2cec50 Miscellaneous fixes, mostly undefined variables (#14432)
* Miscellaneous fixes, mostly undefined variables

* Update phpstan-baseline.neon
2022-10-11 11:30:00 +02:00
Tony Murray b44f1546a2 Improved Modern Modules (#14315)
* Improved Modern Modules
Modules now report module dependencies and can dump data for testing
This should serve to the process of building a module more obvious.
cleanup now only requires a device, not an os wrapped around a device
Helper to create a modern module (including the legacy adapter) from a name.

* return false correctly for dump and handle it.

* make sure test data is in the right format.

* wrong isis table name

* sort

* Fix style and lint issues
2022-09-07 23:53:16 +02:00
PipoCanaja 969159f77a Save-test-data to refresh all variants of an OS (#14231)
* per OS

per OS

per OS

fixTest

fixTest

* fix empty variant
2022-08-26 15:29:14 -05:00
Jellyfrog 051c72b9bc Regression fix from #13596 (#14034) 2022-06-13 11:40:53 -05:00
Tony Murray d482ab729a Fix tests failing when device with IP 127.1.6.1 (#14016) 2022-06-07 19:22:29 -05:00
Kevin Wallace 1b1859051f Add additional OpenBSD PF graphs (#13963)
* Add additional OpenBSD PF graphs

Some of these were already present for PFSense (matches, badoffset,
fragmented, short, normalized, memdropped) and reuse existing graph
types; the others are are added as new types.

* collect-snmp-data.php: support IPv6 hosts

* Add SNMP data for new OpenBSD OIDs

* Stack all OpenBSD PF drops into a single graph/rrdfile

* Pull additional drops in to pf_drops

The MIB descriptions don't say "drop", but reading the OpenBSD source:

https://github.com/openbsd/src/blob/c471a73b6524ed1e52e6e48ecbdea0a4a57c470a/sys/net/pfvar.h#L1196

it's clear that badoff, frag, short, and norm are all drop reasons.
Pull them in into the stacked drop graph, too.

* ./scripts/save-test-data.php -o openbsd -v pf

* Include device_graphs in saved os module test data

* Revert "Include device_graphs in saved os module test data"

This reverts commit a85c902fe9.

* Update to use SnmpQuery

Co-authored-by: Kevin Wallace <kevinwallace@users.noreply.github.com>
Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-06-06 23:49:42 -05:00
Tony Murray 379627243a Remove addHost from ModuleTestHelper (#13847) 2022-03-12 21:53:40 -06:00
Tony Murray 29bd6789cb Stp module rewrite (#13570)
* STP module rewrite WIP

* Finish rewrite

* Ignore disabled and log root/topology changes

* Remove interfaces for now

* fix style

* Lint fixes

* Document ResolvesPortIds and hide map functions

* whitespace fixes

* Revert to stpInstances in case someone writes mstp support

* missed one

* phpstan fixes

* Handle table and oids separately

* forgot to register observer

* Test data and correct non-table handling in SnmpResponse->table()

* update test

* test data

* revert aos7 silly things

* minimal polling

* Update test data

* order ports_ntp and rename new field to port_index

* forgot the db_schema

* revert ciena-sds port things

* MSTP support, maybe

* Adding test data

* Filter bad lines instead of discarding the entire snmp response
and capture fixes and test data

* fresh data

* add os data

* update data, ignore unfound ports, obviously bad device implementation.

* fixes

* Ignore context files in os detection test

* Remove empty table data

* add ciena-sds vlan

* designatedCost column is too small

* Update stp webui

* Refactor code to interfaces, to allow vendor mibs

* update schema

* fix issues added by abstraction

* STP fixes

* Default to no context for vlan 1

* never store vlan 1

* Update test data

* remove eltex brokenness

* fix style

* fix stan

* Fix Rewrite MAC to Hex padding with floats

* fix sqlite migration
2022-01-30 16:28:18 -06:00
Tony Murray d5656d826e Tests dont include empty tables (#13619)
* Do not include empty tables in test data

* empty data is simpler to check now

* Update test data

* revert comment options that block update all test data

* clean existing data

* fixes

* another fix

* remov extra sensors???

* why is that using that ip...

* missed an empty table

* missed one

* restore ftos

* revert another ftos

* revert ird

* restore timos

* restore timos_7705

* oops

* double oops

* timos mpls

* timos_hc

* another timos_hc fix
2021-12-15 19:48:44 -06:00
Tony Murray bc2be0efc1 Remove accidental dump() (#13607) 2021-12-09 08:53:34 -06:00
Tony Murray b32524294c collect-snmp-data.php can now capture snmp context test data (#13596)
* collect-snmp-data.php can now capture snmp context test data
This is helpful for devices that use context for multiple data sets such as VLANs and VRFs.  Allows us to test things that use those now, but does make more snmprec files :/

* update typehints on affected methods and baseline
2021-12-03 13:27:06 -06:00
Tony Murray c79b187d72 Poller rewrite (Try 2) (#13525)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts

* Catch exceptions in device ip lookup

* Revert accidental snmp.inc.php poller target change
(should have been ?: not ??)
2021-11-17 19:23:55 -06:00
Tony Murray f8764ddcb5 Revert "Poller command rewrite (#13414)" (#13524)
This reverts commit 1752d1efd4.
2021-11-16 21:40:29 -06:00
Tony Murray 1752d1efd4 Poller command rewrite (#13414)
* core WIP

* try to finish up

* trim space too
and a couple of cleanups

* update test data

* put escapes back

* another net-snmp difference

* correct copy paste error

* WIP

* Use new code YAY

* a tiny bit more

* Kind of working

* Handle manual modules correctly

* convert core to modern module

* Only save metrics if modules is not overridden

* correct module exists check

* database error handling

* debug handling

* restore bad changes

* Introduce Actions
 RunAlertRulesAction
 UpdateDeviceGroupsAction

* tweaks to output

* Fix some issues in outside code

* Style fixes

* fixes to module status checks

* typehints!

* Use logger only and DI

* OS module not named correctly

* Work on quiet output a bit more

* generically don't change output when disabling debug if the driver is already stack

* Fix missing $device variable for legacy os polling
Fix missing dbFacile functions when no legacy modules polled in RunAlertRulesAction

* restore legacy os module shim

* use the new poller code for tests

* PollingDevice event

* Fix some issues and enable/disable error reporting around legacy modules

* typehints

* fully update baseline

* Use Process for version commands so we don't leak debug output.

* don't detect rrdtool version in ci every time

* style fixes

* Warning fixes

* more fixes

* re-update baseline

* remove diff noise

* fix up alerts
2021-11-16 16:59:46 -06:00
Tony Murray 06701870cd Change how options are handled for SnmpQuery (#13488)
* Change how options are handled for SnmpQuery
Fix added backslashes when collecting snmp data.

* fix lint
2021-11-10 20:49:06 -06:00
Jellyfrog 258505ed44 Apply fixes from StyleCI (#13224) 2021-09-10 20:09:53 +02:00
Jellyfrog 26b95c0ccc Apply fixes from StyleCI (#13208) 2021-09-08 23:35:56 +02:00
Tony Murray 8e409ba051 Rewrite ISIS Adjacency discovery/polling (#13155)
* Rewrite ISIS Adjacency discovery/polling
hopefully much faster now, do most work in discovery and just check up/down in poller.

* unused variable

* Implement option for OS override

* fix an incorrect typehint

* test data

* work around stupid migration name

* update schema

* better handling for the on-demand discovery

* more detailed phpdoc

* fix when adjacency is not found

* don't clear out data when adjacency goes away

* Adjust nullable fields

* fixes

* fix class name

* correct migration

* fix bug causing adjacency data to always be blank

* port popups for port links

* isisISAdjState does not need to be nullable

* remove extra space

* default off

* If port is missing return $text

* update schema

* Cleanup old components

* correc copy paste error
2021-08-23 21:19:55 -05:00
Jellyfrog e873768845 Bump larastan (#13071)
* Bump larastan

* Use php7.4 for lint test
2021-07-26 09:00:34 -05:00
Tony Murray 4f7c7b3f2a PHP dependencies update (#13034)
* Removing dnoegel/php-xdg-base-dir (v0.1.1)

barryvdh/laravel-debugbar (v3.5.2 => v3.6.2)
barryvdh/laravel-ide-helper (v2.9.1 => v2.10.0)
composer/ca-bundle (1.2.9 => 1.2.10)
composer/composer (2.0.13 => 2.1.3)
composer/semver (3.2.4 => 3.2.5)
composer/xdebug-handler (1.4.6 => 2.0.1)
dapphp/radius (2.5.4 => 2.5.5)
doctrine/annotations (1.12.1 => 1.13.1)
doctrine/cache (1.10.2 => 2.0.3)
doctrine/dbal (2.13.0 => 2.13.2)
facade/flare-client-php (1.5.0 => 1.8.1)
facade/ignition (2.7.0 => 2.10.2)
fakerphp/faker (v1.14.1 => v1.15.0)
filp/whoops (2.12.0 => 2.13.0)
friendsofphp/php-cs-fixer (v2.18.4 => v2.19.0)
fruitcake/laravel-cors (v2.0.3 => v2.0.4)
guzzlehttp/psr7 (1.8.1 => 2.0.0)
laravel/dusk (v6.15.0 => v6.15.1)
laravel/framework (v8.40.0 => v8.49.2)
laravel/ui (v3.2.0 => v3.3.0)
league/commonmark (1.5.8 => 1.6.5)
league/flysystem (1.1.3 => 1.1.4)
monolog/monolog (2.2.0 => 2.3.0)
nesbot/carbon (2.46.0 => 2.50.0)
nikic/php-parser (v4.10.4 => v4.11.0)
nunomaduro/collision (v5.3.0 => v5.5.0)
nunomaduro/larastan (v0.7.4 => v0.7.10)
php-parallel-lint/php-parallel-lint (v1.2.0 => v1.3.0)
php-webdriver/webdriver (1.10.0 => 1.11.1)
phpseclib/phpseclib (3.0.7 => 3.0.9)
phpstan/phpstan (0.12.83 => 0.12.92)
phpstan/phpstan-mockery (0.12.13 => 0.12.14)
phpunit/phpunit (9.5.4 => 9.5.6)
predis/predis (v1.1.6 => v1.1.7)
psr/cache (1.0.1)
psr/http-factory (1.0.1)
psr/log (1.1.3 => 1.1.4)
psy/psysh (v0.10.7 => v0.10.8)
rmccue/requests (v1.8.0 => v1.8.1)
sebastian/global-state (5.0.2 => 5.0.3)
sebastian/type (2.3.1 => 2.3.4)
symfony/console (v5.2.6 => v5.3.2)
symfony/css-selector (v5.2.4 => v5.3.0)
symfony/debug (v4.4.20 => v4.4.25)
symfony/error-handler (v5.2.6 => v5.3.3)
symfony/event-dispatcher (v5.2.4 => v5.3.0)
symfony/filesystem (v5.2.6 => v5.3.3)
symfony/finder (v5.2.4 => v5.3.0)
symfony/http-foundation (v5.2.4 => v5.3.3)
symfony/http-kernel (v5.2.6 => v5.3.3)
symfony/mime (v5.2.6 => v5.3.2)
symfony/options-resolver (v5.2.4 => v5.3.0)
symfony/polyfill-ctype (v1.22.1 => v1.23.0)
symfony/polyfill-iconv (v1.22.1 => v1.23.0)
symfony/polyfill-intl-grapheme (v1.22.1 => v1.23.0)
symfony/polyfill-intl-idn (v1.22.1 => v1.23.0)
symfony/polyfill-intl-normalizer (v1.22.1 => v1.23.0)
symfony/polyfill-mbstring (v1.22.1 => v1.23.0)
symfony/polyfill-php72 (v1.22.1 => v1.23.0)
symfony/polyfill-php73 (v1.22.1 => v1.23.0)
symfony/polyfill-php80 (v1.22.1 => v1.23.0)
symfony/process (v5.2.4 => v5.3.2)
symfony/routing (v5.2.6 => v5.3.0)
symfony/stopwatch (v5.2.4 => v5.3.0)
symfony/string (v5.2.6 => v5.3.3)
symfony/translation (v5.2.6 => v5.3.3)
symfony/var-dumper (v5.2.6 => v5.3.3)
symfony/yaml (v4.4.21 => v4.4.26)

* add ignores
2021-07-13 17:41:04 -05:00
Tony Murray 76910e4180 Debug and collect-snmp-data.php fixes (#12837)
Fix output so it can be captured and typo in collect-snmp-data.php
2021-05-05 10:27:10 -05:00
Tony Murray 61c89794e4 Remove debug globals (#12811)
* Remove $debug global
and $vdebug global
makes these variables more accessible and protects from collisions.

* the on boot set sends application as the first parameter, just handle that

* Relocate other debug related functions

* Log debug to stdout

* Wrong output

* remove stupid constants

* Fix lint and style issues
2021-04-29 22:42:18 -05:00
Jellyfrog a70d55bfd8 Add feature to capture a full snmprec (#12706) 2021-04-06 17:26:31 -05:00
Jellyfrog a0a3a1c8d8 PHPDoc fixes (#12693) 2021-04-01 00:35:19 +02:00
Jellyfrog efb157f5fb Fix more PHPDoc (#12665)
* Fix PHPDoc

* Fix PHPDoc
2021-03-28 12:18:47 -05:00
Tony Murray 61316ce2cc PHP 8 fixes (#12528)
* port related errors

* more fixes

* fix storage count

* add tests for php8

* style

* only need not empty

* aix fixes....

* storage WIP

* fix aix discovering hrstorage
fix db test adding .gitkeep
fix os modules when discovery only

* fix aos processors wrong oid

* fix mempool number casting

* fix aos7 cpu

* use + 0 cast instead of floatval()

* more verbose error on invalid json

* remove invalid data in json

* actually fix the json

* correct json error fix

* cast_number() function
fix aruba-instant and aos6 bugs exposed by new function, probably more...

* fix a-f
fix inadequate sort for component data

* fix global port poll time

* fix mempools precent 0, route count, ntp const

* fix schleifenbauer liberal current usage

* further number casting refinement

* vrp

* fix tests

* fix arbos

* warn cleanups adjust to :: change

* fix ciena-sds

* fix drac

* fix dell-rpdu anddlink

* fix and improve arubaos
better error when getting an array in Processor

* fix atenpdu, add missing arubaos files

* aruba-instant to yaml
apparently I didn't need to do this, the diff just looks really odd
It did add ranged sub-index replacements

* docker app, was completely wrong... fixed

* fix sentry4 divide by 0...

* fixed root issue, remove check

* nicer cidr in ipv6 code

* remove bogus enuxus battery bank skip_values

* Fix InfluxDB tests

* remove extra import

* fix other style issues.

* influx "style" fixes
2021-03-12 18:10:14 -06:00
Tony Murray 6e19805bcb remove legacy json format function (#12583)
* remove legacy json format function

* remove silly use
2021-03-04 14:55:41 +01:00
Jellyfrog 20b4215204 Swich links to https (#12511)
* Switch librenms links to https

* Convert librenms links in comments

* Switch gnu.org url to https

* switch php urls to https
2021-02-09 00:29:04 +01:00
Tony Murray a0f91de9b2 Capture OSPF test data (#12215) 2020-10-19 09:35:41 -05:00
Jellyfrog 29f45ca352 Apply fixes from StyleCI (#12124) 2020-09-21 15:59:34 +02:00
Jellyfrog 0d56bbd946 Apply fixes from StyleCI (#12123) 2020-09-21 15:51:53 +02:00
Jellyfrog 77c531527c Apply fixes from StyleCI (#12117)
* Apply fixes from StyleCI

* Disable style check
2020-09-21 14:54:51 +02:00
Tony Murray d44ff69b99 Load Balancers test 2020-06-19 13:40:02 -05:00
Tony Murray 4caa73089d Set primary device in module test helper (#11749)
* Set primary device in module test helper

* unneeded one
2020-05-31 10:18:54 -05:00
Adam Bishop 3838549748 Fix test behaviour with PHP 7.4 on Fedora 32 (#11648)
* Handle cases where the data type is hex encoded, but the data is
not actually hex encoded.

* Test data claims 4x, but is not hex encoded

* Encode the private string

* Replace 4x|<private> with 3C707269766174653E

* Re-run save test data.

Seems some of these files might have been hand edited at some point
as fields seem out of order

* Have a trap test use a mock instead of a db query
2020-05-21 08:22:55 -05:00
Tony Murray f1320b6510 Speed up tests by skipping pings (#11642)
* Mock fping for module tests, there is no need.
Removes some wait time.

* fixup some rrd disabling code

* oops
2020-05-19 22:08:41 -05:00
Tony Murray b573c9ef73 Implement OS specific information discovery (#11446)
* 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
2020-05-14 11:27:59 -05:00