2009-01-20 Esteban Sanchez <estebans@artica.es>

* ChangeLog: Fixed tabs. Removed some conflict markups and a bit of
	style here and there.

	* index.php, godmode/setup/setup.php, include/styles/menu.css,
	operation/agentes/estado_agente.php,
	operation/agentes/estado_monitores.php,
	operation/agentes/estado_ultimopaquete.php,
	include/functions.php: Tab and spaces style correction.

	* godmode/reporting/map_builder.php: Use generic database functions
	for the insert. Now a node can represent a whole agent, changing to
	bad if any module has failed.

	* include/config_process.php: Use generic databse functions for
	inserts. Fixed an error when inserting loginhash_pwd token. Make the
	token a bit more complicated by multiplying two numbers.

	* include/functions_visual_map.php: Add support to agent nodes that
	will turn to bad icon when any module fails.



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@1363 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
Esteban Sanchez 2009-01-20 16:43:49 +00:00
parent 41a7a38ca2
commit afe99a4587
11 changed files with 156 additions and 116 deletions

View File

@ -1,3 +1,25 @@
2009-01-20 Esteban Sanchez <estebans@artica.es>
* ChangeLog: Fixed tabs. Removed some conflict markups and a bit of
style here and there.
* index.php, godmode/setup/setup.php, include/styles/menu.css,
operation/agentes/estado_agente.php,
operation/agentes/estado_monitores.php,
operation/agentes/estado_ultimopaquete.php,
include/functions.php: Tab and spaces style correction.
* godmode/reporting/map_builder.php: Use generic database functions
for the insert. Now a node can represent a whole agent, changing to
bad if any module has failed.
* include/config_process.php: Use generic databse functions for
inserts. Fixed an error when inserting loginhash_pwd token. Make the
token a bit more complicated by multiplying two numbers.
* include/functions_visual_map.php: Add support to agent nodes that
will turn to bad icon when any module fails.
2009-01-20 Esteban Sanchez <estebans@artica.es>
* include/javascript/jquery.js: Downgraded to 1.2. It was causing some

View File

