Add service templates

This commit is contained in:
Anthony F McInerney
2020-09-18 16:46:35 +01:00
parent c9a5c0dbbf
commit c5b1b4b9aa
5 changed files with 45 additions and 7 deletions
+3 -2
View File
@@ -24,10 +24,11 @@ $param = $vars['param'];
$ignore = isset($vars['ignore']) ? 1 : 0;
$disabled = isset($vars['disabled']) ? 1 : 0;
$device_id = $vars['device_id'];
$service_template_id = $vars['service_template_id'];
if (is_numeric($service_id) && $service_id > 0) {
// Need to edit.
$update = array('service_desc' => $desc, 'service_ip' => $ip, 'service_param' => $param, 'service_ignore' => $ignore, 'service_disabled' => $disabled);
$update = array('service_desc' => $desc, 'service_ip' => $ip, 'service_param' => $param, 'service_ignore' => $ignore, 'service_disabled' => $disabled, 'service_template_id' => $service_template_id);
if (is_numeric(edit_service($update, $service_id))) {
$status = array('status' =>0, 'message' => 'Modified Service: <i>'.$service_id.': '.$type.'</i>');
} else {
@@ -35,7 +36,7 @@ if (is_numeric($service_id) && $service_id > 0) {
}
} else {
// Need to add.
$service_id = add_service($device_id, $type, $desc, $ip, $param, $ignore, $disabled);
$service_id = add_service($device_id, $type, $desc, $ip, $param, $ignore, $disabled, $service_template_id);
if ($service_id == false) {
$status = array('status' =>1, 'message' => 'ERROR: Failed to add Service: <i>'.$type.'</i>');
} else {
@@ -0,0 +1,35 @@
<?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()) {
die('ERROR: You need to be admin');
}
$service__template_id = $vars['service_template_id'];
if (is_numeric($service_template_id) && $service_template_id > 0) {
$service_template = service_template_get(null, $service_template_id);
$output = array(
'stype' => $service[0]['service_type'],
'ip' => $service[0]['service_ip'],
'desc' => $service[0]['service_desc'],
'param' => $service[0]['service_param'],
'ignore' => $service[0]['service_ignore'],
'disabled' => $service[0]['service_disabled']
);
header('Content-Type: application/json');
echo _json_encode($output);
}
+2 -1
View File
@@ -27,7 +27,8 @@ if (is_numeric($service_id) && $service_id > 0) {
'desc' => $service[0]['service_desc'],
'param' => $service[0]['service_param'],
'ignore' => $service[0]['service_ignore'],
'disabled' => $service[0]['service_disabled']
'disabled' => $service[0]['service_disabled'],
'service_template_id' => $service[0]['service_template_id']
);
header('Content-Type: application/json');
+4 -4
View File
@@ -36,7 +36,7 @@ function get_service_status($device = null)
return $service_count;
}
function add_service($device, $type, $desc, $ip = '', $param = "", $ignore = 0, $disabled = 0)
function add_service($device, $type, $desc, $ip = '', $param = "", $ignore = 0, $disabled = 0, $service_template_id = "")
{
if (!is_array($device)) {
@@ -47,13 +47,13 @@ function add_service($device, $type, $desc, $ip = '', $param = "", $ignore = 0,
$ip = Device::pollerTarget($device['hostname']);
}
$insert = array('device_id' => $device['device_id'], 'service_ip' => $ip, 'service_type' => $type, 'service_changed' => array('UNIX_TIMESTAMP(NOW())'), 'service_desc' => $desc, 'service_param' => $param, 'service_ignore' => $ignore, 'service_status' => 3, 'service_message' => 'Service not yet checked', 'service_ds' => '{}', 'service_disabled' => $disabled);
$insert = array('device_id' => $device['device_id'], 'service_ip' => $ip, 'service_type' => $type, 'service_changed' => array('UNIX_TIMESTAMP(NOW())'), 'service_desc' => $desc, 'service_param' => $param, 'service_ignore' => $ignore, 'service_status' => 3, 'service_message' => 'Service not yet checked', 'service_ds' => '{}', 'service_disabled' => $disabled, 'service_template_id' => $service_template_id);
return dbInsert($insert, 'services');
}
function service_get($device = null, $service = null)
{
$sql_query = "SELECT `service_id`,`device_id`,`service_ip`,`service_type`,`service_desc`,`service_param`,`service_ignore`,`service_status`,`service_changed`,`service_message`,`service_disabled`,`service_ds` FROM `services` WHERE";
$sql_query = "SELECT `service_id`,`device_id`,`service_ip`,`service_type`,`service_desc`,`service_param`,`service_ignore`,`service_status`,`service_changed`,`service_message`,`service_disabled`,`service_ds`,`service_template_id` FROM `services` WHERE";
$sql_param = array();
$add = 0;
@@ -182,7 +182,7 @@ function delete_service_template($service_template = null)
function discover_service_template($device_group, $service_template)
{
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_type`= ? AND `device_id` = ?', array($service_template['service_template_id'], $device_group['device_group_id']))) {
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_template_id`= ? AND `device_group_id` = ?', array($service_template['service_template_id'], $device_group['device_group_id']))) {
$service=service_template_get($device_group, $service_template);
$device_ids = dbFetchColumn("SELECT `device_id` FROM `device_group_device` WHERE `device_group_id`=" . $_POST['device_group_id']);
foreach ($device_ids as $device) {
+1
View File
@@ -1720,6 +1720,7 @@ services:
- { Field: service_message, Type: text, 'Null': false, Extra: '' }
- { Field: service_disabled, Type: tinyint, 'Null': false, Extra: '', Default: '0' }
- { Field: service_ds, Type: text, 'Null': false, Extra: '' }
- { Field: service_template_id, Type: 'int unsigned', 'Null': false, Extra: ''}
Indexes:
PRIMARY: { Name: PRIMARY, Columns: [service_id], Unique: true, Type: BTREE }
services_device_id_index: { Name: services_device_id_index, Columns: [device_id], Unique: false, Type: BTREE }