diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog index aa771f4f53..cef06e7582 100644 --- a/pandora_console/ChangeLog +++ b/pandora_console/ChangeLog @@ -1,3 +1,10 @@ +2011-05-13 Juan Manuel Ramon + + * include/functions_servers.php + include/functions_agents.php + operation/agentes/estado_agente.php: Fixed bad queries for console over + Oracle DBMS. + 2011-05-12 Miguel de Dios * godmode/users/configure_user.php: fixed the old call to function diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php index 48d9fe3a94..578e331d4f 100644 --- a/pandora_console/include/functions_agents.php +++ b/pandora_console/include/functions_agents.php @@ -1377,10 +1377,10 @@ function agents_get_status($id_agent = 0) { 'ceil(date_part(\'epoch\', ultimo_contacto)) + intervalo * 2 > '.$time)); break; case "oracle": - $status = db_get_value_filter ('COUNT(*)', + $status = db_get_value_filter ('count(*)', 'tagente', array ('id_agente' => (int) $id_agent, - 'ceil((to_date(ultimo_contacto, \'DD/MM/YYYY HH24:MI:SS\') - to_date(\'19700101000000\',\'YYYYMMDDHH24MISS\')) * (86400)) > ' . $time)); + 'ceil((to_date(ultimo_contacto, \'YYYY-MM-DD HH24:MI:SS\') - to_date(\'19700101000000\',\'YYYYMMDDHH24MISS\')) * (86400)) > ' . $time)); break; } diff --git a/pandora_console/include/functions_servers.php b/pandora_console/include/functions_servers.php index 6b37955ed0..8110439a6f 100644 --- a/pandora_console/include/functions_servers.php +++ b/pandora_console/include/functions_servers.php @@ -352,7 +352,7 @@ function servers_get_info ($id_server = -1) { case "oracle": $server["lag"] = db_get_sql ("SELECT ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (86400)) - utimestamp from trecon_task WHERE ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (86400)) > (utimestamp + interval_sweep) AND id_recon_server = ".$server["id_server"]); - $server["module_lag"] = db_get_sql ("SELECT COUNT(id_rt) FROM trecon_task WHERE ceil(date_part('epoch', CURRENT_TIMESTAMP)) > (utimestamp + interval_sweep) AND id_recon_server = ".$server["id_server"]); + $server["module_lag"] = db_get_sql ("SELECT COUNT(id_rt) FROM trecon_task WHERE ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (86400)) > (utimestamp + interval_sweep) AND id_recon_server = ".$server["id_server"]); break; } } // recon diff --git a/pandora_console/operation/agentes/estado_agente.php b/pandora_console/operation/agentes/estado_agente.php index 8f405740b9..c9c543b71c 100644 --- a/pandora_console/operation/agentes/estado_agente.php +++ b/pandora_console/operation/agentes/estado_agente.php @@ -271,12 +271,35 @@ if (! empty ($agent_names)) { $sql = sprintf ('SELECT COUNT(*) FROM tagente WHERE 1=1 %s %s', $search_sql, $subquery_enterprise); $total_agents = db_get_sql ($sql); - $sql = sprintf ('SELECT * FROM tagente - WHERE 1=1 %s %s - ORDER BY %s %s LIMIT %d, %d', $search_sql, $subquery_enterprise, - $order['field'], $order['order'], $offset, $config["block_size"]); + switch ($config["dbtype"]) { + case "mysql": + case "postgresql": + $sql = sprintf ('SELECT * FROM tagente + WHERE 1=1 %s %s + ORDER BY %s %s LIMIT %d, %d', $search_sql, $subquery_enterprise, + $order['field'], $order['order'], $offset, $config["block_size"]); + break; + case "oracle": + $set = array (); + $set['limit'] = $config["block_size"]; + $set['offset'] = $offset; + $sql = sprintf ('SELECT * FROM tagente + WHERE 1=1 %s %s + ORDER BY %s %s', $search_sql, $subquery_enterprise, + $order['field'], $order['order']); + $sql = oracle_recode_query ($sql, $set); + break; + } + + $agents = db_get_all_rows_sql ($sql); + // Delete rnum row generated by oracle_recode_query() function + if (($config['dbtype'] == 'oracle') && ($agents !== false)) { + for ($i=0; $i < count($agents); $i++) { + unset($agents[$i]['rnum']); + } + } } else{ $total_agents = agents_get_agents(array ('id_agente' => array_keys ($agent_names),