Add service templates

This commit is contained in:
Anthony F McInerney
2020-09-17 19:44:14 +01:00
parent baf25879f7
commit 39cf7efa7f
3 changed files with 49 additions and 3 deletions
@@ -0,0 +1,30 @@
<?php
/*
* LibreNMS
*
* Copyright (c) 2016 Aaron Daniels <[email protected]>
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version. Please see LICENSE.txt at the top level of
* the source code distribution for details.
*/
if (!Auth::user()->hasGlobalAdmin()) {
$status = array('status' =>1, 'message' => 'ERROR: You need to be admin to apply service templates');
} else {
if (!is_numeric($vars['service_template_id'])) {
$status = array('status' =>1, 'message' => 'No Service Template has been selected');
} elseif (!is_numeric($vars['device_group_id'])) {
$status = array('status' =>1, 'message' => 'No Device Group has been selected');
} else {
if (discover_service_template($vars['device_group_id'],$vars['service_template_id'])) {
$status = array('status' =>0, 'message' => 'Device Group: <i>'.$vars['device_group_id'].',Service Template: <i>'.$vars['service_template_id'].', has been discovered.</i>');
} else {
$status = array('status' =>1, 'message' => 'Device Group: <i>'.$vars['device_group_id'].',Service Template: <i>'.$vars['service_template_id'].', has been discovered.</i>');
}
}
}
header('Content-Type: application/json');
echo _json_encode($status);
@@ -131,6 +131,7 @@ require_once 'includes/html/modal/delete_service_template.inc.php';
if (Auth::user()->hasGlobalAdmin()) {
echo "<td>
<button type='button' class='btn btn-warning btn-sm' aria-label='Apply' data-toggle='modal' data-target='#discover-service-template' data-service_template_id='{$service_template['service_template_id']}' data-device_group_id='{device_group['device_group_id']}' name='discover-service-template'><i class='fa fa-pencil' aria-hidden='true'></i></button>
<button type='button' class='btn btn-primary btn-sm' aria-label='Edit' data-toggle='modal' data-target='#create-service-template' data-service_template_id='{$service_template['service_template_id']}' name='edit-service-template'><i class='fa fa-pencil' aria-hidden='true'></i></button>
<button type='button' class='btn btn-danger btn-sm' aria-label='Delete' data-toggle='modal' data-target='#confirm-delete' data-service_template_id='{$service_template['service_template_id']}' name='delete-service-template'><i class='fa fa-trash' aria-hidden='true'></i></button>
</td>";
+18 -3
View File
@@ -105,6 +105,16 @@ function delete_service($service = null)
return dbDelete('services', '`service_id` = ?', array($service));
}
function discover_service($device, $service)
{
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_type`= ? AND `device_id` = ?', array($service, $device['device_id']))) {
add_service($device, $service, "(Auto discovered) $service");
log_event('Autodiscovered service: type ' . mres($service), $device, 'service', 2);
echo '+';
}
echo "$service ";
}
function add_service_template($device_group, $type, $desc, $param = "", $ignore = 0, $disabled = 0)
{
@@ -170,13 +180,18 @@ function delete_service_template($service_template = null)
return dbDelete('services_template', '`service_template_id` = ?', array($service_template));
}
function discover_service($device, $service)
function discover_service_template($device_group_id, $service_template_id)
{
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_type`= ? AND `device_id` = ?', array($service, $device['device_id']))) {
add_service($device, $service, "(Auto discovered) $service");
if (! dbFetchCell('SELECT COUNT(service_template_id) FROM `services_template` WHERE `service_template_type`= ? AND `device_group_id` = ?', array($service_template_id, $device_group['device_group_id']))) {
$service=service_template_get($device_group_id, $service_template_id);
$device_ids = dbFetchColumn("SELECT `device_id` FROM `device_group_device` WHERE `device_group_id`=" . $_POST['device_group_id']);
foreach ($device_ids as $device) {
add_service($device, $service);
}
log_event('Autodiscovered service: type ' . mres($service), $device, 'service', 2);
echo '+';
}
echo "$service ";
}