@ -147,18 +147,19 @@ if ($create_layout_data) {
$layout_data_width = (int) get_parameter ("width");
$layout_data_height = (int) get_parameter ("height");
$sql = sprintf ('INSERT INTO tlayout_data (id_layout, label, id_layout_linked,
label_color, image, type, id_agente_modulo, parent_item, period, no_link_color,
width, height)
VALUES (%d, "%s", %d, "%s", "%s", %d, %d, %d, %d, 1, %d, %d)',
$id_layout, $layout_data_label,
$layout_data_map_linked,
$layout_data_label_color,
$layout_data_image, $layout_data_type,
$layout_data_id_agent_module,
$layout_data_parent_item, $layout_data_period * 3600,
$layout_data_width, $layout_data_height);
$result = process_sql ($sql, 'insert_id');
$values = array ('id_layout' => $id_layout,
'label' => $layout_data_label,
'id_layout_linked' => $layout_data_map_linked,
'label_color' => $layout_data_label_color,
'image' => $layout_data_image,
'type' => $layout_data_type,
'id_agente_modulo' => $layout_data_id_agent_module,
'parent_item' => $layout_data_parent_item,
'period' => $layout_data_period * 3600,
'no_link_color' => 1,
'width' => $layout_data_width,
'height' => $layout_data_height);
$result = process_sql_insert ('tlayout_data', $values);
if ($result !== false) {
echo '<h3 class="suc">'.__('Created successfully').'</h3>';
@ -446,7 +447,7 @@ function agent_changed (event, id_agent, selected) {
},
function (data) {
$('#form_layout_data_editor #module').empty ();
$('#form_layout_data_editor #module').append ($('<option></option>').html ("--").attr ("value", 0));
$('#form_layout_data_editor #module').append ($('<option></option>').html ("<?php echo __('Any')?>").attr ("value", 0));
jQuery.each (data, function (i, val) {
s = html_entity_decode (val['nombre']);
$('#form_layout_data_editor #module').append ($('<option></option>').html (s).attr ("value", val['id_agente_modulo']));

View File

@ -75,7 +75,7 @@ if ($update_settings) {
process_sql ("UPDATE tconfig SET VALUE='".$config["prominent_time"]."' WHERE token = 'prominent_time'");
process_sql ("UPDATE tconfig SET VALUE='".$config["timesource"]."' WHERE token = 'timesource'");
process_sql ("UPDATE tconfig SET VALUE='".$config["event_view_hr"]."' WHERE token = 'event_view_hr'");
process_sql ("UPDATE tconfig SET VALUE='".$config["loginhash_pwd"]."' WHERE token = 'loginhash_pwd'");
process_sql ("UPDATE tconfig SET VALUE='".$config["loginhash_pwd"]."' WHERE token = 'loginhash_pwd'");
}
echo "<h2>".__('Setup')." &gt; ";

View File

@ -17,20 +17,20 @@
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
//Pandora Version
$build_version = "PC090115";
$pandora_version = "v2.1-dev";
$build_version = 'PC090120';
$pandora_version = 'v2.1-dev';
// This is directory where placed "/attachment" directory, to upload files stores.
// This MUST be writtable by http server user, and should be in pandora root.
// By default, Pandora adds /attachment to this, so by default is the pandora console home dir
$config["attachment_store"] = $config["homedir"]."/attachment";
$config['attachment_store'] = $config['homedir'].'/attachment';
// Default font used for graphics (a Free TrueType font included with Pandora FMS)
$config["fontpath"] = $config["homedir"]."/reporting/FreeSans.ttf";
$config['fontpath'] = $config['homedir'].'/reporting/FreeSans.ttf';
// Style (pandora by default)
$config["style"] = "pandora";
$config['style'] = 'pandora';
// Read remaining config tokens from DB
if (! mysql_connect ($config["dbhost"], $config["dbuser"], $config["dbpass"])) {
@ -58,7 +58,7 @@ mysql_select_db ($config["dbname"]);
require_once ('functions_db.php');
$configs = get_db_all_rows_in_table ('tconfig');
if (sizeof ($configs) == 0) {
if (empty ($configs)) {
exit ('<html><head><title>Pandora FMS Error</title>
<link rel="stylesheet" href="./include/styles/pandora.css" type="text/css">
</head><body><div align="center">
@ -76,18 +76,19 @@ if (sizeof ($configs) == 0) {
</div></body></html>');
}
/* Compatibility fix */
foreach ($configs as $c) {
switch ($c["token"]) {
case "language_code":
$config["language"] = $c["value"];
$config['language'] = $c['value'];
break;
default:
$config[$c["token"]] = $c["value"];
$config[$c['token']] = $c['value'];
}
}
if ($config["language"] == 'ast_es') {
if ($config['language'] == 'ast_es') {
$help_code = 'ast';
} else {
$help_code = substr ($config["language"], 0, 2);
@ -112,47 +113,54 @@ if (file_exists ('./include/languages/'.$config["language"].'.mo')) {
$l10n->load_tables();
}
if (!isset ($config['date_format'])) {
$config['date_format'] = 'F j, Y, g:i a';
process_sql ("INSERT INTO tconfig (token,value) VALUES ('date_format', '".$config['date_format']."')");
}
if (!isset($config["event_view_hr"])){
$config["event_view_hr"] = 8;
process_sql ("INSERT INTO tconfig (token,value) VALUES ('event_view_hr', ".$config["event_view_hr"].")");
}
if (!isset($config["loginhash_pwd"])){
$config["loginhash_pwd"] = rand(0,1000)."pandorahash";
process_sql ("INSERT INTO tconfig (token,value) VALUES ('loginhash_pwd', ".$config["loginhash_pwd"].")");
}
if (isset ($config['homeurl']) && $config['homeurl'][0] != '/') {
$config['homeurl'] = '/'.$config['homeurl'];
}
if (!isset ($config['date_format'])) {
$config['date_format'] = 'F j, Y, g:i a';
process_sql_insert ('tconfig', array ('token' => 'date_format',
'value' => $config['date_format']));
}
if (! isset ($config['event_view_hr'])) {
$config['event_view_hr'] = 8;
process_sql_insert ('tconfig', array ('token' => 'event_view_hr',
'value' => $config['event_view_hr']));
}
if (! isset ($config['loginhash_pwd'])) {
$config['loginhash_pwd'] = rand (0, 1000) * rand (0, 1000)."pandorahash";
process_sql_insert ('tconfig', array ('token' => 'loginhash_pwd',
'value' => $config["loginhash_pwd"]));
}
// If first time, make the trap2agent disable in DB
if (!isset($config["trap2agent"])){
$config["trap2agent"] = 0;
process_sql ("INSERT INTO tconfig (token,value) VALUES ('trap2agent', 0)");
process_sql_insert ('tconfig', array ('token' => 'trap2agent',
'value' => $config['trap2agent']));
}
if (!isset ($config["sla_period"]) || empty ($config["sla_period"])) {
// Default period (in secs) for auto SLA calculation (for monitors)
$config["sla_period"] = 604800;
process_sql ("INSERT INTO tconfig (token,value) VALUES ('sla_period',604800)");
process_sql_insert ('tconfig', array ('token' => 'sla_period',
'value' => $config['sla_period']));
}
if (!isset ($config["prominent_time"])) {
// Prominent time tells us what to show prominently when a timestamp is displayed. The comparation (... days ago) or the timestamp (full date)
// Prominent time tells us what to show prominently when a timestamp is
// displayed. The comparation (... days ago) or the timestamp (full date)
$config["prominent_time"] = "comparation";
process_sql ("INSERT INTO tconfig (token,value) VALUES ('prominent_time','comparation')");
process_sql_insert ('tconfig', array ('token' => 'prominent_time',
'value' => $config['prominent_time']));
}
if (!isset ($config["timesource"])) {
// Prominent time tells us what to show prominently when a timestamp is displayed. The comparation (... days ago) or the timestamp (full date)
// Prominent time tells us what to show prominently when a timestamp is
// displayed. The comparation (... days ago) or the timestamp (full date)
$config["timesource"] = "system";
process_sql ("INSERT INTO tconfig (token,value) VALUES ('timesource','system')");
process_sql_insert ('tconfig', array ('token' => 'timesource',
'value' => $config['timesource']));
}
?>

View File

@ -423,12 +423,12 @@ function format_numeric ($number, $decimals = 1) {
* @return string A string with the number and the multiplier
*/
function format_for_graph ($number , $decimals = 1, $dec_point = ".", $thousands_sep = ",") {
$shorts = array("","K","M","G","T","P");
$pos = 0;
while ($number>=1000) { //as long as the number can be divided by 1000
$pos++; //Position in array starting with 0
$number = $number/1000;
}
$shorts = array ("","K","M","G","T","P");
$pos = 0;
while ($number >= 1000) { //as long as the number can be divided by 1000
$pos++; //Position in array starting with 0
$number = $number / 1000;
}
return format_numeric ($number, $decimals). $shorts[$pos]; //This will actually do the rounding and the decimals
}
@ -990,8 +990,8 @@ if (!function_exists ("mb_strtoupper")) {
*/
function unsafe_string ($string) {
if (get_magic_quotes_gpc () == 1)
$string = stripslashes ($string);
if (get_magic_quotes_gpc ())
return stripslashes ($string);
return $string;
}
@ -1003,7 +1003,7 @@ function unsafe_string ($string) {
function safe_sql_string ($string) {
if (get_magic_quotes_gpc () == 0)
$string = mysql_escape_string ($string);
return $string;
return $string;
return mysql_escape_string ($string);
}
?>

View File

@ -34,25 +34,37 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
$lines = array ();
if ($layout_datas !== false) {
foreach ($layout_datas as $layout_data) {
// Linked to other layout ?? - Only if not module defined
if (($layout_data['id_layout_linked'] != 0) && ($layout_data['id_agente_modulo'] == 0)) {
if ($layout_data['id_layout_linked'] != 0) {
$status = return_status_layout ($layout_data['id_layout_linked']);
} else {
$id_agent = get_db_value ("id_agente", "tagente_estado", "id_agente_modulo", $layout_data['id_agente_modulo']);
$id_agent_module_parent = get_db_value ("id_agente_modulo", "tlayout_data", "id", $layout_data["parent_item"]);
// Item value
$status = return_status_agent_module ($layout_data['id_agente_modulo']);
if ($layout_data['no_link_color'] == 1)
$status_parent = -1;
else
$status_parent = return_status_agent_module ($id_agent_module_parent);
if ($layout_data['id_agente_modulo'] != 0) {
$id_agent_module_parent = get_db_value ("id_agente_modulo", "tlayout_data", "id", $layout_data["parent_item"]);
// Item value
$status = return_status_agent_module ($layout_data['id_agente_modulo']);
if ($layout_data['no_link_color'] == 1)
$status_parent = -1;
else
$status_parent = return_status_agent_module ($id_agent_module_parent);
} else {
$interval = get_agent_interval ($id_agent);
$sql = sprintf ('SELECT COUNT(*)
FROM tagente_estado, tagente_modulo
WHERE tagente_estado.id_agente_modulo = tagente_modulo.id_agente_modulo
AND tagente_modulo.disabled = 0
AND tagente_modulo.id_agente = %d
AND (utimestamp >= UNIX_TIMESTAMP() - module_interval * 2
OR (module_interval = 0
AND utimestamp >= UNIX_TIMESTAMP() - %d))',
$id_agent, $interval * 2);
$status = get_db_sql ($sql);
}
}
// STATIC IMAGE (type = 0)
if ($layout_data['type'] == 0) {
// Link image
//index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=1
if ($status == 0) // Bad monitor
@ -61,7 +73,7 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
$z_index = 3;
else
$z_index = 1; // Print BAD over good
// Draw image
echo '<div style="z-index: '.$z_index.'; color: '.$layout_data['label_color'].'; position: absolute; margin-left: '.$layout_data['pos_x'].'px; margin-top:'.$layout_data['pos_y'].'px;" id="layout-data-'.$layout_data['id'].'" class="layout-data">';
if ($show_links) {
@ -76,7 +88,7 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
echo '<img src="images/console/icons/'.$layout_data['image'].'_bad.png" width="'.$layout_data['width'].'" height="'.$layout_data['height'].'" title="'.$layout_data['label'].'">';
else
echo '<img src="images/console/icons/'.$layout_data['image'].'_bad.png"
title="'.$layout_data['label'].'">';
title="'.$layout_data['label'].'">';
} else {
if ($layout_data['width'] != "" && $layout_data['width'] != 0)
echo '<img src="images/console/icons/'.$layout_data['image'].'_ok.png" width="'.$layout_data['width'].'"
@ -86,9 +98,9 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
title="'.$layout_data['label'].'">';
}
echo "</a>";
// Draw label
echo "<br>";
echo "<br />";
echo $layout_data['label'];
echo "</div>";
}
@ -116,7 +128,7 @@ function print_pandora_visual_map ($id_layout, $show_links = true, $draw_lines =
$line['color'] = $layout_data['label_color'];
array_push ($lines, $line);
}
// Get parent relationship - Create line data
if ($layout_data["parent_item"] != "" && $layout_data["parent_item"] != 0) {
$line['id'] = $layout_data['id'];

View File

@ -49,7 +49,7 @@
}
/* a selected ul has a height set in the style tag */
.menu.int ul.selected {
height: inherit;
height: inherit;
}
/* Force the hovered ul to be 28px unless the ul is selected */

View File

@ -46,8 +46,8 @@ if ($develop_bypass != 1) {
}
// Check perms for config.php
if ((substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0600") &&
(substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0660") &&
(substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0640")) {
(substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0660") &&
(substr (sprintf ('%o', fileperms('include/config.php')), -4) != "0640")) {
include "general/error_perms.php";
exit;
}
@ -144,19 +144,19 @@ $sec = safe_url_extraclean ($sec);
// Hash login process
if (! isset ($_SESSION['id_usuario']) && isset ($_GET["loginhash"])) {
$loginhash_data = get_parameter("loginhash_data", "");
$loginhash_user = get_parameter("loginhash_user", "");
if ($loginhash_data == md5($loginhash_user.$config["loginhash_pwd"])) {
$loginhash_data = get_parameter("loginhash_data", "");
$loginhash_user = get_parameter("loginhash_user", "");
if ($loginhash_data == md5($loginhash_user.$config["loginhash_pwd"])) {
update_user_contact ($loginhash_user);
logon_db ($loginhash_user, $REMOTE_ADDR);
$_SESSION['id_usuario'] = $loginhash_user;
$config["id_user"] = $loginhash_user;
} else {
require_once ('general/login_page.php');
audit_db ("system", $REMOTE_ADDR, "Logon Failed (loginhash", "");
exit;
}
} else {
require_once ('general/login_page.php');
audit_db ("system", $REMOTE_ADDR, "Logon Failed (loginhash", "");
exit;
}
}
// Login process

View File

@ -218,13 +218,13 @@ if ($agents !== false) {
$agent_down = 1;
if ($async == 0)
$monitor_down++;
} else{
} else {
if ($module["estado"] == 2)
$monitor_warning ++;
$monitor_warning++;
elseif ($module["estado"]== 1)
$monitor_critical ++;
$monitor_critical++;
else
$monitor_normal ++;
$monitor_normal++;
}
}
// Color change for each line (1.2 beta2)
@ -248,7 +248,7 @@ if ($agents !== false) {
echo $nombre_agente;
echo "</strong></a></td>";
// Show SO icon :)
// Show SO icon
echo "<td class='$tdcolor' align='center'>";
print_os_icon ($id_os, false);
echo "</td>";
@ -285,8 +285,7 @@ if ($agents !== false) {
if ($numero_modulos > 0){
if ($agent_down > 0) {
echo '<img src="images/pixel_fucsia.png" width="40" height="18" title="'.__('Agent down').'" />';
}
elseif ($monitor_critical > 0){
} elseif ($monitor_critical > 0){
echo '<img src="images/pixel_red.png" width="40" height="18" title="'.__('At least one module in CRITICAL status').'" />';
} elseif ($monitor_warning > 0) {
echo '<img src="images/pixel_yellow.png" width="40" height="18" title="'.__('At least one module in WARNING status').'" />';

View File

@ -80,13 +80,11 @@ foreach ($modules as $module) {
$data[4] = '<img src="images/pixel_green.png" width="40" height="18" title="'.__('NORMAL'). ' : ';
}
if (is_numeric($module["datos"])) {
$data[4] .= format_for_graph($module["datos"]). '">';
} else {
$data[4] .= substr(salida_limpia($module["datos"]),0,42) . '">';
}
if (is_numeric($module["datos"])) {
$data[4] .= format_for_graph($module["datos"]). '">';
} else {
$data[4] .= substr(salida_limpia($module["datos"]),0,42) . '">';
}
if ($module["module_interval"] > 0) {
$data[5] = $module["module_interval"];

View File

@ -123,44 +123,44 @@ if (mysql_num_rows ($result3)) {
$real_interval = $intervalo_agente;
}
if (($row3["id_tipo_modulo"] != 3)
if (($row3["id_tipo_modulo"] != 3)
AND ($row3["id_tipo_modulo"] != 10)
AND ($row3["id_tipo_modulo"] != 17)
AND ($row3["id_tipo_modulo"] != 23)){
echo "</td><td class='".$tdcolor."f9' title='".salida_limpia($row3["descripcion"])."'>";
echo salida_limpia(substr($row3["descripcion"],0,32));
echo "</td><td class='".$tdcolor."f9' title='".salida_limpia($row3["descripcion"])."'>";
echo salida_limpia(substr($row3["descripcion"],0,32));
if (strlen($row3["descripcion"]) > 32){
echo "...";
}
echo "</td>";
}
echo "</td>";
}
if (($row3["id_tipo_modulo"] == 100) OR ($row3['history_data'] == 0)) {
echo "<td class='".$tdcolor."f9' colspan='2' title='".$row3["datos"]."'>";
echo "<td class='".$tdcolor."f9' colspan='2' title='".$row3["datos"]."'>";
echo substr(salida_limpia($row3["datos"]),0,12);
} else {
// String uses colspan2 and different graphtype
if (($row3["id_tipo_modulo"] == 3)
} else {
// String uses colspan2 and different graphtype
if (($row3["id_tipo_modulo"] == 3)
OR ($row3["id_tipo_modulo"] == 10)
OR ($row3["id_tipo_modulo"] == 17)
OR ($row3["id_tipo_modulo"] == 23)){
$graph_type = "string";
echo "<td class='".$tdcolor."f9' colspan=2 title='".salida_limpia($row3["datos"])."'>";
}
elseif (($row3["id_tipo_modulo"] == 2)
echo "<td class='".$tdcolor."f9' colspan=2 title='".salida_limpia($row3["datos"])."'>";
}
elseif (($row3["id_tipo_modulo"] == 2)
OR ($row3["id_tipo_modulo"] == 6)
OR ($row3["id_tipo_modulo"] == 21)
OR ($row3["id_tipo_modulo"] == 18)
OR ($row3["id_tipo_modulo"] == 9)) {
$graph_type = "boolean";
echo "<td class=".$tdcolor.">";
}
echo "<td class=".$tdcolor.">";
}
else {
$graph_type = "sparse";
echo "<td class=".$tdcolor.">";
}
}
// Kind of data
if (is_numeric($row3["datos"])) {
// Kind of data
if (is_numeric($row3["datos"])) {
echo format_for_graph($row3["datos"] );
} else
echo substr(salida_limpia($row3["datos"]),0,42);
@ -214,8 +214,8 @@ if (mysql_num_rows ($result3)) {
}
}
echo "</td></tr>";
}
echo '</table>';
}
echo '</table>';
}
else {
echo "<div class='nf'>".__('This agent doesn\'t have any module')."</div>";