334 Commits

Author SHA1 Message Date
b6e18db766 fix: page/graph load speed: part 1 (#6611)
* fix: page/graph load speed: part 1
Speed up load_all_os() by caching the full $config['os'] array
Function time goes from 1.13648s -> 0.00073s
The cache is updated during discovery, but only if it is >22hrs old.
Additionally, the cache is not used and a full yaml load is forced if the cache is >24hrs old.
The cache time is controlled by $config['os_def_cache_time'], I don't see any reason anyone would change that time.

* Delete Session.php

* Include the cache directory.
2017-05-10 08:57:10 +01:00
a96335ecaf newdevice: Added support for Cisco SRP devices (#6600)
* newdevice: Added support for Cisco SRP devices

* added snmprec file
2017-05-08 22:01:41 +01:00
6f99cb6d69 tests: test each db schema file for proper format (#6580) 2017-05-04 21:14:14 +01:00
a475069c9b newdevice: Add FWSM recognition to PIX OS (#6569) 2017-05-03 19:45:25 -05:00
4dbab407bb refactor: OS discovery tests are now dynamic (#6555)
* refactor: OS discovery tests are now dynamic
All that needs to be done now is supply snmprec files with the proper name. os.snmprec or os_description.snmprec
I also tweaked the loading of yaml files to speed up the tests substantially.
Verifies all os have at least one test and all snmprec files are tested.

* fix typo
2017-05-03 15:52:53 +01:00
5e790ee617 newdevice: fix Extremeware and XOS detection (#6554) 2017-05-03 15:02:10 +01:00
2f5a1742c3 newdevice: Added detection for GE UPS (#6549) (#6553)
* Add support for GE UPS (#6549)

* rename OS and remove sysDescr regex
2017-05-02 15:20:28 +01:00
a6eca494ff newdevice: Added detection for AKCP SecurityProbe (#6550)
* Add support for AKCP SecurityProbe

* Add tests for AKCP SecurityProbe
2017-05-02 14:48:44 +01:00
e2f0965b5c newdevice: Added support for Aruba ClearPass devices (#6528) 2017-05-02 07:46:02 -05:00
371c0ff65b newdevice: Added support for Cisco's AsyncOS (#6545)
* Create asyncos.yaml

Added device definition for AsyncOS devices.

* Create asyncos.inc.php

Add poller definition for Async devices.

* Update asyncos.yaml

Added discovery modules.

* Update asyncos.inc.php

Refactored version, hardware, and serial parsers.

* Add AsyncOS MIBs

Add MIBs for AsyncOS WSA and ESA appliances.

* Added OS test

* AsyncOS Refactoring/OS Support

* Change serial number in unit OS test
2017-05-02 07:53:56 +01:00
4c0412b14d feature: Wireless Sensors Overhaul (#6471)
* feature: Wireless Sensors
Includes client counts for ios and unifi
Graphing could use some improvement.
Alerting and threshold ui not implemented

WIP: starting OO based wireless sensors.

Class based functionality working
remove old functional files
add schema file

discovery needs to be enabled, not polling

fix up schema

fix Unifi discovery not returning an array

Add some debug when discovering a sensor.
Fix style.

Add missing semicolin

Add a null object (Generic) for OS.
Fill out some phpdocs

Re-organized code
Each sensor type now has it's own discovery and polling interface
Custom polling tested with Unifi CCQ

Left to do:
Implement UI (Graphs and Custom thresholds)
Alerting
Testing

Fix event message text

Remove runDiscovery and runPolling from OS, they are unused and don't belong there.

Cleanups/docs

Missed this file.

Remove the requirement to fetch the current value to check validity.
Do that automatically if current is not specified
A few cleanups here and there

First pass at graphing.
device_ and wireless_ graphs added.

Add RouterOS support

Singleton OS instance isn't required right now.
Remove that to allow some memory to be freed.

Add wireless to the device list metrics.
Make all metrics clickable

Tweak graphs a bit

Implement limit configuration page.
Use sensors page as common code instead of duplicating.
Clean up some javascript interactions:  Allow enter on values to save. Cancel if update is not needed. Enable the clear custom button after setting a custom value.
Add some wireless alert rules to the library.

Add documentation.

Add unifi client counts by ssid in addition to radio.
Optimize Sensor polling a bit.

Add HP MSM clients support (for full controller)
Fix function accessibility

Formalize the discovery and poller interfaces.

Add Xirrus clients and noise floor
move module interfaces to a more appropriate place.
push caching code up to os, unsure about this do to the limitations

No point in selectively enabling wireless discovery.  We only discover if the device supports something.

Add RSSI, Power, and Rate.
Add these sensors for Ubnt Airos.
Clean up some copyrights.

Reduce the amount of files need to add new types.
Leave graph files for consistency and to allow customization.

Remove the old wifi clients graph completely.
ciscowlc should have improved counts (total and per-ssid)

Schema didn't get added.

Impelement the rest of the AirOS sensors
Reformat and re-organize the Airos.php class.

Add several UBNT AirFiber sensors

A few fixes add links to the section headers

Add HP MSM mibs.

* Schema file got dropped in rebase.

* Add wireless menu to view sensors across all devices.
Icons in the menu need help :/

* Add HeliOS, Mimosa, and Siklu support
Sensors added SNR + Noise

* Add power and utilization to Unifi

* Update polling to prefetch all sensor data in a few snmp requests as possible

* Add Extendair: tx+rx power, aggregate rate, frequency

* Add a check for duplicate sensors in discovery.  Just print an error for now.

* Add Bit Error Ratio (named error-ratio to allow for bit error rate to be added if needed)
Fix an incorrect link in the wireless sensors table

* Add error rate and change all bps and Hz to use si units

* Fixes to limits and frequency display

* Fix overview graph frequency display
A few decimal place tweaks

* Don't allow switching sensor and wireless-sensor graphs, it doesn't work.
Change individual distance graphs to use si units

* Go through the OS and make sure I got all the sensors I can (probably missed some still)
Because pollWirelessChannelAsFrequency() is generic and a little complex, so pull it up to OS.
Message to help developers adding supports that don't return an array from discover functions.

* Fix some issues

* Remove noise and signal for now at least
A couple more fixes
Add a notification

* Oopsie

* Bonus AirFiber sensors
2017-05-01 23:49:11 -05:00
e7e5d51b30 newdevice: Added support for Exalt ExtendAir (#6524) 2017-04-29 15:58:06 +00:00
cf026659cb newdevice: Added detection for Alvarion Breeze units (#6526) 2017-04-29 15:56:17 +00:00
14fd57bd57 newdevice: Added support for Avaya Scopia devices (#6527) 2017-04-29 15:55:25 +00:00
4c42c91ba8 newdevice: Added support for Tycon Systems TPDIN units (#6506) 2017-04-27 22:16:41 -05:00
e6fa8dbd13 newdevice: Added basic detection for Packetflux SiteMonitor (#6498)
* newdevice: Added basic detection for Packetflux SiteMonitor

* added missing file

* updated to include some health sensors
2017-04-27 22:14:52 -05:00
2aa4145a26 fix: APC/MGE UPS sensors divisor for load and voltage (#6509)
* fix: APCMGE sensors divisors

* Add missing SNMP SIM file

* Add OS test for snmprec file
2017-04-26 08:35:07 -05:00
1b1907a09f Update database tests to prepare for more (#6500)
* Update database tests to prepare for more
Add test_db_name, test_db_user, test_db_pass to allow developers to have a dedicated testing database.
Extract DBTestCase to include common functionality for database based tests. Use transactions to isolate tests.
Enable STRICT_TRANS_TABLE, test for it's existence (only when we have a user that can set it)
Move the database cleanup to register_shutdown_function, this makes it happen every time at the end of tests.
If the was not empty, only truncate the tables (that aren't prepopulated) instead of drop the database.
Use our schema functions for schema tests.
Fix some missing array indexes so it doesn't clutter test output.

* Fix style
2017-04-26 07:56:00 -05:00
43914fbc7f newdevice: Eaton/MGE UPS reorganization (#6388)
* Eaton UPS cleanup

* newdevice: Eaton/MGE UPS cleanup

MGE split Galaxy (and Upsilon) to apc-mgeups
All others to eaton-mgeups
Remove mge ups from eatonups os.
Remove powerware it is a duplicate of eatonups

* Add rfc1528 for both mgeups os

* Update overview graphs
2017-04-24 14:04:05 +01:00
720177965b newdevice: Added support for C&C Commander Plus units (#6478) 2017-04-22 08:13:07 -05:00
d0201a9437 newdevice: Added detection for Ericsson UPC devices (#6472) 2017-04-22 08:12:05 -05:00
21a70dcb8a newdevice: Added basic detection for Geist Watchdog (#6467)
* newdevice: Added basic detection for Geist Watchdog

* Added further support

* Added more health sensors
2017-04-22 08:11:21 -05:00
3ff8b269f5 newdevice: Added support for enLogic PDUs (#6464) 2017-04-22 08:07:37 -05:00
b27e200a6c newdevice: Added support for Eltex OLT devices (#6457) 2017-04-22 08:05:17 -05:00
c31bc7d844 newdevice: Etherwan managed switches (#6488)
* newdevice: Etherwan managed switches

* Fixed requested changes
2017-04-22 12:46:12 +01:00
b18d026f9d fix: ArubaOS PowerConnect detection (#6463)
fixes: #6446
2017-04-19 16:34:28 +01:00
230fb6601b newdevice: Added detection for Ciena packet switches (#6462) 2017-04-19 10:20:45 -05:00
eebf0d263a refactor: move ios detection to yaml using new sysDescr_except (#6456)
* refactor: move ios detection to yaml using new sysDescr_except

* Add IOS-XE too

* Add Catalyst 4500 test data, it needs IOS-XE for proper detection.
2017-04-19 11:02:29 +01:00
963f444f17 fix: Allow line returns in snmprec files with the 4x data type (#6443)
* fix: Allow line returns in snmprec files with the 4x data type
Fill in IOS data files
IOS-XE discovery fails, fix that

* Restore IOS-XE, unsure if it can be removed
2017-04-18 22:28:48 +01:00
01477a15f4 refactor: move cometsystem-p85xx (#6427)
Read mibs to find the correct sysObjectID
2017-04-15 08:10:59 +01:00
8a8edb7d6d refactor: move the rest of avaya os detection to yaml (#6426)
Detection should be improved for these OS.
2017-04-15 08:10:15 +01:00
54975f64d4 refactor: move aos discovery to yaml (#6425)
Untangle ArubaOS/AOS-W a bit.
Test data well supported by stats.
OmniStack LS, feels odd, but leaving it as AOS.
2017-04-15 08:09:14 +01:00
d64a083141 newdevice: Added basic detection for Tandberg Magnum tape units (#6421)
* newdevice: Added basic detection for Tandberg Magnum tape units

* Tandberg icon to svg
2017-04-14 21:50:43 -05:00
808f27e760 newdevice: Added detection for IgniteNet HeliOS (#6417)
* newdevice: Added detection for IgniteNet HeliOS

* Add empty sysDescr

* Update helios.snmprec
2017-04-14 21:25:42 -05:00
d0c87400f3 newdevice: Added detection and sensor support for EMC OneFS v8 (#6416)
* newdevice: Added detection and sensor support for EMC OneFS v8

* Improve discovery
2017-04-14 21:25:24 -05:00
06add77685 fix: Allow unit tests without a sql server (#6398)
* fix: Allow unit tests without a sql server

* Fix db connection in bootstrap.php
Mark tests as skipped
Make sure the sql queries in bootstrap.php have run
2017-04-13 11:05:14 +01:00
e005f78211 newdevice: detect more devices as Comware (#6386)
* newdevice: improve comware detection
Only some H3C Comware devices were detected as comware, detect them all.

* Update the test data

FYI, C1234 was just a nonsense string
2017-04-13 10:52:07 +01:00
bd3fd64f3e newdevice: Support - ICT Digital Power Supply (#6369)
* Basic support for ICT PSU, no sensors yet.

* Added current and voltage sensors

* Fixed coding style issues

* Fixed indexes
2017-04-12 15:00:54 -05:00
457f2e9744 newdevice: Support - ICT DC Distribution Panel (#6379)
* New Device Support for ICT DC Distribution Panels

* Fixed indexes, removed tests

* Supply name instead of oid to snmp_get call

* Fixed index conflict for current sensors
2017-04-12 14:37:22 -05:00
0f02dec4cc newdevice: Added support for Vanguard ApplicationsWare (#6387) 2017-04-12 14:20:24 -05:00
c35b5b36f3 newdevice: Basic Ciena (Cyan) Z-Series detection (#6385)
issue: #6337
2017-04-08 07:14:41 +01:00
b1483e3d2e feature: Unit test to validate the db schema (#6367)
* Unit test to validate the db schema
Changes build-schema.php to just write misc/db_schema.yaml

* Only build base if needed
Fix 178.sql

* Database is always created by init.php
add dbSchema test too, should guard against testing against an empty database

* feature: support non-standard unix socket (#5724)

* Add support for custom MySQL unix-socket

* NULL must be lowercase!

* Naive edit of html/install.php

* fixup

* Refactor dbConnect
Use it everywhere

* $config needs to be global
Don't need to set $database_link

* small cleanups

* Connect to the database for every test.

* travis fix for blank line
2017-04-07 15:07:44 +01:00
b1a414e785 feature: support non-standard unix socket (#5724)
* Add support for custom MySQL unix-socket

* NULL must be lowercase!

* Naive edit of html/install.php

* fixup

* Refactor dbConnect
Use it everywhere

* $config needs to be global
Don't need to set $database_link

* small cleanups
2017-04-06 22:02:37 +01:00
5b32f71434 newdevice: Added support for Teradici PCoIP card (#6347)
* Added device discoery for Teradici PCoIP card

* Removed redundant arguments from snmp_get and comments in os definition

* Added 'workstations' as a device type
2017-04-06 20:38:12 +01:00
61bb58b106 newdevice: Added detection fro Juniper MSS (#6335)
* newdevice: Added detection fro Juniper MSS

* update sysObjectId check
2017-04-06 18:19:25 +01:00
699e99e795 newdevice: Updated OS Polling for Opengear ACM7008 (#6349)
* Add OS Polling for Opengear ACM7008

* Fixed OSDiscoveryTest.php whitespaces

* Removed 'v' from OS version polling
2017-04-05 22:48:05 +01:00
f85f8c1e13 newdevice: Add support for Nokia (Alcatel-Lucent) SAS-Sx 7210. Add TiMos version and hardware. (#6344)
* I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md.

* Add support for Nokia SAS-Sx 7210

* Revert "I agree to the conditions of the Contributor Agreement contained in doc/General/Contributing.md."

This reverts commit 2b89f9edb53dc493201102e9dd00db3a911ffc01.

* Edited hardware regex to cover more sample data
2017-04-04 14:35:39 -05:00
9b62ea2cbf newdevice: Added basic support for Omnitron iConverters (#6336)
* Added basic support for Omnitron iConverters

* Fixed discovery issue & cropped logo
2017-04-04 13:02:50 -05:00
1bbbaff58b refactor: Moved ifLabel -> cleanPort and updated the usage (#6288)
* refactor: Moved ifLabel -> cleanPort and updated the usage

* added list of tags allowed

* few updates as per comments from @murrant

* Added simple unit tests

* double display for javascript popover

* Remove ifNameDescr() function
Fix realtime port page

* remove accidental temp code

* Remove double display calls in ajax tables
2017-04-04 08:08:23 +01:00
b1c2ea2194 newdevice: Added HPE iPDU detection (#6334) 2017-04-03 20:02:43 -05:00