| @@ -43,8 +43,8 @@ discard block | ||
| 43 | 43 | |
| 44 | 44 | |
| 45 | 45 | /** Get instance of TrapModuleConfig class | 
| 46 | - * @return TrapModuleConfig | |
| 47 | - */ | |
| 46 | + * @return TrapModuleConfig | |
| 47 | + */ | |
| 48 | 48 | public function getModuleConfig() | 
| 49 | 49 |  	{ | 
| 50 | 50 | if ($this->moduleConfig == Null) | 
| @@ -76,12 +76,12 @@ discard block | ||
| 76 | 76 | */ | 
| 77 | 77 | public function getTrapHostListTable() | 
| 78 | 78 |  	{ | 
| 79 | - if ($this->trapTableHostList == Null) | |
| 79 | + if ($this->trapTableHostList == Null) | |
| 80 | 80 |  		{ | 
| 81 | - $this->trapTableHostList = new TrapTableHostList(); | |
| 82 | - $this->trapTableHostList->setConfig($this->getModuleConfig()); | |
| 83 | - } | |
| 84 | - return $this->trapTableHostList; | |
| 81 | + $this->trapTableHostList = new TrapTableHostList(); | |
| 82 | + $this->trapTableHostList->setConfig($this->getModuleConfig()); | |
| 83 | + } | |
| 84 | + return $this->trapTableHostList; | |
| 85 | 85 | } | 
| 86 | 86 | |
| 87 | 87 | /** | 
| @@ -102,23 +102,23 @@ discard block | ||
| 102 | 102 | */ | 
| 103 | 103 | public function getUIDatabase() | 
| 104 | 104 |  	{ | 
| 105 | - if ($this->UIDatabase == Null) | |
| 106 | -	    { | |
| 107 | - $this->UIDatabase = new UIDatabase($this); | |
| 105 | + if ($this->UIDatabase == Null) | |
| 106 | +		{ | |
| 107 | + $this->UIDatabase = new UIDatabase($this); | |
| 108 | 108 | |
| 109 | - } | |
| 110 | - return $this->UIDatabase; | |
| 109 | + } | |
| 110 | + return $this->UIDatabase; | |
| 111 | 111 | } | 
| 112 | 112 | |
| 113 | - protected function applyPaginationLimits(Paginatable $paginatable, $limit = 25, $offset = null) | |
| 114 | -    { | |
| 115 | -        $limit = $this->params->get('limit', $limit); | |
| 116 | -        $page = $this->params->get('page', $offset); | |
| 113 | + protected function applyPaginationLimits(Paginatable $paginatable, $limit = 25, $offset = null) | |
| 114 | +	{ | |
| 115 | +		$limit = $this->params->get('limit', $limit); | |
| 116 | +		$page = $this->params->get('page', $offset); | |
| 117 | 117 | |
| 118 | - $paginatable->limit($limit, $page > 0 ? ($page - 1) * $limit : 0); | |
| 118 | + $paginatable->limit($limit, $page > 0 ? ($page - 1) * $limit : 0); | |
| 119 | 119 | |
| 120 | - return $paginatable; | |
| 121 | - } | |
| 120 | + return $paginatable; | |
| 121 | + } | |
| 122 | 122 | |
| 123 | 123 | public function displayExitError($source,$message) | 
| 124 | 124 |  	{	// TODO : check better ways to transmit data (with POST ?) | 
| @@ -127,33 +127,33 @@ discard block | ||
| 127 | 127 | |
| 128 | 128 | protected function checkReadPermission() | 
| 129 | 129 |  	{ | 
| 130 | -        if (! $this->Auth()->hasPermission('trapdirector/view')) { | |
| 131 | -            $this->displayExitError('Permissions','No permission fo view content'); | |
| 132 | - } | |
| 130 | +		if (! $this->Auth()->hasPermission('trapdirector/view')) { | |
| 131 | +			$this->displayExitError('Permissions','No permission fo view content'); | |
| 132 | + } | |
| 133 | 133 | } | 
| 134 | 134 | |
| 135 | 135 | protected function checkConfigPermission() | 
| 136 | 136 |  	{ | 
| 137 | -        if (! $this->Auth()->hasPermission('trapdirector/config')) { | |
| 138 | -            $this->displayExitError('Permissions','No permission fo configure'); | |
| 139 | - } | |
| 137 | +		if (! $this->Auth()->hasPermission('trapdirector/config')) { | |
| 138 | +			$this->displayExitError('Permissions','No permission fo configure'); | |
| 139 | + } | |
| 140 | 140 | } | 
| 141 | 141 | |
| 142 | - /** | |
| 143 | - * Check if user has write permission | |
| 144 | - * @param number $check optional : if set to 1, return true (user has permission) or false instead of displaying error page | |
| 145 | - * @return boolean : user has permission | |
| 146 | - */ | |
| 142 | + /** | |
| 143 | + * Check if user has write permission | |
| 144 | + * @param number $check optional : if set to 1, return true (user has permission) or false instead of displaying error page | |
| 145 | + * @return boolean : user has permission | |
| 146 | + */ | |
| 147 | 147 | protected function checkModuleConfigPermission($check=0) | 
| 148 | 148 |  	{ | 
| 149 | -        if (! $this->Auth()->hasPermission('trapdirector/module_config')) { | |
| 150 | - if ($check == 0) | |
| 151 | -            { | |
| 152 | -                $this->displayExitError('Permissions','No permission fo configure module'); | |
| 153 | - } | |
| 154 | - return false; | |
| 155 | - } | |
| 156 | - return true; | |
| 149 | +		if (! $this->Auth()->hasPermission('trapdirector/module_config')) { | |
| 150 | + if ($check == 0) | |
| 151 | +			{ | |
| 152 | +				$this->displayExitError('Permissions','No permission fo configure module'); | |
| 153 | + } | |
| 154 | + return false; | |
| 155 | + } | |
| 156 | + return true; | |
| 157 | 157 | } | 
| 158 | 158 | |
| 159 | 159 | /************************* Trap class get **********************/ | 
| @@ -173,18 +173,18 @@ discard block | ||
| 173 | 173 | /************************** MIB related **************************/ | 
| 174 | 174 | |
| 175 | 175 | /** Get MIBLoader class | 
| 176 | - * @return MIBLoader class | |
| 177 | - */ | |
| 176 | + * @return MIBLoader class | |
| 177 | + */ | |
| 178 | 178 | protected function getMIB() | 
| 179 | 179 |  	{ | 
| 180 | 180 | if ($this->MIBData == null) | 
| 181 | 181 |  		{ | 
| 182 | - $dbConn = $this->getUIDatabase()->getDbConn(); | |
| 183 | -		    if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 182 | + $dbConn = $this->getUIDatabase()->getDbConn(); | |
| 183 | +			if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 184 | 184 | $this->MIBData=new MIBLoader( | 
| 185 | 185 |  				$this->Config()->get('config', 'snmptranslate'), | 
| 186 | 186 |  				$this->Config()->get('config', 'snmptranslate_dirs'), | 
| 187 | - $dbConn, | |
| 187 | + $dbConn, | |
| 188 | 188 | $this->getModuleConfig() | 
| 189 | 189 | ); | 
| 190 | 190 | } | 
| @@ -194,13 +194,13 @@ discard block | ||
| 194 | 194 | /************************** Database queries *******************/ | 
| 195 | 195 | |
| 196 | 196 | /** Check if director is installed | 
| 197 | - * @return bool true/false | |
| 198 | - */ | |
| 197 | + * @return bool true/false | |
| 198 | + */ | |
| 199 | 199 | protected function isDirectorInstalled() | 
| 200 | 200 |  	{ | 
| 201 | - $output=array(); | |
| 202 | -	    exec('icingacli module list',$output); | |
| 203 | - foreach ($output as $line) | |
| 201 | + $output=array(); | |
| 202 | +		exec('icingacli module list',$output); | |
| 203 | + foreach ($output as $line) | |
| 204 | 204 |  		{ | 
| 205 | 205 |  			if (preg_match('/^director .*enabled/',$line)) | 
| 206 | 206 |  			{ | 
| @@ -16,243 +16,243 @@ | ||
| 16 | 16 | trait IdoDBQuery | 
| 17 | 17 |  { | 
| 18 | 18 | |
| 19 | - /** Get host(s) by IP (v4 or v6) or by name in IDO database | |
| 20 | - * does not catch exceptions | |
| 21 | - * @return array of objects ( name, id (object_id), display_name) | |
| 22 | - */ | |
| 23 | - public function getHostByIP($ip) | |
| 24 | -    { | |
| 25 | - // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 26 | - $dbConn = $this->getIdoDbConn(); | |
| 27 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 19 | + /** Get host(s) by IP (v4 or v6) or by name in IDO database | |
| 20 | + * does not catch exceptions | |
| 21 | + * @return array of objects ( name, id (object_id), display_name) | |
| 22 | + */ | |
| 23 | + public function getHostByIP($ip) | |
| 24 | +	{ | |
| 25 | + // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 26 | + $dbConn = $this->getIdoDbConn(); | |
| 27 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 28 | 28 | |
| 29 | - // TODO : check for SQL injections | |
| 30 | - $query=$dbConn->select() | |
| 31 | - ->from( | |
| 32 | -            array('a' => 'icinga_objects'), | |
| 33 | -            array('name' => 'a.name1','id' => 'object_id')) | |
| 34 | - ->join( | |
| 35 | -                array('b' => 'icinga_hosts'), | |
| 36 | - 'b.host_object_id=a.object_id', | |
| 37 | -                array('display_name' => 'b.display_name')) | |
| 38 | -                ->where("(b.address LIKE '%".$ip."%' OR b.address6 LIKE '%".$ip."%' OR a.name1 LIKE '%".$ip."%' OR b.display_name LIKE '%".$ip."%') and a.is_active = 1"); | |
| 39 | - return $dbConn->fetchAll($query); | |
| 40 | - } | |
| 29 | + // TODO : check for SQL injections | |
| 30 | + $query=$dbConn->select() | |
| 31 | + ->from( | |
| 32 | +			array('a' => 'icinga_objects'), | |
| 33 | +			array('name' => 'a.name1','id' => 'object_id')) | |
| 34 | + ->join( | |
| 35 | +				array('b' => 'icinga_hosts'), | |
| 36 | + 'b.host_object_id=a.object_id', | |
| 37 | +				array('display_name' => 'b.display_name')) | |
| 38 | +				->where("(b.address LIKE '%".$ip."%' OR b.address6 LIKE '%".$ip."%' OR a.name1 LIKE '%".$ip."%' OR b.display_name LIKE '%".$ip."%') and a.is_active = 1"); | |
| 39 | + return $dbConn->fetchAll($query); | |
| 40 | + } | |
| 41 | 41 | |
| 42 | - /** Get host(s) by name in IDO database | |
| 43 | - * does not catch exceptions | |
| 44 | - * @return array of objects ( name, id (object_id), display_name) | |
| 45 | - */ | |
| 46 | - public function getHostByName($name) | |
| 47 | -    { | |
| 48 | - // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 49 | - $dbConn = $this->getIdoDbConn(); | |
| 50 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 42 | + /** Get host(s) by name in IDO database | |
| 43 | + * does not catch exceptions | |
| 44 | + * @return array of objects ( name, id (object_id), display_name) | |
| 45 | + */ | |
| 46 | + public function getHostByName($name) | |
| 47 | +	{ | |
| 48 | + // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 49 | + $dbConn = $this->getIdoDbConn(); | |
| 50 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 51 | 51 | |
| 52 | - // TODO : check for SQL injections | |
| 53 | - $query=$dbConn->select() | |
| 54 | - ->from( | |
| 55 | -            array('a' => 'icinga_objects'), | |
| 56 | -            array('name' => 'a.name1','id' => 'object_id')) | |
| 57 | - ->join( | |
| 58 | -                array('b' => 'icinga_hosts'), | |
| 59 | - 'b.host_object_id=a.object_id', | |
| 60 | -                array('display_name' => 'b.display_name')) | |
| 61 | -                ->where("a.name1 = '$name'"); | |
| 62 | - return $dbConn->fetchAll($query); | |
| 63 | - } | |
| 52 | + // TODO : check for SQL injections | |
| 53 | + $query=$dbConn->select() | |
| 54 | + ->from( | |
| 55 | +			array('a' => 'icinga_objects'), | |
| 56 | +			array('name' => 'a.name1','id' => 'object_id')) | |
| 57 | + ->join( | |
| 58 | +				array('b' => 'icinga_hosts'), | |
| 59 | + 'b.host_object_id=a.object_id', | |
| 60 | +				array('display_name' => 'b.display_name')) | |
| 61 | +				->where("a.name1 = '$name'"); | |
| 62 | + return $dbConn->fetchAll($query); | |
| 63 | + } | |
| 64 | 64 | |
| 65 | - /** Get host groups by name in IDO database | |
| 66 | - * does not catch exceptions | |
| 67 | - * @return array of objects ( name, id (object_id), display_name) | |
| 68 | - */ | |
| 69 | - public function getHostGroupByName($ip) | |
| 70 | -    { | |
| 71 | - // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 72 | - $dbConn = $this->getIdoDbConn(); | |
| 73 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 74 | - // TODO : check for SQL injections | |
| 75 | - $query=$dbConn->select() | |
| 76 | - ->from( | |
| 77 | -            array('a' => 'icinga_objects'), | |
| 78 | -            array('name' => 'a.name1','id' => 'object_id')) | |
| 79 | - ->join( | |
| 80 | -                array('b' => 'icinga_hostgroups'), | |
| 81 | - 'b.hostgroup_object_id=a.object_id', | |
| 82 | -                array('display_name' => 'b.alias')) | |
| 83 | -                ->where("(a.name1 LIKE '%".$ip."%' OR b.alias LIKE '%".$ip."%') and a.is_active = 1"); | |
| 84 | - return $dbConn->fetchAll($query); | |
| 85 | - } | |
| 65 | + /** Get host groups by name in IDO database | |
| 66 | + * does not catch exceptions | |
| 67 | + * @return array of objects ( name, id (object_id), display_name) | |
| 68 | + */ | |
| 69 | + public function getHostGroupByName($ip) | |
| 70 | +	{ | |
| 71 | + // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 72 | + $dbConn = $this->getIdoDbConn(); | |
| 73 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 74 | + // TODO : check for SQL injections | |
| 75 | + $query=$dbConn->select() | |
| 76 | + ->from( | |
| 77 | +			array('a' => 'icinga_objects'), | |
| 78 | +			array('name' => 'a.name1','id' => 'object_id')) | |
| 79 | + ->join( | |
| 80 | +				array('b' => 'icinga_hostgroups'), | |
| 81 | + 'b.hostgroup_object_id=a.object_id', | |
| 82 | +				array('display_name' => 'b.alias')) | |
| 83 | +				->where("(a.name1 LIKE '%".$ip."%' OR b.alias LIKE '%".$ip."%') and a.is_active = 1"); | |
| 84 | + return $dbConn->fetchAll($query); | |
| 85 | + } | |
| 86 | 86 | |
| 87 | 87 | |
| 88 | - /** Get host IP (v4 and v6) by name in IDO database | |
| 89 | - * does not catch exceptions | |
| 90 | - * @return array ( name, display_name, ip4, ip6) | |
| 91 | - */ | |
| 92 | - public function getHostInfoByID($id) | |
| 93 | -    { | |
| 94 | -        if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 95 | - $dbConn = $this->getIdoDbConn(); | |
| 96 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 97 | - $query=$dbConn->select() | |
| 98 | - ->from( | |
| 99 | -            array('a' => 'icinga_objects'), | |
| 100 | -            array('name' => 'a.name1')) | |
| 101 | - ->join( | |
| 102 | -                array('b' => 'icinga_hosts'), | |
| 103 | - 'b.host_object_id=a.object_id', | |
| 104 | -                array('ip4' => 'b.address', 'ip6' => 'b.address6', 'display_name' => 'b.display_name')) | |
| 105 | -                ->where("a.object_id = '".$id."'"); | |
| 106 | - return $dbConn->fetchRow($query); | |
| 107 | - } | |
| 88 | + /** Get host IP (v4 and v6) by name in IDO database | |
| 89 | + * does not catch exceptions | |
| 90 | + * @return array ( name, display_name, ip4, ip6) | |
| 91 | + */ | |
| 92 | + public function getHostInfoByID($id) | |
| 93 | +	{ | |
| 94 | +		if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 95 | + $dbConn = $this->getIdoDbConn(); | |
| 96 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 97 | + $query=$dbConn->select() | |
| 98 | + ->from( | |
| 99 | +			array('a' => 'icinga_objects'), | |
| 100 | +			array('name' => 'a.name1')) | |
| 101 | + ->join( | |
| 102 | +				array('b' => 'icinga_hosts'), | |
| 103 | + 'b.host_object_id=a.object_id', | |
| 104 | +				array('ip4' => 'b.address', 'ip6' => 'b.address6', 'display_name' => 'b.display_name')) | |
| 105 | +				->where("a.object_id = '".$id."'"); | |
| 106 | + return $dbConn->fetchRow($query); | |
| 107 | + } | |
| 108 | 108 | |
| 109 | 109 | |
| 110 | - /** Get host by objectid in IDO database | |
| 111 | - * does not catch exceptions | |
| 112 | - * @return array of objects ( id, name, display_name, ip, ip6, ) | |
| 113 | - */ | |
| 114 | - public function getHostByObjectID($id) // TODO : duplicate of getHostInfoByID above | |
| 115 | -    { | |
| 116 | -        if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 117 | - $dbConn = $this->getIdoDbConn(); | |
| 118 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 119 | - $query=$dbConn->select() | |
| 120 | - ->from( | |
| 121 | -            array('a' => 'icinga_objects'), | |
| 122 | -            array('name' => 'a.name1','id' => 'a.object_id')) | |
| 123 | - ->join( | |
| 124 | -                array('b' => 'icinga_hosts'), | |
| 125 | - 'b.host_object_id=a.object_id', | |
| 126 | -                array('display_name' => 'b.display_name' , 'ip' => 'b.address', 'ip6' => 'b.address6')) | |
| 127 | -                ->where('a.object_id = ?',$id); | |
| 128 | - return $dbConn->fetchRow($query); | |
| 129 | - } | |
| 110 | + /** Get host by objectid in IDO database | |
| 111 | + * does not catch exceptions | |
| 112 | + * @return array of objects ( id, name, display_name, ip, ip6, ) | |
| 113 | + */ | |
| 114 | + public function getHostByObjectID($id) // TODO : duplicate of getHostInfoByID above | |
| 115 | +	{ | |
| 116 | +		if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 117 | + $dbConn = $this->getIdoDbConn(); | |
| 118 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 119 | + $query=$dbConn->select() | |
| 120 | + ->from( | |
| 121 | +			array('a' => 'icinga_objects'), | |
| 122 | +			array('name' => 'a.name1','id' => 'a.object_id')) | |
| 123 | + ->join( | |
| 124 | +				array('b' => 'icinga_hosts'), | |
| 125 | + 'b.host_object_id=a.object_id', | |
| 126 | +				array('display_name' => 'b.display_name' , 'ip' => 'b.address', 'ip6' => 'b.address6')) | |
| 127 | +				->where('a.object_id = ?',$id); | |
| 128 | + return $dbConn->fetchRow($query); | |
| 129 | + } | |
| 130 | 130 | |
| 131 | - /** Get services from object ( host_object_id) in IDO database | |
| 132 | - * does not catch exceptions | |
| 133 | - * @param $id int object_id | |
| 134 | - * @return array display_name (of service), service_object_id | |
| 135 | - */ | |
| 136 | - public function getServicesByHostid($id) | |
| 137 | -    { | |
| 138 | - // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 139 | -        if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 140 | - $dbConn = $this->getIdoDbConn(); | |
| 141 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 142 | - $query=$dbConn->select() | |
| 143 | - ->from( | |
| 144 | -            array('s' => 'icinga_services'), | |
| 145 | -            array('name' => 's.display_name','id' => 's.service_object_id')) | |
| 146 | - ->join( | |
| 147 | -                array('a' => 'icinga_objects'), | |
| 148 | - 's.service_object_id=a.object_id', | |
| 149 | -                array('is_active'=>'a.is_active','name2'=>'a.name2')) | |
| 150 | -                ->where('s.host_object_id='.$id.' AND a.is_active = 1'); | |
| 151 | - return $dbConn->fetchAll($query); | |
| 152 | - } | |
| 131 | + /** Get services from object ( host_object_id) in IDO database | |
| 132 | + * does not catch exceptions | |
| 133 | + * @param $id int object_id | |
| 134 | + * @return array display_name (of service), service_object_id | |
| 135 | + */ | |
| 136 | + public function getServicesByHostid($id) | |
| 137 | +	{ | |
| 138 | + // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 139 | +		if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 140 | + $dbConn = $this->getIdoDbConn(); | |
| 141 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 142 | + $query=$dbConn->select() | |
| 143 | + ->from( | |
| 144 | +			array('s' => 'icinga_services'), | |
| 145 | +			array('name' => 's.display_name','id' => 's.service_object_id')) | |
| 146 | + ->join( | |
| 147 | +				array('a' => 'icinga_objects'), | |
| 148 | + 's.service_object_id=a.object_id', | |
| 149 | +				array('is_active'=>'a.is_active','name2'=>'a.name2')) | |
| 150 | +				->where('s.host_object_id='.$id.' AND a.is_active = 1'); | |
| 151 | + return $dbConn->fetchAll($query); | |
| 152 | + } | |
| 153 | 153 | |
| 154 | - /** Get services from hostgroup object id ( hostgroup_object_id) in IDO database | |
| 155 | - * gets all hosts in hostgroup and return common services | |
| 156 | - * does not catch exceptions | |
| 157 | - * @param $id int object_id | |
| 158 | - * @return array display_name (of service), service_object_id | |
| 159 | - */ | |
| 160 | - public function getServicesByHostGroupid($id) | |
| 161 | -    { | |
| 162 | -        if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 163 | - $dbConn = $this->getIdoDbConn(); | |
| 164 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 165 | - $query=$dbConn->select() | |
| 166 | - ->from( | |
| 167 | -            array('s' => 'icinga_hostgroup_members'), | |
| 168 | -            array('host_object_id' => 's.host_object_id')) | |
| 169 | - ->join( | |
| 170 | -                array('a' => 'icinga_hostgroups'), | |
| 171 | - 's.hostgroup_id=a.hostgroup_id', | |
| 172 | - 'hostgroup_object_id') | |
| 173 | -                ->where('a.hostgroup_object_id='.$id); | |
| 174 | - $hosts=$dbConn->fetchAll($query); | |
| 175 | - $common_services=array(); | |
| 176 | - $num_hosts=count($hosts); | |
| 177 | - foreach ($hosts as $key => $host) | |
| 178 | -                { // For each host, get all services and add in common_services if not found or add counter | |
| 179 | - $host_services=$this->getServicesByHostid($host->host_object_id); | |
| 180 | - foreach($host_services as $service) | |
| 181 | -                    { | |
| 182 | - if (isset($common_services[$service->name2]['num'])) | |
| 183 | -                        { | |
| 184 | - $common_services[$service->name2]['num'] +=1; | |
| 185 | - } | |
| 186 | - else | |
| 187 | -                        { | |
| 188 | - $common_services[$service->name2]['num']=1; | |
| 189 | - $common_services[$service->name2]['name']=$service->name; | |
| 190 | - } | |
| 191 | - } | |
| 192 | - } | |
| 193 | - $result=array(); | |
| 154 | + /** Get services from hostgroup object id ( hostgroup_object_id) in IDO database | |
| 155 | + * gets all hosts in hostgroup and return common services | |
| 156 | + * does not catch exceptions | |
| 157 | + * @param $id int object_id | |
| 158 | + * @return array display_name (of service), service_object_id | |
| 159 | + */ | |
| 160 | + public function getServicesByHostGroupid($id) | |
| 161 | +	{ | |
| 162 | +		if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 163 | + $dbConn = $this->getIdoDbConn(); | |
| 164 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 165 | + $query=$dbConn->select() | |
| 166 | + ->from( | |
| 167 | +			array('s' => 'icinga_hostgroup_members'), | |
| 168 | +			array('host_object_id' => 's.host_object_id')) | |
| 169 | + ->join( | |
| 170 | +				array('a' => 'icinga_hostgroups'), | |
| 171 | + 's.hostgroup_id=a.hostgroup_id', | |
| 172 | + 'hostgroup_object_id') | |
| 173 | +				->where('a.hostgroup_object_id='.$id); | |
| 174 | + $hosts=$dbConn->fetchAll($query); | |
| 175 | + $common_services=array(); | |
| 176 | + $num_hosts=count($hosts); | |
| 177 | + foreach ($hosts as $key => $host) | |
| 178 | +				{ // For each host, get all services and add in common_services if not found or add counter | |
| 179 | + $host_services=$this->getServicesByHostid($host->host_object_id); | |
| 180 | + foreach($host_services as $service) | |
| 181 | +					{ | |
| 182 | + if (isset($common_services[$service->name2]['num'])) | |
| 183 | +						{ | |
| 184 | + $common_services[$service->name2]['num'] +=1; | |
| 185 | + } | |
| 186 | + else | |
| 187 | +						{ | |
| 188 | + $common_services[$service->name2]['num']=1; | |
| 189 | + $common_services[$service->name2]['name']=$service->name; | |
| 190 | + } | |
| 191 | + } | |
| 192 | + } | |
| 193 | + $result=array(); | |
| 194 | 194 | |
| 195 | - //print_r($common_services); | |
| 196 | - foreach (array_keys($common_services) as $key) | |
| 197 | -                { | |
| 198 | - if ($common_services[$key]['num'] == $num_hosts) | |
| 199 | -                    { | |
| 200 | - array_push($result,array($key,$common_services[$key]['name'])); | |
| 201 | - } | |
| 202 | - } | |
| 195 | + //print_r($common_services); | |
| 196 | + foreach (array_keys($common_services) as $key) | |
| 197 | +				{ | |
| 198 | + if ($common_services[$key]['num'] == $num_hosts) | |
| 199 | +					{ | |
| 200 | + array_push($result,array($key,$common_services[$key]['name'])); | |
| 201 | + } | |
| 202 | + } | |
| 203 | 203 | |
| 204 | - return $result; | |
| 205 | - } | |
| 204 | + return $result; | |
| 205 | + } | |
| 206 | 206 | |
| 207 | - /** Get services object id by host name / service name in IDO database | |
| 208 | - * does not catch exceptions | |
| 209 | - * @param $hostname string host name | |
| 210 | - * @param $name string service name | |
| 211 | - * @return array service id | |
| 212 | - */ | |
| 213 | - public function getServiceIDByName($hostname,$name) | |
| 214 | -    { | |
| 215 | - $dbConn = $this->getIdoDbConn(); | |
| 216 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 207 | + /** Get services object id by host name / service name in IDO database | |
| 208 | + * does not catch exceptions | |
| 209 | + * @param $hostname string host name | |
| 210 | + * @param $name string service name | |
| 211 | + * @return array service id | |
| 212 | + */ | |
| 213 | + public function getServiceIDByName($hostname,$name) | |
| 214 | +	{ | |
| 215 | + $dbConn = $this->getIdoDbConn(); | |
| 216 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 217 | 217 | |
| 218 | - if ($name == null) | |
| 219 | -        { | |
| 220 | - return array(); | |
| 221 | - } | |
| 218 | + if ($name == null) | |
| 219 | +		{ | |
| 220 | + return array(); | |
| 221 | + } | |
| 222 | 222 | |
| 223 | - $query=$dbConn->select() | |
| 224 | - ->from( | |
| 225 | -            array('s' => 'icinga_services'), | |
| 226 | -            array('name' => 's.display_name','id' => 's.service_object_id')) | |
| 227 | - ->join( | |
| 228 | -                array('a' => 'icinga_objects'), | |
| 229 | - 's.service_object_id=a.object_id', | |
| 230 | - 'is_active') | |
| 231 | -                ->where('a.name2=\''.$name.'\' AND a.name1=\''.$hostname.'\' AND a.is_active = 1'); | |
| 223 | + $query=$dbConn->select() | |
| 224 | + ->from( | |
| 225 | +			array('s' => 'icinga_services'), | |
| 226 | +			array('name' => 's.display_name','id' => 's.service_object_id')) | |
| 227 | + ->join( | |
| 228 | +				array('a' => 'icinga_objects'), | |
| 229 | + 's.service_object_id=a.object_id', | |
| 230 | + 'is_active') | |
| 231 | +				->where('a.name2=\''.$name.'\' AND a.name1=\''.$hostname.'\' AND a.is_active = 1'); | |
| 232 | 232 | |
| 233 | - return $dbConn->fetchAll($query); | |
| 234 | - } | |
| 233 | + return $dbConn->fetchAll($query); | |
| 234 | + } | |
| 235 | 235 | |
| 236 | - /** Get object name from object_id in IDO database | |
| 237 | - * does not catch exceptions | |
| 238 | - * @param int $id object_id (default to null, used first if not null) | |
| 239 | - * @return array name1 (host) name2 (service) | |
| 240 | - */ | |
| 241 | - public function getObjectNameByid($id) | |
| 242 | -    { | |
| 243 | - // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 244 | -        if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 245 | - $dbConn = $this->getIdoDbConn(); | |
| 246 | -        if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 236 | + /** Get object name from object_id in IDO database | |
| 237 | + * does not catch exceptions | |
| 238 | + * @param int $id object_id (default to null, used first if not null) | |
| 239 | + * @return array name1 (host) name2 (service) | |
| 240 | + */ | |
| 241 | + public function getObjectNameByid($id) | |
| 242 | +	{ | |
| 243 | + // select a.name1, b.display_name from icinga.icinga_objects AS a , icinga.icinga_hosts AS b WHERE (b.address = '192.168.56.101' OR b.address6= '123456') and b.host_object_id=a.object_id | |
| 244 | +		if (!preg_match('/^[0-9]+$/',$id)) { throw new Exception('Invalid id');  } | |
| 245 | + $dbConn = $this->getIdoDbConn(); | |
| 246 | +		if ($dbConn === null) throw new \ErrorException('uncatched db error'); | |
| 247 | 247 | |
| 248 | - $query=$dbConn->select() | |
| 249 | - ->from( | |
| 250 | -            array('a' => 'icinga_objects'), | |
| 251 | -            array('name1' => 'a.name1','name2' => 'a.name2')) | |
| 252 | -            ->where('a.object_id='.$id.' AND a.is_active = 1'); | |
| 248 | + $query=$dbConn->select() | |
| 249 | + ->from( | |
| 250 | +			array('a' => 'icinga_objects'), | |
| 251 | +			array('name1' => 'a.name1','name2' => 'a.name2')) | |
| 252 | +			->where('a.object_id='.$id.' AND a.is_active = 1'); | |
| 253 | 253 | |
| 254 | - return $dbConn->fetchRow($query); | |
| 255 | - } | |
| 254 | + return $dbConn->fetchRow($query); | |
| 255 | + } | |
| 256 | 256 | |
| 257 | 257 | |
| 258 | 258 | } | 
| 259 | 259 | \ No newline at end of file | 
| @@ -19,30 +19,30 @@ discard block | ||
| 19 | 19 | */ | 
| 20 | 20 | class DBException extends Exception | 
| 21 | 21 |  { | 
| 22 | - /** @var array $returnArray */ | |
| 23 | - private $returnArray; | |
| 22 | + /** @var array $returnArray */ | |
| 23 | + private $returnArray; | |
| 24 | 24 | |
| 25 | - /** | |
| 26 | - * Buil DBException | |
| 27 | - * @param array $retarray | |
| 28 | - * @param string $message | |
| 29 | - * @param int $code | |
| 30 | - * @param Exception $previous | |
| 31 | - */ | |
| 32 | - public function __construct(array $retarray, string $message = null, int $code = 0, Exception $previous = null) | |
| 33 | -    { | |
| 34 | - parent::__construct($message,$code,$previous); | |
| 35 | - $this->returnArray = $retarray; | |
| 36 | - } | |
| 25 | + /** | |
| 26 | + * Buil DBException | |
| 27 | + * @param array $retarray | |
| 28 | + * @param string $message | |
| 29 | + * @param int $code | |
| 30 | + * @param Exception $previous | |
| 31 | + */ | |
| 32 | + public function __construct(array $retarray, string $message = null, int $code = 0, Exception $previous = null) | |
| 33 | +	{ | |
| 34 | + parent::__construct($message,$code,$previous); | |
| 35 | + $this->returnArray = $retarray; | |
| 36 | + } | |
| 37 | 37 | |
| 38 | - /** | |
| 39 | - * Get exception array | |
| 40 | - * @return array | |
| 41 | - */ | |
| 42 | - public function getArray() | |
| 43 | -    { | |
| 44 | - return $this->returnArray; | |
| 45 | - } | |
| 38 | + /** | |
| 39 | + * Get exception array | |
| 40 | + * @return array | |
| 41 | + */ | |
| 42 | + public function getArray() | |
| 43 | +	{ | |
| 44 | + return $this->returnArray; | |
| 45 | + } | |
| 46 | 46 | } | 
| 47 | 47 | |
| 48 | 48 | /** | 
| @@ -56,274 +56,274 @@ discard block | ||
| 56 | 56 | */ | 
| 57 | 57 | class UIDatabase //extends TrapDBQuery | 
| 58 | 58 |  { | 
| 59 | - use TrapDBQuery,IdoDBQuery; | |
| 59 | + use TrapDBQuery,IdoDBQuery; | |
| 60 | 60 | |
| 61 | - /** @var TrapsController $trapController TrapController 'parent' class */ | |
| 62 | - protected $trapController=null; | |
| 61 | + /** @var TrapsController $trapController TrapController 'parent' class */ | |
| 62 | + protected $trapController=null; | |
| 63 | 63 | |
| 64 | - /** @var Selectable $trapDB Trap Database*/ | |
| 65 | - protected $trapDB=null; | |
| 64 | + /** @var Selectable $trapDB Trap Database*/ | |
| 65 | + protected $trapDB=null; | |
| 66 | 66 | |
| 67 | - /** @var Selectable $trapDB Icinga IDO database*/ | |
| 68 | - protected $idoDB=null; | |
| 67 | + /** @var Selectable $trapDB Icinga IDO database*/ | |
| 68 | + protected $idoDB=null; | |
| 69 | 69 | |
| 70 | - /** @var array $testResult */ | |
| 71 | - protected $testResult; | |
| 70 | + /** @var array $testResult */ | |
| 71 | + protected $testResult; | |
| 72 | 72 | |
| 73 | - /** | |
| 74 | - * | |
| 75 | - * @param TrapsController $trapCtrl | |
| 76 | - */ | |
| 77 | - function __construct(TrapsController $trapCtrl) | |
| 78 | -    { | |
| 79 | - $this->trapController=$trapCtrl; | |
| 80 | - } | |
| 73 | + /** | |
| 74 | + * | |
| 75 | + * @param TrapsController $trapCtrl | |
| 76 | + */ | |
| 77 | + function __construct(TrapsController $trapCtrl) | |
| 78 | +	{ | |
| 79 | + $this->trapController=$trapCtrl; | |
| 80 | + } | |
| 81 | 81 | |
| 82 | - protected function getTrapCtrl() | |
| 83 | -    { | |
| 84 | - return $this->trapController; | |
| 85 | - } | |
| 82 | + protected function getTrapCtrl() | |
| 83 | +	{ | |
| 84 | + return $this->trapController; | |
| 85 | + } | |
| 86 | 86 | |
| 87 | - /** | |
| 88 | - * Test if database version >= min database version | |
| 89 | - * | |
| 90 | - * @param \Zend_Db_Adapter_Abstract $dbConn | |
| 91 | - * @param int $min Minimum version | |
| 92 | - * @param bool $test Test mode | |
| 93 | - * @param string $DBname Name of DB | |
| 94 | - * @return bool true if OK, false if version < min version | |
| 95 | - * @throws Exception if error and test = true | |
| 96 | - */ | |
| 97 | - protected function testDbVersion($dbAdapter,int $min,bool $test, string $DBname) | |
| 98 | -    { | |
| 99 | - try | |
| 100 | -        { | |
| 101 | - $query = $dbAdapter->select() | |
| 102 | - ->from($this->trapController->getModuleConfig()->getDbConfigTableName(),'value') | |
| 103 | -            ->where('name=\'db_version\''); | |
| 104 | - $version=$dbAdapter->fetchRow($query); | |
| 105 | - if ( ($version == null) || ! property_exists($version,'value') ) | |
| 106 | -            { | |
| 107 | - if ($test === true) | |
| 108 | -                { | |
| 109 | - $this->testResult = array(4,$DBname); | |
| 110 | - return false; | |
| 111 | - } | |
| 112 | -                $this->trapController->redirectNow('trapdirector/settings?dberror=4'); | |
| 113 | - return false; | |
| 114 | - } | |
| 115 | - if ($version->value < $min) | |
| 116 | -            { | |
| 117 | - if ($test === true) | |
| 118 | -                { | |
| 119 | - $this->testResult = array(5,$version->value,$min); | |
| 120 | - return false; | |
| 121 | - } | |
| 122 | -                $this->trapController->redirectNow('trapdirector/settings?dberror=5'); | |
| 123 | - return false; | |
| 124 | - } | |
| 125 | - } | |
| 126 | - catch (Exception $e) | |
| 127 | -        { | |
| 128 | - if ($test === true) | |
| 129 | -            { | |
| 130 | - $this->testResult = array(3,$DBname,$e->getMessage()); | |
| 131 | - return false; | |
| 132 | - } | |
| 133 | -            $this->trapController->redirectNow('trapdirector/settings?dberror=4'); | |
| 134 | - return false; | |
| 135 | - } | |
| 136 | - return true; | |
| 137 | - } | |
| 87 | + /** | |
| 88 | + * Test if database version >= min database version | |
| 89 | + * | |
| 90 | + * @param \Zend_Db_Adapter_Abstract $dbConn | |
| 91 | + * @param int $min Minimum version | |
| 92 | + * @param bool $test Test mode | |
| 93 | + * @param string $DBname Name of DB | |
| 94 | + * @return bool true if OK, false if version < min version | |
| 95 | + * @throws Exception if error and test = true | |
| 96 | + */ | |
| 97 | + protected function testDbVersion($dbAdapter,int $min,bool $test, string $DBname) | |
| 98 | +	{ | |
| 99 | + try | |
| 100 | +		{ | |
| 101 | + $query = $dbAdapter->select() | |
| 102 | + ->from($this->trapController->getModuleConfig()->getDbConfigTableName(),'value') | |
| 103 | +			->where('name=\'db_version\''); | |
| 104 | + $version=$dbAdapter->fetchRow($query); | |
| 105 | + if ( ($version == null) || ! property_exists($version,'value') ) | |
| 106 | +			{ | |
| 107 | + if ($test === true) | |
| 108 | +				{ | |
| 109 | + $this->testResult = array(4,$DBname); | |
| 110 | + return false; | |
| 111 | + } | |
| 112 | +				$this->trapController->redirectNow('trapdirector/settings?dberror=4'); | |
| 113 | + return false; | |
| 114 | + } | |
| 115 | + if ($version->value < $min) | |
| 116 | +			{ | |
| 117 | + if ($test === true) | |
| 118 | +				{ | |
| 119 | + $this->testResult = array(5,$version->value,$min); | |
| 120 | + return false; | |
| 121 | + } | |
| 122 | +				$this->trapController->redirectNow('trapdirector/settings?dberror=5'); | |
| 123 | + return false; | |
| 124 | + } | |
| 125 | + } | |
| 126 | + catch (Exception $e) | |
| 127 | +		{ | |
| 128 | + if ($test === true) | |
| 129 | +			{ | |
| 130 | + $this->testResult = array(3,$DBname,$e->getMessage()); | |
| 131 | + return false; | |
| 132 | + } | |
| 133 | +			$this->trapController->redirectNow('trapdirector/settings?dberror=4'); | |
| 134 | + return false; | |
| 135 | + } | |
| 136 | + return true; | |
| 137 | + } | |
| 138 | 138 | |
| 139 | - /** Get Database connexion | |
| 140 | - * @param $DBname string DB name in resource.ini_ge | |
| 141 | - * @param $test bool if set to true, returns error code and not database | |
| 142 | - * @param $test_version bool if set to flase, does not test database version of trapDB | |
| 143 | - * @throws DBException if test = true and error | |
| 144 | - * @return Selectable|null : if test=false, returns DB connexion, else array(error_num,message) or null on error. | |
| 145 | - */ | |
| 146 | - protected function getDbByName($DBname , $test = false , $test_version = true) | |
| 147 | -    { | |
| 148 | - try | |
| 149 | -        { | |
| 150 | - $dbconn = IcingaDbConnection::fromResourceName($DBname); | |
| 151 | - } | |
| 152 | - catch (Exception $e) | |
| 153 | -        { | |
| 154 | - if ($test === true) | |
| 155 | -            { | |
| 156 | - throw new DBException(array(2,$DBname)); | |
| 157 | - } | |
| 158 | -            $this->trapController->redirectNow('trapdirector/settings?dberror=2'); | |
| 159 | - return null; | |
| 160 | - } | |
| 139 | + /** Get Database connexion | |
| 140 | + * @param $DBname string DB name in resource.ini_ge | |
| 141 | + * @param $test bool if set to true, returns error code and not database | |
| 142 | + * @param $test_version bool if set to flase, does not test database version of trapDB | |
| 143 | + * @throws DBException if test = true and error | |
| 144 | + * @return Selectable|null : if test=false, returns DB connexion, else array(error_num,message) or null on error. | |
| 145 | + */ | |
| 146 | + protected function getDbByName($DBname , $test = false , $test_version = true) | |
| 147 | +	{ | |
| 148 | + try | |
| 149 | +		{ | |
| 150 | + $dbconn = IcingaDbConnection::fromResourceName($DBname); | |
| 151 | + } | |
| 152 | + catch (Exception $e) | |
| 153 | +		{ | |
| 154 | + if ($test === true) | |
| 155 | +			{ | |
| 156 | + throw new DBException(array(2,$DBname)); | |
| 157 | + } | |
| 158 | +			$this->trapController->redirectNow('trapdirector/settings?dberror=2'); | |
| 159 | + return null; | |
| 160 | + } | |
| 161 | 161 | |
| 162 | - try | |
| 163 | -        { | |
| 164 | - $dbAdapter=$dbconn->getDbAdapter(); | |
| 162 | + try | |
| 163 | +		{ | |
| 164 | + $dbAdapter=$dbconn->getDbAdapter(); | |
| 165 | 165 | |
| 166 | - } | |
| 167 | - catch (Exception $e) | |
| 168 | -        { | |
| 169 | - if ($test === true) | |
| 170 | -            { | |
| 171 | - throw new DBException(array(3,$DBname,$e->getMessage())); | |
| 172 | - } | |
| 173 | -            $this->trapController->redirectNow('trapdirector/settings?dberror=3'); | |
| 174 | - return null; | |
| 175 | - } | |
| 166 | + } | |
| 167 | + catch (Exception $e) | |
| 168 | +		{ | |
| 169 | + if ($test === true) | |
| 170 | +			{ | |
| 171 | + throw new DBException(array(3,$DBname,$e->getMessage())); | |
| 172 | + } | |
| 173 | +			$this->trapController->redirectNow('trapdirector/settings?dberror=3'); | |
| 174 | + return null; | |
| 175 | + } | |
| 176 | 176 | |
| 177 | -        if ($test_version == true) { | |
| 178 | - $testRet=$this->testDbVersion($dbAdapter, $this->trapController->getModuleConfig()->getDbMinVersion(), $test, $DBname); | |
| 179 | - if ($testRet !== true) | |
| 180 | -            { | |
| 181 | - throw new DBException($this->testResult); | |
| 182 | - } | |
| 183 | - } | |
| 177 | +		if ($test_version == true) { | |
| 178 | + $testRet=$this->testDbVersion($dbAdapter, $this->trapController->getModuleConfig()->getDbMinVersion(), $test, $DBname); | |
| 179 | + if ($testRet !== true) | |
| 180 | +			{ | |
| 181 | + throw new DBException($this->testResult); | |
| 182 | + } | |
| 183 | + } | |
| 184 | 184 | |
| 185 | - return $dbconn; | |
| 186 | - } | |
| 185 | + return $dbconn; | |
| 186 | + } | |
| 187 | 187 | |
| 188 | - /** | |
| 189 | - * Get Trap database | |
| 190 | - * @return Selectable|null : returns DB connexion or null on error. | |
| 191 | - */ | |
| 192 | - public function getDb() | |
| 193 | -    { | |
| 194 | - if ( $this->trapDB != null ) return $this->trapDB; | |
| 188 | + /** | |
| 189 | + * Get Trap database | |
| 190 | + * @return Selectable|null : returns DB connexion or null on error. | |
| 191 | + */ | |
| 192 | + public function getDb() | |
| 193 | +	{ | |
| 194 | + if ( $this->trapDB != null ) return $this->trapDB; | |
| 195 | 195 | |
| 196 | 196 | |
| 197 | -        $dbresource=$this->trapController->Config()->get('config', 'database'); | |
| 197 | +		$dbresource=$this->trapController->Config()->get('config', 'database'); | |
| 198 | 198 | |
| 199 | - if ( ! $dbresource ) | |
| 200 | -        { | |
| 201 | -            $this->trapController->redirectNow('trapdirector/settings?dberror=1'); | |
| 202 | - return null; | |
| 203 | - } | |
| 199 | + if ( ! $dbresource ) | |
| 200 | +		{ | |
| 201 | +			$this->trapController->redirectNow('trapdirector/settings?dberror=1'); | |
| 202 | + return null; | |
| 203 | + } | |
| 204 | 204 | |
| 205 | -        try { | |
| 206 | - $this->trapDB = $this->getDbByName($dbresource,false,true); | |
| 207 | -        } catch (DBException $e) { | |
| 208 | - return null; // Should not happen as test = false | |
| 209 | - } | |
| 205 | +		try { | |
| 206 | + $this->trapDB = $this->getDbByName($dbresource,false,true); | |
| 207 | +		} catch (DBException $e) { | |
| 208 | + return null; // Should not happen as test = false | |
| 209 | + } | |
| 210 | 210 | |
| 211 | - //$this->trapDB->getConnection(); | |
| 211 | + //$this->trapDB->getConnection(); | |
| 212 | 212 | |
| 213 | - return $this->trapDB; | |
| 214 | - } | |
| 213 | + return $this->trapDB; | |
| 214 | + } | |
| 215 | 215 | |
| 216 | - /** | |
| 217 | - * Get Zend adapter of DB. | |
| 218 | - * @return \Zend_Db_Adapter_Abstract|null | |
| 219 | - */ | |
| 220 | - public function getDbConn() | |
| 221 | -    { | |
| 222 | - if ($this->getDb() == null) return null; | |
| 223 | - return $this->getDb()->getConnection(); | |
| 224 | - } | |
| 216 | + /** | |
| 217 | + * Get Zend adapter of DB. | |
| 218 | + * @return \Zend_Db_Adapter_Abstract|null | |
| 219 | + */ | |
| 220 | + public function getDbConn() | |
| 221 | +	{ | |
| 222 | + if ($this->getDb() == null) return null; | |
| 223 | + return $this->getDb()->getConnection(); | |
| 224 | + } | |
| 225 | 225 | |
| 226 | - /** | |
| 227 | - * Test Trap database | |
| 228 | - * @param boolean $test | |
| 229 | - * @throws DBException on error. | |
| 230 | - * @return \Zend_Db_Adapter_Abstract|array|null : if test=false, returns DB connexion, else array(error_num,message) or null on error. | |
| 231 | - */ | |
| 232 | - public function testGetDb() | |
| 233 | -    {        | |
| 234 | -        $dbresource=$this->trapController->Config()->get('config', 'database'); | |
| 226 | + /** | |
| 227 | + * Test Trap database | |
| 228 | + * @param boolean $test | |
| 229 | + * @throws DBException on error. | |
| 230 | + * @return \Zend_Db_Adapter_Abstract|array|null : if test=false, returns DB connexion, else array(error_num,message) or null on error. | |
| 231 | + */ | |
| 232 | + public function testGetDb() | |
| 233 | +	{        | |
| 234 | +		$dbresource=$this->trapController->Config()->get('config', 'database'); | |
| 235 | 235 | |
| 236 | - if ( ! $dbresource ) | |
| 237 | -        { | |
| 238 | - throw new DBException(array(1,'')); | |
| 239 | - } | |
| 236 | + if ( ! $dbresource ) | |
| 237 | +		{ | |
| 238 | + throw new DBException(array(1,'')); | |
| 239 | + } | |
| 240 | 240 | |
| 241 | - $this->trapDB = $this->getDbByName($dbresource,true,true); | |
| 242 | - return; | |
| 243 | - } | |
| 241 | + $this->trapDB = $this->getDbByName($dbresource,true,true); | |
| 242 | + return; | |
| 243 | + } | |
| 244 | 244 | |
| 245 | 245 | |
| 246 | - /** | |
| 247 | - * Get IDO Database | |
| 248 | - * @return \Zend_Db_Adapter_Abstract|NULL returns DB connexion or null on error. | |
| 249 | - */ | |
| 250 | - public function getIdoDb() | |
| 251 | -    { | |
| 252 | - if ( $this->idoDB != null ) return $this->idoDB; | |
| 253 | - // TODO : get ido database directly from icingaweb2 config -> (or not if using only API) | |
| 254 | -        $dbresource=$this->trapController->Config()->get('config', 'IDOdatabase');; | |
| 246 | + /** | |
| 247 | + * Get IDO Database | |
| 248 | + * @return \Zend_Db_Adapter_Abstract|NULL returns DB connexion or null on error. | |
| 249 | + */ | |
| 250 | + public function getIdoDb() | |
| 251 | +	{ | |
| 252 | + if ( $this->idoDB != null ) return $this->idoDB; | |
| 253 | + // TODO : get ido database directly from icingaweb2 config -> (or not if using only API) | |
| 254 | +		$dbresource=$this->trapController->Config()->get('config', 'IDOdatabase');; | |
| 255 | 255 | |
| 256 | - if ( ! $dbresource ) | |
| 257 | -        { | |
| 258 | -            $this->trapController->redirectNow('trapdirector/settings?idodberror=1'); | |
| 259 | - return null; | |
| 260 | - } | |
| 256 | + if ( ! $dbresource ) | |
| 257 | +		{ | |
| 258 | +			$this->trapController->redirectNow('trapdirector/settings?idodberror=1'); | |
| 259 | + return null; | |
| 260 | + } | |
| 261 | 261 | |
| 262 | - try | |
| 263 | -        { | |
| 264 | - $dbconn = IcingaDbConnection::fromResourceName($dbresource); | |
| 265 | - } | |
| 266 | - catch (Exception $e) | |
| 267 | -        { | |
| 268 | -            $this->trapController->redirectNow('trapdirector/settings?idodberror=2'); | |
| 269 | - return null; | |
| 270 | - } | |
| 262 | + try | |
| 263 | +		{ | |
| 264 | + $dbconn = IcingaDbConnection::fromResourceName($dbresource); | |
| 265 | + } | |
| 266 | + catch (Exception $e) | |
| 267 | +		{ | |
| 268 | +			$this->trapController->redirectNow('trapdirector/settings?idodberror=2'); | |
| 269 | + return null; | |
| 270 | + } | |
| 271 | 271 | |
| 272 | - $this->idoDB = $dbconn; | |
| 273 | - return $this->idoDB; | |
| 274 | - } | |
| 272 | + $this->idoDB = $dbconn; | |
| 273 | + return $this->idoDB; | |
| 274 | + } | |
| 275 | 275 | |
| 276 | 276 | |
| 277 | - /** | |
| 278 | - * Get Zend adapter of DB. | |
| 279 | - * @return \Zend_Db_Adapter_Abstract|null | |
| 280 | - */ | |
| 281 | - public function getIdoDbConn() | |
| 282 | -    { | |
| 283 | - if ($this->getIdoDb() == null) return null; | |
| 284 | - return $this->getIdoDb()->getConnection(); | |
| 285 | - } | |
| 277 | + /** | |
| 278 | + * Get Zend adapter of DB. | |
| 279 | + * @return \Zend_Db_Adapter_Abstract|null | |
| 280 | + */ | |
| 281 | + public function getIdoDbConn() | |
| 282 | +	{ | |
| 283 | + if ($this->getIdoDb() == null) return null; | |
| 284 | + return $this->getIdoDb()->getConnection(); | |
| 285 | + } | |
| 286 | 286 | |
| 287 | - /** | |
| 288 | - * Get IDO Database | |
| 289 | - * @param boolean $test | |
| 290 | - * @throws DBException on error | |
| 291 | - */ | |
| 292 | - public function testGetIdoDb() | |
| 293 | -    { | |
| 294 | - // TODO : get ido database directly from icingaweb2 config -> (or not if using only API) | |
| 295 | -        $dbresource=$this->trapController->Config()->get('config', 'IDOdatabase');; | |
| 287 | + /** | |
| 288 | + * Get IDO Database | |
| 289 | + * @param boolean $test | |
| 290 | + * @throws DBException on error | |
| 291 | + */ | |
| 292 | + public function testGetIdoDb() | |
| 293 | +	{ | |
| 294 | + // TODO : get ido database directly from icingaweb2 config -> (or not if using only API) | |
| 295 | +		$dbresource=$this->trapController->Config()->get('config', 'IDOdatabase');; | |
| 296 | 296 | |
| 297 | - if ( ! $dbresource ) | |
| 298 | -        { | |
| 299 | - throw new DBException(array(1,'No database in config.ini')); | |
| 300 | - } | |
| 297 | + if ( ! $dbresource ) | |
| 298 | +		{ | |
| 299 | + throw new DBException(array(1,'No database in config.ini')); | |
| 300 | + } | |
| 301 | 301 | |
| 302 | - try | |
| 303 | -        { | |
| 304 | - $dbconn = IcingaDbConnection::fromResourceName($dbresource); | |
| 305 | - } | |
| 306 | - catch (Exception $e) | |
| 307 | -        { | |
| 308 | - throw new DBException( array(2,"Database $dbresource does not exists in IcingaWeb2") ); | |
| 309 | - } | |
| 302 | + try | |
| 303 | +		{ | |
| 304 | + $dbconn = IcingaDbConnection::fromResourceName($dbresource); | |
| 305 | + } | |
| 306 | + catch (Exception $e) | |
| 307 | +		{ | |
| 308 | + throw new DBException( array(2,"Database $dbresource does not exists in IcingaWeb2") ); | |
| 309 | + } | |
| 310 | 310 | |
| 311 | - try | |
| 312 | -        { | |
| 313 | - $query = $dbconn->select() | |
| 314 | -            ->from('icinga_dbversion',array('version')); | |
| 315 | - $version=$dbconn->fetchRow($query); | |
| 316 | - if ( ($version == null) || ! property_exists($version,'version') ) | |
| 317 | -            { | |
| 318 | - throw new DBException( array(4,"$dbresource does not look like an IDO database")); | |
| 319 | - } | |
| 320 | - } | |
| 321 | - catch (Exception $e) | |
| 322 | -        { | |
| 323 | - throw new DBException( array(3,"Error connecting to $dbresource : " . $e->getMessage())); | |
| 324 | - } | |
| 311 | + try | |
| 312 | +		{ | |
| 313 | + $query = $dbconn->select() | |
| 314 | +			->from('icinga_dbversion',array('version')); | |
| 315 | + $version=$dbconn->fetchRow($query); | |
| 316 | + if ( ($version == null) || ! property_exists($version,'version') ) | |
| 317 | +			{ | |
| 318 | + throw new DBException( array(4,"$dbresource does not look like an IDO database")); | |
| 319 | + } | |
| 320 | + } | |
| 321 | + catch (Exception $e) | |
| 322 | +		{ | |
| 323 | + throw new DBException( array(3,"Error connecting to $dbresource : " . $e->getMessage())); | |
| 324 | + } | |
| 325 | 325 | |
| 326 | - return; | |
| 327 | - } | |
| 326 | + return; | |
| 327 | + } | |
| 328 | 328 | |
| 329 | 329 | } | 
| 330 | 330 | \ No newline at end of file | 
| @@ -11,13 +11,12 @@ discard block | ||
| 11 | 11 | |
| 12 | 12 | //use Icinga\Web\Form as Form; | 
| 13 | 13 | /** Rules management | 
| 14 | - | |
| 15 | -*/ | |
| 14 | + */ | |
| 16 | 15 | class HandlerController extends TrapsController | 
| 17 | 16 |  { | 
| 18 | 17 | |
| 19 | 18 | /** index : list existing rules | 
| 20 | - */ | |
| 19 | + */ | |
| 21 | 20 | public function indexAction() | 
| 22 | 21 |  	{	 | 
| 23 | 22 | $this->checkReadPermission(); | 
| @@ -41,22 +40,22 @@ discard block | ||
| 41 | 40 | */ | 
| 42 | 41 | public function testruleAction() | 
| 43 | 42 |  	{ | 
| 44 | - $this->checkReadPermission(); | |
| 45 | -	    $this->getTabs()->add('get',array( | |
| 46 | - 'active' => true, | |
| 47 | -	        'label'		=> $this->translate('Test Rule'), | |
| 48 | - 'url' => Url::fromRequest() | |
| 49 | - )); | |
| 43 | + $this->checkReadPermission(); | |
| 44 | +		$this->getTabs()->add('get',array( | |
| 45 | + 'active' => true, | |
| 46 | +			'label'		=> $this->translate('Test Rule'), | |
| 47 | + 'url' => Url::fromRequest() | |
| 48 | + )); | |
| 50 | 49 | |
| 51 | 50 | |
| 52 | -	    if ($this->params->get('rule') !== null)  | |
| 53 | -	    { | |
| 54 | -	        $this->view->rule= $this->params->get('rule'); | |
| 55 | - } | |
| 56 | - else | |
| 57 | -	    { | |
| 58 | - $this->view->rule=''; | |
| 59 | - } | |
| 51 | +		if ($this->params->get('rule') !== null)  | |
| 52 | +		{ | |
| 53 | +			$this->view->rule= $this->params->get('rule'); | |
| 54 | + } | |
| 55 | + else | |
| 56 | +		{ | |
| 57 | + $this->view->rule=''; | |
| 58 | + } | |
| 60 | 59 | } | 
| 61 | 60 | |
| 62 | 61 | /** | 
| @@ -64,31 +63,31 @@ discard block | ||
| 64 | 63 | */ | 
| 65 | 64 | private function add_setup_vars() | 
| 66 | 65 |  	{ | 
| 67 | - // variables to send to view | |
| 68 | - $this->view->hostlist=array(); // host list to input datalist | |
| 69 | - $this->view->hostname=''; // Host name in input text | |
| 70 | - $this->view->serviceGet=false; // Set to true to get list of service if only one host set | |
| 71 | - $this->view->serviceSet=null; // Select service in services select (must have serviceGet=true). | |
| 72 | - $this->view->mainoid=''; // Trap OID | |
| 73 | - $this->view->mib=''; // Trap mib | |
| 74 | - $this->view->name=''; // Trap name | |
| 75 | - $this->view->trapListForMIB=array(); // Trap list if mib exists for trap | |
| 76 | - $this->view->objectList=array(); // objects sent with trap | |
| 77 | - $this->view->display=''; // Initial display | |
| 78 | - $this->view->rule=''; // rule display | |
| 79 | - $this->view->revertOK=''; // revert OK in seconds | |
| 80 | - $this->view->hostid=-1; // normally set by javascript serviceGet() | |
| 81 | - $this->view->ruleid=-1; // Rule id in DB for update & delete | |
| 82 | - $this->view->setToUpdate=false; // set form as update form | |
| 83 | - $this->view->setRuleMatch=-1; // set action on rule match (default nothing) | |
| 84 | - $this->view->setRuleNoMatch=-1; // set action on rule no match (default nothing) | |
| 66 | + // variables to send to view | |
| 67 | + $this->view->hostlist=array(); // host list to input datalist | |
| 68 | + $this->view->hostname=''; // Host name in input text | |
| 69 | + $this->view->serviceGet=false; // Set to true to get list of service if only one host set | |
| 70 | + $this->view->serviceSet=null; // Select service in services select (must have serviceGet=true). | |
| 71 | + $this->view->mainoid=''; // Trap OID | |
| 72 | + $this->view->mib=''; // Trap mib | |
| 73 | + $this->view->name=''; // Trap name | |
| 74 | + $this->view->trapListForMIB=array(); // Trap list if mib exists for trap | |
| 75 | + $this->view->objectList=array(); // objects sent with trap | |
| 76 | + $this->view->display=''; // Initial display | |
| 77 | + $this->view->rule=''; // rule display | |
| 78 | + $this->view->revertOK=''; // revert OK in seconds | |
| 79 | + $this->view->hostid=-1; // normally set by javascript serviceGet() | |
| 80 | + $this->view->ruleid=-1; // Rule id in DB for update & delete | |
| 81 | + $this->view->setToUpdate=false; // set form as update form | |
| 82 | + $this->view->setRuleMatch=-1; // set action on rule match (default nothing) | |
| 83 | + $this->view->setRuleNoMatch=-1; // set action on rule no match (default nothing) | |
| 85 | 84 | |
| 86 | - $this->view->selectGroup=false; // Select by group if true | |
| 87 | - $this->view->hostgroupid=-1; // host group id | |
| 88 | - $this->view->serviceGroupGet=false; // Get list of service for group (set serviceSet to select one) | |
| 85 | + $this->view->selectGroup=false; // Select by group if true | |
| 86 | + $this->view->hostgroupid=-1; // host group id | |
| 87 | + $this->view->serviceGroupGet=false; // Get list of service for group (set serviceSet to select one) | |
| 89 | 88 | |
| 90 | - $this->view->modifier=null; | |
| 91 | - $this->view->modified=null; | |
| 89 | + $this->view->modifier=null; | |
| 90 | + $this->view->modified=null; | |
| 92 | 91 | } | 
| 93 | 92 | |
| 94 | 93 | /** | 
| @@ -97,102 +96,102 @@ discard block | ||
| 97 | 96 | */ | 
| 98 | 97 | private function add_from_existing($trapid) | 
| 99 | 98 |  	{ | 
| 100 | - /********** Setup from existing trap ***************/ | |
| 101 | - // Get the full trap info | |
| 102 | - $trapDetail=$this->getTrapDetail($trapid); | |
| 99 | + /********** Setup from existing trap ***************/ | |
| 100 | + // Get the full trap info | |
| 101 | + $trapDetail=$this->getTrapDetail($trapid); | |
| 103 | 102 | |
| 104 | - $hostfilter=$trapDetail->source_ip; | |
| 103 | + $hostfilter=$trapDetail->source_ip; | |
| 105 | 104 | |
| 106 | - // Get host | |
| 107 | - try | |
| 108 | -	    { | |
| 109 | - $hosts=$this->getUIDatabase()->getHostByIP($hostfilter); | |
| 110 | - } | |
| 111 | - catch (Exception $e) | |
| 112 | -	    { | |
| 113 | -	        $this->displayExitError('Add handler : get host by IP/Name ',$e->getMessage()); | |
| 114 | - } | |
| 105 | + // Get host | |
| 106 | + try | |
| 107 | +		{ | |
| 108 | + $hosts=$this->getUIDatabase()->getHostByIP($hostfilter); | |
| 109 | + } | |
| 110 | + catch (Exception $e) | |
| 111 | +		{ | |
| 112 | +			$this->displayExitError('Add handler : get host by IP/Name ',$e->getMessage()); | |
| 113 | + } | |
| 115 | 114 | |
| 116 | 115 | |
| 117 | - // if one unique host found -> put id text input | |
| 118 | -	    if (count($hosts)==1) { | |
| 119 | - $this->view->hostname=$hosts[0]->name; | |
| 120 | - //$hostid=$hosts[0]->id; | |
| 121 | - // Tell JS to get services when page is loaded | |
| 122 | - $this->view->serviceGet=true; | |
| 116 | + // if one unique host found -> put id text input | |
| 117 | +		if (count($hosts)==1) { | |
| 118 | + $this->view->hostname=$hosts[0]->name; | |
| 119 | + //$hostid=$hosts[0]->id; | |
| 120 | + // Tell JS to get services when page is loaded | |
| 121 | + $this->view->serviceGet=true; | |
| 123 | 122 | |
| 124 | - } | |
| 125 | - else | |
| 126 | -	    { | |
| 127 | - foreach($hosts as $key=>$val) | |
| 128 | -	        { | |
| 129 | - array_push($this->view->hostlist,$hosts[$key]->name); | |
| 130 | - } | |
| 131 | - } | |
| 123 | + } | |
| 124 | + else | |
| 125 | +		{ | |
| 126 | + foreach($hosts as $key=>$val) | |
| 127 | +			{ | |
| 128 | + array_push($this->view->hostlist,$hosts[$key]->name); | |
| 129 | + } | |
| 130 | + } | |
| 132 | 131 | |
| 133 | - // set up trap oid and objects received by the trap | |
| 132 | + // set up trap oid and objects received by the trap | |
| 134 | 133 | |
| 135 | - $this->view->mainoid=$trapDetail->trap_oid; | |
| 136 | - if ($trapDetail->trap_name_mib != null) | |
| 137 | -	    { | |
| 138 | - $this->view->mib=$trapDetail->trap_name_mib; | |
| 139 | - $this->view->name=$trapDetail->trap_name; | |
| 140 | - $this->view->trapListForMIB=$this->getMIB() | |
| 141 | - ->getTrapList($trapDetail->trap_name_mib); | |
| 142 | - } | |
| 134 | + $this->view->mainoid=$trapDetail->trap_oid; | |
| 135 | + if ($trapDetail->trap_name_mib != null) | |
| 136 | +		{ | |
| 137 | + $this->view->mib=$trapDetail->trap_name_mib; | |
| 138 | + $this->view->name=$trapDetail->trap_name; | |
| 139 | + $this->view->trapListForMIB=$this->getMIB() | |
| 140 | + ->getTrapList($trapDetail->trap_name_mib); | |
| 141 | + } | |
| 143 | 142 | |
| 144 | - // Get all objects that can be in trap from MIB | |
| 145 | - $allObjects=$this->getMIB()->getObjectList($trapDetail->trap_oid); | |
| 146 | - // Get all objects in current Trap | |
| 147 | - $currentTrapObjects=$this->getTrapobjects($trapid); | |
| 148 | - $oid_index=1; | |
| 149 | - foreach ($currentTrapObjects as $key => $val) | |
| 150 | -	    { | |
| 151 | - $currentObjectType='Unknown'; | |
| 152 | - $currentObjectTypeEnum='Unknown'; | |
| 153 | - if (isset($allObjects[$val->oid]['type'])) | |
| 154 | -	        { | |
| 155 | - $currentObjectType=$allObjects[$val->oid]['type']; | |
| 156 | - $currentObjectTypeEnum=$allObjects[$val->oid]['type_enum']; | |
| 157 | - } | |
| 158 | - $currentObject=array( | |
| 159 | - $oid_index, | |
| 160 | - $val->oid, | |
| 161 | - $val->oid_name_mib, | |
| 162 | - $val->oid_name, | |
| 163 | - $val->value, | |
| 164 | - $currentObjectType, | |
| 165 | - $currentObjectTypeEnum | |
| 166 | - ); | |
| 167 | - $oid_index++; | |
| 168 | - array_push($this->view->objectList,$currentObject); | |
| 169 | - // set currrent object to null in allObjects | |
| 170 | - if (isset($allObjects[$val->oid])) | |
| 171 | -	        { | |
| 172 | - $allObjects[$val->oid]=null; | |
| 173 | - } | |
| 174 | - } | |
| 175 | - if ($allObjects!=null) // in case trap doesn't have objects or is not resolved | |
| 176 | -	    { | |
| 177 | - foreach ($allObjects as $key => $val) | |
| 178 | -	        { | |
| 179 | -	            if ($val==null) { continue; } | |
| 180 | - array_push($this->view->objectList, array( | |
| 181 | - $oid_index, | |
| 182 | - $key, | |
| 183 | - $allObjects[$key]['mib'], | |
| 184 | - $allObjects[$key]['name'], | |
| 185 | - '', | |
| 186 | - $allObjects[$key]['type'], | |
| 187 | - $allObjects[$key]['type_enum'] | |
| 188 | - )); | |
| 189 | - $oid_index++; | |
| 190 | - } | |
| 191 | - } | |
| 143 | + // Get all objects that can be in trap from MIB | |
| 144 | + $allObjects=$this->getMIB()->getObjectList($trapDetail->trap_oid); | |
| 145 | + // Get all objects in current Trap | |
| 146 | + $currentTrapObjects=$this->getTrapobjects($trapid); | |
| 147 | + $oid_index=1; | |
| 148 | + foreach ($currentTrapObjects as $key => $val) | |
| 149 | +		{ | |
| 150 | + $currentObjectType='Unknown'; | |
| 151 | + $currentObjectTypeEnum='Unknown'; | |
| 152 | + if (isset($allObjects[$val->oid]['type'])) | |
| 153 | +			{ | |
| 154 | + $currentObjectType=$allObjects[$val->oid]['type']; | |
| 155 | + $currentObjectTypeEnum=$allObjects[$val->oid]['type_enum']; | |
| 156 | + } | |
| 157 | + $currentObject=array( | |
| 158 | + $oid_index, | |
| 159 | + $val->oid, | |
| 160 | + $val->oid_name_mib, | |
| 161 | + $val->oid_name, | |
| 162 | + $val->value, | |
| 163 | + $currentObjectType, | |
| 164 | + $currentObjectTypeEnum | |
| 165 | + ); | |
| 166 | + $oid_index++; | |
| 167 | + array_push($this->view->objectList,$currentObject); | |
| 168 | + // set currrent object to null in allObjects | |
| 169 | + if (isset($allObjects[$val->oid])) | |
| 170 | +			{ | |
| 171 | + $allObjects[$val->oid]=null; | |
| 172 | + } | |
| 173 | + } | |
| 174 | + if ($allObjects!=null) // in case trap doesn't have objects or is not resolved | |
| 175 | +		{ | |
| 176 | + foreach ($allObjects as $key => $val) | |
| 177 | +			{ | |
| 178 | +				if ($val==null) { continue; } | |
| 179 | + array_push($this->view->objectList, array( | |
| 180 | + $oid_index, | |
| 181 | + $key, | |
| 182 | + $allObjects[$key]['mib'], | |
| 183 | + $allObjects[$key]['name'], | |
| 184 | + '', | |
| 185 | + $allObjects[$key]['type'], | |
| 186 | + $allObjects[$key]['type_enum'] | |
| 187 | + )); | |
| 188 | + $oid_index++; | |
| 189 | + } | |
| 190 | + } | |
| 192 | 191 | |
| 193 | - // Add a simple display | |
| 194 | - $this->view->display='Trap '.$trapDetail->trap_name.' received'; | |
| 195 | - $this->view->create_basic_rule=true; | |
| 192 | + // Add a simple display | |
| 193 | + $this->view->display='Trap '.$trapDetail->trap_name.' received'; | |
| 194 | + $this->view->create_basic_rule=true; | |
| 196 | 195 | } | 
| 197 | 196 | |
| 198 | 197 | /** | 
| @@ -201,29 +200,29 @@ discard block | ||
| 201 | 200 | */ | 
| 202 | 201 | private function add_check_host_exists($ruleDetail) | 
| 203 | 202 |  	{ | 
| 204 | - // Check if hostname still exists | |
| 205 | - $host_get=$this->getUIDatabase()->getHostByName($this->view->hostname); | |
| 203 | + // Check if hostname still exists | |
| 204 | + $host_get=$this->getUIDatabase()->getHostByName($this->view->hostname); | |
| 206 | 205 | |
| 207 | - if (count($host_get)==0) | |
| 208 | -	    { | |
| 209 | - $this->view->warning_message='Host '.$this->view->hostname. ' doesn\'t exists anymore'; | |
| 210 | - $this->view->serviceGet=false; | |
| 211 | - } | |
| 212 | - else | |
| 213 | -	    { | |
| 214 | - // Tell JS to get services when page is loaded | |
| 215 | - $this->view->serviceGet=true; | |
| 216 | - // get service id for form to set : | |
| 217 | - $serviceID=$this->getUIDatabase()->getServiceIDByName($this->view->hostname,$ruleDetail->service_name); | |
| 218 | - if (count($serviceID) ==0) | |
| 219 | -	        { | |
| 220 | - $this->view->warning_message=' Service '.$ruleDetail->service_name. ' doesn\'t exists anymore'; | |
| 221 | - } | |
| 222 | - else | |
| 223 | -	        { | |
| 224 | - $this->view->serviceSet=$serviceID[0]->id; | |
| 225 | - } | |
| 226 | - } | |
| 206 | + if (count($host_get)==0) | |
| 207 | +		{ | |
| 208 | + $this->view->warning_message='Host '.$this->view->hostname. ' doesn\'t exists anymore'; | |
| 209 | + $this->view->serviceGet=false; | |
| 210 | + } | |
| 211 | + else | |
| 212 | +		{ | |
| 213 | + // Tell JS to get services when page is loaded | |
| 214 | + $this->view->serviceGet=true; | |
| 215 | + // get service id for form to set : | |
| 216 | + $serviceID=$this->getUIDatabase()->getServiceIDByName($this->view->hostname,$ruleDetail->service_name); | |
| 217 | + if (count($serviceID) ==0) | |
| 218 | +			{ | |
| 219 | + $this->view->warning_message=' Service '.$ruleDetail->service_name. ' doesn\'t exists anymore'; | |
| 220 | + } | |
| 221 | + else | |
| 222 | +			{ | |
| 223 | + $this->view->serviceSet=$serviceID[0]->id; | |
| 224 | + } | |
| 225 | + } | |
| 227 | 226 | } | 
| 228 | 227 | |
| 229 | 228 | /** | 
| @@ -232,33 +231,33 @@ discard block | ||
| 232 | 231 | */ | 
| 233 | 232 | private function add_check_hostgroup_exists($ruleDetail) | 
| 234 | 233 |  	{ | 
| 235 | - // Check if groupe exists | |
| 236 | - $group_get=$this->getUIDatabase()->getHostGroupByName($this->view->hostgroupname); | |
| 237 | - if (count($group_get)==0) | |
| 238 | -	    { | |
| 239 | - $this->view->warning_message='HostGroup '.$this->view->hostgroupname. ' doesn\'t exists anymore'; | |
| 240 | - $this->view->serviceGroupGet=false; | |
| 241 | - } | |
| 242 | - else | |
| 243 | -	    { | |
| 244 | - $grpServices=$this->getUIDatabase()->getServicesByHostGroupid($group_get[0]->id); | |
| 245 | - $foundGrpService=0; | |
| 246 | - foreach ($grpServices as $grpService) | |
| 247 | -	        { | |
| 248 | - if ($grpService[0] == $ruleDetail->service_name) | |
| 249 | -	            { | |
| 250 | - $foundGrpService=1; | |
| 251 | - $this->view->serviceSet=$ruleDetail->service_name; | |
| 252 | - } | |
| 253 | - } | |
| 234 | + // Check if groupe exists | |
| 235 | + $group_get=$this->getUIDatabase()->getHostGroupByName($this->view->hostgroupname); | |
| 236 | + if (count($group_get)==0) | |
| 237 | +		{ | |
| 238 | + $this->view->warning_message='HostGroup '.$this->view->hostgroupname. ' doesn\'t exists anymore'; | |
| 239 | + $this->view->serviceGroupGet=false; | |
| 240 | + } | |
| 241 | + else | |
| 242 | +		{ | |
| 243 | + $grpServices=$this->getUIDatabase()->getServicesByHostGroupid($group_get[0]->id); | |
| 244 | + $foundGrpService=0; | |
| 245 | + foreach ($grpServices as $grpService) | |
| 246 | +			{ | |
| 247 | + if ($grpService[0] == $ruleDetail->service_name) | |
| 248 | +				{ | |
| 249 | + $foundGrpService=1; | |
| 250 | + $this->view->serviceSet=$ruleDetail->service_name; | |
| 251 | + } | |
| 252 | + } | |
| 254 | 253 | |
| 255 | - // Tell JS to get services when page is loaded | |
| 256 | - $this->view->serviceGroupGet=true; | |
| 257 | - if ($foundGrpService==0) | |
| 258 | -	        { | |
| 259 | - $this->view->warning_message.=' Service '.$ruleDetail->service_name. ' doesn\'t exists anymore'; | |
| 260 | - } | |
| 261 | - } | |
| 254 | + // Tell JS to get services when page is loaded | |
| 255 | + $this->view->serviceGroupGet=true; | |
| 256 | + if ($foundGrpService==0) | |
| 257 | +			{ | |
| 258 | + $this->view->warning_message.=' Service '.$ruleDetail->service_name. ' doesn\'t exists anymore'; | |
| 259 | + } | |
| 260 | + } | |
| 262 | 261 | } | 
| 263 | 262 | |
| 264 | 263 | /** | 
| @@ -270,52 +269,52 @@ discard block | ||
| 270 | 269 | */ | 
| 271 | 270 | private function add_create_trap_object_list(&$display, &$rule) | 
| 272 | 271 |  	{ | 
| 273 | - $curObjectList=array(); | |
| 274 | - $index=1; | |
| 275 | - // check in display & rule for : OID(<oid>) | |
| 276 | - $matches=array(); | |
| 277 | -	    while ( preg_match('/_OID\(([\.0-9\*]+)\)/',$display,$matches) || | |
| 278 | -	        preg_match('/_OID\(([\.0-9\*]+)\)/',$rule,$matches)) | |
| 279 | -	    { | |
| 280 | - $curOid=$matches[1]; | |
| 272 | + $curObjectList=array(); | |
| 273 | + $index=1; | |
| 274 | + // check in display & rule for : OID(<oid>) | |
| 275 | + $matches=array(); | |
| 276 | +		while ( preg_match('/_OID\(([\.0-9\*]+)\)/',$display,$matches) || | |
| 277 | +			preg_match('/_OID\(([\.0-9\*]+)\)/',$rule,$matches)) | |
| 278 | +		{ | |
| 279 | + $curOid=$matches[1]; | |
| 281 | 280 | |
| 282 | -	        if ( (preg_match('/\*/',$curOid) == 0 )  | |
| 283 | - && ($object=$this->getMIB()->translateOID($curOid)) != null) | |
| 284 | -	        { | |
| 285 | - array_push($curObjectList, array( | |
| 286 | - $index, | |
| 287 | - $curOid, | |
| 288 | - $object['mib'], | |
| 289 | - $object['name'], | |
| 290 | - '', | |
| 291 | - $object['type'], | |
| 292 | - $object['type_enum'] | |
| 293 | - )); | |
| 294 | - } | |
| 295 | - else | |
| 296 | -	        { | |
| 297 | - array_push($curObjectList, array( | |
| 298 | - $index, | |
| 299 | - $curOid, | |
| 300 | - 'not found', | |
| 301 | - 'not found', | |
| 302 | - '', | |
| 303 | - 'not found', | |
| 304 | - 'not found' | |
| 305 | - )); | |
| 306 | - } | |
| 307 | -	        $curOid = preg_replace('/\*/','\*',$curOid); | |
| 308 | -	        $display=preg_replace('/_OID\('.$curOid.'\)/','\$'.$index.'\$',$display); | |
| 309 | -	        $rule=preg_replace('/_OID\('.$curOid.'\)/','\$'.$index.'\$',$rule); | |
| 310 | - $index++; | |
| 311 | - } | |
| 312 | - return $curObjectList; | |
| 281 | +			if ( (preg_match('/\*/',$curOid) == 0 )  | |
| 282 | + && ($object=$this->getMIB()->translateOID($curOid)) != null) | |
| 283 | +			{ | |
| 284 | + array_push($curObjectList, array( | |
| 285 | + $index, | |
| 286 | + $curOid, | |
| 287 | + $object['mib'], | |
| 288 | + $object['name'], | |
| 289 | + '', | |
| 290 | + $object['type'], | |
| 291 | + $object['type_enum'] | |
| 292 | + )); | |
| 293 | + } | |
| 294 | + else | |
| 295 | +			{ | |
| 296 | + array_push($curObjectList, array( | |
| 297 | + $index, | |
| 298 | + $curOid, | |
| 299 | + 'not found', | |
| 300 | + 'not found', | |
| 301 | + '', | |
| 302 | + 'not found', | |
| 303 | + 'not found' | |
| 304 | + )); | |
| 305 | + } | |
| 306 | +			$curOid = preg_replace('/\*/','\*',$curOid); | |
| 307 | +			$display=preg_replace('/_OID\('.$curOid.'\)/','\$'.$index.'\$',$display); | |
| 308 | +			$rule=preg_replace('/_OID\('.$curOid.'\)/','\$'.$index.'\$',$rule); | |
| 309 | + $index++; | |
| 310 | + } | |
| 311 | + return $curObjectList; | |
| 313 | 312 | } | 
| 314 | 313 | |
| 315 | 314 | /** Add a handler | 
| 316 | - * Get params fromid : setup from existing trap (id of trap table) | |
| 317 | - * Get param ruleid : edit from existing handler (id of rule table) | |
| 318 | - */ | |
| 315 | + * Get params fromid : setup from existing trap (id of trap table) | |
| 316 | + * Get param ruleid : edit from existing handler (id of rule table) | |
| 317 | + */ | |
| 319 | 318 | public function addAction() | 
| 320 | 319 |  	{ | 
| 321 | 320 | $this->checkConfigPermission(); | 
| @@ -334,8 +333,8 @@ discard block | ||
| 334 | 333 | //$this->view->trapvalues=false; // Set to true to display 'value' colum in objects | 
| 335 | 334 | |
| 336 | 335 |  		if (($trapid = $this->params->get('fromid')) !== null) { | 
| 337 | - /********** Setup from existing trap ***************/ | |
| 338 | - $this->add_from_existing($trapid); | |
| 336 | + /********** Setup from existing trap ***************/ | |
| 337 | + $this->add_from_existing($trapid); | |
| 339 | 338 | return; | 
| 340 | 339 | } | 
| 341 | 340 | |
| @@ -360,14 +359,14 @@ discard block | ||
| 360 | 359 | $this->view->warning_message=''; | 
| 361 | 360 | if ($this->view->hostname != null) | 
| 362 | 361 |  			{ | 
| 363 | - $this->view->selectGroup=false; | |
| 364 | - // Check if hostname still exists | |
| 365 | - $this->add_check_host_exists($ruleDetail); | |
| 362 | + $this->view->selectGroup=false; | |
| 363 | + // Check if hostname still exists | |
| 364 | + $this->add_check_host_exists($ruleDetail); | |
| 366 | 365 | } | 
| 367 | 366 | else | 
| 368 | 367 |  			{ | 
| 369 | - $this->view->selectGroup=true; | |
| 370 | - $this->add_check_hostgroup_exists($ruleDetail); // Check if groupe exists | |
| 368 | + $this->view->selectGroup=true; | |
| 369 | + $this->add_check_hostgroup_exists($ruleDetail); // Check if groupe exists | |
| 371 | 370 | } | 
| 372 | 371 | |
| 373 | 372 | $this->view->mainoid=$ruleDetail->trap_oid; | 
| @@ -395,9 +394,9 @@ discard block | ||
| 395 | 394 | } | 
| 396 | 395 | |
| 397 | 396 | /** Validate form and output message to user | 
| 398 | - * @param in postdata | |
| 399 | - * @return string status : OK / <Message> | |
| 400 | - **/ | |
| 397 | + * @param in postdata | |
| 398 | + * @return string status : OK / <Message> | |
| 399 | + **/ | |
| 401 | 400 | protected function handlerformAction() | 
| 402 | 401 |  	{ | 
| 403 | 402 | $postData=$this->getRequest()->getPost(); | 
| @@ -428,7 +427,7 @@ discard block | ||
| 428 | 427 |  		{ | 
| 429 | 428 | try | 
| 430 | 429 |  			{ | 
| 431 | - $this->getUIDatabase()->deleteRule($postData[$params['db_rule']['post']]); | |
| 430 | + $this->getUIDatabase()->deleteRule($postData[$params['db_rule']['post']]); | |
| 432 | 431 | } | 
| 433 | 432 | catch (Exception $e) | 
| 434 | 433 |  			{ | 
| @@ -438,7 +437,7 @@ discard block | ||
| 438 | 437 | //$this->Module()-> | 
| 439 | 438 | $this->_helper->json(array( | 
| 440 | 439 | 'status'=>'OK', | 
| 441 | - 'redirect'=>'trapdirector/handler' | |
| 440 | + 'redirect'=>'trapdirector/handler' | |
| 442 | 441 | |
| 443 | 442 | )); | 
| 444 | 443 | } | 
| @@ -465,7 +464,7 @@ discard block | ||
| 465 | 464 | $isHostGroup=($params['hostgroup']['val'] == 1)?true:false; | 
| 466 | 465 | if (! $isHostGroup ) | 
| 467 | 466 |  			{  // checks if selection by host  | 
| 468 | - $hostAddr=$this->getUIDatabase()->getHostInfoByID($params['hostid']['val']); | |
| 467 | + $hostAddr=$this->getUIDatabase()->getHostInfoByID($params['hostid']['val']); | |
| 469 | 468 | $params['ip4']['val']=$hostAddr->ip4; | 
| 470 | 469 | $params['ip6']['val']=$hostAddr->ip6; | 
| 471 | 470 | $checkHostName=$hostAddr->name; | 
| @@ -483,7 +482,7 @@ discard block | ||
| 483 | 482 | } | 
| 484 | 483 | else | 
| 485 | 484 |  			{ | 
| 486 | - $object=$this->getUIDatabase()->getObjectNameByid($params['hostid']['val']); | |
| 485 | + $object=$this->getUIDatabase()->getObjectNameByid($params['hostid']['val']); | |
| 487 | 486 | if ($params['host_name']['val'] != $object->name1) | 
| 488 | 487 |  				{ | 
| 489 | 488 |  					$this->_helper->json(array('status'=>"Invalid object group id : Please re enter service")); | 
| @@ -504,11 +503,11 @@ discard block | ||
| 504 | 503 | // echo '<br>'; print_r($dbparams);echo '<br>'; | 
| 505 | 504 | if ($params['db_rule']['val'] == -1 ) | 
| 506 | 505 |  			{ | 
| 507 | - $ruleID=$this->getUIDatabase()->addHandlerRule($dbparams); | |
| 506 | + $ruleID=$this->getUIDatabase()->addHandlerRule($dbparams); | |
| 508 | 507 | } | 
| 509 | 508 | else | 
| 510 | 509 |  			{ | 
| 511 | - $this->getUIDatabase()->updateHandlerRule($dbparams,$params['db_rule']['val']); | |
| 510 | + $this->getUIDatabase()->updateHandlerRule($dbparams,$params['db_rule']['val']); | |
| 512 | 511 | $ruleID=$params['db_rule']['val']; | 
| 513 | 512 | } | 
| 514 | 513 | } | 
| @@ -522,9 +521,9 @@ discard block | ||
| 522 | 521 | } | 
| 523 | 522 | |
| 524 | 523 | /** Get trap detail by trapid. | 
| 525 | - * @param integer $trapid : id of trap in received table | |
| 526 | - * @return array (objects) | |
| 527 | - */ | |
| 524 | + * @param integer $trapid : id of trap in received table | |
| 525 | + * @return array (objects) | |
| 526 | + */ | |
| 528 | 527 | protected function getTrapDetail($trapid) | 
| 529 | 528 |  	{ | 
| 530 | 529 |  		if (!preg_match('/^[0-9]+$/',$trapid)) { throw new Exception('Invalid id');  } | 
| @@ -540,14 +539,14 @@ discard block | ||
| 540 | 539 | } | 
| 541 | 540 | try | 
| 542 | 541 |  		{		 | 
| 543 | - $query = $dbConn->select() | |
| 542 | + $query = $dbConn->select() | |
| 544 | 543 | ->from($this->getModuleConfig()->getTrapTableName(),$elmts) | 
| 545 | 544 |  				->where('id=?',$trapid); | 
| 546 | 545 | $trapDetail=$dbConn->fetchRow($query); | 
| 547 | 546 | if ( $trapDetail == null ) | 
| 548 | 547 |  			{ | 
| 549 | - $trapDetail = 'NULL'; | |
| 550 | -			    throw new Exception('No traps was found with id = '.$trapid); | |
| 548 | + $trapDetail = 'NULL'; | |
| 549 | +				throw new Exception('No traps was found with id = '.$trapid); | |
| 551 | 550 | } | 
| 552 | 551 | } | 
| 553 | 552 | catch (Exception $e) | 
| @@ -561,9 +560,9 @@ discard block | ||
| 561 | 560 | } | 
| 562 | 561 | |
| 563 | 562 | /** Get trap objects | 
| 564 | - * @param integer $trapid : trap id | |
| 565 | - * @return array : full column in db of trap id | |
| 566 | - */ | |
| 563 | + * @param integer $trapid : trap id | |
| 564 | + * @return array : full column in db of trap id | |
| 565 | + */ | |
| 567 | 566 | protected function getTrapobjects($trapid) | 
| 568 | 567 |  	{	 | 
| 569 | 568 |  		if (!preg_match('/^[0-9]+$/',$trapid)) { throw new Exception('Invalid id');  } | 
| @@ -579,7 +578,7 @@ discard block | ||
| 579 | 578 | } | 
| 580 | 579 | try | 
| 581 | 580 |  		{		 | 
| 582 | - $query = $dbConn->select() | |
| 581 | + $query = $dbConn->select() | |
| 583 | 582 | ->from($this->moduleConfig->getTrapDataTableName(),$data_elmts) | 
| 584 | 583 |  				->where('trap_id=?',$trapid); | 
| 585 | 584 | $trapDetail=$dbConn->fetchAll($query); | 
| @@ -595,10 +594,10 @@ discard block | ||
| 595 | 594 | } | 
| 596 | 595 | |
| 597 | 596 | /** Get rule detail by ruleid. | 
| 598 | - * @param integer $ruleid int id of rule in rule table | |
| 599 | - * @return object : column objects in db | |
| 600 | - * | |
| 601 | - */ | |
| 597 | + * @param integer $ruleid int id of rule in rule table | |
| 598 | + * @return object : column objects in db | |
| 599 | + * | |
| 600 | + */ | |
| 602 | 601 | protected function getRuleDetail($ruleid) | 
| 603 | 602 |  	{ | 
| 604 | 603 |  		if (!preg_match('/^[0-9]+$/',$ruleid)) { throw new Exception('Invalid id');  } | 
| @@ -609,7 +608,7 @@ discard block | ||
| 609 | 608 | // *************** Get main data | 
| 610 | 609 | try | 
| 611 | 610 |  		{		 | 
| 612 | - $query = $dbConn->select() | |
| 611 | + $query = $dbConn->select() | |
| 613 | 612 | ->from($this->getModuleConfig()->getTrapRuleName(),$queryArray) | 
| 614 | 613 |  				->where('id=?',$ruleid); | 
| 615 | 614 | $ruleDetail=$dbConn->fetchRow($query); | 
| @@ -626,7 +625,7 @@ discard block | ||
| 626 | 625 | } | 
| 627 | 626 | |
| 628 | 627 | /** Setup tabs for rules | 
| 629 | - */ | |
| 628 | + */ | |
| 630 | 629 | protected function prepareTabs() | 
| 631 | 630 |  	{ | 
| 632 | 631 |  		return $this->getTabs()->add('status', array( |