* Initial entity-physical code
* Split out Entity-MIB trait
* Cisco Cellular inventory
* Fix bad test data
* alfo80hd - we now include all entPhysical entries
* Correct aos7 test data
* Add entPhysicalClass as last resort for label in ui
* aos add previously filtered data
* Fixup arista-eos data
* Update ariast_eos data
* Arris, clean garbage in Rev fields
* Aruba Instant custom inventory ported
* ArubaOS CX add vendor type mib
* aviat-wtm test data refresh
* axos add shelf fix data fields a bit
* ciena-rls
* ciena-sds
* Skip cimc for now... no test data
* Cisco updates
* Comware data update
* Update dnos
* Clean Edgeos garbage, make code from Arris shareable
* Relaxed ifIndex match, some devices cheat and send back static strings instead of formatted OIDs
* Regex refinement and updated edgeos with new clean data
* Update edgeswitch data
* Update eltex-mes21xx data
* eltex-mes23xx
* Guess at eltex-mes24xx since there is no test data
* Update eurostor, fix firmware version
* Apply fixes from StyleCI
* fixes
* Update fortigate data
* Update fortiweb, ftd, and fusion
* Update linux LSI
* Fix hexToAscii null removal with different seperator handling
* icotera add final snmprec data to avoid snmpsim bug
* Update IOS data
* Update mrv-od
* Add junos translation
* Generic data updates n-r
* ruijie workaround snmpsim bug
* Port saf-cfm
* Recode Schleifenbauer, and fix entPhysicalIndex values
* SmartAX fixes
* sm-os and tait-infra93
* timos inventory was not right, fix it up
* ubiquoss-pon
* VRP, has custom data collection on top of normal
adapt port ifIndex lookup to handle it
* VRP exceeded the string length specified in ENTITY-MIB...
* data updates
* Final data update and code cleanup
* Apply fixes from StyleCI
* Lint fixes
* Add missing SnmpResponse->pluck() code
* Update db_schema.yaml
* Fix bad test data
* Another instant-on update
* oops
* Remove some unused code
# Conflicts:
# includes/html/pages/device/overview.inc.php
---------
Co-authored-by: Tony Murray <murrant@users.noreply.github.com>
Always ignore underscores. Vendors constantly break this rule and it doesn't seem to have any side effects to enable -Pu.
translate respect hideMib() option
* 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>
* Fix Fping bulk
When an ICMP unreachable message was returned (stderr), the output processing would save it as if it were a partial line, breaking parsing.
Only save a line if it is the last line of the output (not ending in a new line)
* Add test case
* safer logic
* Improved Latency graph
Store loss+jitter info in rrd instead of database
New graph icmp_perf (legacy ping_perf still valid referencing part of the newer data)
Delete device_perf table
* Change loss to an area so it is more visible
* Style fixes
* Cleanups from phpstan & tests
* exit_code fix
* Remove alert usage of device_perf
* Don't use magic __get
* Add test for bulkPing
Add host to previous tests
* style fixes
* Fix issue fping error responses
* SnmpQuery runtime cache
Optionally cache the SnmpResponse from queries for the rest of the runtime.
It would be nice to have cache hits for these to help prevent wasting memory caching data that is only used once.
Key data must match: device, context, options, oids
* Apply fixes from StyleCI
* Add command to the cache key
* Caching in the wrong spot, cache individual commands...
* Apply fixes from StyleCI
---------
Co-authored-by: StyleCI Bot <bot@styleci.io>
* Remove snmp functions that are barely used
Replace them with SnmpQuery calls
* Apply fixes from StyleCI
* Fix missing namespace
* Import Oid
* No more variables left may be repeated multiple times at the end with snmpsim, remove them all
* update data fixed by SnmpResponse bugfix
---------
Co-authored-by: StyleCI Bot <bot@styleci.io>
Additionally fping6 is no longer a thing - this breaks IPv4 hosts entirely in a dual stack environment
It's not possible to reconcile these options, so we have to have a toggle until distro's with fping 3.x fall out of support.
Previously, the code would query all the oids it received. Now it will split it up into multiple queries if too many are sent.
Prevents some devices snmp service from crashing.
* 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
* Consolidate and improve snmptranslate usage
* Fix style
* lint fixes
* fix typo
* allow multiple mib directories
* Only add mib if it is not already set
* oid first, in case we have key length issues
* if there is a full oid, don't add other mibs
* debug in ci
* more debug in ci
* better debug in ci
* remove debug
* Use numeric index
* revert dlink change
* Don't add -On twice
* unit tests and hopefully better heuristics
* remove dump and add one more set of tests
* style fixes
* handle bad input in old functions
* shortcut whole snmp_translate function
* Allow unordered OIDs (global and per-os)
Fix global no_bulk setting, was ignored before
(to fix global needed to rework Config::getCombined() a bit to allow a global prefix to be specified)
Removed invalid use of getCombined and updated tests
* fix whitespace
* update os schema
* 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
* forcewalk param
* [snmp][no_bulk]
* var names, test, schema
* Key off OIDs, not mibs
luminato is POC and needs to be reverted before merge.
* fix up os schema
* docs
* remove luminato arbitrary changes
Co-authored-by: Tony Murray <murraytony@gmail.com>
* Fix warnings up to Arbos
* fixes a-c
* a-r
* a-vrp
* There and back again
* Update test data, couple fixes
* PHPSStan fixes
* style fixes, and fix Asyncos, whoops
* flip serial back.......
* less bogus data
* Poweralert sysName during polling too
* make sure things are calculated in the correct order
* fix style and bad nullables
* update test data
* A comple more conversions
* cambium ptp, misc, and hardware_mib
* remaining except vmware-esxi
* Fixes
* Update baseline
* fixes and fix up baseline
* adjust SnmpQueryMock to upstream options change
* data corrections
* restore slashes
* correctly handle all options input in SnmpQueryMock
* undo ftos changes
* restore vccodec sysDescr
* Fix net-snmp unformatted strings
When net-snmp returns an unformatted string (with quotes around it), it also has backslashes to escape certain characters. Remove those.
* Clean up sysDescr and sysName when setting to Device model.
* Lint fixes
* Hmm, additional formatting spots
* Core module WIP
* update OS::make()
* core WIP
* try to finish up
* switch all core do os Model
* Mock WIP
* Working tests
* cleanup
* phpstan fixes
* style fixes
* fix agent
* trim space too
and a couple of cleanups
* corrected ios test data
* missed space
* update test data
* put escapes back
* another net-snmp difference
* Fix class description
* revert snmp.inc.php change, that can be a different PR
* revert snmp.inc.php change, that can be a different PR
* Rename NetSnmp to SnmpQuery
Always resolve a new instance. It was not expected to be a singleton, set options persisted.
This means numeric() works properly now
* fix snmpfetch call and style
* Ability to set device from device array
* Use Measurements for all statistic collection
* fix space
* Use colors
cleanup
* fix style
* manually fix license notice
* add return times and new line
* add return times and new line
* fix mistake in copyright template
* fix style
* Fping WIP
* Update availability, move ping rrd update in the same place as db update.
* move classes around
* make device:ping command work
* use new code, remove legacy code
* save metrics boolean prevents all saves
style fixes
* update device array
* style fixes
* Update unit test
* fix whitespace
* Fix Fping stub
* fix backwards if
* fix phpstan complaining
* Fix return type
* add fillable to DeviceOutage model.
* device_outage migration to add id...
* missed line in db_schema.yaml
* 1 billion more comments on the brain damage up/down code
* tests for status and status_reason fields
* fix style again :D
* Duplicate legacy isSNMPable() functionality
but with only one snmp call ever 😎
* Remove unused variable
* fix migrations for sqlite