/** * Inserts/updates custom macro * * @param string $parameters * @return void * @throws CentreonClapiException */ public function setmacro($parameters) { $params = explode($this->delim, $parameters); if (count($params) == 3) { $params[3] = 0; } if (($hostId = $this->getObjectId($params[self::ORDER_UNIQUENAME])) == 0) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[self::ORDER_UNIQUENAME]); } if (count($params) < self::NB_UPDATE_PARAMS) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $macroObj = new Centreon_Object_Host_Macro_Custom(); $macroList = $macroObj->getList($macroObj->getPrimaryKey(), -1, 0, null, null, array("host_host_id" => $hostId, "host_macro_name" => $this->wrapMacro($params[1])), "AND"); if (count($macroList)) { $macroObj->update($macroList[0][$macroObj->getPrimaryKey()], array('host_macro_value' => $params[2], 'is_password' => $params[3])); } else { $macroObj->insert(array('host_host_id' => $hostId, 'host_macro_name' => $this->wrapMacro($params[1]), 'host_macro_value' => $params[2], 'is_password' => $params[3])); } $this->addAuditLog('c', $hostId, $params[self::ORDER_UNIQUENAME], array($params[1] => $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) == 3) { $params[3] = 0; } if (($hostId = $this->getObjectId($params[self::ORDER_UNIQUENAME])) == 0) { throw new CentreonClapiException(self::OBJECT_NOT_FOUND . ":" . $params[self::ORDER_UNIQUENAME]); } if (count($params) < self::NB_UPDATE_PARAMS) { throw new CentreonClapiException(self::MISSINGPARAMETER); } $macroObj = new Centreon_Object_Host_Macro_Custom(); $macroList = $macroObj->getList($macroObj->getPrimaryKey(), -1, 0, null, null, array("host_host_id" => $hostId, "host_macro_name" => $this->wrapMacro($params[1])), "AND"); $maxOrder = $macroObj->getList('max(macro_order)', -1, 0, null, null, array("host_host_id" => $hostId)); if (empty($maxOrder)) { $macroOrder = 0; } else { $macroOrder = $maxOrder[0]["max(macro_order)"] + 1; } // disable the check if the macro added is already in host template with same value //if($this->hasMacroFromHostChanged($hostId,$params[1],$params[2],$cmdId = false)){ if (count($macroList)) { $macroObj->update($macroList[0][$macroObj->getPrimaryKey()], array('host_macro_value' => $params[2], 'is_password' => $params[3], 'description' => $params[4])); } else { $macroObj->insert(array('host_host_id' => $hostId, 'host_macro_name' => $this->wrapMacro($params[1]), 'host_macro_value' => $params[2], 'is_password' => $params[3], 'description' => $params[4], 'macro_order' => $macroOrder)); } $this->addAuditLog('c', $hostId, $params[self::ORDER_UNIQUENAME], array($params[1] => $params[2])); //} }