service templates - move to blade -wip

This commit is contained in:
Anthony F McInerney
2020-10-14 10:53:10 +01:00
parent 52cb8ee86a
commit f2556144aa
4 changed files with 58 additions and 72 deletions
@@ -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,
];
}
}
+1 -39
View File
@@ -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
+8 -33
View File
@@ -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;
}
+1
View File
@@ -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');