Merge branch 'ent-8340-POST-Custom-data-en-vista-de-eventos' of brutus.artica.es:artica/pandorafms into ent-8340-POST-Custom-data-en-vista-de-eventos

This commit is contained in:
alejandro.campos@artica.es 2022-04-01 14:07:31 +02:00
commit 3042755e70
40 changed files with 279 additions and 69 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.760-220329
Version: 7.0NG.760-220330
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220329"
pandora_version="7.0NG.760-220330"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -1015,7 +1015,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.760';
use constant AGENT_BUILD => '220329';
use constant AGENT_BUILD => '220330';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.760
%define release 220329
%define release 220330
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.760
%define release 220329
%define release 220330
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.760"
PI_BUILD="220329"
PI_BUILD="220330"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{220329}
{220330}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.760 Build 220329")
#define PANDORA_VERSION ("7.0NG.760 Build 220330")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.760(Build 220329))"
VALUE "ProductVersion", "(7.0NG.760(Build 220330))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.760-220329
Version: 7.0NG.760-220330
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220329"
pandora_version="7.0NG.760-220330"
package_pear=0
package_pandora=1

View File

@ -145,7 +145,7 @@ function pandora_files_repo_godmode()
// Check for an anoying error that causes the $_POST and $_FILES arrays.
// were empty if the file is larger than the post_max_size.
if (intval($server_content_length) > 0 && empty($_POST)) {
ui_print_error_message(__('The file exceeds the maximum size'));
ui_print_error_message(__('Problem uploading. Please check this PHP runtime variable values: <pre> post_max_size (currently '.ini_get('post_max_size').')</pre>'));
}
// GET and POST parameters.

View File

