예제 #1
0
 /**
  * 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]));
     //}
 }