mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 16:24:54 +02:00
Merge branch 'develop' into ent-3468-Ayudas_online
Conflicts: pandora_console/godmode/alerts/configure_alert_command.php Former-commit-id: 9051a95f31fd7163a0b326d7e513c5689c5b304f
This commit is contained in:
commit
b89751e647
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.734-190513
|
Version: 7.0NG.734-190514
|
||||||
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.734-190513"
|
pandora_version="7.0NG.734-190514"
|
||||||
|
|
||||||
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
|
||||||
|
@ -42,7 +42,7 @@ my $Sem = undef;
|
|||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.734';
|
use constant AGENT_VERSION => '7.0NG.734';
|
||||||
use constant AGENT_BUILD => '190513';
|
use constant AGENT_BUILD => '190514';
|
||||||
|
|
||||||
# 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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
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.734"
|
PI_VERSION="7.0NG.734"
|
||||||
PI_BUILD="190513"
|
PI_BUILD="190514"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{190513}
|
{190514}
|
||||||
|
|
||||||
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.734(Build 190513)")
|
#define PANDORA_VERSION ("7.0NG.734(Build 190514)")
|
||||||
|
|
||||||
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.734(Build 190513))"
|
VALUE "ProductVersion", "(7.0NG.734(Build 190514))"
|
||||||
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.734-190513
|
Version: 7.0NG.734-190514
|
||||||
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.734-190513"
|
pandora_version="7.0NG.734-190514"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
START TRANSACTION;
|
START TRANSACTION;
|
||||||
|
|
||||||
|
ALTER TABLE `talert_commands` ADD COLUMN `fields_hidden` text;
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
||||||
|
|
||||||
DELETE FROM `tevent_response` WHERE `name` LIKE 'Create Integria IMS incident from event';
|
DELETE FROM `tevent_response` WHERE `name` LIKE 'Create Integria IMS incident from event';
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
@ -1197,6 +1197,7 @@ ALTER TABLE talert_actions ADD COLUMN `field15_recovery` TEXT NOT NULL DEFAULT "
|
|||||||
UPDATE `talert_commands` SET `fields_descriptions` = '[\"Integria IMS API path\",\"Integria IMS API pass\",\"Integria IMS user\",\"Integria IMS user pass\",\"Ticket title\",\"Ticket group ID\",\"Ticket priority\",\"Email copy\",\"Ticket owner\",\"Ticket description\"]', `fields_values` = '[\"\",\"\",\"\",\"\",\"\",\"\",\"10,Maintenance;0,Informative;1,Low;2,Medium;3,Serious;4,Very Serious\",\"\",\"\",\"\"]' WHERE `id` = 11 AND `name` = 'Integria IMS Ticket';
|
UPDATE `talert_commands` SET `fields_descriptions` = '[\"Integria IMS API path\",\"Integria IMS API pass\",\"Integria IMS user\",\"Integria IMS user pass\",\"Ticket title\",\"Ticket group ID\",\"Ticket priority\",\"Email copy\",\"Ticket owner\",\"Ticket description\"]', `fields_values` = '[\"\",\"\",\"\",\"\",\"\",\"\",\"10,Maintenance;0,Informative;1,Low;2,Medium;3,Serious;4,Very Serious\",\"\",\"\",\"\"]' WHERE `id` = 11 AND `name` = 'Integria IMS Ticket';
|
||||||
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;
|
||||||
|
|
||||||
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;
|
||||||
|
|
||||||
@ -1216,13 +1217,13 @@ ALTER TABLE titem MODIFY `source_data` int(10) unsigned;
|
|||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 27);
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 28);
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_docs_logo', 'default_docs.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_support_logo', 'default_support.png');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('custom_logo_white_bg_preview', 'pandora_logo_head_white_bg.png');
|
||||||
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
UPDATE tconfig SET value = 'https://licensing.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||||
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
DELETE FROM `tconfig` WHERE `token` = 'current_package_enterprise';
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '734');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('current_package_enterprise', '735');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('status_monitor_fields', 'policy,agent,data_type,module_name,server_type,interval,status,graph,warn,data,timestamp');
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
@ -2103,3 +2104,9 @@ ALTER TABLE `tnetflow_filter` DROP COLUMN `output`;
|
|||||||
-- Update table `tuser_task`
|
-- Update table `tuser_task`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
UPDATE tuser_task set parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
UPDATE tuser_task set parameters = 'a:5:{i:0;a:6:{s:11:\"description\";s:28:\"Report pending to be created\";s:5:\"table\";s:7:\"treport\";s:8:\"field_id\";s:9:\"id_report\";s:10:\"field_name\";s:4:\"name\";s:4:\"type\";s:3:\"int\";s:9:\"acl_group\";s:8:\"id_group\";}i:1;a:2:{s:11:\"description\";s:46:\"Send to email addresses (separated by a comma)\";s:4:\"type\";s:4:\"text\";}i:2;a:2:{s:11:\"description\";s:7:\"Subject\";s:8:\"optional\";i:1;}i:3;a:3:{s:11:\"description\";s:7:\"Message\";s:4:\"type\";s:4:\"text\";s:8:\"optional\";i:1;}i:4;a:2:{s:11:\"description\";s:11:\"Report Type\";s:4:\"type\";s:11:\"report_type\";}}' where function_name = "cron_task_generate_report";
|
||||||
|
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
-- Alter table `talert_templates`
|
||||||
|
-- ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
ALTER TABLE `talert_templates` MODIFY COLUMN `type` ENUM('regex','max_min','max','min','equal','not_equal','warning','critical','onchange','unknown','always','not_normal');
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// 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.
|
||||||
// Load global vars
|
// Load global vars.
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_alerts.php';
|
require_once $config['homedir'].'/include/functions_alerts.php';
|
||||||
@ -46,7 +46,7 @@ if (is_ajax()) {
|
|||||||
$id = (int) get_parameter('id', 0);
|
$id = (int) get_parameter('id', 0);
|
||||||
$get_recovery_fields = (int) get_parameter('get_recovery_fields', 1);
|
$get_recovery_fields = (int) get_parameter('get_recovery_fields', 1);
|
||||||
|
|
||||||
// If command ID is not provided, check for action id
|
// If command ID is not provided, check for action id.
|
||||||
if ($id == 0) {
|
if ($id == 0) {
|
||||||
$id_action = (int) get_parameter('id_action');
|
$id_action = (int) get_parameter('id_action');
|
||||||
$id = alerts_get_alert_action_alert_command_id($id_action);
|
$id = alerts_get_alert_action_alert_command_id($id_action);
|
||||||
@ -59,10 +59,12 @@ if (is_ajax()) {
|
|||||||
$command['description'] = io_safe_input(str_replace("\r\n", '<br>', io_safe_output($command['description'])));
|
$command['description'] = io_safe_input(str_replace("\r\n", '<br>', io_safe_output($command['description'])));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Descriptions are stored in json
|
// Descriptions are stored in json.
|
||||||
$fields_descriptions = empty($command['fields_descriptions']) ? '' : json_decode(io_safe_output($command['fields_descriptions']), true);
|
$fields_descriptions = empty($command['fields_descriptions']) ? '' : json_decode(io_safe_output($command['fields_descriptions']), true);
|
||||||
// Fields values are stored in json
|
// Fields values are stored in json.
|
||||||
$fields_values = empty($command['fields_values']) ? '' : io_safe_output(json_decode($command['fields_values'], true));
|
$fields_values = empty($command['fields_values']) ? '' : io_safe_output(json_decode($command['fields_values'], true));
|
||||||
|
// Fields hidden conditions are stored in json.
|
||||||
|
$fields_hidden_checked = empty($command['fields_hidden']) ? '' : io_safe_output(json_decode($command['fields_hidden'], true));
|
||||||
|
|
||||||
$fields_rows = [];
|
$fields_rows = [];
|
||||||
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
||||||
@ -72,18 +74,20 @@ if (is_ajax()) {
|
|||||||
|
|
||||||
$field_description = $fields_descriptions[($i - 1)];
|
$field_description = $fields_descriptions[($i - 1)];
|
||||||
$field_value = $fields_values[($i - 1)];
|
$field_value = $fields_values[($i - 1)];
|
||||||
|
$field_hidden = $fields_hidden_checked[($i - 1)];
|
||||||
|
|
||||||
|
|
||||||
if (!empty($field_description)) {
|
if (!empty($field_description)) {
|
||||||
// If the value is 5, this because severity in snmp alerts is not permit to show
|
// If the value is 5, this because severity in snmp alerts is not permit to show.
|
||||||
if (($i > 5) && ($command['id'] == 3)) {
|
if (($i > 5) && ($command['id'] == 3)) {
|
||||||
$fdesc = $field_description.' <br><span style="font-size:xx-small; font-weight:normal;">'.sprintf(__('Field %s'), ($i - 1)).'</span>';
|
$fdesc = $field_description.' <br><span style="font-size:xx-small; font-weight:normal;">'.sprintf(__('Field %s'), ($i - 1)).'</span>';
|
||||||
} else {
|
} else {
|
||||||
$fdesc = $field_description.' <br><span style="font-size:xx-small; font-weight:normal;">'.sprintf(__('Field %s'), $i).'</span>';
|
$fdesc = $field_description.' <br><span style="font-size:xx-small; font-weight:normal;">'.sprintf(__('Field %s'), $i).'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
// If the field is the number one, print the help message
|
// If the field is the number one, print the help message.
|
||||||
if ($i == 1) {
|
if ($i == 1) {
|
||||||
// If our context is snmpconsole, show snmp_alert helps
|
// If our context is snmpconsole, show snmp_alert helps.
|
||||||
if ((isset($_SERVER['HTTP_REFERER'])) && ( preg_match('/snmp_alert/', $_SERVER['HTTP_REFERER']) > 0 )) {
|
if ((isset($_SERVER['HTTP_REFERER'])) && ( preg_match('/snmp_alert/', $_SERVER['HTTP_REFERER']) > 0 )) {
|
||||||
$fdesc .= ui_print_help_icon('snmp_alert_field1', true);
|
$fdesc .= ui_print_help_icon('snmp_alert_field1', true);
|
||||||
} else {
|
} else {
|
||||||
@ -91,7 +95,7 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// If the macro hasn't description and doesnt appear in command, set with empty description to dont show it
|
// If the macro hasn't description and doesnt appear in command, set with empty description to dont show it.
|
||||||
if (($i > 5) && ($command['id'] == 3)) {
|
if (($i > 5) && ($command['id'] == 3)) {
|
||||||
if (substr_count($command['command'], '_field'.($i - 1).'_') > 0) {
|
if (substr_count($command['command'], '_field'.($i - 1).'_') > 0) {
|
||||||
$fdesc = sprintf(__('Field %s'), ($i - 1));
|
$fdesc = sprintf(__('Field %s'), ($i - 1));
|
||||||
@ -107,9 +111,11 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$style = ((int) $field_hidden === 1) ? '-webkit-text-security: disc;' : '';
|
||||||
|
|
||||||
if (!empty($field_value)) {
|
if (!empty($field_value)) {
|
||||||
$field_value = io_safe_output($field_value);
|
$field_value = io_safe_output($field_value);
|
||||||
// HTML type
|
// HTML type.
|
||||||
if (preg_match('/^_html_editor_$/i', $field_value)) {
|
if (preg_match('/^_html_editor_$/i', $field_value)) {
|
||||||
$editor_type_chkbx = '<div style="padding: 4px 0px;"><b><small>';
|
$editor_type_chkbx = '<div style="padding: 4px 0px;"><b><small>';
|
||||||
$editor_type_chkbx .= __('Basic').ui_print_help_tip(__('For sending emails, text must be HTML format, if you want to use plain text, type it between the following labels: <pre></pre>'), true);
|
$editor_type_chkbx .= __('Basic').ui_print_help_tip(__('For sending emails, text must be HTML format, if you want to use plain text, type it between the following labels: <pre></pre>'), true);
|
||||||
@ -148,7 +154,7 @@ if (is_ajax()) {
|
|||||||
$editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_recovery_value', 'text/html', '', 'text/html', false, '', '', true);
|
$editor_type_chkbx .= html_print_radio_button_extended('field'.$i.'_recovery_value', 'text/html', '', 'text/html', false, '', '', true);
|
||||||
$editor_type_chkbx .= '</small></b></div>';
|
$editor_type_chkbx .= '</small></b></div>';
|
||||||
$rfield = $editor_type_chkbx;
|
$rfield = $editor_type_chkbx;
|
||||||
// Select type
|
// Select type.
|
||||||
} else {
|
} else {
|
||||||
$fields_value_select = [];
|
$fields_value_select = [];
|
||||||
$fv = explode(';', $field_value);
|
$fv = explode(';', $field_value);
|
||||||
@ -200,7 +206,7 @@ if (is_ajax()) {
|
|||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
$fv[0],
|
$fv[0],
|
||||||
'style="min-height:40px" class="fields"',
|
'style="min-height:40px; '.$style.'" class="fields"',
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
$rfield = html_print_textarea(
|
$rfield = html_print_textarea(
|
||||||
@ -208,7 +214,7 @@ if (is_ajax()) {
|
|||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
$fv[0],
|
$fv[0],
|
||||||
'style="min-height:40px" class="fields_recovery"',
|
'style="min-height:40px; '.$style.'" class="fields_recovery',
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -219,7 +225,7 @@ if (is_ajax()) {
|
|||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
'',
|
'',
|
||||||
'style="min-height:40px" class="fields"',
|
'style="min-height:40px; '.$style.'" class="fields"',
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
$rfield = html_print_textarea(
|
$rfield = html_print_textarea(
|
||||||
@ -227,13 +233,13 @@ if (is_ajax()) {
|
|||||||
1,
|
1,
|
||||||
1,
|
1,
|
||||||
'',
|
'',
|
||||||
'style="min-height:40px" class="fields_recovery"',
|
'style="min-height:40px; '.$style.'" class="fields_recovery"',
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// The empty descriptions will be ignored
|
// The empty descriptions will be ignored.
|
||||||
if ($fdesc == '') {
|
if ($fdesc == '') {
|
||||||
$fields_rows[$i] = '';
|
$fields_rows[$i] = '';
|
||||||
} else {
|
} else {
|
||||||
@ -248,7 +254,7 @@ if (is_ajax()) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// If command is PandoraFMS event, field 5 must be empty because "severity" must be set by the alert
|
// If command is PandoraFMS event, field 5 must be empty because "severity" must be set by the alert.
|
||||||
if ($command['id'] == 3) {
|
if ($command['id'] == 3) {
|
||||||
$fields_rows[5] = '';
|
$fields_rows[5] = '';
|
||||||
}
|
}
|
||||||
@ -268,7 +274,7 @@ if ($update_command) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
if (defined('METACONSOLE')) {
|
if (defined('METACONSOLE')) {
|
||||||
alerts_meta_print_header();
|
alerts_meta_print_header();
|
||||||
} else {
|
} else {
|
||||||
@ -289,16 +295,19 @@ if ($create_command) {
|
|||||||
|
|
||||||
$fields_descriptions = [];
|
$fields_descriptions = [];
|
||||||
$fields_values = [];
|
$fields_values = [];
|
||||||
|
$fields_hidden = [];
|
||||||
$info_fields = '';
|
$info_fields = '';
|
||||||
$values = [];
|
$values = [];
|
||||||
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
||||||
$fields_descriptions[] = (string) get_parameter('field'.$i.'_description');
|
$fields_descriptions[] = (string) get_parameter('field'.$i.'_description');
|
||||||
$fields_values[] = (string) get_parameter('field'.$i.'_values');
|
$fields_values[] = (string) get_parameter('field'.$i.'_values');
|
||||||
|
$fields_hidden[] = get_parameter('field'.$i.'_hide');
|
||||||
$info_fields .= ' Field'.$i.': '.$fields_values[($i - 1)];
|
$info_fields .= ' Field'.$i.': '.$fields_values[($i - 1)];
|
||||||
}
|
}
|
||||||
|
|
||||||
$values['fields_values'] = io_json_mb_encode($fields_values);
|
$values['fields_values'] = io_json_mb_encode($fields_values);
|
||||||
$values['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
|
$values['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
|
||||||
|
$values['fields_hidden'] = io_json_mb_encode($fields_hidden);
|
||||||
$values['description'] = $description;
|
$values['description'] = $description;
|
||||||
$values['id_group'] = $id_group;
|
$values['id_group'] = $id_group;
|
||||||
|
|
||||||
@ -322,7 +331,7 @@ if ($create_command) {
|
|||||||
db_pandora_audit('Command management', 'Fail try to create alert command', false, false);
|
db_pandora_audit('Command management', 'Fail try to create alert command', false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Show errors
|
// Show errors.
|
||||||
if (!isset($messageAction)) {
|
if (!isset($messageAction)) {
|
||||||
$messageAction = __('Could not be created');
|
$messageAction = __('Could not be created');
|
||||||
}
|
}
|
||||||
@ -346,7 +355,7 @@ if ($create_command) {
|
|||||||
if ($delete_command) {
|
if ($delete_command) {
|
||||||
$id = (int) get_parameter('id');
|
$id = (int) get_parameter('id');
|
||||||
|
|
||||||
// Internal commands cannot be deleted
|
// Internal commands cannot be deleted.
|
||||||
if (alerts_get_alert_command_internal($id)) {
|
if (alerts_get_alert_command_internal($id)) {
|
||||||
db_pandora_audit(
|
db_pandora_audit(
|
||||||
'ACL Violation',
|
'ACL Violation',
|
||||||
@ -374,17 +383,17 @@ if ($delete_command) {
|
|||||||
if ($copy_command) {
|
if ($copy_command) {
|
||||||
$id = (int) get_parameter('id');
|
$id = (int) get_parameter('id');
|
||||||
|
|
||||||
// Get the info from the source command
|
// Get the info from the source command.
|
||||||
$command_to_copy = db_get_row('talert_commands', 'id', $id);
|
$command_to_copy = db_get_row('talert_commands', 'id', $id);
|
||||||
if ($command_to_copy === false) {
|
if ($command_to_copy === false) {
|
||||||
ui_print_error_message(__("Command with id $id does not found."));
|
ui_print_error_message(__("Command with id $id does not found."));
|
||||||
} else {
|
} else {
|
||||||
// Prepare to insert the copy with same values
|
// Prepare to insert the copy with same values.
|
||||||
unset($command_to_copy['id']);
|
unset($command_to_copy['id']);
|
||||||
$command_to_copy['name'] .= __(' (copy)');
|
$command_to_copy['name'] .= __(' (copy)');
|
||||||
$result = db_process_sql_insert('talert_commands', $command_to_copy);
|
$result = db_process_sql_insert('talert_commands', $command_to_copy);
|
||||||
|
|
||||||
// Print the result
|
// Print the result.
|
||||||
ui_print_result_message(
|
ui_print_result_message(
|
||||||
$result,
|
$result,
|
||||||
__('Successfully copied'),
|
__('Successfully copied'),
|
||||||
|
@ -186,6 +186,10 @@ switch ($template['type']) {
|
|||||||
$condition = __('The alert would fire when the module is in critical status');
|
$condition = __('The alert would fire when the module is in critical status');
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'not_normal':
|
||||||
|
$condition = __('The alert would fire when the module is in not normal status');
|
||||||
|
break;
|
||||||
|
|
||||||
case 'unknown':
|
case 'unknown':
|
||||||
$condition = __('The alert would fire when the module is in unknown status');
|
$condition = __('The alert would fire when the module is in unknown status');
|
||||||
break;
|
break;
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// 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.
|
||||||
// Load global vars
|
// Load global vars.
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/functions_alerts.php';
|
require_once $config['homedir'].'/include/functions_alerts.php';
|
||||||
@ -35,7 +35,7 @@ $id = (int) get_parameter('id');
|
|||||||
$pure = get_parameter('pure', 0);
|
$pure = get_parameter('pure', 0);
|
||||||
$alert = [];
|
$alert = [];
|
||||||
|
|
||||||
// Header
|
// Header.
|
||||||
if (defined('METACONSOLE')) {
|
if (defined('METACONSOLE')) {
|
||||||
alerts_meta_print_header();
|
alerts_meta_print_header();
|
||||||
} else {
|
} else {
|
||||||
@ -65,16 +65,19 @@ if ($update_command) {
|
|||||||
|
|
||||||
$fields_descriptions = [];
|
$fields_descriptions = [];
|
||||||
$fields_values = [];
|
$fields_values = [];
|
||||||
|
$fields_hidden = [];
|
||||||
$info_fields = '';
|
$info_fields = '';
|
||||||
$values = [];
|
$values = [];
|
||||||
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
||||||
$fields_descriptions[] = (string) get_parameter('field'.$i.'_description');
|
$fields_descriptions[] = (string) get_parameter('field'.$i.'_description');
|
||||||
$fields_values[] = (string) get_parameter('field'.$i.'_values');
|
$fields_values[] = (string) get_parameter('field'.$i.'_values');
|
||||||
|
$fields_hidden[] = get_parameter('field'.$i.'_hide');
|
||||||
$info_fields .= ' Field'.$i.': '.$fields_values[($i - 1)];
|
$info_fields .= ' Field'.$i.': '.$fields_values[($i - 1)];
|
||||||
}
|
}
|
||||||
|
|
||||||
$values['fields_values'] = io_json_mb_encode($fields_values);
|
$values['fields_values'] = io_json_mb_encode($fields_values);
|
||||||
$values['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
|
$values['fields_descriptions'] = io_json_mb_encode($fields_descriptions);
|
||||||
|
$values['fields_hidden'] = io_json_mb_encode($fields_hidden);
|
||||||
|
|
||||||
$values['name'] = $name;
|
$values['name'] = $name;
|
||||||
$values['command'] = $command;
|
$values['command'] = $command;
|
||||||
@ -129,6 +132,7 @@ if ($id) {
|
|||||||
$id_group = $alert['id_group'];
|
$id_group = $alert['id_group'];
|
||||||
$fields_descriptions = $alert['fields_descriptions'];
|
$fields_descriptions = $alert['fields_descriptions'];
|
||||||
$fields_values = $alert['fields_values'];
|
$fields_values = $alert['fields_values'];
|
||||||
|
$fields_hidden = $alert['fields_hidden'];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($fields_descriptions)) {
|
if (!empty($fields_descriptions)) {
|
||||||
@ -139,6 +143,10 @@ if (!empty($fields_values)) {
|
|||||||
$fields_values = json_decode($fields_values, true);
|
$fields_values = json_decode($fields_values, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($fields_hidden)) {
|
||||||
|
$fields_hidden = json_decode($fields_hidden, true);
|
||||||
|
}
|
||||||
|
|
||||||
$table = new stdClass();
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->class = 'databox filters';
|
$table->class = 'databox filters';
|
||||||
@ -153,6 +161,7 @@ $table->style = [];
|
|||||||
if (!defined('METACONSOLE')) {
|
if (!defined('METACONSOLE')) {
|
||||||
$table->style[0] = 'font-weight: bold';
|
$table->style[0] = 'font-weight: bold';
|
||||||
$table->style[2] = 'font-weight: bold';
|
$table->style[2] = 'font-weight: bold';
|
||||||
|
$table->style[4] = 'font-weight: bold';
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->size = [];
|
$table->size = [];
|
||||||
@ -195,7 +204,7 @@ for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
|||||||
$field_description = '';
|
$field_description = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data['field'.$i][1] = html_print_input_text('field'.$i.'_description', $field_description, '', 35, 255, true);
|
$table->data['field'.$i][1] = html_print_input_text('field'.$i.'_description', $field_description, '', 30, 255, true);
|
||||||
|
|
||||||
$table->data['field'.$i][2] = sprintf(__('Field %s values'), $i);
|
$table->data['field'.$i][2] = sprintf(__('Field %s values'), $i);
|
||||||
|
|
||||||
@ -205,7 +214,17 @@ for ($i = 1; $i <= $config['max_macro_fields']; $i++) {
|
|||||||
$field_values = '';
|
$field_values = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
$table->data['field'.$i][3] = html_print_input_text('field'.$i.'_values', $field_values, '', 65, 255, true);
|
if (!empty($fields_hidden)) {
|
||||||
|
$selected = (bool) $fields_hidden[($i - 1)];
|
||||||
|
} else {
|
||||||
|
$selected = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
$table->data['field'.$i][3] = html_print_input_text('field'.$i.'_values', $field_values, '', 55, 255, true, false, false, '', 'field_value');
|
||||||
|
|
||||||
|
$table->data['field'.$i][4] = __('Hide');
|
||||||
|
|
||||||
|
$table->data['field'.$i][5] = html_print_checkbox_extended('field'.$i.'_hide', 1, $selected, false, 'cursor: \'pointer\'', 'class="hide_inputs"', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
echo '<form method="post" action="index.php?sec=galertas&sec2=godmode/alerts/alert_commands&pure='.$pure.'">';
|
echo '<form method="post" action="index.php?sec=galertas&sec2=godmode/alerts/alert_commands&pure='.$pure.'">';
|
||||||
@ -225,3 +244,27 @@ echo '</div>';
|
|||||||
echo '</form>';
|
echo '</form>';
|
||||||
|
|
||||||
enterprise_hook('close_meta_frame');
|
enterprise_hook('close_meta_frame');
|
||||||
|
?>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready (function () {
|
||||||
|
|
||||||
|
$(".hide_inputs").each(function(index) {
|
||||||
|
var $input_in_row = $(this).closest('tr').find('.field_value');
|
||||||
|
if($(this).is(':checked')) {
|
||||||
|
$input_in_row.prop('style', '-webkit-text-security: disc;');
|
||||||
|
} else {
|
||||||
|
$input_in_row.prop('style', '');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(".hide_inputs").click(function() {
|
||||||
|
var $input_in_row = $(this).closest('tr').find('.field_value');
|
||||||
|
if($(this).is(':checked')) {
|
||||||
|
$input_in_row.prop('style', '-webkit-text-security: disc;');
|
||||||
|
} else {
|
||||||
|
$input_in_row.prop('style', '');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@ -706,7 +706,7 @@ if ($step == 2) {
|
|||||||
'type',
|
'type',
|
||||||
$type,
|
$type,
|
||||||
'',
|
'',
|
||||||
__('Select'),
|
__('None'),
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
false,
|
false,
|
||||||
@ -1045,6 +1045,7 @@ var onchange_msg = <?php echo '"'.__('The alert would fire when the module value
|
|||||||
var onchange_not = <?php echo '"'.__('The alert would fire when the module value does not change').'"'; ?>;
|
var onchange_not = <?php echo '"'.__('The alert would fire when the module value does not change').'"'; ?>;
|
||||||
var unknown = <?php echo "'".__('The alert would fire when the module is in unknown status')."'"; ?>;
|
var unknown = <?php echo "'".__('The alert would fire when the module is in unknown status')."'"; ?>;
|
||||||
var error_message_min_max_zero = <?php echo "'".__('The alert template cannot have the same value for min and max thresholds.')."'"; ?>;
|
var error_message_min_max_zero = <?php echo "'".__('The alert template cannot have the same value for min and max thresholds.')."'"; ?>;
|
||||||
|
var not_normal = <?php echo "'".__('The alert would fire when the module is in not normal status')."'"; ?>;
|
||||||
|
|
||||||
function check_fields_step2() {
|
function check_fields_step2() {
|
||||||
var correct = true;
|
var correct = true;
|
||||||
@ -1201,6 +1202,13 @@ if ($step == 2) {
|
|||||||
/* Show example */
|
/* Show example */
|
||||||
$("span#example").empty ().append (critical);
|
$("span#example").empty ().append (critical);
|
||||||
break;
|
break;
|
||||||
|
case "not_normal":
|
||||||
|
$("#template-value, #template-max, span#matches_value, #template-min").hide ();
|
||||||
|
$("#template-example").show ();
|
||||||
|
|
||||||
|
/* Show example */
|
||||||
|
$("span#example").empty ().append (not_normal);
|
||||||
|
break;
|
||||||
case "onchange":
|
case "onchange":
|
||||||
$("#template-value, #template-max, #template-min").hide ();
|
$("#template-value, #template-max, #template-min").hide ();
|
||||||
$("#template-example, span#matches_value").show ();
|
$("#template-example, span#matches_value").show ();
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC190513';
|
$build_version = 'PC190514';
|
||||||
$pandora_version = 'v7.0NG.734';
|
$pandora_version = 'v7.0NG.734';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
|
@ -1764,14 +1764,20 @@ function array_key_to_offset($array, $key)
|
|||||||
*
|
*
|
||||||
* @param string $ip_target The target address.
|
* @param string $ip_target The target address.
|
||||||
* @param string $snmp_version Version of the snmp: 1,2,2c or 3.
|
* @param string $snmp_version Version of the snmp: 1,2,2c or 3.
|
||||||
* @param string $snmp_community.
|
* @param string $snmp_community Snmp_community.
|
||||||
* @param string $snmp3_auth_user.
|
* @param string $snmp3_auth_user Snmp3_auth_user.
|
||||||
* @param string $snmp3_security_level.
|
* @param string $snmp3_security_level Snmp3_security_level.
|
||||||
* @param string $snmp3_auth_method.
|
* @param string $snmp3_auth_method Snmp3_auth_method.
|
||||||
* @param string $snmp3_auth_pass.
|
* @param string $snmp3_auth_pass Snmp3_auth_pass.
|
||||||
* @param string $snmp3_privacy_method.
|
* @param string $snmp3_privacy_method Snmp3_privacy_method.
|
||||||
* @param string $snmp3_privacy_pass.
|
* @param string $snmp3_privacy_pass Snmp3_privacy_pass.
|
||||||
* @param integer $quick_print 0 for all details, 1 for only value.
|
* @param integer $quick_print To get all details 0, 1: only value.
|
||||||
|
* @param string $base_oid Base_oid.
|
||||||
|
* @param string $snmp_port Snmp_port.
|
||||||
|
* @param integer $server_to_exec Server_to_exec.
|
||||||
|
* @param string $extra_arguments Extra_arguments.
|
||||||
|
* @param string $format Format to apply, for instance, to
|
||||||
|
* retrieve hex-dumps: --hexOutputLength.
|
||||||
*
|
*
|
||||||
* @return array SNMP result.
|
* @return array SNMP result.
|
||||||
*/
|
*/
|
||||||
@ -1789,7 +1795,8 @@ function get_snmpwalk(
|
|||||||
$base_oid='',
|
$base_oid='',
|
||||||
$snmp_port='',
|
$snmp_port='',
|
||||||
$server_to_exec=0,
|
$server_to_exec=0,
|
||||||
$extra_arguments=''
|
$extra_arguments='',
|
||||||
|
$format='-Oa'
|
||||||
) {
|
) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -1840,15 +1847,15 @@ function get_snmpwalk(
|
|||||||
case '3':
|
case '3':
|
||||||
switch ($snmp3_security_level) {
|
switch ($snmp3_security_level) {
|
||||||
case 'authNoPriv':
|
case 'authNoPriv':
|
||||||
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
$command_str = $snmpwalk_bin.' -m ALL '.$format.' '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'noAuthNoPriv':
|
case 'noAuthNoPriv':
|
||||||
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
$command_str = $snmpwalk_bin.' -m ALL '.$format.' '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -l '.escapeshellarg($snmp3_security_level).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
$command_str = $snmpwalk_bin.' -m ALL -Oa '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
$command_str = $snmpwalk_bin.' -m ALL '.$format.' '.$extra_arguments.' -v 3'.' -u '.escapeshellarg($snmp3_auth_user).' -A '.escapeshellarg($snmp3_auth_pass).' -l '.escapeshellarg($snmp3_security_level).' -a '.escapeshellarg($snmp3_auth_method).' -x '.escapeshellarg($snmp3_privacy_method).' -X '.escapeshellarg($snmp3_privacy_pass).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -1857,7 +1864,7 @@ function get_snmpwalk(
|
|||||||
case '2c':
|
case '2c':
|
||||||
case '1':
|
case '1':
|
||||||
default:
|
default:
|
||||||
$command_str = $snmpwalk_bin.' -m ALL '.$extra_arguments.' -Oa -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
$command_str = $snmpwalk_bin.' -m ALL '.$extra_arguments.' '.$format.' -v '.escapeshellarg($snmp_version).' -c '.escapeshellarg(io_safe_output($snmp_community)).' '.escapeshellarg($ip_target).' '.$base_oid.' 2> '.$error_redir_dir;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -664,6 +664,7 @@ function alerts_get_alert_templates_types()
|
|||||||
$types['unknown'] = __('Unknown status');
|
$types['unknown'] = __('Unknown status');
|
||||||
$types['onchange'] = __('On Change');
|
$types['onchange'] = __('On Change');
|
||||||
$types['always'] = __('Always');
|
$types['always'] = __('Always');
|
||||||
|
$types['not_normal'] = __('Not normal status');
|
||||||
|
|
||||||
return $types;
|
return $types;
|
||||||
}
|
}
|
||||||
@ -680,7 +681,7 @@ function alerts_get_alert_templates_type_name($type)
|
|||||||
{
|
{
|
||||||
$types = alerts_get_alert_templates_types();
|
$types = alerts_get_alert_templates_types();
|
||||||
|
|
||||||
if (! isset($type[$type])) {
|
if (!isset($types[$type])) {
|
||||||
return __('Unknown');
|
return __('Unknown');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1646,7 +1646,7 @@ function events_get_agent(
|
|||||||
$sql_where,
|
$sql_where,
|
||||||
0,
|
0,
|
||||||
1000,
|
1000,
|
||||||
is_metaconsole(),
|
(is_metaconsole() && $id_server) ? true : false,
|
||||||
false,
|
false,
|
||||||
false,
|
false,
|
||||||
$history
|
$history
|
||||||
|
@ -19,8 +19,14 @@ function parse_alert_command(command, classs) {
|
|||||||
|
|
||||||
var regex = new RegExp(field, "gi");
|
var regex = new RegExp(field, "gi");
|
||||||
|
|
||||||
command = command.replace(regex, $(this).val());
|
if ($(this).css("-webkit-text-security") == "disc") {
|
||||||
|
var hidden_character = "*";
|
||||||
|
var hidden_string = hidden_character.repeat($(this).val().length);
|
||||||
|
|
||||||
|
command = command.replace(regex, hidden_string);
|
||||||
|
} else {
|
||||||
|
command = command.replace(regex, $(this).val());
|
||||||
|
}
|
||||||
nfield++;
|
nfield++;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -125,4 +125,35 @@ final class EventsHistory extends Item
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a link to something related with the item.
|
||||||
|
*
|
||||||
|
* @param array $data Visual Console Item's data structure.
|
||||||
|
*
|
||||||
|
* @return mixed The link or a null value.
|
||||||
|
*
|
||||||
|
* @override Item::buildLink.
|
||||||
|
*/
|
||||||
|
protected static function buildLink(array $data)
|
||||||
|
{
|
||||||
|
// Get the linked agent and module Ids.
|
||||||
|
$linkedModule = static::extractLinkedModule($data);
|
||||||
|
$agentId = static::parseIntOr($linkedModule['agentId'], null);
|
||||||
|
$moduleId = static::parseIntOr($linkedModule['moduleId'], null);
|
||||||
|
|
||||||
|
$baseUrl = \ui_get_full_url('index.php');
|
||||||
|
|
||||||
|
return $baseUrl.'?'.http_build_query(
|
||||||
|
[
|
||||||
|
'sec' => 'eventos',
|
||||||
|
'sec2' => 'operation/events/events',
|
||||||
|
'id_agent' => $agentId,
|
||||||
|
'module_search_hidden' => $moduleId,
|
||||||
|
'event_view_hr' => (static::extractMaxTime($data) / 3600),
|
||||||
|
'status' => -1,
|
||||||
|
]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -383,22 +383,22 @@ final class Group extends Item
|
|||||||
|
|
||||||
// Critical.
|
// Critical.
|
||||||
$html .= '<div style="'.$valueStyle.'background-color: #FC4444;">';
|
$html .= '<div style="'.$valueStyle.'background-color: #FC4444;">';
|
||||||
$html .= \number_format($agentStats['critical']).'%';
|
$html .= \number_format($agentStats['critical'], 2).'%';
|
||||||
$html .= '</div>';
|
$html .= '</div>';
|
||||||
$html .= '<div style="'.$nameStyle.'">'.__('Critical').'</div>';
|
$html .= '<div style="'.$nameStyle.'">'.__('Critical').'</div>';
|
||||||
// Warning.
|
// Warning.
|
||||||
$html .= '<div style="'.$valueStyle.'background-color: #f8db3f;">';
|
$html .= '<div style="'.$valueStyle.'background-color: #f8db3f;">';
|
||||||
$html .= \number_format($agentStats['warning']).'%';
|
$html .= \number_format($agentStats['warning'], 2).'%';
|
||||||
$html .= '</div>';
|
$html .= '</div>';
|
||||||
$html .= '<div style="'.$nameStyle.'">'.__('Warning').'</div>';
|
$html .= '<div style="'.$nameStyle.'">'.__('Warning').'</div>';
|
||||||
// Normal.
|
// Normal.
|
||||||
$html .= '<div style="'.$valueStyle.'background-color: #84b83c;">';
|
$html .= '<div style="'.$valueStyle.'background-color: #84b83c;">';
|
||||||
$html .= \number_format($agentStats['normal']).'%';
|
$html .= \number_format($agentStats['normal'], 2).'%';
|
||||||
$html .= '</div>';
|
$html .= '</div>';
|
||||||
$html .= '<div style="'.$nameStyle.'">'.__('Normal').'</div>';
|
$html .= '<div style="'.$nameStyle.'">'.__('Normal').'</div>';
|
||||||
// Unknown.
|
// Unknown.
|
||||||
$html .= '<div style="'.$valueStyle.'background-color: #9d9ea0;">';
|
$html .= '<div style="'.$valueStyle.'background-color: #9d9ea0;">';
|
||||||
$html .= \number_format($agentStats['unknown']).'%';
|
$html .= \number_format($agentStats['unknown'], 2).'%';
|
||||||
$html .= '</div>';
|
$html .= '</div>';
|
||||||
$html .= '<div style="'.$nameStyle.'">'.__('Unknown').'</div>';
|
$html .= '<div style="'.$nameStyle.'">'.__('Unknown').'</div>';
|
||||||
|
|
||||||
|
@ -226,12 +226,8 @@ final class Percentile extends Item
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Cast to float.
|
|
||||||
$moduleValue = (float) $moduleValue;
|
|
||||||
|
|
||||||
// Store the module value.
|
// Store the module value.
|
||||||
$data['value'] = $moduleValue;
|
$data['value'] = (float) \number_format((float) $moduleValue, (int) $config['graph_precision'], '.', '');
|
||||||
|
|
||||||
$unit = \modules_get_unit($moduleId);
|
$unit = \modules_get_unit($moduleId);
|
||||||
if (empty($unit) === false) {
|
if (empty($unit) === false) {
|
||||||
$data['unit'] = \io_safe_output($unit);
|
$data['unit'] = \io_safe_output($unit);
|
||||||
|
@ -230,8 +230,8 @@ final class StaticGraph extends Item
|
|||||||
if (!$isBooleanModule
|
if (!$isBooleanModule
|
||||||
|| ($isBooleanModule && $showLastValueTooltip !== 'default')
|
|| ($isBooleanModule && $showLastValueTooltip !== 'default')
|
||||||
) {
|
) {
|
||||||
if (is_numeric($value)) {
|
if (\is_numeric($value)) {
|
||||||
$imgTitle .= __('Last value: ').\remove_right_zeros($value);
|
$imgTitle .= __('Last value: ').\remove_right_zeros(\number_format((float) $value, (int) $config['graph_precision']));
|
||||||
} else {
|
} else {
|
||||||
$imgTitle .= __('Last value: ').$value;
|
$imgTitle .= __('Last value: ').$value;
|
||||||
}
|
}
|
||||||
|
@ -72,6 +72,10 @@
|
|||||||
|
|
||||||
/* Analog clock */
|
/* Analog clock */
|
||||||
|
|
||||||
|
.visual-console-item .analogic-clock {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.visual-console-item .analogic-clock .hour-hand {
|
.visual-console-item .analogic-clock .hour-hand {
|
||||||
-webkit-animation: rotate-hour 43200s infinite linear;
|
-webkit-animation: rotate-hour 43200s infinite linear;
|
||||||
animation: rotate-hour 43200s infinite linear;
|
animation: rotate-hour 43200s infinite linear;
|
||||||
|
@ -1 +1 @@
|
|||||||
{"version":3,"sources":["webpack:///main.css","webpack:///styles.css"],"names":[],"mappings":"AAAA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4BAA4B;EAC5B,0BAA0B;EAC1B,2BAA2B;AAC7B;;AAEA;EACE,kBAAkB;EAClB,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,2BAAuB;EAAvB,8BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB;EACvB,qBAAqB;EACrB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;EACnB,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;AACnB;;ACfA;EACE,wBAAwB;EACxB,0BAA2B;AAC7B;;AAEA,kBAAkB;;AAElB;EACE,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;EACtB,wBAAuB;MAAvB,qBAAuB;UAAvB,uBAAuB;EACvB,qBAAqB;EACrB,0BAAqB;MAArB,qBAAqB;EACrB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;AACrB;;AAEA;EACE,6DAA6D;EAC7D,eAAe;;EAEf,0BAA0B;EAC1B,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;EAClC,wCAAwC;AAC1C;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA,iBAAiB;;AAEjB;EACE,qDAA6C;UAA7C,6CAA6C;AAC/C;;AAEA;EACE,sDAA8C;UAA9C,8CAA8C;AAChD;;AAEA;EACE,oDAA4C;UAA5C,4CAA4C;AAC9C","file":"vc.main.css","sourcesContent":["#visual-console-container {\n margin: 0px auto;\n position: relative;\n background-repeat: no-repeat;\n background-size: 100% 100%;\n background-position: center;\n}\n\n.visual-console-item {\n position: absolute;\n display: flex;\n flex-direction: initial;\n justify-items: center;\n align-items: center;\n user-select: text;\n}\n","@font-face {\n font-family: Alarm Clock;\n src: url(./alarm-clock.ttf);\n}\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n\n /* To improve legibility */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n"],"sourceRoot":""}
|
{"version":3,"sources":["webpack:///main.css","webpack:///styles.css"],"names":[],"mappings":"AAAA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4BAA4B;EAC5B,wBAAwB;AAC1B;;AAEA;EACE,kBAAkB;EAClB,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,2BAAuB;EAAvB,8BAAuB;MAAvB,2BAAuB;UAAvB,uBAAuB;EACvB,qBAAqB;EACrB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;EACnB,yBAAiB;KAAjB,sBAAiB;MAAjB,qBAAiB;UAAjB,iBAAiB;AACnB;;ACdA;EACE,wBAAwB;EACxB,0BAA2B;AAC7B;;AAEA,kBAAkB;;AAElB;EACE,oBAAa;EAAb,oBAAa;EAAb,aAAa;EACb,4BAAsB;EAAtB,6BAAsB;MAAtB,0BAAsB;UAAtB,sBAAsB;EACtB,wBAAuB;MAAvB,qBAAuB;UAAvB,uBAAuB;EACvB,qBAAqB;EACrB,0BAAqB;MAArB,qBAAqB;EACrB,yBAAmB;MAAnB,sBAAmB;UAAnB,mBAAmB;AACrB;;AAEA;EACE,6DAA6D;EAC7D,eAAe;;EAEf,0BAA0B;EAC1B,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;EAClC,wCAAwC;AAC1C;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA,iBAAiB;;AAEjB;EACE,kBAAkB;AACpB;;AAEA;EACE,qDAA6C;UAA7C,6CAA6C;AAC/C;;AAEA;EACE,sDAA8C;UAA9C,8CAA8C;AAChD;;AAEA;EACE,oDAA4C;UAA5C,4CAA4C;AAC9C","file":"vc.main.css","sourcesContent":["#visual-console-container {\n margin: 0px auto;\n position: relative;\n background-repeat: no-repeat;\n background-size: contain;\n}\n\n.visual-console-item {\n position: absolute;\n display: flex;\n flex-direction: initial;\n justify-items: center;\n align-items: center;\n user-select: text;\n}\n","@font-face {\n font-family: Alarm Clock;\n src: url(./alarm-clock.ttf);\n}\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n\n /* To improve legibility */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock {\n text-align: center;\n}\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n"],"sourceRoot":""}
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -129,7 +129,7 @@
|
|||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0NG.734';
|
$version = '7.0NG.734';
|
||||||
$build = '190513';
|
$build = '190514';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
# 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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
# 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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
%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
|
||||||
|
@ -378,6 +378,7 @@ CREATE TABLE IF NOT EXISTS `talert_commands` (
|
|||||||
`internal` tinyint(1) default 0,
|
`internal` tinyint(1) default 0,
|
||||||
`fields_descriptions` TEXT,
|
`fields_descriptions` TEXT,
|
||||||
`fields_values` TEXT,
|
`fields_values` TEXT,
|
||||||
|
`fields_hidden` TEXT,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
@ -448,7 +449,7 @@ CREATE TABLE IF NOT EXISTS `talert_templates` (
|
|||||||
`field13` text NOT NULL,
|
`field13` text NOT NULL,
|
||||||
`field14` text NOT NULL,
|
`field14` text NOT NULL,
|
||||||
`field15` text NOT NULL,
|
`field15` text NOT NULL,
|
||||||
`type` ENUM ('regex', 'max_min', 'max', 'min', 'equal', 'not_equal', 'warning', 'critical', 'onchange', 'unknown', 'always'),
|
`type` ENUM ('regex', 'max_min', 'max', 'min', 'equal', 'not_equal', 'warning', 'critical', 'onchange', 'unknown', 'always', 'not_normal'),
|
||||||
`value` varchar(255) default '',
|
`value` varchar(255) default '',
|
||||||
`matches_value` tinyint(1) default 0,
|
`matches_value` tinyint(1) default 0,
|
||||||
`max_value` double(18,2) default NULL,
|
`max_value` double(18,2) default NULL,
|
||||||
|
@ -114,10 +114,10 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
|||||||
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
||||||
('custom_report_front_header', ''),
|
('custom_report_front_header', ''),
|
||||||
('custom_report_front_footer', ''),
|
('custom_report_front_footer', ''),
|
||||||
('MR', 27),
|
('MR', 28),
|
||||||
('identification_reminder', 1),
|
('identification_reminder', 1),
|
||||||
('identification_reminder_timestamp', 0),
|
('identification_reminder_timestamp', 0),
|
||||||
('current_package_enterprise', '734'),
|
('current_package_enterprise', '735'),
|
||||||
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}'),
|
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}'),
|
||||||
('custom_docs_logo', 'default_docs.png'),
|
('custom_docs_logo', 'default_docs.png'),
|
||||||
('custom_support_logo', 'default_support.png'),
|
('custom_support_logo', 'default_support.png'),
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-server
|
package: pandorafms-server
|
||||||
Version: 7.0NG.734-190513
|
Version: 7.0NG.734-190514
|
||||||
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.734-190513"
|
pandora_version="7.0NG.734-190514"
|
||||||
|
|
||||||
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.734";
|
my $pandora_version = "7.0NG.734";
|
||||||
my $pandora_build = "190513";
|
my $pandora_build = "190514";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
# Setup hash
|
# Setup hash
|
||||||
|
@ -391,7 +391,11 @@ sub pandora_generate_alerts ($$$$$$$$;$$$) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Get enabled alerts associated with this module
|
# Get enabled alerts associated with this module
|
||||||
my $alert_type_filter = defined ($alert_type) ? " AND type = '$alert_type'" : '';
|
my $alert_type_filter = '';
|
||||||
|
if (defined($alert_type)) {
|
||||||
|
# not_normal includes unknown!
|
||||||
|
$alert_type_filter = $alert_type eq 'unknown' ? " AND (type = 'unknown' OR type = 'not_normal')" : " AND type = '$alert_type'";
|
||||||
|
}
|
||||||
my @alerts = get_db_rows ($dbh, '
|
my @alerts = get_db_rows ($dbh, '
|
||||||
SELECT talert_template_modules.id as id_template_module,
|
SELECT talert_template_modules.id as id_template_module,
|
||||||
talert_template_modules.*, talert_templates.*
|
talert_template_modules.*, talert_templates.*
|
||||||
@ -566,6 +570,7 @@ sub pandora_evaluate_alert ($$$$$$$;$$$) {
|
|||||||
return $status if ($last_status != 1 && $alert->{'type'} eq 'critical');
|
return $status if ($last_status != 1 && $alert->{'type'} eq 'critical');
|
||||||
return $status if ($last_status != 2 && $alert->{'type'} eq 'warning');
|
return $status if ($last_status != 2 && $alert->{'type'} eq 'warning');
|
||||||
return $status if ($last_status != 3 && $alert->{'type'} eq 'unknown');
|
return $status if ($last_status != 3 && $alert->{'type'} eq 'unknown');
|
||||||
|
return $status if ($last_status == 0 && $alert->{'type'} eq 'not_normal');
|
||||||
}
|
}
|
||||||
# Event alert
|
# Event alert
|
||||||
else {
|
else {
|
||||||
|
@ -32,7 +32,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.734";
|
my $pandora_version = "7.0NG.734";
|
||||||
my $pandora_build = "190513";
|
my $pandora_build = "190514";
|
||||||
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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
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.734
|
%define version 7.0NG.734
|
||||||
%define release 190513
|
%define release 190514
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.734"
|
PI_VERSION="7.0NG.734"
|
||||||
PI_BUILD="190513"
|
PI_BUILD="190514"
|
||||||
|
|
||||||
MODE=$1
|
MODE=$1
|
||||||
if [ $# -gt 1 ]; then
|
if [ $# -gt 1 ]; then
|
||||||
|
@ -34,7 +34,7 @@ use PandoraFMS::Config;
|
|||||||
use PandoraFMS::DB;
|
use PandoraFMS::DB;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.734 PS190513";
|
my $version = "7.0NG.734 PS190514";
|
||||||
|
|
||||||
# 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.734 PS190513";
|
my $version = "7.0NG.734 PS190514";
|
||||||
|
|
||||||
# save program name for logging
|
# save program name for logging
|
||||||
my $progname = basename($0);
|
my $progname = basename($0);
|
||||||
|
@ -218,6 +218,12 @@ export default class Clock extends Item<ClockProps> {
|
|||||||
|
|
||||||
const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation
|
const { width, height } = this.getElementSize(); // Destructuring assigment: http://es6-features.org/#ObjectMatchingShorthandNotation
|
||||||
|
|
||||||
|
// Calculate font size to adapt the font to the item size.
|
||||||
|
const baseTimeFontSize = 20; // Per 100px of width.
|
||||||
|
const dateFontSizeMultiplier = 0.5;
|
||||||
|
const dateFontSize =
|
||||||
|
(baseTimeFontSize * dateFontSizeMultiplier * width) / 100;
|
||||||
|
|
||||||
const div = document.createElement("div");
|
const div = document.createElement("div");
|
||||||
div.className = "analogic-clock";
|
div.className = "analogic-clock";
|
||||||
div.style.width = `${width}px`;
|
div.style.width = `${width}px`;
|
||||||
@ -468,6 +474,16 @@ export default class Clock extends Item<ClockProps> {
|
|||||||
// Add the clock to the container
|
// Add the clock to the container
|
||||||
div.append(svg);
|
div.append(svg);
|
||||||
|
|
||||||
|
// Date.
|
||||||
|
if (this.props.clockFormat === "datetime") {
|
||||||
|
const dateElem: HTMLSpanElement = document.createElement("span");
|
||||||
|
dateElem.className = "date";
|
||||||
|
dateElem.textContent = humanDate(date, "default");
|
||||||
|
dateElem.style.fontSize = `${dateFontSize}px`;
|
||||||
|
if (this.props.color) dateElem.style.color = this.props.color;
|
||||||
|
div.append(dateElem);
|
||||||
|
}
|
||||||
|
|
||||||
return div;
|
return div;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,6 +35,10 @@
|
|||||||
|
|
||||||
/* Analog clock */
|
/* Analog clock */
|
||||||
|
|
||||||
|
.visual-console-item .analogic-clock {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
.visual-console-item .analogic-clock .hour-hand {
|
.visual-console-item .analogic-clock .hour-hand {
|
||||||
animation: rotate-hour 43200s infinite linear;
|
animation: rotate-hour 43200s infinite linear;
|
||||||
}
|
}
|
||||||
|
@ -115,6 +115,15 @@ export default class Percentile extends Item<PercentileProps> {
|
|||||||
// SVG container.
|
// SVG container.
|
||||||
const svg = document.createElementNS(svgNS, "svg");
|
const svg = document.createElementNS(svgNS, "svg");
|
||||||
|
|
||||||
|
var formatValue;
|
||||||
|
if (this.props.value != null) {
|
||||||
|
if (Intl) {
|
||||||
|
formatValue = Intl.NumberFormat("en-EN").format(this.props.value);
|
||||||
|
} else {
|
||||||
|
formatValue = this.props.value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch (this.props.percentileType) {
|
switch (this.props.percentileType) {
|
||||||
case "progress-bar":
|
case "progress-bar":
|
||||||
{
|
{
|
||||||
@ -142,9 +151,11 @@ export default class Percentile extends Item<PercentileProps> {
|
|||||||
text.setAttribute("fill", colors.text);
|
text.setAttribute("fill", colors.text);
|
||||||
|
|
||||||
if (this.props.valueType === "value") {
|
if (this.props.valueType === "value") {
|
||||||
|
text.style.fontSize = "6pt";
|
||||||
|
|
||||||
text.textContent = this.props.unit
|
text.textContent = this.props.unit
|
||||||
? `${this.props.value} ${this.props.unit}`
|
? `${formatValue} ${this.props.unit}`
|
||||||
: `${this.props.value}`;
|
: `${formatValue}`;
|
||||||
} else {
|
} else {
|
||||||
text.textContent = `${progress}%`;
|
text.textContent = `${progress}%`;
|
||||||
}
|
}
|
||||||
@ -215,21 +226,24 @@ export default class Percentile extends Item<PercentileProps> {
|
|||||||
text.setAttribute("font-weight", "bold");
|
text.setAttribute("font-weight", "bold");
|
||||||
text.setAttribute("fill", colors.text);
|
text.setAttribute("fill", colors.text);
|
||||||
|
|
||||||
if (this.props.valueType === "value") {
|
if (this.props.valueType === "value" && this.props.value != null) {
|
||||||
// Show value and unit in 1 (no unit) or 2 lines.
|
// Show value and unit in 1 (no unit) or 2 lines.
|
||||||
if (this.props.unit && this.props.unit.length > 0) {
|
if (this.props.unit && this.props.unit.length > 0) {
|
||||||
const value = document.createElementNS(svgNS, "tspan");
|
const value = document.createElementNS(svgNS, "tspan");
|
||||||
value.setAttribute("x", "0");
|
value.setAttribute("x", "0");
|
||||||
value.setAttribute("dy", "1em");
|
value.setAttribute("dy", "1em");
|
||||||
value.textContent = `${this.props.value}`;
|
value.textContent = `${formatValue}`;
|
||||||
|
value.style.fontSize = "8pt";
|
||||||
const unit = document.createElementNS(svgNS, "tspan");
|
const unit = document.createElementNS(svgNS, "tspan");
|
||||||
unit.setAttribute("x", "0");
|
unit.setAttribute("x", "0");
|
||||||
unit.setAttribute("dy", "1em");
|
unit.setAttribute("dy", "1em");
|
||||||
unit.textContent = `${this.props.unit}`;
|
unit.textContent = `${this.props.unit}`;
|
||||||
|
unit.style.fontSize = "8pt";
|
||||||
text.append(value, unit);
|
text.append(value, unit);
|
||||||
text.setAttribute("transform", "translate(50 33)");
|
text.setAttribute("transform", "translate(50 33)");
|
||||||
} else {
|
} else {
|
||||||
text.textContent = `${this.props.value}`;
|
text.textContent = `${formatValue}`;
|
||||||
|
text.style.fontSize = "8pt";
|
||||||
text.setAttribute("transform", "translate(50 50)");
|
text.setAttribute("transform", "translate(50 50)");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user