mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
API Calls to list Device Outages, calculated Availability (#12103)
* API Calls to list Device Outages, calculated Availability * switch to eloquent * style correction
This commit is contained in:
@@ -12,8 +12,10 @@
|
||||
* the source code distribution for details.
|
||||
*/
|
||||
|
||||
use App\Models\Availability;
|
||||
use App\Models\Device;
|
||||
use App\Models\DeviceGroup;
|
||||
use App\Models\DeviceOutage;
|
||||
use App\Models\PortsFdb;
|
||||
use App\Models\Sensor;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
@@ -447,6 +449,48 @@ function del_device(Illuminate\Http\Request $request)
|
||||
return api_success([$device], 'devices', $response);
|
||||
}
|
||||
|
||||
function device_availability(\Illuminate\Http\Request $request)
|
||||
{
|
||||
// return availability per device
|
||||
|
||||
$hostname = $request->route('hostname');
|
||||
|
||||
if (empty($hostname)) {
|
||||
return api_error(400, 'No hostname has been provided to get availability');
|
||||
}
|
||||
|
||||
$device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname);
|
||||
|
||||
return check_device_permission($device_id, function ($device_id) {
|
||||
$availabilities = Availability::select('duration', 'availability_perc')
|
||||
->where('device_id', '=', $device_id)
|
||||
->orderBy('duration', 'ASC');
|
||||
|
||||
return api_success($availabilities->get(), 'availability');
|
||||
});
|
||||
}
|
||||
|
||||
function device_outages(\Illuminate\Http\Request $request)
|
||||
{
|
||||
// return outages per device
|
||||
|
||||
$hostname = $request->route('hostname');
|
||||
|
||||
if (empty($hostname)) {
|
||||
return api_error(400, 'No hostname has been provided to get availability');
|
||||
}
|
||||
|
||||
$device_id = ctype_digit($hostname) ? $hostname : getidbyname($hostname);
|
||||
|
||||
return check_device_permission($device_id, function ($device_id) {
|
||||
$outages = DeviceOutage::select('going_down', 'up_again')
|
||||
->where('device_id', '=', $device_id)
|
||||
->orderBy('going_down', 'DESC');
|
||||
|
||||
return api_success($outages->get(), 'outages');
|
||||
});
|
||||
}
|
||||
|
||||
function get_vlans(Illuminate\Http\Request $request)
|
||||
{
|
||||
$hostname = $request->route('hostname');
|
||||
|
Reference in New Issue
Block a user