mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Merge remote-tracking branch 'origin/develop' into ent-6093-error-fields-en-alertas-snmp
This commit is contained in:
commit
5565d839c3
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.748-200817
|
Version: 7.0NG.748-200826
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.748-200817"
|
pandora_version="7.0NG.748-200826"
|
||||||
|
|
||||||
echo "Test if you has the tools for to make the packages."
|
echo "Test if you has the tools for to make the packages."
|
||||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||||
|
@ -55,7 +55,7 @@ my $Sem = undef;
|
|||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.748';
|
use constant AGENT_VERSION => '7.0NG.748';
|
||||||
use constant AGENT_BUILD => '200817';
|
use constant AGENT_BUILD => '200826';
|
||||||
|
|
||||||
# Agent log default file size maximum and instances
|
# Agent log default file size maximum and instances
|
||||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.748"
|
PI_VERSION="7.0NG.748"
|
||||||
PI_BUILD="200817"
|
PI_BUILD="200826"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{200817}
|
{200826}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
|||||||
using namespace Pandora_Strutils;
|
using namespace Pandora_Strutils;
|
||||||
|
|
||||||
#define PATH_SIZE _MAX_PATH+1
|
#define PATH_SIZE _MAX_PATH+1
|
||||||
#define PANDORA_VERSION ("7.0NG.748(Build 200817)")
|
#define PANDORA_VERSION ("7.0NG.748(Build 200826)")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
VALUE "LegalCopyright", "Artica ST"
|
VALUE "LegalCopyright", "Artica ST"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0NG.748(Build 200817))"
|
VALUE "ProductVersion", "(7.0NG.748(Build 200826))"
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
VALUE "FileVersion", "1.0.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-console
|
package: pandorafms-console
|
||||||
Version: 7.0NG.748-200817
|
Version: 7.0NG.748-200826
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.748-200817"
|
pandora_version="7.0NG.748-200826"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
9
pandora_console/extras/mr/41.sql
Normal file
9
pandora_console/extras/mr/41.sql
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` ADD COLUMN `previous_name` text;
|
||||||
|
ALTER TABLE `talert_actions` ADD COLUMN `previous_name` text;
|
||||||
|
ALTER TABLE `talert_commands` ADD COLUMN `previous_name` text;
|
||||||
|
ALTER TABLE `ttag` ADD COLUMN `previous_name` text NULL;
|
||||||
|
ALTER TABLE `tconfig_os` ADD COLUMN `previous_name` text NULL;
|
||||||
|
|
||||||
|
COMMIT;
|
@ -1312,6 +1312,8 @@ ALTER TABLE talert_actions ADD COLUMN `field12_recovery` TEXT NOT NULL DEFAULT "
|
|||||||
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field13_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field14_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "";
|
||||||
|
ALTER TABLE `talert_actions` ADD COLUMN `previous_name` text;
|
||||||
|
|
||||||
ALTER TABLE `talert_actions` MODIFY COLUMN `field11` text NOT NULL,
|
ALTER TABLE `talert_actions` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
MODIFY COLUMN `field12` text NOT NULL,
|
MODIFY COLUMN `field12` text NOT NULL,
|
||||||
MODIFY COLUMN `field13` text NOT NULL,
|
MODIFY COLUMN `field13` text NOT NULL,
|
||||||
@ -1325,6 +1327,7 @@ UPDATE `talert_commands` SET `fields_descriptions` = '[\"Integria IMS 
|
|||||||
UPDATE `talert_commands` SET `description` = 'This alert send an email using internal Pandora FMS Server SMTP capabilities (defined in each server, using:
_field1_ as destination email address, and
_field2_ as subject for message. 
_field3_ as text of message. 
_field4_ as content type (text/plain or html/text).', `fields_descriptions` = '[\"Destination address\",\"Subject\",\"Text\",\"Content Type\",\"\",\"\",\"\",\"\",\"\",\"\"]', `fields_values` = '[\"\",\"\",\"_html_editor_\",\"_content_type_\",\"\",\"\",\"\",\"\",\"\",\"\"]' WHERE id=1;
|
UPDATE `talert_commands` SET `description` = 'This alert send an email using internal Pandora FMS Server SMTP capabilities (defined in each server, using:
_field1_ as destination email address, and
_field2_ as subject for message. 
_field3_ as text of message. 
_field4_ as content type (text/plain or html/text).', `fields_descriptions` = '[\"Destination address\",\"Subject\",\"Text\",\"Content Type\",\"\",\"\",\"\",\"\",\"\",\"\"]', `fields_values` = '[\"\",\"\",\"_html_editor_\",\"_content_type_\",\"\",\"\",\"\",\"\",\"\",\"\"]' WHERE id=1;
|
||||||
ALTER TABLE `talert_commands` ADD COLUMN `id_group` mediumint(8) unsigned NULL default 0;
|
ALTER TABLE `talert_commands` ADD COLUMN `id_group` mediumint(8) unsigned NULL default 0;
|
||||||
ALTER TABLE `talert_commands` ADD COLUMN `fields_hidden` text;
|
ALTER TABLE `talert_commands` ADD COLUMN `fields_hidden` text;
|
||||||
|
ALTER TABLE `talert_commands` ADD COLUMN `previous_name` text;
|
||||||
|
|
||||||
UPDATE `talert_actions` SET `field4` = 'text/html', `field4_recovery` = 'text/html' WHERE id = 1;
|
UPDATE `talert_actions` SET `field4` = 'text/html', `field4_recovery` = 'text/html' WHERE id = 1;
|
||||||
|
|
||||||
@ -1337,6 +1340,11 @@ ALTER TABLE `talert_commands` MODIFY COLUMN `id_group` mediumint(8) unsigned NUL
|
|||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE `tmap` MODIFY COLUMN `id_user` varchar(250) NOT NULL DEFAULT '';
|
ALTER TABLE `tmap` MODIFY COLUMN `id_user` varchar(250) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `ttag`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE `ttag` ADD COLUMN `previous_name` text NULL;
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
-- Table `tconfig`
|
-- Table `tconfig`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -1381,7 +1389,9 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES ('cr_incident_content', '');
|
|||||||
-- Table `tconfig_os`
|
-- Table `tconfig_os`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
|
||||||
INSERT INTO `tconfig_os` (`id_os`, `name`, `description`, `icon_name`) VALUES (100, 'Cluster', 'Cluster agent', 'so_cluster.png');
|
ALTER TABLE `tconfig_os` ADD COLUMN `previous_name` text NULL;
|
||||||
|
|
||||||
|
INSERT INTO `tconfig_os` (`id_os`, `name`, `description`, `icon_name`) VALUES (100, 'Cluster', 'Cluster agent', 'so_cluster.png', '');
|
||||||
|
|
||||||
UPDATE `tagente` SET `id_os` = 100 WHERE `id_os` = 21 and (select `id_os` from `tconfig_os` WHERE `id_os` = 21 and `name` = 'Cluster');
|
UPDATE `tagente` SET `id_os` = 100 WHERE `id_os` = 21 and (select `id_os` from `tconfig_os` WHERE `id_os` = 21 and `name` = 'Cluster');
|
||||||
|
|
||||||
@ -2461,6 +2471,8 @@ INSERT INTO `tnews` (`id_news`, `author`, `subject`, `text`, `timestamp`) VALUES
|
|||||||
-- Alter table `talert_templates`
|
-- Alter table `talert_templates`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` ADD COLUMN `previous_name` text;
|
||||||
|
|
||||||
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
||||||
|
|
||||||
ALTER TABLE `talert_templates` MODIFY COLUMN `field11` text NOT NULL,
|
ALTER TABLE `talert_templates` MODIFY COLUMN `field11` text NOT NULL,
|
||||||
|
@ -362,6 +362,7 @@ $templates = alerts_get_alert_templates(
|
|||||||
'description',
|
'description',
|
||||||
'type',
|
'type',
|
||||||
'id_group',
|
'id_group',
|
||||||
|
'previous_name',
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
if ($templates === false) {
|
if ($templates === false) {
|
||||||
|
@ -83,6 +83,10 @@ if ($update_command) {
|
|||||||
$values['command'] = $command;
|
$values['command'] = $command;
|
||||||
$values['description'] = $description;
|
$values['description'] = $description;
|
||||||
$values['id_group'] = $id_group;
|
$values['id_group'] = $id_group;
|
||||||
|
// Only for Metaconsole. Save the previous name for synchronizing.
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
$values['previous_name'] = db_get_value('name', 'talert_commands', 'id', $id);
|
||||||
|
}
|
||||||
|
|
||||||
// Check it the new name is used in the other command.
|
// Check it the new name is used in the other command.
|
||||||
$id_check = db_get_value('id', 'talert_commands', 'name', $name);
|
$id_check = db_get_value('id', 'talert_commands', 'name', $name);
|
||||||
|
@ -34,6 +34,9 @@ if (! check_acl($config['id_user'], 0, 'LM')) {
|
|||||||
$duplicate_template = (bool) get_parameter('duplicate_template');
|
$duplicate_template = (bool) get_parameter('duplicate_template');
|
||||||
$id = (int) get_parameter('id');
|
$id = (int) get_parameter('id');
|
||||||
$pure = get_parameter('pure', 0);
|
$pure = get_parameter('pure', 0);
|
||||||
|
$step = (int) get_parameter('step', 1);
|
||||||
|
// We set here the number of steps.
|
||||||
|
define('LAST_STEP', 3);
|
||||||
|
|
||||||
// If user tries to duplicate/edit a template with group=ALL then must have "PM" access privileges
|
// If user tries to duplicate/edit a template with group=ALL then must have "PM" access privileges
|
||||||
if ($duplicate_template) {
|
if ($duplicate_template) {
|
||||||
@ -56,7 +59,6 @@ if ($a_template !== false) {
|
|||||||
if (defined('METACONSOLE')) {
|
if (defined('METACONSOLE')) {
|
||||||
alerts_meta_print_header();
|
alerts_meta_print_header();
|
||||||
} else {
|
} else {
|
||||||
$step = (int) get_parameter('step', 1);
|
|
||||||
if ($step == 1) {
|
if ($step == 1) {
|
||||||
$help_header = '';
|
$help_header = '';
|
||||||
} else if ($step == 2) {
|
} else if ($step == 2) {
|
||||||
@ -113,7 +115,6 @@ if ($a_template !== false) {
|
|||||||
if (defined('METACONSOLE')) {
|
if (defined('METACONSOLE')) {
|
||||||
alerts_meta_print_header();
|
alerts_meta_print_header();
|
||||||
} else {
|
} else {
|
||||||
$step = (int) get_parameter('step', 1);
|
|
||||||
if ($step == 1) {
|
if ($step == 1) {
|
||||||
$help_header = '';
|
$help_header = '';
|
||||||
} else if ($step == 2) {
|
} else if ($step == 2) {
|
||||||
@ -252,24 +253,20 @@ function update_template($step)
|
|||||||
$wizard_level = (string) get_parameter('wizard_level');
|
$wizard_level = (string) get_parameter('wizard_level');
|
||||||
$priority = (int) get_parameter('priority');
|
$priority = (int) get_parameter('priority');
|
||||||
$id_group = get_parameter('id_group');
|
$id_group = get_parameter('id_group');
|
||||||
|
// Only for Metaconsole. Save the previous name for synchronizing.
|
||||||
switch ($config['dbtype']) {
|
if (is_metaconsole()) {
|
||||||
case 'mysql':
|
$previous_name = db_get_value('name', 'talert_templates', 'id', $id);
|
||||||
case 'postgresql':
|
} else {
|
||||||
$name_check = db_get_value('name', 'talert_templates', 'name', $name);
|
$previous_name = '';
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
$name_check = db_get_value('name', 'talert_templates', 'to_char(name)', $name);
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$values = [
|
$values = [
|
||||||
'name' => $name,
|
'name' => $name,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
'id_group' => $id_group,
|
'id_group' => $id_group,
|
||||||
'priority' => $priority,
|
'priority' => $priority,
|
||||||
'wizard_level' => $wizard_level,
|
'wizard_level' => $wizard_level,
|
||||||
|
'previous_name' => $previous_name,
|
||||||
];
|
];
|
||||||
|
|
||||||
$result = alerts_update_alert_template($id, $values);
|
$result = alerts_update_alert_template($id, $values);
|
||||||
|
@ -98,6 +98,10 @@ switch ($action) {
|
|||||||
$values = [];
|
$values = [];
|
||||||
$values['name'] = $name;
|
$values['name'] = $name;
|
||||||
$values['description'] = $description;
|
$values['description'] = $description;
|
||||||
|
// Only for Metaconsole. Save the previous name for synchronizing.
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
$values['previous_name'] = db_get_value('name', 'tconfig_os', 'id_os', $idOS);
|
||||||
|
}
|
||||||
|
|
||||||
if (($icon !== 0) && ($icon != '')) {
|
if (($icon !== 0) && ($icon != '')) {
|
||||||
$values['icon_name'] = $icon;
|
$values['icon_name'] = $icon;
|
||||||
|
@ -79,6 +79,10 @@ if ($update_tag && $id_tag != 0) {
|
|||||||
$values['url'] = $url_tag;
|
$values['url'] = $url_tag;
|
||||||
$values['email'] = $email_tag;
|
$values['email'] = $email_tag;
|
||||||
$values['phone'] = $phone_tag;
|
$values['phone'] = $phone_tag;
|
||||||
|
// Only for Metaconsole. Save the previous name for synchronizing.
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
$values['previous_name'] = db_get_value('name', 'ttag', 'id_tag', $id_tag);
|
||||||
|
}
|
||||||
|
|
||||||
$result = false;
|
$result = false;
|
||||||
if ($values['name'] != '') {
|
if ($values['name'] != '') {
|
||||||
|
@ -1093,7 +1093,8 @@ if ($dialogue_event_response) {
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
echo "<div style='text-align:left'>";
|
echo "<div style='text-align:left'>";
|
||||||
echo $prompt.sprintf(__('Executing command: %s', $command));
|
|
||||||
|
echo $prompt."Executing command: $command";
|
||||||
echo '</div><br>';
|
echo '</div><br>';
|
||||||
|
|
||||||
echo "<div id='response_loading_command' style='display:none'>".html_print_image('images/spinner.gif', true).'</div>';
|
echo "<div id='response_loading_command' style='display:none'>".html_print_image('images/spinner.gif', true).'</div>';
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC200817';
|
$build_version = 'PC200826';
|
||||||
$pandora_version = 'v7.0NG.748';
|
$pandora_version = 'v7.0NG.748';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
|
@ -2780,6 +2780,11 @@ function alerts_ui_update_or_create_actions($update=true)
|
|||||||
if ($update) {
|
if ($update) {
|
||||||
$values['name'] = $name;
|
$values['name'] = $name;
|
||||||
$values['id_alert_command'] = $id_alert_command;
|
$values['id_alert_command'] = $id_alert_command;
|
||||||
|
// Only for Metaconsole, save the previous name for synchronization.
|
||||||
|
if (is_metaconsole()) {
|
||||||
|
$values['previous_name'] = db_get_value('name', 'talert_actions', 'id', $id);
|
||||||
|
}
|
||||||
|
|
||||||
$result = (!$name) ? '' : alerts_update_alert_action($id, $values);
|
$result = (!$name) ? '' : alerts_update_alert_action($id, $values);
|
||||||
} else {
|
} else {
|
||||||
$name_check = db_get_value('name', 'talert_actions', 'name', $name);
|
$name_check = db_get_value('name', 'talert_actions', 'name', $name);
|
||||||
|
@ -1861,13 +1861,13 @@ function api_set_delete_agent($id, $thrash1, $other, $thrash3)
|
|||||||
foreach ($servers as $server) {
|
foreach ($servers as $server) {
|
||||||
if (metaconsole_connect($server) == NOERR) {
|
if (metaconsole_connect($server) == NOERR) {
|
||||||
if ($other['data'][0] === '1') {
|
if ($other['data'][0] === '1') {
|
||||||
$idAgent[0] = agents_get_agent_id_by_alias($id);
|
$idAgent = agents_get_agent_id_by_alias($id);
|
||||||
} else {
|
} else {
|
||||||
$idAgent[0] = agents_get_agent_id($id, true);
|
$idAgent[0] = agents_get_agent_id($id, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($idAgent[0]) {
|
if (!empty($idAgent)) {
|
||||||
$result = agents_delete_agent($idAgent, true);
|
$result = agents_delete_agent($idAgent[0], true);
|
||||||
}
|
}
|
||||||
|
|
||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
|
@ -135,7 +135,7 @@ function show_response_dialog(response_id, response) {
|
|||||||
params.push("dialogue_event_response=1");
|
params.push("dialogue_event_response=1");
|
||||||
params.push("massive=0");
|
params.push("massive=0");
|
||||||
params.push("event_id=" + response["event_id"]);
|
params.push("event_id=" + response["event_id"]);
|
||||||
params.push("target=" + response["target"]);
|
params.push("target=" + encodeURIComponent(response["target"]));
|
||||||
params.push("response_id=" + response_id);
|
params.push("response_id=" + response_id);
|
||||||
params.push("server_id=" + response["server_id"]);
|
params.push("server_id=" + response["server_id"]);
|
||||||
|
|
||||||
@ -397,7 +397,7 @@ function perform_response(response, response_id) {
|
|||||||
var params = [];
|
var params = [];
|
||||||
params.push("page=include/ajax/events");
|
params.push("page=include/ajax/events");
|
||||||
params.push("perform_event_response=1");
|
params.push("perform_event_response=1");
|
||||||
params.push("target=" + response["target"]);
|
params.push("target=" + encodeURIComponent(response["target"]));
|
||||||
params.push("response_id=" + response_id);
|
params.push("response_id=" + response_id);
|
||||||
params.push("event_id=" + response["event_id"]);
|
params.push("event_id=" + response["event_id"]);
|
||||||
params.push("server_id=" + response["server_id"]);
|
params.push("server_id=" + response["server_id"]);
|
||||||
|
@ -1088,6 +1088,9 @@ if ($searchPage) {
|
|||||||
}
|
}
|
||||||
} else if ($sec == 'gextensions') {
|
} else if ($sec == 'gextensions') {
|
||||||
$main_sec = get_parameter('extension_in_menu');
|
$main_sec = get_parameter('extension_in_menu');
|
||||||
|
if (empty($main_sec) === true) {
|
||||||
|
$main_sec = $sec;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$main_sec = $sec;
|
$main_sec = $sec;
|
||||||
}
|
}
|
||||||
|
@ -129,7 +129,7 @@
|
|||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0NG.748';
|
$version = '7.0NG.748';
|
||||||
$build = '200817';
|
$build = '200826';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
101
pandora_console/operation/agentes/log_sources_status.php
Normal file
101
pandora_console/operation/agentes/log_sources_status.php
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Pandora FMS - http://pandorafms.com
|
||||||
|
// ==================================================
|
||||||
|
// Copyright (c) 2005-2009 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
|
||||||
|
// as published by the Free Software Foundation for version 2.
|
||||||
|
// 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.
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// Login check
|
||||||
|
check_login();
|
||||||
|
|
||||||
|
$agent_id = get_parameter_get('id_agente', 0);
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
|
$table->width = '100%';
|
||||||
|
$table->class = 'info_table';
|
||||||
|
$table->cellpadding = '0';
|
||||||
|
$table->cellspacing = '0';
|
||||||
|
$table->head = [];
|
||||||
|
$table->align = [];
|
||||||
|
|
||||||
|
$table->head[0] = "<span title='".__('Source')."'>".__('Source').'</span>';
|
||||||
|
$table->head[1] = "<span title='".__('Review')."'>".__('Review').'</span>';
|
||||||
|
$table->head[2] = "<span title='".__('Last contact')."'>".__('Last contact').'</span>';
|
||||||
|
|
||||||
|
$table->style = [];
|
||||||
|
$table->style['source'] = 'width: 80%;';
|
||||||
|
|
||||||
|
$table->data = [];
|
||||||
|
|
||||||
|
$row = [];
|
||||||
|
|
||||||
|
|
||||||
|
// Get most recent sources for active agent.
|
||||||
|
$sql = "select source, MAX(utimestamp) AS last_contact from tagent_module_log where id_agent=$agent_id GROUP BY source";
|
||||||
|
|
||||||
|
$logs = mysql_db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
|
foreach ($logs as $log) {
|
||||||
|
$row['source'] = $log['source'];
|
||||||
|
$row['review'] = '<a href="javascript:void(0)">'.html_print_image('images/zoom.png', true, ['title' => __('Review in log viewer'), 'alt' => '', 'onclick' => "send_form('".$log['source'].'-'.$agent_id."')"]).'</a>';
|
||||||
|
$row['last_contact'] = human_time_comparation($log['last_contact']);
|
||||||
|
|
||||||
|
$table->data[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
ob_start();
|
||||||
|
|
||||||
|
if (!empty($table->data)) {
|
||||||
|
echo '<div id="log_sources_status" style="width:100%;">';
|
||||||
|
html_print_table($table);
|
||||||
|
echo '</div>';
|
||||||
|
} else {
|
||||||
|
ui_print_info_message(['no_close' => true, 'message' => __('No log sources found') ]);
|
||||||
|
$log_sources_defined = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hidden form to perform post request to Log Viewer page when clicking on the Review field icon.
|
||||||
|
echo '<form method="POST" action="index.php?sec=estado&sec2=enterprise/operation/log/log_viewer" name="review_log_form" id="review_log_form" style="display: none;">';
|
||||||
|
|
||||||
|
html_print_input_hidden('agent_id', $agent_id, false);
|
||||||
|
html_print_input_hidden('source', null, false);
|
||||||
|
html_print_input_hidden('redirect_search', 1, false);
|
||||||
|
|
||||||
|
|
||||||
|
echo '</form>';
|
||||||
|
|
||||||
|
$html_content = ob_get_clean();
|
||||||
|
|
||||||
|
// Create controlled toggle content.
|
||||||
|
ui_toggle(
|
||||||
|
$html_content,
|
||||||
|
__('Log sources status'),
|
||||||
|
'log_sources_status',
|
||||||
|
!$log_sources_defined,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'white_table_graph_content no-padding-imp'
|
||||||
|
);
|
||||||
|
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
function send_form(source) {
|
||||||
|
var review_form = document.getElementById("review_log_form");
|
||||||
|
var source_input = document.getElementById('hidden-source');
|
||||||
|
|
||||||
|
source_input.value = source;
|
||||||
|
|
||||||
|
review_form.submit();
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
@ -1576,6 +1576,12 @@ switch ($tab) {
|
|||||||
include 'estado_monitores.php';
|
include 'estado_monitores.php';
|
||||||
echo "<a name='alerts'></a>";
|
echo "<a name='alerts'></a>";
|
||||||
include 'alerts_status.php';
|
include 'alerts_status.php';
|
||||||
|
|
||||||
|
if ($config['log_collector']) {
|
||||||
|
echo "<a name='log_sources'></a>";
|
||||||
|
include 'log_sources_status.php';
|
||||||
|
}
|
||||||
|
|
||||||
// Check permissions to read events
|
// Check permissions to read events
|
||||||
if (check_acl($config['id_user'], 0, 'ER')) {
|
if (check_acl($config['id_user'], 0, 'ER')) {
|
||||||
echo "<a name='events'></a>";
|
echo "<a name='events'></a>";
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name apache2
|
%define httpd_name apache2
|
||||||
|
@ -381,6 +381,7 @@ CREATE TABLE IF NOT EXISTS `talert_commands` (
|
|||||||
`fields_descriptions` TEXT,
|
`fields_descriptions` TEXT,
|
||||||
`fields_values` TEXT,
|
`fields_values` TEXT,
|
||||||
`fields_hidden` TEXT,
|
`fields_hidden` TEXT,
|
||||||
|
`previous_name` text,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
@ -423,6 +424,7 @@ CREATE TABLE IF NOT EXISTS `talert_actions` (
|
|||||||
`field13_recovery` text NOT NULL,
|
`field13_recovery` text NOT NULL,
|
||||||
`field14_recovery` text NOT NULL,
|
`field14_recovery` text NOT NULL,
|
||||||
`field15_recovery` text NOT NULL,
|
`field15_recovery` text NOT NULL,
|
||||||
|
`previous_name` text,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
FOREIGN KEY (`id_alert_command`) REFERENCES talert_commands(`id`)
|
FOREIGN KEY (`id_alert_command`) REFERENCES talert_commands(`id`)
|
||||||
ON DELETE CASCADE ON UPDATE CASCADE
|
ON DELETE CASCADE ON UPDATE CASCADE
|
||||||
@ -490,6 +492,7 @@ CREATE TABLE IF NOT EXISTS `talert_templates` (
|
|||||||
`wizard_level` enum('basic','advanced','nowizard') default 'nowizard',
|
`wizard_level` enum('basic','advanced','nowizard') default 'nowizard',
|
||||||
`min_alerts_reset_counter` tinyint(1) default 0,
|
`min_alerts_reset_counter` tinyint(1) default 0,
|
||||||
`disable_event` tinyint(1) default 0,
|
`disable_event` tinyint(1) default 0,
|
||||||
|
`previous_name` text,
|
||||||
PRIMARY KEY (`id`),
|
PRIMARY KEY (`id`),
|
||||||
KEY `idx_template_action` (`id_alert_action`),
|
KEY `idx_template_action` (`id_alert_action`),
|
||||||
FOREIGN KEY (`id_alert_action`) REFERENCES talert_actions(`id`)
|
FOREIGN KEY (`id_alert_action`) REFERENCES talert_actions(`id`)
|
||||||
@ -583,6 +586,7 @@ CREATE TABLE IF NOT EXISTS `tconfig_os` (
|
|||||||
`name` varchar(100) NOT NULL default '',
|
`name` varchar(100) NOT NULL default '',
|
||||||
`description` varchar(250) default '',
|
`description` varchar(250) default '',
|
||||||
`icon_name` varchar(100) default '',
|
`icon_name` varchar(100) default '',
|
||||||
|
`previous_name` text NULL,
|
||||||
PRIMARY KEY (`id_os`)
|
PRIMARY KEY (`id_os`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
@ -2038,9 +2042,10 @@ CREATE TABLE IF NOT EXISTS `ttag` (
|
|||||||
`id_tag` integer(10) unsigned NOT NULL auto_increment,
|
`id_tag` integer(10) unsigned NOT NULL auto_increment,
|
||||||
`name` varchar(100) NOT NULL default '',
|
`name` varchar(100) NOT NULL default '',
|
||||||
`description` text NOT NULL,
|
`description` text NOT NULL,
|
||||||
`url` mediumtext NOT NULL,
|
`url` mediumtext NOT NULL,
|
||||||
`email` text NULL,
|
`email` text NULL,
|
||||||
`phone` text NULL,
|
`phone` text NULL,
|
||||||
|
`previous_name` text NULL,
|
||||||
PRIMARY KEY (`id_tag`)
|
PRIMARY KEY (`id_tag`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
|
@ -150,27 +150,27 @@ UNLOCK TABLES;
|
|||||||
--
|
--
|
||||||
|
|
||||||
LOCK TABLES `tconfig_os` WRITE;
|
LOCK TABLES `tconfig_os` WRITE;
|
||||||
INSERT INTO `tconfig_os` (`id_os`, `name`, `description`, `icon_name`) VALUES
|
INSERT INTO `tconfig_os` (`id_os`, `name`, `description`, `icon_name`, `previous_name`) VALUES
|
||||||
(1,'Linux','Linux: All versions','so_linux.png'),
|
(1,'Linux','Linux: All versions','so_linux.png', ''),
|
||||||
(2,'Solaris','Sun Solaris','so_solaris.png'),
|
(2,'Solaris','Sun Solaris','so_solaris.png', ''),
|
||||||
(3,'AIX','IBM AIX','so_aix.png'),
|
(3,'AIX','IBM AIX','so_aix.png', ''),
|
||||||
(4,'BSD','OpenBSD, FreeBSD and Others','so_bsd.png'),
|
(4,'BSD','OpenBSD, FreeBSD and Others','so_bsd.png', ''),
|
||||||
(5,'HP-UX','HP-UX Unix OS','so_hpux.png'),
|
(5,'HP-UX','HP-UX Unix OS','so_hpux.png', ''),
|
||||||
(7,'Cisco','CISCO IOS','so_cisco.png'),
|
(7,'Cisco','CISCO IOS','so_cisco.png', ''),
|
||||||
(8,'MacOS','MAC OS','so_mac.png'),
|
(8,'MacOS','MAC OS','so_mac.png', ''),
|
||||||
(9,'Windows','Microsoft Windows OS','so_win.png'),
|
(9,'Windows','Microsoft Windows OS','so_win.png', ''),
|
||||||
(10,'Other','Other SO','so_other.png'),
|
(10,'Other','Other SO','so_other.png', ''),
|
||||||
(11,'Network','Network Agent','network.png'),
|
(11,'Network','Network Agent','network.png', ''),
|
||||||
(12,'Web Server','Web Server/Application','network.png'),
|
(12,'Web Server','Web Server/Application','network.png', ''),
|
||||||
(13,'Sensor','Hardware Agent (Sensor)','network.png'),
|
(13,'Sensor','Hardware Agent (Sensor)','network.png', ''),
|
||||||
(14,'Embedded','Embedded device running an agent','embedded.png'),
|
(14,'Embedded','Embedded device running an agent','embedded.png', ''),
|
||||||
(15,'Android','Android agent','android.png'),
|
(15,'Android','Android agent','android.png', ''),
|
||||||
(16, 'VMware', 'VMware Architecture', 'so_vmware.png'),
|
(16, 'VMware', 'VMware Architecture', 'so_vmware.png', ''),
|
||||||
(17, 'Router', 'Generic router', 'so_router.png'),
|
(17, 'Router', 'Generic router', 'so_router.png', ''),
|
||||||
(18, 'Switch', 'Generic switch', 'so_switch.png'),
|
(18, 'Switch', 'Generic switch', 'so_switch.png', ''),
|
||||||
(19, 'Satellite', 'Satellite agent', 'satellite.png'),
|
(19, 'Satellite', 'Satellite agent', 'satellite.png', ''),
|
||||||
(20, 'Mainframe', 'Mainframe agent', 'so_mainframe.png'),
|
(20, 'Mainframe', 'Mainframe agent', 'so_mainframe.png', ''),
|
||||||
(100, 'Cluster', 'Cluster agent', 'so_cluster.png');
|
(100, 'Cluster', 'Cluster agent', 'so_cluster.png', '');
|
||||||
UNLOCK TABLES;
|
UNLOCK TABLES;
|
||||||
|
|
||||||
|
|
||||||
@ -1187,7 +1187,7 @@ INSERT INTO `tplugin` (`id`, `name`, `description`, `max_timeout`, `max_retries`
|
|||||||
|
|
||||||
INSERT INTO `tagent_custom_fields` VALUES (1,'Serial Number',0,0,''),(2,'Department',0,0,''),(3,'Additional ID',0,0,''),(4,'eHorusID',0,0,'');
|
INSERT INTO `tagent_custom_fields` VALUES (1,'Serial Number',0,0,''),(2,'Department',0,0,''),(3,'Additional ID',0,0,''),(4,'eHorusID',0,0,'');
|
||||||
|
|
||||||
INSERT INTO `ttag` VALUES (1,'network','Network equipment','http://artica.es','',''),(2,'critical','Critical modules','','',''),(3,'dmz','DMZ Network Zone','','',''),(4,'performance','Performance anda capacity modules','','',''),(5,'configuration','','','','');
|
INSERT INTO `ttag` VALUES (1,'network','Network equipment','http://artica.es','','',''),(2,'critical','Critical modules','','','',''),(3,'dmz','DMZ Network Zone','','','',''),(4,'performance','Performance anda capacity modules','','','',''),(5,'configuration','','','','','');
|
||||||
|
|
||||||
INSERT INTO `tevent_response` VALUES (1,'Ping to host','Ping to the agent host','ping -c 5 _agent_address_','command',0,620,500,0,'',0,90),(3,'Create incident from event','Create a incident from the event with the standard incidents system of Pandora FMS','index.php?sec=workspace&sec2=operation/incidents/incident_detail&insert_form&from_event=_event_id_','url',0,0,0,1,'',0,90),(5,'Restart agent','Restart the agent with using UDP protocol.

To use this response is necessary to have installed Pandora FMS server and console in the same machine.','/usr/share/pandora_server/util/udp_client.pl _agent_address_ 41122 "REFRESH AGENT"','command',0,620,500,0,'',0,90),(6,'Ping to module agent host','Ping to the module agent host','ping -c 5 _module_address_','command',0,620,500,0,'',0,90);
|
INSERT INTO `tevent_response` VALUES (1,'Ping to host','Ping to the agent host','ping -c 5 _agent_address_','command',0,620,500,0,'',0,90),(3,'Create incident from event','Create a incident from the event with the standard incidents system of Pandora FMS','index.php?sec=workspace&sec2=operation/incidents/incident_detail&insert_form&from_event=_event_id_','url',0,0,0,1,'',0,90),(5,'Restart agent','Restart the agent with using UDP protocol.

To use this response is necessary to have installed Pandora FMS server and console in the same machine.','/usr/share/pandora_server/util/udp_client.pl _agent_address_ 41122 "REFRESH AGENT"','command',0,620,500,0,'',0,90),(6,'Ping to module agent host','Ping to the module agent host','ping -c 5 _module_address_','command',0,620,500,0,'',0,90);
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-server
|
package: pandorafms-server
|
||||||
Version: 7.0NG.748-200817
|
Version: 7.0NG.748-200826
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0NG.748-200817"
|
pandora_version="7.0NG.748-200826"
|
||||||
|
|
||||||
package_cpan=0
|
package_cpan=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -45,7 +45,7 @@ our @EXPORT = qw(
|
|||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.748";
|
my $pandora_version = "7.0NG.748";
|
||||||
my $pandora_build = "200817";
|
my $pandora_build = "200826";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
# Setup hash
|
# Setup hash
|
||||||
|
@ -33,7 +33,7 @@ our @ISA = qw(Exporter);
|
|||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.748";
|
my $pandora_version = "7.0NG.748";
|
||||||
my $pandora_build = "200817";
|
my $pandora_build = "200826";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.748
|
%define version 7.0NG.748
|
||||||
%define release 200817
|
%define release 200826
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.748"
|
PI_VERSION="7.0NG.748"
|
||||||
PI_BUILD="200817"
|
PI_BUILD="200826"
|
||||||
|
|
||||||
MODE=$1
|
MODE=$1
|
||||||
if [ $# -gt 1 ]; then
|
if [ $# -gt 1 ]; then
|
||||||
|
@ -35,7 +35,7 @@ use PandoraFMS::Config;
|
|||||||
use PandoraFMS::DB;
|
use PandoraFMS::DB;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.748 PS200817";
|
my $version = "7.0NG.748 PS200826";
|
||||||
|
|
||||||
# Pandora server configuration
|
# Pandora server configuration
|
||||||
my %conf;
|
my %conf;
|
||||||
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||||||
Encode::Locale::decode_argv;
|
Encode::Locale::decode_argv;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.748 PS200817";
|
my $version = "7.0NG.748 PS200826";
|
||||||
|
|
||||||
# save program name for logging
|
# save program name for logging
|
||||||
my $progname = basename($0);
|
my $progname = basename($0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user