mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-31 01:35:36 +02:00
Error fixes
This commit is contained in:
parent
f1ae8fd875
commit
6e48b6acb4
@ -1846,22 +1846,133 @@ class Tree {
|
|||||||
return strcmp($a["name"], $b["name"]);
|
return strcmp($a["name"], $b["name"]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function __getMergedTags ($items) {
|
||||||
|
// This variable holds the result
|
||||||
|
$mergedItems = array();
|
||||||
|
|
||||||
|
foreach ($items as $key => $item) {
|
||||||
|
|
||||||
|
// Store the item in a temporary element
|
||||||
|
$resultItem = $item;
|
||||||
|
// Remove the item
|
||||||
|
unset($items[$key]);
|
||||||
|
|
||||||
|
// The 'id' parameter will be stored as 'server_id' => 'id'
|
||||||
|
$resultItem['id'] = array();
|
||||||
|
$resultItem['id'][$item['server_id']] = $item['id'];
|
||||||
|
$resultItem['rootID'] = array();
|
||||||
|
$resultItem['rootID'][$item['server_id']] = $item['rootID'];
|
||||||
|
|
||||||
|
// Initialize counters if any of it don't exist
|
||||||
|
if (!isset($resultItem['counters']))
|
||||||
|
$resultItem['counters'] = array();
|
||||||
|
if (!isset($resultItem['counters']['unknown']))
|
||||||
|
$resultItem['counters']['unknown'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['critical']))
|
||||||
|
$resultItem['counters']['critical'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['warning']))
|
||||||
|
$resultItem['counters']['warning'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['not_init']))
|
||||||
|
$resultItem['counters']['not_init'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['ok']))
|
||||||
|
$resultItem['counters']['ok'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['total']))
|
||||||
|
$resultItem['counters']['total'] = 0;
|
||||||
|
if (!isset($resultItem['counters']['alerts']))
|
||||||
|
$resultItem['counters']['alerts'] = 0;
|
||||||
|
|
||||||
|
// Iterate over the list to search items that match the actual item
|
||||||
|
foreach ($items as $key2 => $item2) {
|
||||||
|
// Skip the actual or empty items
|
||||||
|
if (!isset($key) || !isset($key2) || $key == $key2)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
// Match with the name
|
||||||
|
if ($item['name'] == $item2['name']) {
|
||||||
|
// Add the matched ids
|
||||||
|
$resultItem['id'][$item2['server_id']] = $item2['id'];
|
||||||
|
$resultItem['rootID'][$item2['server_id']] = $item2['rootID'];
|
||||||
|
|
||||||
|
// Add the matched counters
|
||||||
|
if (isset($item2['counters']) && !empty($item2['counters']) {
|
||||||
|
foreach ($item2['counters'] as $type => $value) {
|
||||||
|
if (isset($resultItem['counters'][$type]))
|
||||||
|
$resultItem['counters'][$type] += $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sum the agents number
|
||||||
|
if (isset($child2['agentsNum']))
|
||||||
|
$resultItem['agentsNum'] += $child2['agentsNum'];
|
||||||
|
|
||||||
|
// Remove the item
|
||||||
|
unset($items[$key2]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the resulting item
|
||||||
|
if (!empty($resultItem) && !empty($resultItem['agentsNum']))
|
||||||
|
$mergedItems[] = $resultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
usort($mergedItems, "cmpSortNames");
|
||||||
|
|
||||||
|
return $mergedItems;
|
||||||
|
}
|
||||||
|
|
||||||
$processed_items = array();
|
$processed_items = array();
|
||||||
|
|
||||||
// Tags
|
// Tags
|
||||||
if ($this->id == -1) {
|
if ($this->id == -1) {
|
||||||
$items = $this->getItems();
|
if (! defined ('METACONSOLE')) {
|
||||||
|
$items = $this->getItems();
|
||||||
|
|
||||||
foreach ($items as $key => $item) {
|
foreach ($items as $key => $item) {
|
||||||
$processed_item = array();
|
$processed_item = array();
|
||||||
$processed_item['id'] = $item['id'];
|
$processed_item['id'] = $item['id'];
|
||||||
$processed_item['name'] = $item['name'];
|
$processed_item['name'] = $item['name'];
|
||||||
$processed_item['type'] = $this->type;
|
$processed_item['type'] = $this->type;
|
||||||
$processed_item['rootID'] = $item['id'];
|
$processed_item['rootID'] = $item['id'];
|
||||||
$processed_item['rootType'] = $this->rootType;
|
$processed_item['rootType'] = $this->rootType;
|
||||||
$processed_item['searchChildren'] = 1;
|
$processed_item['searchChildren'] = 1;
|
||||||
|
|
||||||
$processed_items[] = $processed_item;
|
$processed_items[] = $processed_item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$servers = metaconsole_get_servers();
|
||||||
|
|
||||||
|
$item_list = array();
|
||||||
|
foreach ($servers as $server) {
|
||||||
|
if (metaconsole_connect($server) != NOERR)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
$items = $this->getItems();
|
||||||
|
|
||||||
|
$processed_items = array();
|
||||||
|
foreach ($items as $key => $item) {
|
||||||
|
$processed_item = array();
|
||||||
|
$processed_item['id'] = $item['id'];
|
||||||
|
$processed_item['name'] = $item['name'];
|
||||||
|
$processed_item['type'] = $this->type;
|
||||||
|
$processed_item['rootID'] = $item['id'];
|
||||||
|
$processed_item['rootType'] = $this->rootType;
|
||||||
|
$processed_item['server_id'] = $server['id'];
|
||||||
|
$processed_item['searchChildren'] = 1;
|
||||||
|
|
||||||
|
$processed_items[] = $processed_item;
|
||||||
|
}
|
||||||
|
$items = $processed_items;
|
||||||
|
|
||||||
|
$item_list = array_merge($item_list, $items);
|
||||||
|
|
||||||
|
metaconsole_restore_db();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!empty($item_list))
|
||||||
|
usort($item_list, "cmpSortNames");
|
||||||
|
|
||||||
|
$processed_items = __getMergedTags($item_list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Agents
|
// Agents
|
||||||
|
Loading…
x
Reference in New Issue
Block a user