mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Add service templates
This commit is contained in:
@@ -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>";
|
||||
|
||||
@@ -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 ";
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user