mirror of
https://github.com/stylersnico/librenms.git
synced 2026-07-28 00:24:21 +02:00
Merge pull request #3327 from Jaredn/master
This commit is contained in:
+3
-2
@@ -27,7 +27,7 @@ LibreNMS contributors:
|
||||
- Mohammad Al-Shami <mohammad@al-shami.net> (mohshami)
|
||||
- Rudy Hardeman <zarya@gigafreak.net> (zarya)
|
||||
- Freddie Cash <fjwcash@gmail.com> (fjwcash)
|
||||
- Thom Seddon <thom@seddonmedia.co.uk> (thomseddon)
|
||||
- Thom Seddon <thom@seddonmedia.co.uk> (thomseddon)
|
||||
- Vitali Kari <vitali.kari@gmail.com> (vitalisator)
|
||||
- James Campbell <neokjames@gmail.com> (neokjames)
|
||||
- Steve Calvário <calvario.steve@gmail.com> (Calvario)
|
||||
@@ -93,6 +93,7 @@ LibreNMS contributors:
|
||||
- David Bell <me@geordish.org> (geordish)
|
||||
- Ibrahim Tachijian <barhom@netsat.se> (barhom)
|
||||
- Guillaume Coeugnet <aliasprotect-git@yahoo.fr> (gcoeugnet)
|
||||
- Jared Newell <jared.newell@gmail.com> (Jaredn)
|
||||
- Karsten Nerdinger <karsten-git-librenms@nerdinger.net> (piratonym)
|
||||
|
||||
[1]: http://observium.org/ "Observium web site"
|
||||
@@ -101,4 +102,4 @@ Observium was written by:
|
||||
- Tom Laermans
|
||||
- various others as indicated in the file contents and commit logs
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
- [`get_graphs`](#api-route-5)
|
||||
- [`get_graph_generic_by_hostname`](#api-route-6)
|
||||
- [`get_port_graphs`](#api-route-7)
|
||||
- [`get_port_stack`](#api-route-29)
|
||||
- [`get_components`](#api-route-25)
|
||||
- [`add_components`](#api-route-26)
|
||||
- [`edit_components`](#api-route-27)
|
||||
@@ -275,6 +276,47 @@ Output:
|
||||
}
|
||||
```
|
||||
|
||||
### <a name="api-route-29">Function: `get_port_stack`</a> [`top`](#top)
|
||||
|
||||
Get a list of port mappings for a device. This is useful for showing physical ports that are in a virtual port-channel.
|
||||
|
||||
Route: /api/v0/devices/:hostname/port_stack
|
||||
|
||||
- hostname can be either the device hostname or id
|
||||
|
||||
Input:
|
||||
|
||||
- valid_mappings: Filter the result by only showing valid mappings ("0" values not shown).
|
||||
|
||||
Example:
|
||||
```curl
|
||||
curl -H 'X-Auth-Token: YOURAPITOKENHERE' https://librenms.org/api/v0/devices/localhost/port_stack?valid_mappings
|
||||
```
|
||||
|
||||
Output:
|
||||
|
||||
```text
|
||||
{
|
||||
"status": "ok",
|
||||
"err-msg": "",
|
||||
"count": 2,
|
||||
"mappings": [
|
||||
{
|
||||
"device_id": "3742",
|
||||
"port_id_high": "1001000",
|
||||
"port_id_low": "51001",
|
||||
"ifStackStatus": "active"
|
||||
},
|
||||
{
|
||||
"device_id": "3742",
|
||||
"port_id_high": "1001000",
|
||||
"port_id_low": "52001",
|
||||
"ifStackStatus": "active"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
### <a name="api-route-25">Function: `get_components`</a> [`top`](#top)
|
||||
|
||||
Get a list of components for a particular device.
|
||||
|
||||
@@ -48,6 +48,7 @@ $app->group(
|
||||
$app->get('/:hostname/graphs', 'authToken', 'get_graphs')->name('get_graphs');
|
||||
// api/v0/devices/$hostname/graphs
|
||||
$app->get('/:hostname/ports', 'authToken', 'get_port_graphs')->name('get_port_graphs');
|
||||
$app->get('/:hostname/port_stack', 'authToken', 'get_port_stack')->name('get_port_stack');
|
||||
// api/v0/devices/$hostname/ports
|
||||
$app->get('/:hostname/components', 'authToken', 'get_components')->name('get_components');
|
||||
$app->post('/:hostname/components/:type', 'authToken', 'add_components')->name('add_components');
|
||||
|
||||
@@ -721,6 +721,32 @@ function get_port_graphs() {
|
||||
|
||||
}
|
||||
|
||||
function get_port_stack() {
|
||||
global $config;
|
||||
$app = \Slim\Slim::getInstance();
|
||||
$router = $app->router()->getCurrentRoute()->getParams();
|
||||
$hostname = $router['hostname'];
|
||||
// use hostname as device_id if it's all digits
|
||||
$device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname);
|
||||
|
||||
if (isset($_GET['valid_mappings'])) {
|
||||
$mappings = dbFetchRows("SELECT * FROM `ports_stack` WHERE (`device_id` = ? AND `ifStackStatus` = 'active' AND (`port_id_high` != '0' AND `port_id_low` != '0')) ORDER BY `port_id_high` ASC", array($device_id));
|
||||
} else {
|
||||
$mappings = dbFetchRows("SELECT * FROM `ports_stack` WHERE `device_id` = ? AND `ifStackStatus` = 'active' ORDER BY `port_id_high` ASC", array($device_id));
|
||||
}
|
||||
|
||||
$total_mappings = count($mappings);
|
||||
$output = array(
|
||||
'status' => 'ok',
|
||||
'err-msg' => '',
|
||||
'count' => $total_mappings,
|
||||
'mappings' => $mappings,
|
||||
);
|
||||
$app->response->setStatus('200');
|
||||
$app->response->headers->set('Content-Type', 'application/json');
|
||||
echo _json_encode($output);
|
||||
}
|
||||
|
||||
function list_alert_rules() {
|
||||
global $config;
|
||||
$app = \Slim\Slim::getInstance();
|
||||
|
||||
Reference in New Issue
Block a user