mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 08:14:38 +02:00
New networkmaps in progress... (Working in the l2 and l3 fusion system (NO DBZ FUSION))
This commit is contained in:
parent
30d30df548
commit
d2a4e689b5
@ -223,827 +223,6 @@ function networkmap_generate_hash($pandora_name, $group = 0,
|
||||
return $return;
|
||||
}
|
||||
|
||||
function networkmap_get_nodes_and_links($pandora_name, $group = 0,
|
||||
$simple = 0, $font_size = 12, $layout = 'radial', $nooverlap = 0,
|
||||
$zoom = 1, $ranksep = 2.5, $center = 0, $regen = 1, $pure = 0,
|
||||
$id_networkmap = 0, $show_snmp_modules = 0, $cut_names = true,
|
||||
$relative = false, $text_filter = '', $l2_network_or_mixed = false,
|
||||
$ip_mask = null, $dont_show_subgroups = false, $strict_user = false,
|
||||
$size_canvas = null, $old_mode = false, $id_tag = 0,
|
||||
$show_all_modules = false, $only_modules_alerts = false,
|
||||
$filter_module_group = 0, $show_modulegroup = false,
|
||||
$show_groups = false, $show_agents = true, $show_policies = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
$l2_network = true;
|
||||
$l2_network_or_mixed == "mix_l2_l3";
|
||||
/*
|
||||
if ($l2_network_or_mixed === 'mix_l2_l3') {
|
||||
$l2_network = true;
|
||||
}
|
||||
else {
|
||||
$l2_network = $l2_network_or_mixed;
|
||||
}
|
||||
*/
|
||||
|
||||
if ($l2_network) {
|
||||
$nooverlap = 1;
|
||||
}
|
||||
|
||||
$parents = array();
|
||||
$orphans = array();
|
||||
|
||||
$filter = array ();
|
||||
$filter['disabled'] = 0;
|
||||
|
||||
if (!empty($text_filter)) {
|
||||
switch ($config['dbtype']) {
|
||||
case "mysql":
|
||||
case "postgresql":
|
||||
$filter[] =
|
||||
'(nombre COLLATE utf8_general_ci LIKE "%' . $text_filter . '%")';
|
||||
break;
|
||||
case "oracle":
|
||||
$filter[] =
|
||||
'(upper(nombre) LIKE upper(\'%' . $text_filter . '%\'))';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($group >= 1) {
|
||||
if ($dont_show_subgroups)
|
||||
$filter['id_grupo'] = $group;
|
||||
else {
|
||||
$childrens = groups_get_childrens($group, null, true);
|
||||
if (!empty($childrens)) {
|
||||
$childrens = array_keys($childrens);
|
||||
|
||||
$filter['id_grupo'] = $childrens;
|
||||
$filter['id_grupo'][] = $group;
|
||||
}
|
||||
else {
|
||||
$filter['id_grupo'] = $group;
|
||||
}
|
||||
}
|
||||
|
||||
//Order by id_parent ascendant for to avoid the bugs
|
||||
//because the first agents to process in the next
|
||||
//foreach loop are without parent (id_parent = 0)
|
||||
|
||||
// Get agents data
|
||||
if ($strict_user) {
|
||||
if ($dont_show_subgroups)
|
||||
$filter['id_group'] = $group;
|
||||
else {
|
||||
if (!empty($childrens)) {
|
||||
foreach ($childrens as $children) {
|
||||
$filter_id_groups[$children] = $children;
|
||||
}
|
||||
}
|
||||
$filter_id_groups[$group] = $group;
|
||||
$filter['id_group'] = implode(',', $filter_id_groups);
|
||||
}
|
||||
|
||||
$filter['group_by'] = 'tagente.id_agente';
|
||||
$fields = array ('tagente.id_grupo, tagente.nombre, tagente.id_os, tagente.id_parent, tagente.id_agente,
|
||||
tagente.normal_count, tagente.warning_count, tagente.critical_count,
|
||||
tagente.unknown_count, tagente.total_count, tagente.notinit_count');
|
||||
$acltags = tags_get_user_module_and_tags ($config['id_user'],'AR', $strict_user);
|
||||
$agents = tags_get_all_user_agents (false, $config['id_user'], $acltags, $filter, $fields, false, $strict_user, true);
|
||||
}
|
||||
else {
|
||||
$agents = agents_get_agents ($filter,
|
||||
array ('id_grupo, nombre, id_os, id_parent, id_agente,
|
||||
normal_count, warning_count, critical_count,
|
||||
unknown_count, total_count, notinit_count'), 'AR',
|
||||
array('field' => 'id_parent', 'order' => 'ASC'));
|
||||
}
|
||||
|
||||
}
|
||||
else if ($group == -666) {
|
||||
$agents = false;
|
||||
}
|
||||
else if (!empty($ip_mask)) {
|
||||
$agents = networkmap_get_new_nodes_from_ip_mask($ip_mask,
|
||||
array ('id_grupo, nombre, id_os, id_parent, id_agente,
|
||||
normal_count, warning_count, critical_count,
|
||||
unknown_count, total_count, notinit_count'), $strict_user);
|
||||
|
||||
if (!empty($text_filter)) {
|
||||
foreach ($agents as $index => $agent) {
|
||||
if (strstr($agent['nombre'], $text_filter) === false) {
|
||||
unset($agents[$index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
//Order by id_parent ascendant for to avoid the bugs
|
||||
//because the first agents to process in the next
|
||||
//foreach loop are without parent (id_parent = 0)
|
||||
|
||||
if ($strict_user) {
|
||||
$filter['group_by'] = 'tagente.id_agente';
|
||||
$fields = array ('tagente.id_grupo, tagente.nombre, tagente.id_os, tagente.id_parent, tagente.id_agente,
|
||||
tagente.normal_count, tagente.warning_count, tagente.critical_count,
|
||||
tagente.unknown_count, tagente.total_count, tagente.notinit_count');
|
||||
$acltags = tags_get_user_module_and_tags ($config['id_user'],'AR', $strict_user);
|
||||
$agents = tags_get_all_user_agents (false, $config['id_user'], $acltags, $filter, $fields, false, $strict_user, true);
|
||||
}
|
||||
else {
|
||||
$agents = agents_get_agents ($filter,
|
||||
array ('id_grupo, nombre, id_os, id_parent, id_agente,
|
||||
normal_count, warning_count, critical_count,
|
||||
unknown_count, total_count, notinit_count'), 'AR',
|
||||
array('field' => 'id_parent', 'order' => 'ASC'));
|
||||
}
|
||||
}
|
||||
|
||||
if ($agents === false)
|
||||
//return false;
|
||||
$agents = array();
|
||||
|
||||
// Filter by tags
|
||||
if (!empty($id_tag)) {
|
||||
foreach ($agents as $index => $agent) {
|
||||
if (!tags_agent_has_tag($agent['id_agente'], $id_tag)) {
|
||||
unset($agents[$index]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get policy data
|
||||
if ($show_policies) {
|
||||
if (enterprise_installed()) {
|
||||
enterprise_include_once("include/functions_pandora_networkmap.php");
|
||||
|
||||
$policies = networkmap_get_policies(array($group));
|
||||
|
||||
$agents = networkmap_filter_agents_policies(array($policies, $agents));
|
||||
}
|
||||
}
|
||||
|
||||
// Get groups data
|
||||
if ($show_groups) {
|
||||
if ($group > 0) {
|
||||
$groups = array();
|
||||
$id_groups = groups_get_id_recursive($group, true);
|
||||
|
||||
foreach($id_groups as $id_group) {
|
||||
$add = false;
|
||||
if (check_acl($config["id_user"], $id_group, 'AR')) {
|
||||
$add = true;
|
||||
}
|
||||
|
||||
if ($add) {
|
||||
$groups[] = db_get_row ('tgrupo', 'id_grupo', $id_group);
|
||||
}
|
||||
}
|
||||
|
||||
$filter['id_grupo'] = $id_groups;
|
||||
}
|
||||
else {
|
||||
if ($strict_user) {
|
||||
$groups = users_get_groups ($config['id_user'],"AR", false, true);
|
||||
}
|
||||
else {
|
||||
$groups = db_get_all_rows_in_table ('tgrupo');
|
||||
}
|
||||
if ($groups === false) {
|
||||
$groups = array();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$nodes = array ();
|
||||
$node_count = 0;
|
||||
|
||||
// Parse policies
|
||||
if ($show_policies) {
|
||||
$nodes_policies = array();
|
||||
foreach ($policies as $policy) {
|
||||
$node_count ++;
|
||||
$policy['type'] = 'policy';
|
||||
$policy['id_node'] = $node_count;
|
||||
|
||||
$orphans[$node_count] = 1;
|
||||
|
||||
$nodes[$node_count] = $policy;
|
||||
|
||||
// Add node
|
||||
$nodes_policies[$policy['id']] = $policy;
|
||||
}
|
||||
}
|
||||
|
||||
// Parse groups
|
||||
if ($show_groups) {
|
||||
$nodes_groups = array();
|
||||
foreach ($groups as $group2) {
|
||||
$node_count ++;
|
||||
$group2['type'] = 'group';
|
||||
$group2['id_node'] = $node_count;
|
||||
|
||||
// Add node
|
||||
$nodes_groups[$group2['id_grupo']] = $group2;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$groups_hiden = array();
|
||||
foreach ($nodes_groups as $node_group) {
|
||||
|
||||
//~ $node_count++;
|
||||
|
||||
// Save node parent information to define edges later
|
||||
if ($node_group['parent'] != "0" && $node_group['id_grupo'] != $group) {
|
||||
if ((!$dont_show_subgroups) || ($group == 0)) {
|
||||
$parents[$node_count] =
|
||||
$nodes_groups[$node_group['parent']]['id_node'];
|
||||
}
|
||||
else {
|
||||
$groups_hiden[$node_group['id_grupo']] = 1;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$orphans[$node_group['id_node']] = 1;
|
||||
}
|
||||
|
||||
$nodes[$node_group['id_node']] = $node_group;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($show_agents) {
|
||||
// Parse agents
|
||||
|
||||
// Add node refs
|
||||
$node_ref = array();
|
||||
$modules_node_ref = array();
|
||||
|
||||
$module_groups = array();
|
||||
|
||||
foreach ($agents as $agent) {
|
||||
$node_count++;
|
||||
|
||||
if ($show_groups) {
|
||||
$parents[$node_count] = $agent['parent'] = $nodes_groups[$agent['id_grupo']]['id_node'];
|
||||
}
|
||||
|
||||
if ($show_policies) {
|
||||
$id_policy = db_get_value(
|
||||
'id_policy',
|
||||
'tpolicy_agents', 'id_agent', $agent['id_agente']);
|
||||
if (!empty($id_policy))
|
||||
$parents[$node_count] = $agent['parent'] = $nodes_policies[$id_policy]['id_node'];
|
||||
}
|
||||
|
||||
$node_ref[$agent['id_agente']] = $node_count;
|
||||
|
||||
$agent['id_node'] = $node_count;
|
||||
$agent['type'] = 0;
|
||||
|
||||
// Add node
|
||||
$nodes[$node_count] = $agent;
|
||||
|
||||
if ($l2_network || $show_snmp_modules) {
|
||||
$filter = array();
|
||||
$filter['disabled'] = 0;
|
||||
|
||||
// Get agent modules data
|
||||
if ($strict_user) {
|
||||
$modules = tags_get_agent_modules ($agent['id_agente'], false, $acltags, false, $filter, false);
|
||||
}
|
||||
else {
|
||||
$filter_get_modules = $filter;
|
||||
if ($filter_module_group > 0) {
|
||||
$filter_get_modules['id_module_group'] = $filter_module_group;
|
||||
}
|
||||
|
||||
$modules = agents_get_modules(
|
||||
$agent['id_agente'], '*', $filter_get_modules, true, true);
|
||||
}
|
||||
|
||||
if ($modules === false) {
|
||||
$modules = array();
|
||||
}
|
||||
|
||||
$module_groups[$agent['id_node']] = array();
|
||||
|
||||
// Parse modules
|
||||
foreach ($modules as $key => $module) {
|
||||
|
||||
if (!$show_all_modules || $show_snmp_modules) {
|
||||
if ($module['id_tipo_modulo'] != 18 &&
|
||||
(!$l2_network || $module['id_tipo_modulo'] != 6)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$status_module = modules_get_agentmodule_status(
|
||||
$module['id_agente_modulo']);
|
||||
|
||||
if ($only_modules_alerts) {
|
||||
if (($status_module != AGENT_MODULE_STATUS_NORMAL_ALERT) ||
|
||||
($status_module != AGENT_MODULE_STATUS_WARNING_ALERT) ||
|
||||
($status_module != AGENT_MODULE_STATUS_CRITICAL_ALERT)) {
|
||||
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$node_count ++;
|
||||
$modules_node_ref[$module['id_agente_modulo']] = $node_count;
|
||||
$module['id_node'] = $node_count;
|
||||
$module['type'] = 1;
|
||||
$module['status'] = $status_module;
|
||||
|
||||
// Try to get the interface name
|
||||
if (preg_match ("/_(.+)$/" , (string)$module['nombre'], $matches)) {
|
||||
if ($matches[1]) {
|
||||
$module['nombre'] = $matches[1];
|
||||
}
|
||||
}
|
||||
|
||||
//// Show module groups
|
||||
if ($show_modulegroup) {
|
||||
|
||||
$id_node_module_group = array_search(
|
||||
$module['id_module_group'],
|
||||
$module_groups[$agent['id_node']]);
|
||||
|
||||
if ($id_node_module_group === false) {
|
||||
$name = db_get_value('name', 'tmodule_group',
|
||||
'id_mg', $module['id_module_group']);
|
||||
|
||||
if (empty($name))
|
||||
$name = _('N/A');
|
||||
|
||||
$node_count ++;
|
||||
|
||||
$module_group = array();
|
||||
$module_group['name'] = $name;
|
||||
$module_group['type'] = "module_group";
|
||||
$module_group['id_server'] = $agent['id_server'];
|
||||
$module_group['id_node'] = $node_count;
|
||||
$module_group['parent'] = $agent['id_node'];
|
||||
$module_group['id_module_group'] = $module['id_module_group'];
|
||||
$module_group['id_agent'] = $agent['id_agente'];
|
||||
$nodes[$node_count] = $module_group;
|
||||
|
||||
$id_node_module_group = $node_count;
|
||||
|
||||
$module_groups[$agent['id_node']][$node_count]
|
||||
= $module['id_module_group'];
|
||||
|
||||
$parents[$id_node_module_group] =
|
||||
$module_group['parent'];
|
||||
}
|
||||
|
||||
//Change the status to module group to worst
|
||||
//~ $status = modules_get_agentmodule_status(
|
||||
//~ $module['id_agente_modulo'],
|
||||
//~ false, true, $agent['id_server']);
|
||||
|
||||
switch ($module['status']) {
|
||||
case 0: // Normal monitor
|
||||
if (empty(
|
||||
$nodes[$id_node_module_group]['status']))
|
||||
{
|
||||
$nodes[$id_node_module_group]['status'] = 0;
|
||||
}
|
||||
elseif ($nodes[$id_node_module_group]['status']
|
||||
== -1) {
|
||||
$nodes[$id_node_module_group]['status'] = 0;
|
||||
}
|
||||
break;
|
||||
case 1: //Critical monitor
|
||||
$nodes[$id_node_module_group]['status'] = 1;
|
||||
break;
|
||||
case 2: // Warning monitor
|
||||
if (empty(
|
||||
$nodes[$id_node_module_group]['status']))
|
||||
{
|
||||
$nodes[$id_node_module_group]['status'] = 0;
|
||||
}
|
||||
elseif ($nodes[$id_node_module_group]['status']
|
||||
!= 1) {
|
||||
$nodes[$id_node_module_group]['status'] = 2;
|
||||
}
|
||||
break;
|
||||
case 4: // Alert fired
|
||||
if (empty(
|
||||
$nodes[$id_node_module_group]['status']))
|
||||
{
|
||||
$nodes[$id_node_module_group]['status'] = 4;
|
||||
}
|
||||
elseif (($nodes[$id_node_module_group]['status']
|
||||
== 0) ||
|
||||
($nodes[$id_node_module_group]['status']
|
||||
== -1)) {
|
||||
$nodes[$id_node_module_group]['status'] = 4;
|
||||
}
|
||||
break;
|
||||
default: // Unknown monitor
|
||||
$nodes[$id_node_module_group]['status'] = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
$module['parent'] = $id_node_module_group;
|
||||
|
||||
$parents[$module['id_node']] =
|
||||
$id_node_module_group;
|
||||
|
||||
}
|
||||
else {
|
||||
$parents[$module['id_node']] =
|
||||
$module['parent'] =
|
||||
$agent['id_node'];
|
||||
}
|
||||
////////////////////////////////////////////////////////
|
||||
|
||||
// Add node
|
||||
$nodes[$module['id_node']] = $module;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
} // End if ($show_agents)
|
||||
|
||||
$l2_network_or_mixed = 'mix_l2_l3';
|
||||
// Drop the modules without a partner if l2_network is true
|
||||
// and the snmp interfaces token is false
|
||||
if ($l2_network_or_mixed === 'mix_l2_l3') {
|
||||
|
||||
if (!$show_all_modules || $show_snmp_modules) {
|
||||
|
||||
foreach ($modules_node_ref as $id_module => $node_count) {
|
||||
|
||||
if (! modules_relation_exists($id_module, array_keys($modules_node_ref))) {
|
||||
if ($show_snmp_modules) {
|
||||
$module_type = modules_get_agentmodule_type($id_module);
|
||||
if ($module_type != 18) {
|
||||
unset($nodes[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
unset($nodes[$node_count]);
|
||||
unset($orphans[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$module_type = modules_get_agentmodule_type($id_module);
|
||||
if ($module_type != 18) {
|
||||
|
||||
|
||||
unset($nodes[$node_count]);
|
||||
unset($orphans[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// Addded the relationship of parents of agents
|
||||
foreach ($agents as $agent) {
|
||||
if ($agent['id_parent'] != "0" &&
|
||||
array_key_exists($agent['id_parent'], $node_ref)) {
|
||||
|
||||
$parents[$node_ref[$agent['id_agente']]] = $node_ref[$agent['id_parent']];
|
||||
}
|
||||
else {
|
||||
$orphans[$node_ref[$agent['id_agente']]] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
else if ($l2_network) {
|
||||
foreach ($modules_node_ref as $id_module => $node_count) {
|
||||
if (! modules_relation_exists($id_module, array_keys($modules_node_ref))) {
|
||||
if ($show_snmp_modules) {
|
||||
$module_type = modules_get_agentmodule_type($id_module);
|
||||
if ($module_type != 18) {
|
||||
unset($nodes[$node_count]);
|
||||
unset($orphans[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
unset($nodes[$node_count]);
|
||||
unset($orphans[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$module_type = modules_get_agentmodule_type($id_module);
|
||||
if ($module_type != 18) {
|
||||
unset($nodes[$node_count]);
|
||||
unset($orphans[$node_count]);
|
||||
unset($parents[$node_count]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Addded the relationship of parents of agents
|
||||
foreach ($agents as $agent) {
|
||||
if ($agent['id_parent'] != "0" &&
|
||||
array_key_exists($agent['id_parent'], $node_ref)) {
|
||||
|
||||
$parents[$node_ref[$agent['id_agente']]] = $node_ref[$agent['id_parent']];
|
||||
}
|
||||
else {
|
||||
$orphans[$node_ref[$agent['id_agente']]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$stats = array();
|
||||
$edges = array();
|
||||
|
||||
// Create nodes
|
||||
foreach ($nodes as $node_id => $node) {
|
||||
if ($center > 0 && ! networkmap_is_descendant ($node_id, $center, $parents)) {
|
||||
unset ($parents[$node_id]);
|
||||
unset ($orphans[$node_id]);
|
||||
unset ($nodes[$node_id]);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch ($node['type']) {
|
||||
case 'policy':
|
||||
break;
|
||||
case 'group':
|
||||
$stats['groups'][] = $node['id_grupo'];
|
||||
break;
|
||||
case 'agent':
|
||||
$stats['agents'][] = $node['id_agente'];
|
||||
break;
|
||||
case 'module':
|
||||
$stats['modules'][] = $node['id_agente_modulo'];
|
||||
break;
|
||||
case 'module_group':
|
||||
$stats['module_group'][] = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Define edges
|
||||
foreach ($parents as $node => $parent_id) {
|
||||
// Verify that the parent is in the graph
|
||||
if (isset ($nodes[$parent_id])) {
|
||||
$edges[$node] = $parent_id;
|
||||
}
|
||||
else {
|
||||
$orphans[$node] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// INIT Relations between the nodes
|
||||
//------------------------------------------------------------------
|
||||
foreach ($modules_node_ref as $id_module => $id_node) {
|
||||
$relations = db_get_all_rows_sql(
|
||||
"SELECT module_b AS id_module
|
||||
FROM tmodule_relationship
|
||||
WHERE module_a = " . $id_module . "
|
||||
UNION
|
||||
SELECT module_a AS id_module
|
||||
FROM tmodule_relationship
|
||||
WHERE module_b = " . $id_module);
|
||||
if (empty($relations))
|
||||
$relations = array();
|
||||
|
||||
$id_module_type = modules_get_agentmodule_type($id_module);
|
||||
$agent_id = modules_get_agentmodule_agent($id_module);
|
||||
|
||||
|
||||
|
||||
foreach ($relations as $relation) {
|
||||
$id_module_relation = $relation['id_module'];
|
||||
|
||||
$id_module_type_relation =
|
||||
modules_get_agentmodule_type($id_module_relation);
|
||||
$agent_id_relation = modules_get_agentmodule_agent($id_module_relation);
|
||||
|
||||
|
||||
|
||||
if ($id_module_type == 18 && $id_module_type_relation == 18) {
|
||||
|
||||
if (isset($modules_node_ref[$id_module]) &&
|
||||
isset($modules_node_ref[$id_module_relation])) {
|
||||
|
||||
|
||||
$exists =
|
||||
networkmap_check_exists_edge_between_nodes(
|
||||
$edges,
|
||||
$modules_node_ref[$id_module],
|
||||
$modules_node_ref[$id_module_relation]
|
||||
);
|
||||
|
||||
if (!$exists) {
|
||||
if (empty($edges[$modules_node_ref[$id_module]])) {
|
||||
|
||||
$edges[$modules_node_ref[$id_module]] =
|
||||
$modules_node_ref[$id_module_relation];
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$edges[$modules_node_ref[$id_module]] =
|
||||
(array)$edges[$modules_node_ref[$id_module]];
|
||||
$edges[$modules_node_ref[$id_module]][] =
|
||||
$modules_node_ref[$id_module_relation];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Relation into agents
|
||||
elseif ($id_module_type == 6 && $id_module_type_relation == 6) {
|
||||
if ($l2_network_or_mixed !== 'mix_l2_l3') {
|
||||
if (isset($node_ref[$agent_id]) &&
|
||||
isset($node_ref[$agent_id_relation])) {
|
||||
|
||||
|
||||
$exists =
|
||||
networkmap_check_exists_edge_between_nodes(
|
||||
$edges,
|
||||
$node_ref[$agent_id],
|
||||
$node_ref[$agent_id_relation]
|
||||
);
|
||||
|
||||
if (!$exists) {
|
||||
if (empty($edges[$node_ref[$agent_id]])) {
|
||||
|
||||
|
||||
$edges[$node_ref[$agent_id]] =
|
||||
$node_ref[$agent_id_relation];
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
|
||||
|
||||
if (!$exists) {
|
||||
$edges[$node_ref[$agent_id]] =
|
||||
(array)$edges[$node_ref[$agent_id]];
|
||||
$edges[$node_ref[$agent_id]][] =
|
||||
$node_ref[$agent_id_relation];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif ($id_module_type == 6 && $id_module_type_relation == 18) {
|
||||
if (isset($node_ref[$agent_id]) &&
|
||||
isset($modules_node_ref[$id_module_relation])) {
|
||||
|
||||
|
||||
$exists =
|
||||
networkmap_check_exists_edge_between_nodes(
|
||||
$edges,
|
||||
$node_ref[$agent_id],
|
||||
$modules_node_ref[$id_module_relation]
|
||||
);
|
||||
|
||||
if (!$exists) {
|
||||
if (empty($edges[$node_ref[$agent_id]])) {
|
||||
$edges[$node_ref[$agent_id]] =
|
||||
$modules_node_ref[$id_module_relation];
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
|
||||
|
||||
if (!$exists) {
|
||||
$edges[$node_ref[$agent_id]] =
|
||||
(array)$edges[$node_ref[$agent_id]];
|
||||
$edges[$node_ref[$agent_id]][] =
|
||||
$modules_node_ref[$id_module_relation];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
elseif ($id_module_type_relation == 6 && $id_module_type == 18) {
|
||||
if (isset($node_ref[$agent_id_relation]) &&
|
||||
isset($modules_node_ref[$id_module])) {
|
||||
|
||||
|
||||
|
||||
$exists =
|
||||
networkmap_check_exists_edge_between_nodes(
|
||||
$edges,
|
||||
$node_ref[$agent_id_relation],
|
||||
$modules_node_ref[$id_module]
|
||||
);
|
||||
|
||||
|
||||
if (!$exists) {
|
||||
if (empty($edges[$node_ref[$agent_id_relation]])) {
|
||||
|
||||
|
||||
$edges[$node_ref[$agent_id_relation]] =
|
||||
$modules_node_ref[$id_module];
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
|
||||
|
||||
if (!$exists) {
|
||||
$edges[$node_ref[$agent_id_relation]] =
|
||||
(array)$edges[$node_ref[$agent_id_relation]];
|
||||
$edges[$node_ref[$agent_id_relation]][] =
|
||||
$modules_node_ref[$id_module];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------
|
||||
// END Relations between the nodes
|
||||
//------------------------------------------------------------------
|
||||
|
||||
|
||||
// Define edges for the module interfaces relations
|
||||
// Get the remote_snmp_proc relations
|
||||
//~ $relations = modules_get_relations();
|
||||
//~ if ($relations === false)
|
||||
//~ $relations = array();
|
||||
//~ foreach ($relations as $key => $relation) {
|
||||
//~ $module_a = $relation['module_a'];
|
||||
//~ $module_a_type = modules_get_agentmodule_type($module_a);
|
||||
//~ $agent_a = modules_get_agentmodule_agent($module_a);
|
||||
//~ $module_b = $relation['module_b'];
|
||||
//~ $module_b_type = modules_get_agentmodule_type($module_b);
|
||||
//~ $agent_b = modules_get_agentmodule_agent($module_b);
|
||||
//~
|
||||
//~ if ($module_a_type == 18 && $module_b_type == 18) {
|
||||
//~ if (isset($modules_node_ref[$module_a]) &&
|
||||
//~ isset($modules_node_ref[$module_b])) {
|
||||
//~
|
||||
//~ $edges[$modules_node_ref[$module_a]] =
|
||||
//~ $modules_node_ref[$module_b];
|
||||
//~ }
|
||||
//~ }
|
||||
//~ // Relation into agents
|
||||
//~ elseif ($module_a_type == 6 && $module_b_type == 6) {
|
||||
//~ if ($l2_network_or_mixed !== 'mix_l2_l3') {
|
||||
//~ if (isset($node_ref[$agent_a]) &&
|
||||
//~ isset($node_ref[$agent_b])) {
|
||||
//~
|
||||
//~ $edges[$node_ref[$agent_a]] = $node_ref[$agent_b];
|
||||
//~ }
|
||||
//~ }
|
||||
//~
|
||||
//~ }
|
||||
//~ elseif ($module_a_type == 6 && $module_b_type == 18) {
|
||||
//~ if (isset($node_ref[$agent_a]) &&
|
||||
//~ isset($modules_node_ref[$module_b])) {
|
||||
//~
|
||||
//~ $edges[$node_ref[$agent_a]] = $modules_node_ref[$module_b];
|
||||
//~ }
|
||||
//~ }
|
||||
//~ elseif ($module_b_type == 6 && $module_a_type == 18) {
|
||||
//~ if (isset($node_ref[$agent_b]) &&
|
||||
//~ isset($modules_node_ref[$module_a])) {
|
||||
//~
|
||||
//~ $edges[$node_ref[$agent_b]] = $modules_node_ref[$module_a];
|
||||
//~ }
|
||||
//~ }
|
||||
//~ }
|
||||
|
||||
return array("nodes" => $nodes, "edges" => $edges, "orphans" => $orphans);
|
||||
}
|
||||
|
||||
function networkmap_check_exists_edge_between_nodes($edges, $node_a, $node_b) {
|
||||
$relation = false;
|
||||
|
||||
@ -1073,15 +252,14 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
$simple = 0, $font_size = 12, $layout = 'radial', $nooverlap = 0,
|
||||
$zoom = 1, $ranksep = 2.5, $center = 0, $regen = 1, $pure = 0,
|
||||
$id_networkmap = 0, $show_snmp_modules = 0, $cut_names = true,
|
||||
$relative = false, $text_filter = '', $l2_network = false, $ip_mask = null,
|
||||
$relative = false, $text_filter = '', $ip_mask = null,
|
||||
$dont_show_subgroups = false, $strict_user = false, $size_canvas = null,
|
||||
$old_mode = false) {
|
||||
|
||||
global $config;
|
||||
|
||||
if ($l2_network) {
|
||||
$nooverlap = 1;
|
||||
}
|
||||
|
||||
$parents = array();
|
||||
$orphans = array();
|
||||
|
||||
@ -1155,17 +333,7 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
else if ($group == -666) {
|
||||
$agents = false;
|
||||
}
|
||||
else if (!empty($ip_mask)) {
|
||||
$agents = networkmap_get_new_nodes_from_ip_mask($ip_mask,
|
||||
array ('id_grupo, nombre, id_os, id_parent, id_agente,
|
||||
normal_count, warning_count, critical_count,
|
||||
unknown_count, total_count, notinit_count'), $strict_user);
|
||||
}
|
||||
else {
|
||||
//Order by id_parent ascendant for to avoid the bugs
|
||||
//because the first agents to process in the next
|
||||
//foreach loop are without parent (id_parent = 0)
|
||||
|
||||
if ($strict_user) {
|
||||
$filter['group_by'] = 'tagente.id_agente';
|
||||
$fields = array ('tagente.id_grupo, tagente.nombre, tagente.id_os, tagente.id_parent, tagente.id_agente,
|
||||
@ -1211,8 +379,6 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
// Add node
|
||||
$nodes[$node_count] = $agent;
|
||||
|
||||
if ($l2_network || $show_snmp_modules) {
|
||||
|
||||
$filter = array();
|
||||
$filter['disabled'] = 0;
|
||||
|
||||
@ -1230,8 +396,7 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
// Parse modules
|
||||
foreach ($modules as $key => $module) {
|
||||
|
||||
if ($module['id_tipo_modulo'] != 18 &&
|
||||
(!$l2_network || $module['id_tipo_modulo'] != 6)) {
|
||||
if ($module['id_tipo_modulo'] != 18 && $module['id_tipo_modulo'] != 6) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -1254,11 +419,7 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
$nodes[$node_count] = $module;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Drop the modules without a partner if l2_network is true
|
||||
// and the snmp interfaces token is false
|
||||
if ($l2_network) {
|
||||
foreach ($modules_node_ref as $id_module => $node_count) {
|
||||
if (! modules_relation_exists($id_module, array_keys($modules_node_ref))) {
|
||||
if ($show_snmp_modules) {
|
||||
@ -1284,12 +445,10 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
// Addded the relationship of parents of agents
|
||||
foreach ($agents as $agent) {
|
||||
if ($agent['id_parent'] != "0" &&
|
||||
array_key_exists($agent['id_parent'], $node_ref)) {
|
||||
if ($agent['id_parent'] != "0" && array_key_exists($agent['id_parent'], $node_ref)) {
|
||||
|
||||
$parents[$node_ref[$agent['id_agente']]] = $node_ref[$agent['id_parent']];
|
||||
}
|
||||
@ -1297,12 +456,10 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
$orphans[$node_ref[$agent['id_agente']]] = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Create void statistics array
|
||||
$stats = array();
|
||||
|
||||
if ($l2_network || $old_mode) {
|
||||
$count = 0;
|
||||
$group_nodes = 10;
|
||||
$graph .= networkmap_create_transparent_node($count);
|
||||
@ -1319,8 +476,7 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
|
||||
$group_nodes--;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
// Create a central node if orphan nodes exist
|
||||
if (count ($orphans) || empty ($nodes)) {
|
||||
$graph .= networkmap_create_pandora_node ($pandora_name, $font_size, $simple, $stats);
|
||||
@ -1330,7 +486,6 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
foreach (array_keys($orphans) as $node) {
|
||||
$graph .= networkmap_create_edge ('0', $node, $layout, $nooverlap, $pure, $zoom, $ranksep, $simple, $regen, $font_size, $group, 'operation/agentes/networkmap', 'topology', $id_networkmap);
|
||||
}
|
||||
}
|
||||
|
||||
// Create nodes
|
||||
foreach ($nodes as $node_id => $node) {
|
||||
@ -1381,7 +536,6 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
|
||||
// Define edges for the module interfaces relations
|
||||
// Get the remote_snmp_proc relations
|
||||
if ($l2_network) {
|
||||
$relations = modules_get_relations();
|
||||
if ($relations === false)
|
||||
$relations = array();
|
||||
@ -1475,11 +629,9 @@ function networkmap_generate_dot ($pandora_name, $group = 0,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Close graph
|
||||
$graph .= networkmap_close_graph ();
|
||||
|
||||
return $graph;
|
||||
}
|
||||
|
||||
@ -1979,7 +1131,7 @@ function networkmap_create_agent_node ($agent, $simple = 0, $font_size = 10, $cu
|
||||
$url_tooltip = 'ajax.php?page=operation/agentes/ver_agente&get_agent_status_tooltip=1&id_agent='.$agent['id_agente'];
|
||||
}
|
||||
|
||||
$node = "\n" . $agent['id_node'].' [ color="'.$status_color.'", fontsize='.$font_size.', style="filled", fixedsize=true, width=0.40, height=0.40, label=<<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0"><TR><TD>' . $img_node . '</TD></TR>
|
||||
$node = "\n" . $agent['id_node'].' [ parent="' . $agent['id_parent'] . '", color="'.$status_color.'", fontsize='.$font_size.', style="filled", fixedsize=true, width=0.40, height=0.40, label=<<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0"><TR><TD>' . $img_node . '</TD></TR>
|
||||
<TR><TD>'.io_safe_output($name).'</TD></TR></TABLE>>,
|
||||
shape="doublecircle", URL="'.$url.'",
|
||||
tooltip="' . $url_tooltip . '"];' . "\n";
|
||||
@ -1999,7 +1151,7 @@ function networkmap_create_agent_node ($agent, $simple = 0, $font_size = 10, $cu
|
||||
else {
|
||||
$url_node_link = '';
|
||||
}
|
||||
$node = $agent['id_node'] . ' [ color="' . $status_color . '", fontsize=' . $font_size . ', shape="doublecircle"' . $url_node_link . ', style="filled", fixedsize=true, width=0.20, height=0.20, label="", tooltip="' . $ajax_prefix . 'ajax.php?page=operation/agentes/ver_agente&get_agent_status_tooltip=1&id_agent=' . $agent['id_agente'] . $meta_params . '"];' . "\n";
|
||||
$node = $agent['id_node'] . ' [ parent="' . $agent['id_parent'] . '", color="' . $status_color . '", fontsize=' . $font_size . ', shape="doublecircle"' . $url_node_link . ', style="filled", fixedsize=true, width=0.20, height=0.20, label="", tooltip="' . $ajax_prefix . 'ajax.php?page=operation/agentes/ver_agente&get_agent_status_tooltip=1&id_agent=' . $agent['id_agente'] . $meta_params . '"];' . "\n";
|
||||
}
|
||||
|
||||
return $node;
|
||||
@ -2132,7 +1284,7 @@ function networkmap_create_module_node ($module, $simple = 0, $font_size = 10, $
|
||||
$url_tooltip = 'ajax.php?page=operation/agentes/ver_agente&get_agentmodule_status_tooltip=1&id_module='.$module['id_agente_modulo'];
|
||||
}
|
||||
|
||||
$node = $module['id_node'].' [ color="' . $status_color .
|
||||
$node = $module['id_node'].' [ id_agent="' . $module['id_agente'] . '", color="' . $status_color .
|
||||
'", fontsize='.$font_size.', style="filled", ' .
|
||||
'fixedsize=true, width=0.30, height=0.30, ' .
|
||||
'label=<<TABLE CELLPADDING="0" CELLSPACING="0" BORDER="0"><TR><TD>' .
|
||||
@ -2156,6 +1308,7 @@ function networkmap_create_module_node ($module, $simple = 0, $font_size = 10, $
|
||||
}
|
||||
|
||||
$node = $module['id_node'] . ' [ ' .
|
||||
'id_agent="' . $module['id_agente'] . '", ' .
|
||||
'color="' . $status_color .'", ' .
|
||||
'fontsize='.$font_size.', ' .
|
||||
'shape="circle", ' .
|
||||
|
@ -72,20 +72,7 @@ function networkmap_process_networkmap($id = 0) {
|
||||
$center = 0;
|
||||
$regen = 1;
|
||||
$show_snmp_modules = false;
|
||||
|
||||
// NO CONTEMPLADO
|
||||
$l2_network_interfaces = true;
|
||||
/*
|
||||
if (isset($options['l2_network_interfaces']))
|
||||
$l2_network_interfaces = (bool)$options['l2_network_interfaces'];
|
||||
*/
|
||||
|
||||
// NO CONTEMPLADO
|
||||
$dont_show_subgroups = false;
|
||||
/*
|
||||
if (isset($options['dont_show_subgroups']))
|
||||
$dont_show_subgroups = (bool)$options['dont_show_subgroups'];
|
||||
*/
|
||||
|
||||
$id_group = -666;
|
||||
$ip_mask = "";
|
||||
@ -118,7 +105,6 @@ function networkmap_process_networkmap($id = 0) {
|
||||
false, //cut_names
|
||||
true, // relative
|
||||
'',
|
||||
$l2_network_interfaces,
|
||||
$ip_mask,
|
||||
$dont_show_subgroups,
|
||||
false,
|
||||
@ -146,9 +132,8 @@ function networkmap_process_networkmap($id = 0) {
|
||||
unlink($filename_dot);
|
||||
|
||||
$nodes = networkmap_loadfile($id, $filename_plain,
|
||||
$relation_nodes, $graph, $l2_network_interfaces);
|
||||
$relation_nodes, $graph);
|
||||
|
||||
if ($l2_network_interfaces) {
|
||||
//Set the position of modules
|
||||
foreach ($nodes as $key => $node) {
|
||||
if ($node['type'] == 'module') {
|
||||
@ -166,15 +151,12 @@ function networkmap_process_networkmap($id = 0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
unlink($filename_plain);
|
||||
|
||||
$nodes_and_relations = array();
|
||||
$nodes_and_relations['l2_network'] = $l2_network_interfaces;
|
||||
if (enterprise_installed()) {
|
||||
enterprise_include_once("include/functions_pandora_networkmap.php");
|
||||
|
||||
$center = save_generate_nodes($id, $nodes, $relation_nodes);
|
||||
}
|
||||
else {
|
||||
@ -184,12 +166,6 @@ function networkmap_process_networkmap($id = 0) {
|
||||
$nodes_and_relations['nodes'][$index]['id_map'] = $id;
|
||||
$nodes_and_relations['nodes'][$index]['x'] = (int)$node['coords'][0];
|
||||
$nodes_and_relations['nodes'][$index]['y'] = (int)$node['coords'][1];
|
||||
$style['shape'] = 'circle';
|
||||
$style['image'] = $node['image'];
|
||||
$style['width'] = $node['width'];
|
||||
$style['height'] = $node['height'];
|
||||
$style['label'] = $node['text'];
|
||||
$nodes_and_relations['nodes'][$index]['style'] = json_encode($style);
|
||||
if (($node['type'] == 'agent') || ($node['type'] == '')) {
|
||||
$nodes_and_relations['nodes'][$index]['source_data'] = $node['id_agent'];
|
||||
$nodes_and_relations['nodes'][$index]['type'] = 0;
|
||||
@ -199,6 +175,14 @@ function networkmap_process_networkmap($id = 0) {
|
||||
$nodes_and_relations['nodes'][$index]['id_agent'] = $node['id_agent'];
|
||||
$nodes_and_relations['nodes'][$index]['type'] = 1;
|
||||
}
|
||||
|
||||
$style['shape'] = 'circle';
|
||||
$style['image'] = $node['image'];
|
||||
$style['width'] = $node['width'];
|
||||
$style['height'] = $node['height'];
|
||||
$style['label'] = $node['text'];
|
||||
$nodes_and_relations['nodes'][$index]['style'] = json_encode($style);
|
||||
|
||||
$index++;
|
||||
}
|
||||
|
||||
@ -206,29 +190,9 @@ function networkmap_process_networkmap($id = 0) {
|
||||
$nodes_and_relations['relations'] = array();
|
||||
foreach ($relation_nodes as $relation) {
|
||||
$nodes_and_relations['relations'][$index]['id_map'] = $id;
|
||||
|
||||
if ($l2_network_interfaces) {
|
||||
if (($relation['parent_type'] == 'agent') || ($relation['parent_type'] == '')) {
|
||||
$nodes_and_relations['relations'][$index]['id_parent'] = $relation['id_parent'];
|
||||
$nodes_and_relations['relations'][$index]['parent_type'] = 0;
|
||||
}
|
||||
else if ($relation['parent_type'] == 'module') {
|
||||
$nodes_and_relations['relations'][$index]['id_parent'] = $nodes[$relation['id_parent']]['id_module'];
|
||||
$nodes_and_relations['relations'][$index]['parent_type'] = 1;
|
||||
}
|
||||
|
||||
if (($relation['child_type'] == 'agent') || ($relation['child_type'] == '')) {
|
||||
$nodes_and_relations['relations'][$index]['id_child'] = $relation['id_child'];
|
||||
$nodes_and_relations['relations'][$index]['child_type'] = 0;
|
||||
}
|
||||
else if ($relation['child_type'] == 'module') {
|
||||
$nodes_and_relations['relations'][$index]['id_child'] = $nodes[$relation['id_child']]['id_module'];
|
||||
$nodes_and_relations['relations'][$index]['child_type'] = 1;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$nodes_and_relations['relations'][$index]['id_parent'] = $nodes[$relation['id_parent']]['id_agent'];
|
||||
$nodes_and_relations['relations'][$index]['id_child'] = $nodes[$relation['id_child']]['id_agent'];
|
||||
|
||||
if (($relation['parent_type'] == 'agent') || ($relation['parent_type'] == '')) {
|
||||
$nodes_and_relations['relations'][$index]['parent_type'] = 0;
|
||||
}
|
||||
@ -242,7 +206,7 @@ function networkmap_process_networkmap($id = 0) {
|
||||
else if ($relation['child_type'] == 'module') {
|
||||
$nodes_and_relations['relations'][$index]['child_type'] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
$index++;
|
||||
}
|
||||
|
||||
@ -449,7 +413,7 @@ function networkmap_clean_relations_for_js(&$relations) {
|
||||
while (!$cleaned);
|
||||
}
|
||||
|
||||
function networkmap_links_to_js_links($relations, $nodes_graph, $l2_network = false) {
|
||||
function networkmap_links_to_js_links($relations, $nodes_graph) {
|
||||
$return = array();
|
||||
|
||||
foreach ($relations as $relation) {
|
||||
@ -568,7 +532,6 @@ function networkmap_links_to_js_links($relations, $nodes_graph, $l2_network = fa
|
||||
}
|
||||
}
|
||||
else {
|
||||
if ($l2_network) {
|
||||
$agent1 = agents_get_agent_id_by_module_id($relation['id_parent']);
|
||||
$agent2 = agents_get_agent_id_by_module_id($relation['id_child']);
|
||||
if (($node['id_agent'] == $agent1) && ($node['id_module'] == "")) {
|
||||
@ -578,21 +541,6 @@ function networkmap_links_to_js_links($relations, $nodes_graph, $l2_network = fa
|
||||
$item['source'] = $node['id'];
|
||||
}
|
||||
}
|
||||
else {
|
||||
$agent1 = $relation['id_parent'];
|
||||
$agent2 = $relation['id_child'];
|
||||
if ($agent1 == 0) {
|
||||
$item['target'] = 0;
|
||||
}
|
||||
else if (($node['id_agent'] == $agent1) && ($node['id_module'] == "")) {
|
||||
$item['target'] = $node['id'];
|
||||
}
|
||||
|
||||
if (($node['id_agent'] == $agent2) && ($node['id_module'] == "")) {
|
||||
$item['source'] = $node['id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return[] = $item;
|
||||
@ -690,7 +638,7 @@ function networkmap_write_js_array($id, $nodes_and_relations = array()) {
|
||||
//interfaces
|
||||
networkmap_clean_relations_for_js($relations);
|
||||
|
||||
$links_js = networkmap_links_to_js_links($relations, $nodes_graph, $nodes_and_relations['l2_network']);
|
||||
$links_js = networkmap_links_to_js_links($relations, $nodes_graph);
|
||||
|
||||
foreach ($links_js as $link_js) {
|
||||
if ($link_js['target'] == -1)
|
||||
@ -755,7 +703,7 @@ function networkmap_write_js_array($id, $nodes_and_relations = array()) {
|
||||
}
|
||||
|
||||
function networkmap_loadfile($id = 0, $file = '',
|
||||
&$relations_param, $graph, $l2_network_interfaces) {
|
||||
&$relations_param, $graph) {
|
||||
global $config;
|
||||
|
||||
$height_map = db_get_value('height', 'tmap', 'id', $id);
|
||||
@ -800,7 +748,6 @@ function networkmap_loadfile($id = 0, $file = '',
|
||||
$node_id = $items[1];
|
||||
$node_x = $items[2] * 100; //200 is for show more big
|
||||
$node_y = $height_map - $items[3] * 100; //200 is for show more big
|
||||
|
||||
$data['text'] = '';
|
||||
$data['image'] = '';
|
||||
$data['width'] = 10;
|
||||
@ -838,6 +785,7 @@ function networkmap_loadfile($id = 0, $file = '',
|
||||
'agent_medium', false, true, false,
|
||||
'...', false);
|
||||
$data['text'] = $text;
|
||||
$data['id_agent'] = db_get_value("id_agente", "tagente_modulo", "id_agente_modulo", $data['id_module']);
|
||||
break;
|
||||
case 'agent':
|
||||
$data['id_agent'] = $ids[$node_id]['id_agent'];
|
||||
@ -848,6 +796,7 @@ function networkmap_loadfile($id = 0, $file = '',
|
||||
'agent_medium', false, true, false,
|
||||
'...', false);
|
||||
$data['text'] = $text;
|
||||
$data['parent'] = db_get_value("id_parent", "tagente", "id_agente", $data['id_agent']);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -857,7 +806,6 @@ function networkmap_loadfile($id = 0, $file = '',
|
||||
}
|
||||
|
||||
$data['coords'] = array($node_x, $node_y);
|
||||
$data['parent'] = -1;
|
||||
|
||||
if (strpos($node_id, "transp_") !== false) {
|
||||
//removed the transparent nodes
|
||||
@ -1136,6 +1084,8 @@ function show_networkmap($id = 0, $user_readonly = false, $nodes_and_relations =
|
||||
//
|
||||
// and erase the last, only the first row alive
|
||||
networkmap_clean_duplicate_links($id);
|
||||
|
||||
networkmap_clean_useless_l3_links($id);
|
||||
}
|
||||
|
||||
$networkmap = db_get_row('tmap', 'id', $id);
|
||||
|
Loading…
x
Reference in New Issue
Block a user