Module: nagvis Branch: master Commit: 2c59bfe20a1f271633ba0b2ebc4f1e06f76e08d5 URL: http://nagvis.git.sourceforge.net/git/gitweb.cgi?p=nagvis/nagvis;a=commit;h=2c59bfe20a1f271633ba0b2ebc4f1e06f76e08d5
Author: Lars Michelsen <[email protected]> Date: Tue Apr 20 23:47:04 2010 +0200 Several small backend bugfixes --- share/server/core/classes/GlobalBackendMgmt.php | 27 +++++++------------ .../core/classes/GlobalBackendmklivestatus.php | 28 ++++++++++--------- 2 files changed, 25 insertions(+), 30 deletions(-) diff --git a/share/server/core/classes/GlobalBackendMgmt.php b/share/server/core/classes/GlobalBackendMgmt.php index c5200f5..e0963fa 100644 --- a/share/server/core/classes/GlobalBackendMgmt.php +++ b/share/server/core/classes/GlobalBackendMgmt.php @@ -286,7 +286,7 @@ class GlobalBackendMgmt { case 'serviceState': $filters = Array( Array('key' => 'host_name', 'op' => '=', 'val' => 'name'), - Array('key' => 'service_description', 'operator' => '=', 'service_description') + Array('key' => 'service_description', 'op' => '=', 'service_description') ); $aCounts = $this->BACKENDS[$backendId]->getServiceState($aObjs, $filters); break; @@ -303,19 +303,20 @@ class GlobalBackendMgmt { foreach($aObjs AS $name => $opts) if(isset($aCounts[$name])) foreach($opts['OBJS'] AS $OBJ) - $OBJ->setState($aCounts[$name]); + if($type == 'serviceState' || $type == 'hostState') + $OBJ->setState($aCounts[$name]); + else + $OBJ->setStateCounts($aCounts[$name]); else - foreach($opts['OBJS'] AS $OBJ) - $OBJ->setBackendProblem($this->CORE->getLang()->getText('The object "[OBJ]" does not exist.', - Array('OBJ' => $name))); + foreach($opts['OBJS'] AS $OBJ) { + $OBJ->setBackendProblem($this->CORE->getLang()->getText('The object "[OBJ]" does not exist ([TYPE]).', + Array('OBJ' => $name, 'TYPE' => $type))); + } } private function fetchHostMemberDetails($backendId, $aObjs) { try { - $filters = Array( - Array('key' => 'host_name', 'op' => '=', 'val' => 'name'), - Array('key' => 'service_description', 'operator' => '=', 'service_description') - ); + $filters = Array(Array('key' => 'host_name', 'op' => '=', 'val' => 'name')); $aMembers = $this->BACKENDS[$backendId]->getServiceState($aObjs, $filters); } catch(BackendException $e) { $aMembers = Array(); @@ -327,15 +328,7 @@ class GlobalBackendMgmt { $members = Array(); foreach($aMembers[$name] AS $service => $details) { $MOBJ = new NagVisService($this->CORE, $this, $backendId, $OBJ->getName(), $details['service_description']); - - // Append contents of the array to the object properties $MOBJ->setState($details); - - // The service of this host has to know how it should handle - //hard/soft states. This is a little dirty but the simplest way to do this - //until the hard/soft state handling has moved from backend to the object - // classes. - $MOBJ->setConfiguration($OBJ->getObjectConfiguration()); $members[] = $MOBJ; } diff --git a/share/server/core/classes/GlobalBackendmklivestatus.php b/share/server/core/classes/GlobalBackendmklivestatus.php index 2247df4..6da380f 100644 --- a/share/server/core/classes/GlobalBackendmklivestatus.php +++ b/share/server/core/classes/GlobalBackendmklivestatus.php @@ -414,6 +414,8 @@ class GlobalBackendmklivestatus implements GlobalBackendInterface { switch($filter['key']) { case 'host_name': case 'host_groups': + case 'service_description': + case 'groups': case 'service_groups': case 'hostgroup_name': case 'group_name': @@ -425,6 +427,9 @@ class GlobalBackendmklivestatus implements GlobalBackendInterface { $objFilters[] = 'Filter: '.$filter['key'].' '.$filter['op'].' '.$val."\n"; break; + default: + throw new BackendConnectionProblem('Invalid filter key ('.$filter['key'].')'); + break; } } @@ -943,21 +948,21 @@ class GlobalBackendmklivestatus implements GlobalBackendInterface { foreach($l as $e) { $arrReturn[$e[0]] = Array( 'PENDING' => Array( - 'normal' => $e[0], + 'normal' => $e[1], ), 'UP' => Array( - 'normal' => $e[1], - 'downtime' => $e[2], + 'normal' => $e[2], + 'downtime' => $e[3], ), 'DOWN' => Array( - 'normal' => $e[3], - 'ack' => $e[4], - 'downtime' => $e[5], + 'normal' => $e[4], + 'ack' => $e[5], + 'downtime' => $e[6], ), 'UNREACHABLE' => Array( - 'normal' => $e[6], - 'ack' => $e[7], - 'downtime' => $e[8], + 'normal' => $e[7], + 'ack' => $e[8], + 'downtime' => $e[9], ), ); } @@ -973,7 +978,7 @@ class GlobalBackendmklivestatus implements GlobalBackendInterface { $stateAttr = 'state'; // Little hack to correct the different field names - $filter = str_replace(' groups ', ' hostgroups ', $filter); + $filter = str_replace(' groups ', ' host_groups ', $filter); // Get service information $l = $this->queryLivestatus("GET servicesbyhostgroup\n" . @@ -1100,9 +1105,6 @@ class GlobalBackendmklivestatus implements GlobalBackendInterface { else $stateAttr = 'state'; - // Little hack to correct the different field names - $filter = str_replace(' groups ', ' hostgroups ', $filter); - // Get service information $l = $this->queryLivestatus("GET servicesbygroup\n" . $filter. ------------------------------------------------------------------------------ _______________________________________________ Nagvis-checkins mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/nagvis-checkins
