/** * Inserts/updates custom macro * * @param string $parameters * @return void * @throws CentreonClapiException */ public function setmacro($parameters) { $params = explode($this->delim, $parameters); if (count($params) == 4) { $params[4] = 0; } if (count($params) < 4) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $hostName = $params[0]; $serviceDescription = $params[1]; $relObject = new Centreon_Object_Relation_Host_Service(); $elements = $relObject->getMergedParameters(array('host_id'), array('service_id'), -1, 0, null, null, array("host_name" => $hostName, "service_description" => $serviceDescription), "AND"); if (!count($elements)) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $hostName . "/" . $serviceDescription); } $macroObj = new Centreon_Object_Service_Macro_Custom(); $macroList = $macroObj->getList($macroObj->getPrimaryKey(), -1, 0, null, null, array("svc_svc_id" => $elements[0]['service_id'], "svc_macro_name" => $this->wrapMacro($params[2])), "AND"); if (count($macroList)) { $macroObj->update($macroList[0][$macroObj->getPrimaryKey()], array('svc_macro_value' => $params[3], 'is_password' => $params[4])); } else { $macroObj->insert(array('svc_svc_id' => $elements[0]['service_id'], 'svc_macro_name' => $this->wrapMacro($params[2]), 'svc_macro_value' => $params[3], 'is_password' => $params[4])); } $this->addAuditLog('c', $elements[0]['service_id'], $hostName . ' - ' . $serviceDescription, array($params[2] => $params[3])); }
/** * Inserts/updates custom macro * * @param string $parameters * @return void * @throws CentreonClapiException */ public function setmacro($parameters) { $params = explode($this->delim, $parameters); if (count($params) < 3) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $elements = $this->object->getList("service_id", -1, 0, null, null, array('service_description' => $params[0], 'service_register' => 0), "AND"); if (!count($elements)) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[0]); } $macroObj = new Centreon_Object_Service_Macro_Custom(); $macroList = $macroObj->getList($macroObj->getPrimaryKey(), -1, 0, null, null, array("svc_svc_id" => $elements[0]['service_id'], "svc_macro_name" => $this->wrapMacro($params[1])), "AND"); if (count($macroList)) { $macroObj->update($macroList[0][$macroObj->getPrimaryKey()], array('svc_macro_value' => $params[2])); } else { $macroObj->insert(array('svc_svc_id' => $elements[0]['service_id'], 'svc_macro_name' => $this->wrapMacro($params[1]), 'svc_macro_value' => $params[2])); } }
/** * Inserts/updates custom macro * * @param string $parameters * @return void * @throws CentreonClapiException */ public function setmacro($parameters) { $params = explode($this->delim, $parameters); if (count($params) == 4) { $params[4] = 0; } if (count($params) < 4) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $hostName = $params[0]; $serviceDescription = $params[1]; $relObject = new Centreon_Object_Relation_Host_Service(); $elements = $relObject->getMergedParameters(array('host_id'), array('service_id'), -1, 0, null, null, array("host_name" => $hostName, "service_description" => $serviceDescription), "AND"); if (!count($elements)) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $hostName . "/" . $serviceDescription); } $macroObj = new Centreon_Object_Service_Macro_Custom(); $macroList = $macroObj->getList($macroObj->getPrimaryKey(), -1, 0, null, null, array("svc_svc_id" => $elements[0]['service_id'], "svc_macro_name" => $this->wrapMacro($params[2])), "AND"); $maxOrder = $macroObj->getList('max(macro_order)', -1, 0, null, null, array("svc_svc_id" => $elements[0]['service_id'])); if (empty($maxOrder)) { $macroOrder = 0; } else { $macroOrder = $maxOrder[0]["max(macro_order)"] + 1; } // disable the check if the macro added is already in service template with same value //if($this->hasMacroFromServiceChanged($this->db, $elements[0]['service_id'], $params[2], $params[3])){ if (count($macroList)) { $macroObj->update($macroList[0][$macroObj->getPrimaryKey()], array('svc_macro_value' => $params[3], 'is_password' => $params[4], 'description' => $params[5])); } else { $macroObj->insert(array('svc_svc_id' => $elements[0]['service_id'], 'svc_macro_name' => $this->wrapMacro($params[2]), 'svc_macro_value' => $params[3], 'is_password' => $params[4], 'description' => $params[5], 'macro_order' => $macroOrder)); } $this->addAuditLog('c', $elements[0]['service_id'], $hostName . ' - ' . $serviceDescription, array($params[2] => $params[3])); //} }