@ -77,7 +77,7 @@ if (!empty($files)) {
$file_name = explode('/', $file['location']);
$file_decoded = $file_name[(count($file_name) - 1)];
$file_path = base64_encode($file_decoded);
$hash = md5($file_path.$config['dbpass']);
$hash = md5($file_path.$config['server_unique_identifier']);
$url = ui_get_full_url(
'include/get_file.php?file='.urlencode($file_path).'&hash='.$hash
);

View File

@ -5,6 +5,9 @@ ALTER TABLE `tipam_vlan` ADD COLUMN `custom_id` bigint(20) unsigned DEFAULT NULL
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data` VARCHAR(500) DEFAULT '';
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0;
ALTER TABLE tagente MODIFY alias varchar(600) NOT NULL DEFAULT '';
ALTER TABLE tagente MODIFY nombre varchar(600) NOT NULL DEFAULT '';
UPDATE `tuser_task` SET `parameters` = 'a:3:{i:0;a:2:{s:11:"description";s:11:"Description";s:4:"type";s:4:"text";}i:1;a:3:{s:11:"description";s:20:"Save to disk in path";s:4:"type";s:6:"string";s:13:"default_value";s:21:"_%_ATTACHMENT_PATH_%_";}i:2;a:3:{s:11:"description";s:14:"Active backups";s:4:"type";s:6:"number";s:13:"default_value";i:3;}}' WHERE `function_name` = 'cron_task_do_backup';
CREATE TABLE IF NOT EXISTS `tbackup` (

View File

@ -1666,7 +1666,8 @@ UPDATE tagente SET tagente.alias = tagente.nombre;
ALTER TABLE `tagente` MODIFY COLUMN `remote` tinyint(1) NOT NULL DEFAULT '0',
MODIFY COLUMN `cascade_protection_module` int(10) unsigned NOT NULL DEFAULT '0',
MODIFY COLUMN `update_secondary_groups` tinyint(1) NOT NULL DEFAULT '0',
MODIFY COLUMN `alias` varchar(600) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
MODIFY COLUMN `alias` varchar(600) NOT NULL DEFAULT '',
MODIFY COLUMN `nombre` varchar(600) NOT NULL DEFAULT '',
MODIFY COLUMN `alias_as_name` tinyint(2) NOT NULL DEFAULT '0';
-- ---------------------------------------------------------------------

View File

@ -26,6 +26,8 @@
* ============================================================================
*/
use PandoraFMS\Enterprise\Metaconsole\Node;
// Begin.
global $config;
@ -86,6 +88,7 @@ $get_event_filters = get_parameter('get_event_filters', 0);
$get_comments = (bool) get_parameter('get_comments', false);
$get_events_fired = (bool) get_parameter('get_events_fired');
$get_id_source_event = get_parameter('get_id_source_event');
$node_id = (int) get_parameter('node_id', 0);
if ($get_comments === true) {
$event = get_parameter('event', false);
$filter = get_parameter('filter', false);
@ -195,7 +198,23 @@ if ($delete_event) {
return;
}
$r = events_delete($id_evento, $filter);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$r = events_delete($id_evento, $filter, false, true);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$r = events_delete($id_evento, $filter);
}
if ($r === false) {
echo 'Failed';
} else {
@ -1269,18 +1288,42 @@ if ($change_status) {
$event_ids = get_parameter('event_ids');
$new_status = get_parameter('new_status');
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$return = events_change_status(
explode(',', $event_ids),
$new_status,
$meta,
$history
);
}
if ($return !== false) {
$event_st = events_display_status($new_status);
echo json_encode(
[
'status' => 'status_ok',
'user' => db_get_value(
'status_title' => $event_st['title'],
'status_img' => html_print_image($event_st['img'], true, false, true),
'status' => 'status_ok',
'user' => db_get_value(
'fullname',
'tusuario',
'id_user',
@ -1314,7 +1357,22 @@ if ($change_owner) {
$new_owner = '';
}
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
if ($node_id > 0) {
try {
$node = new Node($node_id);
$node->connect();
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
} catch (\Exception $e) {
// Unexistent agent.
$node->disconnect();
$success = false;
echo 'owner_error';
} finally {
$node->disconnect();
}
} else {
$return = events_change_owner($event_id, $new_owner, true, $meta, $history);
}
if ($return) {
echo 'owner_ok';
@ -1330,7 +1388,7 @@ if ($change_owner) {
if ($get_extended_event) {
global $config;
$event = get_parameter('event', false);
$event = io_safe_output(get_parameter('event', false));
$filter = get_parameter('filter', false);
if ($event === false) {
@ -1419,6 +1477,9 @@ if ($get_extended_event) {
// Print group_rep in a hidden field to recover it from javascript.
html_print_input_hidden('group_rep', (int) $group_rep);
if ($node_id > 0) {
html_print_input_hidden('node_id', (int) $node_id);
}
if ($event === false) {
return;
@ -1586,14 +1647,16 @@ if ($get_extended_event) {
$comments = '<div id="extended_event_comments_page" class="extended_event_pages"></div>';
$notifications = '<div id="notification_comment_error" class="invisible">'.ui_print_error_message(__('Error adding comment'), '', true).'</div>';
$notifications .= '<div id="notification_comment_success" class="invisible">'.ui_print_success_message(__('Comment added successfully'), '', true).'</div>';
$notifications .= '<div id="notification_status_error" class="invisible">'.ui_print_error_message(__('Error changing event status'), '', true).'</div>';
$notifications .= '<div id="notification_status_success" class="invisible">'.ui_print_success_message(__('Event status changed successfully'), '', true).'</div>';
$notifications .= '<div id="notification_owner_error" class="invisible">'.ui_print_error_message(__('Error changing event owner'), '', true).'</div>';
$notifications .= '<div id="notification_owner_success" class="invisible">'.ui_print_success_message(__('Event owner changed successfully'), '', true).'</div>';
$notifications = '<div id="notification_comment_error" class="invisible_events">'.ui_print_error_message(__('Error adding comment'), '', true).'</div>';
$notifications .= '<div id="notification_comment_success" class="invisible_events">'.ui_print_success_message(__('Comment added successfully'), '', true).'</div>';
$notifications .= '<div id="notification_status_error" class="invisible_events">'.ui_print_error_message(__('Error changing event status'), '', true).'</div>';
$notifications .= '<div id="notification_status_success" class="invisible_events">'.ui_print_success_message(__('Event status changed successfully'), '', true).'</div>';
$notifications .= '<div id="notification_owner_error" class="invisible_events">'.ui_print_error_message(__('Error changing event owner'), '', true).'</div>';
$notifications .= '<div id="notification_owner_success" class="invisible_events">'.ui_print_success_message(__('Event owner changed successfully'), '', true).'</div>';
$notifications .= '<div id="notification_delete_error" class="invisible_events">'.ui_print_error_message(__('Error deleting event'), '', true).'</div>';
$loading = '<div id="response_loading" class="invisible">'.html_print_image('images/spinner.gif', true).'</div>';
$loading = '<div id="response_loading" class="invisible_events">'.html_print_image('images/spinner.gif', true).'</div>';
$i = 0;
$tab['general'] = $i++;

View File

@ -14,7 +14,7 @@
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
*
* ============================================================================
* Copyright (c) 2005-2021 Artica Soluciones Tecnologicas
* Copyright (c) 2005-2022 Artica Soluciones Tecnologicas
* Please see http://pandorafms.org for full contribution list
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -623,11 +623,13 @@ class CredentialStore extends Wizard
$error = __('You must select a group where store this key!');
} else if (empty($product) === true) {
$error = __('You must specify a product type');
} else if (empty($username) === true && (empty($password) === true)) {
} else if (empty($username) === true || (empty($password) === true)) {
$error = __('You must specify a username and/or password');
} else if (evaluate_ascii_valid_string(io_safe_output($identifier)) === false) {
$error = __('Identifier with forbidden characters. Check the documentation.');
}
if (isset($error)) {
if (isset($error) === true) {
$this->ajaxMsg('error', $error);
exit;
}
@ -644,8 +646,15 @@ class CredentialStore extends Wizard
];
// Spaces are not allowed.
$values['identifier'] = preg_replace('/\s+/', '-', trim($identifier));
$values['identifier'] = \io_safe_input(
preg_replace(
'/\s+/',
'-',
trim(
\io_safe_output($identifier)
)
)
);
return $values;
}
@ -1270,7 +1279,7 @@ class CredentialStore extends Wizard
});
}
/**
* Delete selected key
*/

View File

@ -20,7 +20,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC220329';
$build_version = 'PC220330';
$pandora_version = 'v7.0NG.760';
// Do not overwrite default timezone set if defined.

View File

@ -2887,6 +2887,7 @@ function translate_file_upload_status($status_code)
case UPLOAD_ERR_INI_SIZE:
$message = __('The file exceeds the maximum size');
$message .= __('Please check this PHP runtime variable values: <pre> upload_max_filesize (currently '.ini_get('upload_max_filesize').')</pre>');
break;
case UPLOAD_ERR_FORM_SIZE:

View File

@ -356,13 +356,14 @@ function events_get_column_names($fields, $table_alias=false)
/**
* Validates all events matching target filter.
*
* @param integer $id_evento Master event.
* @param array $filter Optional. Filter options.
* @param boolean $history Apply on historical table.
* @param integer $id_evento Master event.
* @param array $filter Optional. Filter options.
* @param boolean $history Apply on historical table.
* @param boolean $force_node Force node table.
*
* @return integer Events validated or false if error.
*/
function events_delete($id_evento, $filter=null, $history=false)
function events_delete($id_evento, $filter=null, $history=false, $force_node=false)
{
if (!isset($id_evento) || $id_evento <= 0) {
return false;
@ -372,7 +373,10 @@ function events_delete($id_evento, $filter=null, $history=false)
$filter = ['group_rep' => 0];
}
$table = events_get_events_table(is_metaconsole(), $history);
$table = events_get_events_table(
($force_node === false) ? is_metaconsole() : false,
$history
);
switch ($filter['group_rep']) {
case '0':
@ -3773,7 +3777,7 @@ function events_page_responses($event, $childrens_ids=[])
$data = [];
$data[0] = __('Delete event');
$data[1] = '';
$data[2] = '<form method="post">';
$data[2] = '<form id="event_responses_delete" method="post">';
$data[2] .= html_print_button(
__('Delete event'),
'delete_button',
@ -5064,6 +5068,8 @@ function events_page_general($event)
$event_st = events_display_status($event['estado']);
$data = [];
$table_general->rowid[7] = 'general_status';
$data[0] = __('Status');
$data[1] = $event_st['title'];
$data[2] = html_print_image($event_st['img'], true);

View File

@ -118,6 +118,7 @@ function tactical_get_data($id_user=false, $user_strict=false, $acltags, $return
$user_groups_ids = implode(',', array_unique($user_group_children_ids));
}
// Subquery is needed for avoid possible duplicity in id_agente.
$sql_stats = sprintf(
'SELECT tma.id_grupo, COUNT(tma.id_agente) AS agents_total,
SUM(tma.total_count) AS monitors_total,
@ -128,10 +129,12 @@ function tactical_get_data($id_user=false, $user_strict=false, $acltags, $return
SUM(tma.notinit_count) AS monitors_not_init,
SUM(tma.fired_count) AS alerts_fired
FROM tmetaconsole_agent tma
LEFT JOIN tmetaconsole_agent_secondary_group tmasg
ON tma.id_agente = tmasg.id_agent
WHERE tma.disabled = 0
AND tma.id_grupo IN (%s) OR tmasg.id_group IN (%s)
WHERE tma.disabled = 0
AND tma.id_agente IN (
SELECT DISTINCT tmag.id_agente FROM tmetaconsole_agent tmag
LEFT JOIN tmetaconsole_agent_secondary_group tmasg
ON tmag.id_agente = tmasg.id_agent WHERE tmag.id_grupo IN (%s) OR tmasg.id_group IN (%s)
)
GROUP BY tma.id_grupo',
$user_groups_ids,
$user_groups_ids

View File

@ -328,3 +328,43 @@ function convert_array_multi($array, $glue)
$result = substr($result, 0, (0 - strlen($glue)));
return $result;
}
/**
* Evaluate if the chars of coming variable has in the range stablished.
*
* @param string $string String for be evaluated.
* @param array $ranges Ranges for valid chars. Min: [ x <= Y ] Max: [ Y > x ].
* Example of valid ranges: [ '32:126', '150:188' ].
*
* @return boolean.
*/
function evaluate_ascii_valid_string(string $string='', array $ranges=[ '33:38', '40:126' ])
{
if (empty($string) === true) {
return false;
}
$countChars = strlen($string);
// Let's explore all the chars.
for ($i = 0; $i < $countChars; $i++) {
// Get ascii number of the char.
$asciiNumber = ord($string[$i]);
// Check in all ranges.
$rangeValidation = false;
foreach ($ranges as $range) {
list($minRangeValue, $maxRangeValue) = explode(':', $range, 2);
// Check if is in range.
if ($asciiNumber > (int) $minRangeValue && $asciiNumber < (int) $maxRangeValue) {
$rangeValidation = true;
}
}
// None of the ranges was validated.
if ($rangeValidation === false) {
return false;
}
}
return true;
}

View File

@ -232,7 +232,6 @@ function fmModuleChange(uniqId, isMeta) {
selection: showCommonModules
},
function(data) {
debugger;
$("#filtered-module-modules-" + uniqId).html("");
if (data) {
jQuery.each(data, function(id, value) {

View File

@ -1404,7 +1404,8 @@ function dashboardShowEventDialog(settings) {
dialog_page: "",
meta: 0,
history: 0,
filter: []
filter: [],
node_id: settings.node_id
},
dataType: "html",
success: function(data) {
@ -1417,9 +1418,58 @@ function dashboardShowEventDialog(settings) {
resizable: true,
draggable: true,
modal: true,
create: function() {
$("#button-delete_button").removeAttr("onclick");
$("#button-delete_button").click(function() {
var confirm_message = $("#hidden-delete_confirm_message").val();
if (confirm(confirm_message) == false) {
return false;
}
$.ajax({
method: "post",
url: settings.ajaxUrl,
data: {
page: "include/ajax/events",
delete_event: 1,
node_id: settings.node_id,
id_evento: settings.event.id_evento,
filter: []
},
success: function() {
$("#notification_delete_error").show();
$("#event_details_window").dialog("close");
},
error: function(error) {
console.error(error);
}
});
});
},
close: function() {
//$("#refrcounter").countdown("resume");
//$("div.vc-countdown").countdown("resume");
$.ajax({
method: "post",
url: settings.ajaxUrl,
data: {
page: "operation/dashboard/dashboard",
method: "drawWidget",
dashboardId: settings.dashboardId,
cellId: settings.cellId,
widgetId: settings.widgetId,
redraw: 1
},
success: function(dataWidget) {
// Widget empty and reload.
$("#widget-" + settings.cellId + " .content-widget").empty();
$("#widget-" + settings.cellId + " .content-widget").append(
dataWidget
);
},
error: function(error) {
console.error(error);
}
});
},
overlay: {
opacity: 0.5,

View File

@ -476,6 +476,7 @@ function event_change_status(event_ids) {
var new_status = $("#estado").val();
var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val();
var node_id = $("#hidden-node_id").val();
$("#button-status_button").attr("disabled", "disabled");
$("#response_loading").show();
@ -487,6 +488,7 @@ function event_change_status(event_ids) {
event_ids: event_ids,
new_status: new_status,
meta: meta,
node_id: node_id,
history: history
},
type: "POST",
@ -519,6 +521,13 @@ function event_change_status(event_ids) {
"N/A"
);
}
$("#general_status")
.find(".general_status")
.text(data.status_title);
$("#general_status")
.find("img")
.attr("src", data.status_img);
} else {
$("#notification_status_error").show();
}
@ -533,6 +542,7 @@ function event_change_owner() {
var new_owner = $("#id_owner").val();
var meta = $("#hidden-meta").val();
var history = $("#hidden-history").val();
var node_id = $("#hidden-node_id").val();
$("#button-owner_button").attr("disabled", "disabled");
$("#response_loading").show();
@ -544,6 +554,7 @@ function event_change_owner() {
event_id: event_id,
new_owner: new_owner,
meta: meta,
node_id: node_id,
history: history
},
type: "POST",

View File

@ -502,6 +502,7 @@ class EventsListWidget extends Widget
\ui_require_css_file('events', 'include/styles/', true);
\ui_require_css_file('tables', 'include/styles/', true);
\ui_require_javascript_file('pandora_events', 'include/javascript/', true);
$this->values['groupId'] = explode(',', $this->values['groupId'][0]);
$this->values['tagsId'] = explode(',', $this->values['tagsId'][0]);
@ -668,6 +669,18 @@ class EventsListWidget extends Widget
true
);
$output .= \html_print_input_hidden(
'meta',
is_metaconsole(),
true
);
$output .= \html_print_input_hidden(
'delete_confirm_message',
__('Are you sure?'),
true
);
$table = new \StdClass;
$table->class = 'widget_groups_status databox';
$table->cellspacing = '1';
@ -717,16 +730,20 @@ class EventsListWidget extends Widget
$settings = json_encode(
[
'event' => $event,
'page' => 'include/ajax/events',
'cellId' => $this->cellId,
'ajaxUrl' => \ui_get_full_url(
'event' => $event,
'page' => 'include/ajax/events',
'cellId' => $this->cellId,
'ajaxUrl' => \ui_get_full_url(
'ajax.php',
false,
false,
false
),
'result' => false,
'result' => false,
'dashboardId' => $this->dashboardId,
'widgetId' => $this->widgetId,
'cellId' => $this->cellId,
'node_id' => $this->nodeId,
]
);

View File

@ -875,6 +875,9 @@ select:-internal-list-box {
.invisible_important {
display: none !important;
}
.invisible_events {
display: none;
}
.visible {
display: block;

View File

@ -129,7 +129,7 @@
<div style='height: 10px'>
<?php
$version = '7.0NG.760';
$build = '220329';
$build = '220330';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220329
%define release 220330
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220329
%define release 220330
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220329
%define release 220330
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.760-220329
Version: 7.0NG.760-220330
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220329"
pandora_version="7.0NG.760-220330"
package_cpan=0
package_pandora=1

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.760";
my $pandora_build = "220329";
my $pandora_build = "220330";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

View File

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.760";
my $pandora_build = "220329";
my $pandora_build = "220330";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.760
%define release 220329
%define release 220330
Summary: Pandora FMS Server
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.760
%define release 220329
%define release 220330
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.760"
PI_BUILD="220329"
PI_BUILD="220330"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -35,7 +35,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.760 Build 220329";
my $version = "7.0NG.760 Build 220330";
# Pandora server configuration
my %conf;
@ -1082,6 +1082,10 @@ sub pandoradb_history ($$) {
log_message ('', "\n");
}
# Update tconfig with last time of database maintance time (now)
db_do ($dbh, "DELETE FROM tconfig WHERE token = 'db_maintance'");
db_do ($dbh, "INSERT INTO tconfig (token, value) VALUES ('db_maintance', '".time()."')");
log_message ('', "Ending at ". strftime ("%Y-%m-%d %H:%M:%S", localtime()) . "\n");
}

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.760 Build 220329";
my $version = "7.0NG.760 Build 220330";
# save program name for logging
my $progname = basename($0);