Commit Graph

128 Commits

Author SHA1 Message Date
Tony Murray
54ec98cafb API: return error when no ports found (#16043)
When looking up device ports (get_port_graphs), return an error when no ports are found.

fixes #15964
2024-05-21 22:05:44 -05:00
Joe Clarke
018597e7bb Add support for a maintenance boolean in API results. (#15904)
* Add support for a maintenance boolean in API results.

If a device is under maintenance, it would be nice to see that from the
API. This can help drive other automation workflows where LibreNMS forms
a cornerstone in the management source of truth.

* Revert changes made by VSCode formatting.

* Revert two more formatting changes.

* Create a new API endpoint for GETing maintenance status.

This uses the same endpoint name as for setting a device to maintenance
but with a GET verb.

---------

Co-authored-by: Joe Clarke <jclarke@cisco.com>
2024-04-19 19:52:22 -05:00
Tony Murray
49f8269262 Improved Latency graph (#15940)
* 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
2024-04-18 09:57:01 -05:00
Jellyfrog
83fe4b10c4 Improve order validation in list_devices function to prevent SQL injection (#15885) 2024-04-16 10:38:17 -05:00
richard-ririe
08ae2fdbc0 Add API endpoints to update and delete Device Groups (#15774)
* API: Update device groups

* API: Delete device groups
2024-02-05 13:02:36 -06:00
richard-ririe
4277c3387a API: Add/Remove devices from static devicegroups (#15775) 2024-01-31 13:09:14 -06:00
Nick Lockhart
f3e0f3eb93 Add port description API endpoints and documentation (#15578)
* Add port description API endpoints and documentation

* Change "update_port_description" behaviour to mimic webUI behaviour

* Fix code style issue

* Fix another code style issue
2024-01-22 23:07:13 +00:00
Stef
5733942aa2 WebUI - Alert Rule Editor: new notes field (#15631)
* add a new notes field to the rule editor. use a bigger text field for sql queries to avoid mistakes...
* add api doc
* allow notes field from the collection
* add a sample notes to the collection
* lint and db schema
* unmix some schema changes from a nother PR
* unmix schema update No°2
* unmix schema update No°3 - silly me
* add strip_tags, minor optimisation, db default value
* apply linting
* db_schema empty '' as default
* update db_schema.yaml
* default value changed as 'BLOB, TEXT, GEOMETRY or JSON column 'notes' can't have a default value'
* better keep the migration in 2023...
* Update 2023_12_12_171400_alert_rule_note.php
* Update create-alert-item.inc.php

---------

Co-authored-by: PipoCanaja <38363551+PipoCanaja@users.noreply.github.com>
2024-01-17 09:09:19 +01:00
Justin Lentz
ee114218d4 Add PollerGroup as an option for OxidizedMap (#15696)
* Update SettingOxidizedMaps.vue

* Update api_functions.inc.php

* Update app.js

* Update app.js

* Style

* Update mix-manifest.json
2024-01-15 22:55:20 +00:00
Jellyfrog
071ca9bc2a Apply fixes from StyleCI (#15698)
Co-authored-by: StyleCI Bot <bot@styleci.io>
2024-01-04 22:39:12 -06:00
Tony Murray
e7114e33f9 API add_device: Add ping_ping fallback option (#15637)
* API add_device: Add ping_ping fallback option
improve docs a little

* More docs refinement
2023-12-17 18:08:37 +01:00
Stef
ad805f4504 more filter options for the BGP peer API endpoint (#15599)
* Add more filter options for the BGP API endpoint. bgp_descr, bgp_state and bgp_adminstate

* typo and lint

* Adress family filter would also be helpful. casting AS1234 Like inputs to plain numbers

* linting again...
2023-11-29 21:58:30 +01:00
Tony Murray
3a98aa2ec6 API Oxidized source optimization (#15560)
* API Oxidized source optimization
Don't fetch the device twice from the database.

* qualify device_id
2023-11-07 15:44:47 -06:00
VTS
47c6842b01 API: get poller group (#15493)
* API: get poller group

* missed string in doc

* return all poller groups if name/id aren't specified

* add missing doc link

* style fixes

* more style

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-11-01 22:33:35 -05:00
Tony Murray
91b829edd3 Fix API get_location by ID (#15506) 2023-10-25 13:05:04 -05:00
Tony Murray
0e453e5938 API: allow add device to set location (#15469) 2023-10-18 02:00:39 -05:00
Tony Murray
d8c372bbf4 Refactor MAC utilities into a single class (#15379)
* 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>
2023-10-06 07:34:14 -05:00
Tony Murray
52e264a417 Allow port search API to search ifAlias again (#15320)
Was accidentally omitted when fixing a security issue with the API.
fixes #15316
2023-09-14 08:45:20 -05:00
Wheel
a6ccb596df Custom ssh,telnet port with oxidized (#15255)
* Custom ssh,telnet,http port with oxidized

* Lint fixes

* copy paste minors
2023-09-03 20:15:51 -05:00
Tony Murray
d7ae34d390 Fix API availability graph duration (#15250)
Add default duration
2023-08-24 14:40:33 -05:00
VTS
7381c2046c API get_location (#14779)
* api endpoint to get specific location

* missing nl

* fix missed styleci error

* make requested change
2023-08-03 19:35:20 -05:00
richard-ririe
4c8e5fc783 Add API endpoint to get service graphs (#15138)
* Add API endpoint to get service graphs

* Docs: Add missing title to get_graph_by_service
2023-07-19 22:19:43 -05:00
hirose003
7cdb81b2e9 change display query to pattern match (#15147) 2023-07-19 22:17:28 -05:00
tarik
3ad19607d0 adding human readable version of /api/v0/fdb/{mac}/detail (#15045)
* adding human readable version of /api/v0/fdb/{mac}/detail

* adding last seen field in human readable format

* fixing styling issue

* fixing another styling issue

* removing stale variable

* adding a limit to number of results returned in order to limit memory issues

* adding the documentation for fdb_detail api

* Wording fix

* wording fix again. smh

---------

Co-authored-by: Justin Lentz <monkeybrains7@gmail.com>
2023-07-07 23:24:50 -05:00
Tony Murray
e1b6fd0165 Fix more refactor errors (#14998) 2023-04-23 20:33:50 -05:00
Tony Murray
3fe3db747c Refactor billing (#14979)
* Refactor common billing code into a namespace
Prevents issues of usages where the code hasn't been loaded.

* remove redundant Billing in method names

* remove accidental duplication

* more use statements

* Style fixes
2023-04-21 19:52:47 -05:00
Stef
82bd437e47 Syslog sink over http for logstash (or any json source) (#14424)
* inital commit of a new syslog sink over http

* cosmetics

* cosmetics fix...

* cosmetic fix again

* cosmetics fix again

* its nice now...

* add non blocking option

* Syslog Sink integrated as API PUT method

* lint fix

* Update includes/html/api_functions.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>

* Update includes/html/api_functions.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>

* Update includes/html/api_functions.inc.php

Co-authored-by: Tony Murray <murraytony@gmail.com>

* change to POST, fix decoding issue and json exception

* logstash/json documentation added. syslog documentation a bit re-structured

* lint fix

---------

Co-authored-by: Tony Murray <murraytony@gmail.com>
2023-03-15 08:14:38 -05:00
Andy Norwood
3023aa7e0f API: add display query to list_devices function (#14747)
* add display query type

* add display to query examples

* fix typo
2023-02-08 18:36:20 +02:00
electrocret
1e5e26492e Use Oxidized API client and add support for groups on config get (#14750)
* Use API client and add support for groups.

* Being Stylish.

* Update incorrect doc
2023-02-01 11:49:29 -06:00
Andy Norwood
d091788f28 API list_devices update with sysName, location_id and type (#14731)
* Add sysName, location_id, type to list_devices

* Add new list_devices type
2022-12-15 08:25:11 -06:00
Tony Murray
752bbc1531 Port search API search more than one fields (#14646)
* Fix port search columns

* Port search API search more than one fields
Fixup port APIs
Change validate_column_list api helper to throw a renderable exception on error and return the valid columns
DeviceCache::get() can handle a bigger range of input

* whitespace

* Refactor exceptions a bit

* change throws type to be more generic

* Lint fixes
2022-11-18 16:27:56 -06:00
electrocret
4c0ebb6f74 Add Columns to search_ports API function (#14348)
* Add Columns to search_ports function

* StyleCI

* StyleCI

* Add to Docs

* Suggested If fix
2022-11-17 10:18:09 -06:00
geg347
96c7e7166e Adding device's field in get_alert_rule and list-alert-rules API function (new) (#14481)
* Adding device's field in get_alert_rule and lis-alert-rules API function

* Converting SQL request for list/get_alert_rules to Eloquent (thanks a lot to Murrant)

* Manually added #14500 to pass pipeline

* Fixing StyleCI error + trying to fix PHPStan errors

* Trying to fix PHPStan errors (part 2)
2022-11-09 08:21:41 -06:00
Talk Straight Ltd
9826fa9089 feat: Add sortorder parameter to list_logs (#14600) 2022-11-08 18:20:34 +01:00
Tony Murray
511e345321 API graphs, variable whitelist (#14552)
* API graphs, variable whitelist
Restore several missing parameters that relied on graphing code fetching from $_GET directly.
Whitelist valid parameters to set on the request get
Move common parameter handling into common code

* Fix style

* Include previous
2022-11-03 01:08:52 -05:00
Tony Murray
4b65dc41d2 Graphing cleanup (#14492)
* WIP

* Fixes and cleanups

* Move parseAtTime to Time util class

* lint fixes, explicitly define variables

* Style fixes
2022-10-28 08:06:29 -05:00
Jellyfrog
b90fbcb9bf Undefined array key fixes (#14532)
* Undefined array key fixes

* Update check-services.php
2022-10-27 21:02:27 +02:00
rhinoau
6372041d39 Fix update_device hostname handling #14435 (#14448)
* Fix device_update hostname handling #14435

* Use Eloquent

* Update Device.php

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-10-22 15:45:47 -05:00
Tony Murray
aefd14d3aa Graph API use new code path (#14493)
* Graph API use new code path
Improves error handling significantly

* Actually base64 encode it
2022-10-22 14:58:51 -05:00
Tony Murray
e4451714e2 version and git helper improvements (#14412)
* Fix up version and git helpers
Improve method names
Move all git calls into the git helper
Allow runtime and external cache of results where appropriate
Consolidate version headers for discovery, poller, and validate

* Style fixes

* improve consistency in git calls

* fix style

* don't send name inconsistently

* Improve database versions

* No need to cache Version it is not used more than once currently.
2022-10-02 00:41:56 -05:00
bp0
384e0449c1 API: allow delete location by id (#14334)
* API: allow delete location by id

Otherwise impossible to delete location "".

* docs/API: location can be name or id for edit and delete
2022-09-13 09:03:55 -05:00
bp0
94830fe47e API update_device, make location field work (as does location_id) (#14325)
* update_device, add location to list of bad_fields

The field 'location' can't be changed using API update_device_field, even when used with 'override_sysLocation'. It should not return success, with the "Device fields have been updated" message that is untrue.

* Actually make it work

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-09-09 11:40:55 -05:00
electrocret
e458f95bd8 Billing module fix/cleanup (#14309)
* Delete autoadd definitions

Never actually used. Inherited from Observium.

* Allow Billing API to set dir_95th (for agg bills)

Currently we're unable to set dir_95th via API to configure Aggregate bills. This should fix that.
2022-09-06 11:49:15 -05:00
Tony Murray
8f5582f85a Fix more percent calculations (#14294) 2022-09-05 09:22:42 +02:00
Tony Murray
34163703fb Percentage calculation helper (#14235)
* Percentage calculation helper
Helper function to prevent divide by zero mistakes
Replace all percent calculations

* style
2022-08-24 21:01:54 +02:00
rhinoau
d248e6561f Standardize device and device group maintenance API (#14153)
* Standardise device and devicegroup maintenance API

* styleci fixes
2022-07-28 11:38:46 -05:00
Tony Murray
30cb0a5fb3 Fix maintenance APIs not associating device or group (#14127) 2022-07-21 07:07:44 -05:00
Chris A. Evans
5a085f79e5 Feature: Add support to REST API for creating Maintenance Schedules for Device Groups (#13985)
* Add support to REST API for creating Maintenance Schedules for Device Groups

* Update documentation to include the maintenance_devicegroup API endpoint

* Fix quotes

* Fix whitespace

Co-authored-by: Tony Murray <murraytony@gmail.com>
2022-05-27 10:38:47 -05:00
sajiby3k
a7147a17e1 Submitting change to oxidized group api to include device purpose or device notes (#13976) 2022-05-14 12:13:44 -05:00
Claude Brown
958556dc18 Ensure 'add_device' API returns indexed-array (as per documented behaviour) (#13887) 2022-04-03 14:03:03 +01:00