2013-08-20 Miguel de Dios <miguel.dedios@artica.es>

* include/functions_api.php: added calls to set gis data for agent
	"set/gis_agent_only_position" and "set/gis_agent", and for to get
	gis data "get/gis_agent".
	
	* include/functions_agents.php: added function "agents_update_gis".




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@8680 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
mdtrooper 2013-08-20 13:13:52 +00:00
parent 7e461eb008
commit 00c554f0b4
3 changed files with 232 additions and 7 deletions

View File

@ -1,3 +1,11 @@
2013-08-20 Miguel de Dios <miguel.dedios@artica.es>
* include/functions_api.php: added calls to set gis data for agent
"set/gis_agent_only_position" and "set/gis_agent", and for to get
gis data "get/gis_agent".
* include/functions_agents.php: added function "agents_update_gis".
2013-08-19 Hirofumi Kosaka <kosaka@rworks.jp> 2013-08-19 Hirofumi Kosaka <kosaka@rworks.jp>
* include/functions_api.php: Small Fix. Corrected error message. * include/functions_api.php: Small Fix. Corrected error message.

View File

@ -1954,4 +1954,79 @@ function agents_detail_view_status_img ($critical, $warning, $unknown, $total, $
__('All Monitors OK'), true, false, 'images'); __('All Monitors OK'), true, false, 'images');
} }
} }
function agents_update_gis($idAgente, $latitude, $longitude, $altitude,
$ignore_new_gis_data, $manual_placement, $start_timestamp,
$end_timestamp, $number_of_packages, $description_save_history,
$description_update_gis, $description_first_insert) {
$previusAgentGISData = db_get_row_sql("
SELECT *
FROM tgis_data_status
WHERE tagente_id_agente = " . $idAgente);
db_process_sql_update('tagente',
array('update_gis_data' => $updateGisData),
array('id_agente' => $idAgente));
$return = false;
if ($previusAgentGISData !== false) {
$return = db_process_sql_insert('tgis_data_history', array(
"longitude" => $previusAgentGISData['stored_longitude'],
"latitude" => $previusAgentGISData['stored_latitude'],
"altitude" => $previusAgentGISData['stored_altitude'],
"start_timestamp" => $previusAgentGISData['start_timestamp'],
"end_timestamp" => $end_timestamp,
"description" => $description_save_history,
"manual_placement" => $previusAgentGISData['manual_placement'],
"number_of_packages" => $previusAgentGISData['number_of_packages'],
"tagente_id_agente" => $previusAgentGISData['tagente_id_agente']
));
$return = db_process_sql_update('tgis_data_status', array(
"tagente_id_agente" => $idAgente,
"current_longitude" => $longitude,
"current_latitude" => $latitude,
"current_altitude" => $altitude,
"stored_longitude" => $longitude,
"stored_latitude" => $latitude,
"stored_altitude" => $altitude,
"start_timestamp" => $start_timestamp,
"manual_placement" => $manual_placement,
"description" => $description_update_gis,
"number_of_packages" => $number_of_packages),
array("tagente_id_agente" => $idAgente));
}
else {
//The table "tgis_data_status" have not a autonumeric
//then the mysql_insert_id function return 0
$prev_count = db_get_num_rows("SELECT * FROM tgis_data_status");
$return = db_process_sql_insert('tgis_data_status', array(
"tagente_id_agente" => $idAgente,
"current_longitude" => $longitude,
"current_latitude" => $latitude,
"current_altitude" => $altitude,
"stored_longitude" => $longitude,
"stored_latitude" => $latitude,
"stored_altitude" => $altitude,
"start_timestamp" => $start_timestamp,
"manual_placement" => $manual_placement,
"description" => $description_first_insert,
"number_of_packages" => $number_of_packages
));
$count = db_get_num_rows("SELECT * FROM tgis_data_status");
if ($return === 0) {
if ($prev_count < $count) {
$return = true;
}
}
}
return (bool)$return;
}
?> ?>

View File

@ -894,9 +894,9 @@ function api_get_all_agents($thrash1, $thrash2, $other, $thrash3) {
$where = ''; $where = '';
if (isset($other['data'][0])){ if (isset($other['data'][0])) {
// Filter by SO // Filter by SO
if ($other['data'][0] != ""){ if ($other['data'][0] != "") {
$where .= " AND tconfig_os.id_os = " . $other['data'][0]; $where .= " AND tconfig_os.id_os = " . $other['data'][0];
} }
} }
@ -916,7 +916,7 @@ function api_get_all_agents($thrash1, $thrash2, $other, $thrash3) {
// Filter by policy // Filter by policy
if ($other['data'][4] != "") { if ($other['data'][4] != "") {
$filter_by_policy = enterprise_hook('policies_get_filter_by_agent', array($other['data'][4])); $filter_by_policy = enterprise_hook('policies_get_filter_by_agent', array($other['data'][4]));
if ($filter_by_policy !== ENTERPRISE_NOT_HOOK){ if ($filter_by_policy !== ENTERPRISE_NOT_HOOK) {
$where .= $filter_by_policy; $where .= $filter_by_policy;
} }
} }
@ -930,18 +930,23 @@ function api_get_all_agents($thrash1, $thrash2, $other, $thrash3) {
// Initialization of array // Initialization of array
$result_agents = array(); $result_agents = array();
// Filter by state // Filter by state
$sql = "SELECT id_agente, nombre, direccion, comentarios, tconfig_os.name, url_address FROM tagente, tconfig_os WHERE tagente.id_os = tconfig_os.id_os AND disabled = 0 " . $where; $sql = "SELECT id_agente, nombre, direccion, comentarios,
tconfig_os.name, url_address
FROM tagente, tconfig_os
WHERE tagente.id_os = tconfig_os.id_os
AND disabled = 0 " . $where;
$all_agents = db_get_all_rows_sql($sql); $all_agents = db_get_all_rows_sql($sql);
// Filter by status: unknown, warning, critical, without modules // Filter by status: unknown, warning, critical, without modules
if (isset($other['data'][2])){ if (isset($other['data'][2])) {
if ($other['data'][2] != "") { if ($other['data'][2] != "") {
foreach($all_agents as $agent){ foreach($all_agents as $agent) {
$filter_modules['id_agente'] = $agent['id_agente']; $filter_modules['id_agente'] = $agent['id_agente'];
$filter_modules['disabled'] = 0; $filter_modules['disabled'] = 0;
$filter_modules['delete_pending'] = 0; $filter_modules['delete_pending'] = 0;
$modules = db_get_all_rows_filter('tagente_modulo', $filter_modules, 'id_agente_modulo'); $modules = db_get_all_rows_filter('tagente_modulo',
$filter_modules, 'id_agente_modulo');
$result_modules = array(); $result_modules = array();
// Skip non init modules // Skip non init modules
foreach ($modules as $module) { foreach ($modules as $module) {
@ -4911,6 +4916,143 @@ function api_set_validate_events($id_event, $trash1, $other, $return_type, $user
} }
} }
function api_get_gis_agent($id_agent, $trash1, $tresh2, $return_type, $user_in_db) {
$agent_gis_data = db_get_row_sql("
SELECT *
FROM tgis_data_status
WHERE tagente_id_agente = " . $id_agent);
if ($agent_gis_data) {
returnData($return_type,
array('type' => 'array', 'data' => $agent_gis_data));
}
else {
returnError('Error.');
}
}
function api_set_gis_agent_only_position($id_agent, $trash1, $other, $return_type, $user_in_db) {
global $config;
$new_gis_data = $other['data'];
$correct = true;
if (isset($new_gis_data[0])) {
$latitude = $new_gis_data[0];
}
else $correct = false;
if (isset($new_gis_data[1])) {
$longitude = $new_gis_data[1];
}
else $correct = false;
if (isset($new_gis_data[2])) {
$altitude = $new_gis_data[2];
}
else $correct = false;
if (!$config['activate_gis']) {
$correct = false;
}
else {
if ($correct) {
$correct = agents_update_gis($id_agent, $latitude,
$longitude, $altitude, 0, 1, date( 'Y-m-d H:i:s'), null,
1, __('Save by Pandora Console'),
__('Update by Pandora Console'),
__('Insert by Pandora Console'));
}
}
$data = array('type' => 'string', 'data' => (int)$correct);
$returnType = 'string';
returnData($returnType, $data);
}
function api_set_gis_agent($id_agent, $trash1, $other, $return_type, $user_in_db) {
global $config;
$new_gis_data = $other['data'];
$correct = true;
if (isset($new_gis_data[0])) {
$latitude = $new_gis_data[0];
}
else $correct = false;
if (isset($new_gis_data[1])) {
$longitude = $new_gis_data[1];
}
else $correct = false;
if (isset($new_gis_data[2])) {
$altitude = $new_gis_data[2];
}
else $correct = false;
if (isset($new_gis_data[3])) {
$ignore_new_gis_data = $new_gis_data[3];
}
else $correct = false;
if (isset($new_gis_data[4])) {
$manual_placement = $new_gis_data[4];
}
else $correct = false;
if (isset($new_gis_data[5])) {
$start_timestamp = $new_gis_data[5];
}
else $correct = false;
if (isset($new_gis_data[6])) {
$end_timestamp = $new_gis_data[6];
}
else $correct = false;
if (isset($new_gis_data[7])) {
$number_of_packages = $new_gis_data[7];
}
else $correct = false;
if (isset($new_gis_data[8])) {
$description_save_history = $new_gis_data[8];
}
else $correct = false;
if (isset($new_gis_data[9])) {
$description_update_gis = $new_gis_data[9];
}
else $correct = false;
if (isset($new_gis_data[10])) {
$description_first_insert = $new_gis_data[10];
}
else $correct = false;
if (!$config['activate_gis']) {
$correct = false;
}
else {
if ($correct) {
$correct = agents_update_gis($id_agent, $latitude,
$longitude, $altitude, $ignore_new_gis_data,
$manual_placement, $start_timestamp, $end_timestamp,
$number_of_packages, $description_save_history,
$description_update_gis, $description_first_insert);
}
}
$data = array('type' => 'string', 'data' => (int)$correct);
$returnType = 'string';
returnData($returnType, $data);
}
function get_events_with_user($trash1, $trash2, $other, $returnType, $user_in_db) { function get_events_with_user($trash1, $trash2, $other, $returnType, $user_in_db) {
global $config; global $config;