mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Adding API route to set bgpPeerDescr field (#13056)
* Adding API route to set bgpPeerDescr field * Fixing CI test * Fixing CI test part 2 * Adding validation of bgpPeerId as integer and changing SQL request with question mark syntax. * Fixing CI test * Following murrant's advices to protect against SQL injection * Use built in json function Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
@@ -103,6 +103,33 @@ Output:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### `edit_bgp_descr`
|
||||||
|
|
||||||
|
This is a POST type request
|
||||||
|
Set the BGP session description by ID
|
||||||
|
|
||||||
|
Route: `/api/v0/bgp/:id`
|
||||||
|
|
||||||
|
Input:
|
||||||
|
|
||||||
|
- id = The id of the BGP Peer Session.
|
||||||
|
- bgp_descr = The description for the bgpPeerDescr field on the BGP Session.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```curl
|
||||||
|
curl -v -H 'X-Auth-Token: YOURAPITOKENHERE' --data '{"bgp_descr": "Your description here"}' https://librenms.org/api/v0/bgp/4
|
||||||
|
```
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"status": "ok",
|
||||||
|
"message": "BGP description for peer X.X.X.X on device 1 updated to Your description here"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### `list_cbgp`
|
### `list_cbgp`
|
||||||
|
|
||||||
List the current BGP sessions counters.
|
List the current BGP sessions counters.
|
||||||
|
@@ -604,6 +604,35 @@ function get_bgp(Illuminate\Http\Request $request)
|
|||||||
return api_success($bgp_session, 'bgp_session');
|
return api_success($bgp_session, 'bgp_session');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function edit_bgp_descr(Illuminate\Http\Request $request)
|
||||||
|
{
|
||||||
|
$bgp_descr = $request->json('bgp_descr');
|
||||||
|
if (! $bgp_descr) {
|
||||||
|
return api_error(500, 'Invalid JSON data');
|
||||||
|
}
|
||||||
|
|
||||||
|
//find existing bgp for update
|
||||||
|
$bgpPeerId = $request->route('id');
|
||||||
|
if (! is_numeric($bgpPeerId)) {
|
||||||
|
return api_error(400, 'Invalid id has been provided');
|
||||||
|
}
|
||||||
|
|
||||||
|
$peer = \App\Models\BgpPeer::firstWhere('bgpPeer_id', $bgpPeerId);
|
||||||
|
|
||||||
|
// update existing bgp
|
||||||
|
if ($peer === null) {
|
||||||
|
return api_error(404, 'BGP peer ' . $bgpPeerId . ' does not exist');
|
||||||
|
}
|
||||||
|
|
||||||
|
$peer->bgpPeerDescr = $bgp_descr;
|
||||||
|
|
||||||
|
if ($peer->save()) {
|
||||||
|
return api_success_noresult(200, 'BGP description for peer ' . $peer->bgpPeerIdentifier . ' on device ' . $peer->device_id . ' updated to ' . $peer->bgpPeerDescr . '.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return api_error(500, 'Failed to update existing bgp');
|
||||||
|
}
|
||||||
|
|
||||||
function list_cbgp(Illuminate\Http\Request $request)
|
function list_cbgp(Illuminate\Http\Request $request)
|
||||||
{
|
{
|
||||||
$sql = '';
|
$sql = '';
|
||||||
|
@@ -84,6 +84,7 @@ Route::group(['prefix' => 'v0', 'namespace' => '\App\Api\Controllers'], function
|
|||||||
Route::delete('locations/{location}', 'LegacyApiController@del_location')->name('del_location');
|
Route::delete('locations/{location}', 'LegacyApiController@del_location')->name('del_location');
|
||||||
Route::delete('services/{id}', 'LegacyApiController@del_service_from_host')->name('del_service_from_host');
|
Route::delete('services/{id}', 'LegacyApiController@del_service_from_host')->name('del_service_from_host');
|
||||||
Route::patch('services/{id}', 'LegacyApiController@edit_service_for_host')->name('edit_service_for_host');
|
Route::patch('services/{id}', 'LegacyApiController@edit_service_for_host')->name('edit_service_for_host');
|
||||||
|
Route::post('bgp/{id}', 'LegacyApiController@edit_bgp_descr')->name('edit_bgp_descr');
|
||||||
});
|
});
|
||||||
|
|
||||||
// restricted by access
|
// restricted by access
|
||||||
|
Reference in New Issue
Block a user