Added /vlans/:hostname route to the API

This commit is contained in:
laf
2014-10-01 20:49:34 +01:00
parent 10e24653be
commit b8a2b7c291
3 changed files with 51 additions and 0 deletions
+3
View File
@@ -35,6 +35,9 @@ $app->group('/api', function() use ($app) {
$app->get('/:hostname/ports/:ifname', 'authToken', 'get_port_stats_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName
$app->get('/:hostname/ports/:ifname/:type', 'authToken', 'get_graph_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName/$type
});
$app->group('/vlans', function() use ($app) {
$app->get('/:hostname', 'authToken', 'get_vlans');//api/v0/vlans/$hostname
});
$app->get('/devices', 'authToken', 'list_devices');//api/v0/devices
$app->post('/devices', 'authToken', 'add_device');//api/v0/devices (json data needs to be passed)
$app->delete('/devices/:hostname', 'authToken', 'del_device');//api/v0/devices (json data needs to be passed)
+29
View File
@@ -447,3 +447,32 @@ function del_device()
$app->response->headers->set('Content-Type', 'application/json');
echo _json_encode($output);
}
function get_vlans() {
// This will list all vlans for a given device
global $config;
$app = \Slim\Slim::getInstance();
$router = $app->router()->getCurrentRoute()->getParams();
$hostname = $router['hostname'];
$status = "error";
$code = 500;
if(empty($hostname)) {
$output = $output = array("status" => "error", "message" => "No hostname has been provided");
} else {
require_once("../includes/functions.php");
$device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname);
$device = null;
if ($device_id) {
// save the current details for returning to the client on successful delete
$device = device_by_id_cache($device_id);
}
if ($device) {
$vlans = dbFetchRows("SELECT vlan_vlan,vlan_domain,vlan_name,vlan_type,vlan_mtu FROM vlans WHERE `device_id` = ?", array($device_id));
$output = array("status" => "ok", "vlans" => array($vlans));
} else {
$code = 404;
$output = array("status" => "error", "Device $hostname not found");
}
}
echo _json_encode($output);
}
+19
View File
@@ -231,6 +231,25 @@ if ($_SESSION['userlevel'] == '10')
<tr>
<td colspan="5"><code>curl -X DELETE -H "Content-Type: application/json" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/devices/localhost"</code></td>
</tr>
<tr class="success">
<td colspan="5"><strong>List VLANs</strong></td>
</tr>
<tr>
<td>/api</td>
<td>/v0</td>
<td>/vlans/$hostname</td>
<td>
<ul class="list-unstyled">
<li>hostname = the hostname to list vlans for</li>
</ul>
</td>
<td>
JSON
</td>
</tr>
<tr>
<td colspan="5"><code>curl -X DELETE -H "Content-Type: application/json" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/vlans/localhost"</code></td>
</tr>
</table>
</div>
</div>