/** * 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]); } }
/** * 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]); } }
/** * Export * * @return void */ public function export() { parent::export(); $scs = $this->object->getList(array($this->object->getPrimaryKey(), $this->object->getUniqueLabelField())); $relobj = new Centreon_Object_Relation_Service_Category_Service(); $hostServiceRel = new Centreon_Object_Relation_Host_Service(); $svcObj = new Centreon_Object_Service(); foreach ($scs as $sc) { $scId = $sc[$this->object->getPrimaryKey()]; $scName = $sc[$this->object->getUniqueLabelField()]; $relations = $relobj->getTargetIdFromSourceId($relobj->getSecondKey(), $relobj->getFirstKey(), $scId); foreach ($relations as $serviceId) { $svcParam = $svcObj->getParameters($serviceId, array('service_description', 'service_register')); if ($svcParam['service_register'] == 1) { $elements = $hostServiceRel->getMergedParameters(array('host_name'), array('service_description'), -1, 0, null, null, array("service_id" => $serviceId), "AND"); foreach ($elements as $element) { echo $this->action . $this->delim . "addservice" . $this->delim . $scName . $this->delim . $element['host_name'] . "," . $element['service_description'] . "\n"; } } else { echo $this->action . $this->delim . "addservicetemplate" . $this->delim . $scName . $this->delim . $svcParam['service_description'] . "\n"; } } } }