mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Additional parameters for list_alerts and list_devices API calls (#9040)
- Add filtering by severity in list_alerts. - Added ability to filter only active devices (not ignored and not disabled) in list_devices. DO NOT DELETE THIS TEXT #### Please note > Please read this information carefully. You can run `./scripts/pre-commit.php` to check your code before submitting. - [x] Have you followed our [code guidelines?](http://docs.librenms.org/Developing/Code-Guidelines/) #### Testers If you would like to test this pull request then please run: `./scripts/github-apply <pr_id>`, i.e `./scripts/github-apply 5926`
This commit is contained in:
@@ -99,11 +99,19 @@ Route: `/api/v0/alerts`
|
||||
Input:
|
||||
|
||||
- state: Filter the alerts by state, 0 = ok, 1 = alert, 2 = ack
|
||||
- severity: Filter the alerts by severity. Valid values are `ok`, `warning`, `critical`.
|
||||
- order: How to order the output, default is by timestamp (descending). Can be appended by DESC or ASC to change the order.
|
||||
|
||||
Example:
|
||||
Examples:
|
||||
```curl
|
||||
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/alerts?state=1
|
||||
```
|
||||
```curl
|
||||
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/alerts?severity=critical
|
||||
```
|
||||
```curl
|
||||
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/alerts?order=timestamp%20ASC
|
||||
```
|
||||
|
||||
Output:
|
||||
```json
|
||||
|
@@ -768,6 +768,7 @@ Input:
|
||||
- order: How to order the output, default is by hostname. Can be prepended by DESC or ASC to change the order.
|
||||
- type: can be one of the following to filter or search by:
|
||||
- all: All devices
|
||||
- active: Only not ignored and not disabled devices
|
||||
- ignored: Only ignored devices
|
||||
- up: Only devices that are up
|
||||
- down: Only devices that are down
|
||||
|
@@ -318,6 +318,8 @@ function list_devices()
|
||||
|
||||
if ($type == 'all' || empty($type)) {
|
||||
$sql = '1';
|
||||
} elseif ($type == 'active') {
|
||||
$sql = "`d`.`ignore`='0' AND `d`.`disabled`='0'";
|
||||
} elseif ($type == 'location') {
|
||||
$sql = "`d`.`location` LIKE '%".$query."%'";
|
||||
} elseif ($type == 'ignored') {
|
||||
@@ -1043,6 +1045,17 @@ function list_alerts()
|
||||
$sql .= 'AND `A`.id=?';
|
||||
}
|
||||
|
||||
$severity = $_GET['severity'];
|
||||
if (isset($severity)) {
|
||||
if (in_array($severity, ['ok', 'warning', 'critical'])) {
|
||||
$param[] = $severity;
|
||||
$sql .= ' AND `R`.severity=?';
|
||||
}
|
||||
}
|
||||
|
||||
$order = $_GET['order'] ?: "timestamp desc";
|
||||
$sql .= ' ORDER BY A.'.$order;
|
||||
|
||||
$alerts = dbFetchRows($sql, $param);
|
||||
api_success($alerts, 'alerts');
|
||||
}
|
||||
|
Reference in New Issue
Block a user