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:
@@ -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);
|
||||
}
|
||||
@@ -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');
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 }
|
||||
|
||||
Reference in New Issue
Block a user