/** * Set severity * * @param string $parameters */ public function setseverity($parameters) { $params = explode($this->delim, $parameters); if (count($params) < 2) { throw new CentreonClapiException(self::MISSINGPARAMETER); } if (($serviceId = $this->getObjectId($params[self::ORDER_SVCDESC])) == 0) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[self::ORDER_SVCDESC]); } $severityObj = new Centreon_Object_Service_Category(); $severity = $severityObj->getIdByParameter($severityObj->getUniqueLabelField(), $params[1]); if (!isset($severity[0])) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[1]); } $k = $severityObj->getPrimaryKey(); $severityId = $severity[0][$k]; $severity = $severityObj->getParameters($severityId, array('level')); if ($severity['level']) { // can't delete with generic method $this->db->query("DELETE FROM service_categories_relation \n WHERE service_service_id = ? \n AND sc_id IN (SELECT sc_id FROM service_categories WHERE level > 0)", $serviceId); $rel = new Centreon_Object_Relation_Service_Category_Service(); $rel->insert($severityId, $serviceId); } else { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[1]); } }
/** * Set severity * * @param string $parameters */ public function setseverity($parameters) { $params = explode($this->delim, $parameters); if (count($params) < 3) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $rel = new Centreon_Object_Relation_Service_Category_Service(); $hostServiceRel = new Centreon_Object_Relation_Host_Service(); $elements = $hostServiceRel->getMergedParameters(array('host_id'), array('service_id'), -1, 0, null, null, array("host_name" => $params[0], "service_description" => $params[1]), "AND"); if (!count($elements)) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[0] . "/" . $params[1]); } $serviceId = $elements[0]['service_id']; $severityObj = new Centreon_Object_Service_Category(); $severity = $severityObj->getIdByParameter($severityObj->getUniqueLabelField(), $params[2]); if (!isset($severity[0])) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[2]); } $k = $severityObj->getPrimaryKey(); $severityId = $severity[0][$k]; $severity = $severityObj->getParameters($severityId, array('level')); if ($severity['level']) { // can't delete with generic method $this->db->query("DELETE FROM service_categories_relation \n WHERE service_service_id = ? \n AND sc_id IN (SELECT sc_id FROM service_categories WHERE level > 0)", $serviceId); $rel->insert($severityId, $serviceId); } else { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[2]); } }