mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
service templates - move to blade -wip
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
* ServiceTemplateController.php
|
||||
*
|
||||
* -Description-
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* @link http://librenms.org
|
||||
* @copyright 2018 Tony Murray
|
||||
* @author Tony Murray <[email protected]>
|
||||
*/
|
||||
|
||||
namespace App\Http\Controllers\Select;
|
||||
|
||||
use App\Models\ServiceTemplate;
|
||||
|
||||
class ServiceTemplateController extends SelectController
|
||||
{
|
||||
protected function searchFields($request)
|
||||
{
|
||||
return ['name'];
|
||||
}
|
||||
|
||||
protected function baseQuery($request)
|
||||
{
|
||||
return ServiceTemplate::hasAccess($request->user())->select('service_template_id', 'service_template_name');
|
||||
}
|
||||
|
||||
public function formatItem($service_template)
|
||||
{
|
||||
return [
|
||||
'id' => $service_template->service_template_id,
|
||||
'text' => $service_template->service_template_name,
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -37,51 +37,13 @@ class ServiceTemplate extends DeviceRelatedModel implements Keyable
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function getServiceTemplate($query, $service_template_id)
|
||||
public function getServiceTemplate($service_template_id)
|
||||
{
|
||||
return $query->where([
|
||||
['service_template_id', '=', $service_template_id],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function disoverServiceTemplate($query, $device_group, $service_template)
|
||||
{
|
||||
return $query->where([
|
||||
['service_ignore', '=', 0],
|
||||
['service_disabled', '=', 0],
|
||||
['service_status', '=', 2],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function deleteServiceTemplate($query, $service_template_id)
|
||||
{
|
||||
return $query->where([
|
||||
['service_ignore', '=', 0],
|
||||
['service_disabled', '=', 0],
|
||||
['service_status', '=', 1],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
*/
|
||||
public function removeServiceTemplate($query, $service_template_id)
|
||||
{
|
||||
return $query->where([
|
||||
['service_ignore', '=', 1],
|
||||
['service_disabled', '=', 0],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Builder $query
|
||||
* @return Builder
|
||||
|
||||
@@ -109,25 +109,13 @@ function delete_service($service = null)
|
||||
function discover_service($device, $service)
|
||||
{
|
||||
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_type`= ? AND `device_id` = ?', [$service, $device['device_id']])) {
|
||||
add_service($device, $service, "$service Monitoring (Default)", null, null, 0, 0, 0, "AUTO: $service", 0);
|
||||
add_service($device, $service, "$service Monitoring (Auto Discovered)", null, null, 0, 0, 0, "AUTO: $service", 0);
|
||||
log_event('Autodiscovered service: type ' . mres($service), $device, 'service', 2);
|
||||
echo '+';
|
||||
}
|
||||
echo "$service ";
|
||||
}
|
||||
|
||||
function add_service_template($device_group, $type, $desc, $ip, $param = '', $ignore = 0, $disabled = 0, $name)
|
||||
{
|
||||
|
||||
// if (!is_array($device_group)) {
|
||||
// $device_group = device_group_by_id_cache($device_group);
|
||||
// }
|
||||
|
||||
$insert = ['device_group_id' => $device_group['device_group_id'], 'service_template_ip' => $ip, 'service_template_type' => $type, 'service_template_changed' => ['UNIX_TIMESTAMP(NOW())'], 'service_template_desc' => $desc, 'service_template_param' => $param, 'service_template_ignore' => $ignore, 'service_template_disabled' => $disabled, 'service_template_name' => $name];
|
||||
|
||||
return dbInsert($insert, 'services_template');
|
||||
}
|
||||
|
||||
function service_template_get($service_template = null)
|
||||
{
|
||||
/* NOT SURE THIS IS REQUIRED
|
||||
@@ -162,46 +150,33 @@ function service_template_get($service_template = null)
|
||||
*/
|
||||
//$sql_query = 'SELECT `service_template_id`,`device_group_id`,`service_template_ip`,`service_template_type`,`service_template_desc`,`service_template_param`,`service_template_ignore`,`service_template_changed`,`service_template_disabled`,`service_template_name`,`service_template_changed` FROM `services_template` WHERE `service_template_id` = ?';
|
||||
//$services_template = dbFetchRows($sql_query, [$service_template]);
|
||||
$services_template = getServiceTemplate($service_template);
|
||||
$services_template = ServiceTemplate::getServiceTemplate($service_template);
|
||||
d_echo('Service Template Array: ' . print_r($services_template, true) . "\n");
|
||||
|
||||
return $services_template;
|
||||
}
|
||||
|
||||
function edit_service_template($update = [], $service_template = null)
|
||||
{
|
||||
if (! is_numeric($service_template)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return dbUpdate($update, 'services_template', '`service_template_id`=?', [$service_template]);
|
||||
}
|
||||
|
||||
function delete_service_template($service_template = null)
|
||||
{
|
||||
if (! is_numeric($service_template)) {
|
||||
return false;
|
||||
}
|
||||
foreach (dbFetchRows('SELECT * FROM `services` WHERE `service_template_id` = ?', [$service_template]) as $service) {
|
||||
dbDelete('services', '`service_id` = ?', [$service['service_id']]);
|
||||
}
|
||||
|
||||
remove_service_template($service_template);
|
||||
return dbDelete('services_template', '`service_template_id` = ?', [$service_template]);
|
||||
}
|
||||
|
||||
function discover_service_template($device_group = null, $service_template = null)
|
||||
{
|
||||
$device_ids = dbFetchColumn('SELECT `device_id` FROM `device_group_device` WHERE `device_group_id` = ?', [$device_group]);
|
||||
$services_template = service_template_get($service_template);
|
||||
$status = null;
|
||||
foreach ($device_ids as $device) {
|
||||
foreach (dbFetchRows('SELECT `service_id` FROM `services` WHERE `service_template_id` = ? AND `device_id` = ? AND `service_template_changed` != ?', [$service_template, $device, $services_template[0]['service_template_changed']]) as $service) {
|
||||
foreach (DB::table('device_group_device')->where('device_group_id', $device_group)-pluck('device_id') as $device) {
|
||||
foreach (DB::table('services')->where('service_template_id', $service_template)->where('device_id', $device)->where('service_template_changed', '!=', $services_template[0]['service_template_changed'])->pluck('service_id') as $service) {
|
||||
$update = ['service_desc' => $services_template[0]['service_template_desc'], 'service_ip' => $services_template[0]['service_template_ip'], 'service_param' => $services_template[0]['service_template_param'], 'service_ignore' => $services_template[0]['service_template_ignore'], 'service_disabled' => $services_template[0]['service_template_disabled'], 'service_template_id' => $services_template[0]['service_template_id'], 'service_name' => $services_template[0]['service_template_name'], 'service_template_changed' => $services_template[0]['service_template_changed']];
|
||||
edit_service($update, $service['service_id']);
|
||||
log_event("Updated Service: {$services_template[0]['service_template_name']} from Service Template ID: {$services_template[0]['service_template_id']}", $device, 'service', 2);
|
||||
$status = 1;
|
||||
}
|
||||
if (! dbFetchCell('SELECT COUNT(service_id) FROM `services` WHERE `service_template_id`= ? AND `device_id` = ?', [$service_template, $device])) {
|
||||
if (! DB::raw('COUNT(service_id)')->from('services')->where('service_template_id', $service_template)->where('device_id', $device)) {
|
||||
add_service($device, $services_template[0]['service_template_type'], $services_template[0]['service_template_desc'], $services_template[0]['service_template_ip'], $services_template[0]['service_template_param'], $services_template[0]['service_template_ignore'], $services_template[0]['service_template_disabled'], $services_template[0]['service_template_id'], $services_template[0]['service_template_name'], $services_template[0]['service_template_changed']);
|
||||
log_event("Added Service: {$services_template[0]['service_template_name']} from Service Template ID: {$services_template[0]['service_template_id']}", $device, 'service', 2);
|
||||
$status = 1;
|
||||
@@ -221,8 +196,8 @@ function remove_service_template($service_template = null)
|
||||
return false;
|
||||
}
|
||||
$status = null;
|
||||
foreach (dbFetchRows('SELECT * FROM `services` WHERE `service_template_id` = ?', [$service_template]) as $service) {
|
||||
dbDelete('services', '`service_id` = ?', [$service['service_id']]);
|
||||
foreach (DB::table('services')->where('service_template_id', $service_template)-pluck('service_id') as $service_id) {
|
||||
dbDelete('services', '`service_id` = ?', $service_id);
|
||||
$status = 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ Route::group(['middleware' => ['auth'], 'guard' => 'auth'], function () {
|
||||
Route::get('performance', 'PollerController@performanceTab')->name('poller.performance');
|
||||
Route::resource('{id}/settings', 'PollerSettingsController', ['as' => 'poller'])->only(['update', 'destroy']);
|
||||
});
|
||||
Route::resource('services-templates', 'ServiceTemplateController');
|
||||
Route::get('locations', 'LocationController@index');
|
||||
Route::resource('preferences', 'UserPreferencesController', ['only' => ['index', 'store']]);
|
||||
Route::resource('users', 'UserController');
|
||||
|
||||
Reference in New Issue
Block a user