* Merge duplicate toBytes functions
Replace other duplicate code and add tests
* Allow space between similar to formatSI output
* Style fixes
* Match previous behavior in Docker app
* 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
* 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>
* Refactor MAC utils to a new utility class
* Apply fixes from StyleCI
* Inline functions
Add tests
Handle bridgeid format
* Apply fixes from StyleCI
* Dedicated code path for stp bridge parsing, and improve STP output a bit
* Correctly parse dot1dBaseBridgeAddress and don't store int in bool field
* trim any unexpected character from bridge addresses, add extra test data.
* better comment
* barsBridge can handle dot1dBaseBridgeAddress correctly now
* parseBridge, check for properly formatted mac first.
* update test data, empty data = empty mac
* Fix new usage after rebase
* import
---------
Co-authored-by: StyleCI Bot <bot@styleci.io>
* Add no_proxy and other proxy related settings
Set user agent on all http client requests
Unify http client usage
* Style fixes
* Remove useless use statements
* Correct variable, good job phpstan
* Add tests
fix https_proxy bug
add tcp:// to the config settings format
* style and lint fixes
* Remove guzzle from the direct dependencies
* Use built in Laravel testing functionality
* update baseline
* 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
* Automatic fixes for validations
* webui
* lint fixes
* Fix an install issue with ConfigSeeder requesting cli input in web page.
* Do not use c_echo in validate.php print_fail()
* 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
* API transport fix parsing
parse templates after parsing user options, not before
* API transport tests
* fix style and lint
* remove accidental item
* fix more type issues
* Run phpstan locally with `lnms dev:check lint`
Separate result cache for deprecated functions so we don't break the cache every time.
* Skip phpstan flag
Skip all lints on ci except php lint (so we can check on multiple php versions)
* forgot default value
* fix up test cases
* Update LibreNMS/Util/CiHelper.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Better handling of some alerting errors
* Better error output
* Consolidate simple template parsing
* Fixes reported by phpstan (one was a bug, yay!)
* add back forgotten trim
* don't remove the template if there is no match
* Match previous behavior, which was inconsistent.
* use anonymous class for tests instead
* Oopsie, Stringable is PHP8+
* fix style
* 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
* 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
* SNMP WIP
* cleanup, more types
* Include my snmp:fetch command
* Fix Facade name conflict
* Command WIP
remove mib
* Ignore exit code
cleanups
* Doc blocks and style fixes
* forgot to use parseOid
* Hopefully final fixes
* missed on (:
* small changes
deviates from existing code, hopefully doesn't re-add too many corner cases.
* add some simple tests, will make it easier to add more in the future when we find corner cases.
* test numeric
* API refinements, try to avoid setting textual net-snmp options directly
* change numeric to a toggle makes for nicer usage
* make ci happy
* Some errors happen only in stderr, pass that to SnmpResponse for parsing.
Add error message access
* More consistent naming
* Infer character encoding for ifAlias and sysLocation
Tries to convert character encoding for non-UTF-8 encoded strings.
This will only work for snmp strings that are type-hinted, not ones forced to ASCII with -Oa or similar
Only works for your default charset or Windows-1251 or LATIN1.
You can set your character encoding in .env with CHARSET
Please save us all and just use UTF-8
* style fixes
* less Yoda
* ensure return type
* fall back to passed string
* don't convert strings with any unprintable characters (such as line return)
* Update LibreNMS/Util/StringHelpers.php
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Fix CP850
* fix space
Co-authored-by: Jellyfrog <Jellyfrog@users.noreply.github.com>
* Validate APP_KEY
key:rotate command to rotate keys, only rotates validation data for now
* fixes, swapped encrypters, not saving new value to db, check that key exists first
* add confirmation
* Option to generate new key, re-encrypt data and then save it to .env
A lot more text to try to prevent disaster. Print out both keys 1-2 times.
Fix bug in EnvHelper (when key is commented but not empty)
* fix style
* oops, good phpstan
* API find a switchport with the mac from device
* fix style
* convert SQL to Eloquent
* convert SQL to Eloquent
* git mistake
* Global use App\Models\Port
* git mistake partII
* Refractor Eloquent - Not finish but easier to help for others
* Better Eloquent Query without filter option
* Validation
* fix style
* Add filter option and DOC
* convert to the better macToHex method
* add a maxToHex unit test
* fix style
* fix style
* fix syle - seems my dev:check is running again :-)
* Fix phpStan
* phpStan #2
* 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
* Shift HTTP kernel and middleware
* Shift service providers
* Shift console routes
* Shift to class based factories
* Namespace seeders
* Shift PSR-4 autoloading
* Default config files
In an effort to make upgrading the constantly changing config files
easier, Shift defaulted them. This allows you to review the commit
diff for once for customizations when you are done Shifting.
Moving forward, consider using ENV variables or create a separate
config file to allow the core config files to remain as default
as possible.
* Shift Laravel dependencies
* Shift return type of base TestCase methods
From the [PHPUnit 8 release notes][1], the `TestCase` methods below now declare a `void` return type:
- `setUpBeforeClass()`
- `setUp()`
- `assertPreConditions()`
- `assertPostConditions()`
- `tearDown()`
- `tearDownAfterClass()`
- `onNotSuccessfulTest()`
[1]: https://phpunit.de/announcements/phpunit-8.html
* Shift cleanup
* console routes
* composer update
* factories
* phpunit
* bootstrap pagination
* model factory
* wip
* Apply fixes from StyleCI (#12236)
* wip
* Apply fixes from StyleCI (#12238)
* wip
* wip
* wip
* wip
* Apply fixes from StyleCI (#12240)
* wip
* Apply fixes from StyleCI (#12242)
* composer update
* Bump to PHP 7.3 minimum
Co-authored-by: Laravel Shift <shift@laravelshift.com>
* Refactor pre-commit to class
* docs build
* dusk check
* ci mode for checks
* full checks
* other mysql
* make other lint checks actually work
fix pylint finding
* ci is a long opt
* fix undefined index
* dusk fully working
* ask for forgiveness, not permission
* fix whitespace
* skip dusk sometimes
* Handle 3com and other os with digits
* flags instead of if else spaghetti
* convert to command
* cleanup
* missed check
* fixes
* case
* self-check :D
* argument now
* fix bugs from refactors
* another fix
* adjust file change parsing
* refactor execut a bit
* fallback to global quiet when unknown type.
* allow quiet override for specific commands
* output cleanup
* check flow
* start of tests
* file categorizer tests and fixes
* fixes and cleanup
* skipable not implemented...
* more tests, fix bugs
* more tests and cleanup
* wrong command
* fix canCheck and set env properly
* full env fix
* don't allow dusk on user's run as it will erase their db.
* fix os option
* fix whitespace
* don't need to start server
* ci doesn't like that
* WIP Sqlite
Down methods don't work either, avoid them with refresh for now.
WIP persistent support
WIP db_schema
WIP db_schema 2
Update new migrations...
revert dump_db_schema changes for now, too much difference.
fix migrations on mysql
fix up some more items, this should be our target schema
lots of index renames and a two misc changes
index rename WIP
index rename WIP
another round
fix up new schema changes
try case insensitive fix
Trying tests WIP
fix down methods
DBSetupTest working (uses mysql)
Test sqlite migrations work
* Properly validate sqlite output
* revert glue changes, should be separate PR
* remove dusk workaround
* remove unused variables
* import
* sqlite capitalization
* Revert some refresh tests
* testing_mysql back to testing