示例#1
0
 /**
  * 
  * @param string $object
  * @param array $params
  */
 public function addMacroAction($object, $params)
 {
     $paramList = $this->parseObjectParams($params);
     //try {
     $repository = $this->repository;
     $sName = $this->objectName;
     $repository::transco($object);
     $aId = $repository::getListBySlugName($object[$sName]);
     if (count($aId) > 0) {
         $objectId = $aId[0]['id'];
     } else {
         throw new \Exception(static::OBJ_NOT_EXIST, 1);
     }
     switch ($this->objectName) {
         case 'hosttemplate':
         case 'host':
             CustomMacroRepository::setAttributesMap(self::$attributesMapHost);
             CustomMacroRepository::transco($paramList);
             if (isset($paramList['host_macro_name']) && isset($paramList['host_macro_value'])) {
                 $formatedParams = array($paramList['host_macro_name'] => array('value' => $paramList['host_macro_value'], 'is_password' => $paramList['is_password']));
             }
             CustomMacroRepository::saveHostCustomMacro($this->objectName, $objectId, $formatedParams, false);
             InputOutput::display("The macro '" . $paramList['host_macro_name'] . "' has been successfully added to the object", true, 'green');
             break;
         case 'servicetemplate':
             CustomMacroRepository::setAttributesMap(self::$attributesMapService);
             CustomMacroRepository::transco($paramList);
             if (isset($paramList['svc_macro_name']) && isset($paramList['svc_macro_value'])) {
                 $formatedParams = array($paramList['svc_macro_name'] => array('value' => $paramList['svc_macro_value'], 'is_password' => $paramList['is_password']));
             }
             CustomMacroRepository::saveServiceCustomMacro($this->objectName, $objectId, $formatedParams, false);
             InputOutput::display("The macro '" . $paramList['svc_macro_name'] . "' has been successfully added to the object", true, 'green');
             break;
         case 'service':
             CustomMacroRepository::setAttributesMap(self::$attributesMapService);
             CustomMacroRepository::transco($paramList);
             $aData = \CentreonConfiguration\Repository\ServiceRepository::getServiceBySlugs($object['service']);
             if (count($aData) == 0) {
                 throw new \Exception(static::OBJ_NOT_EXIST, 1);
             } else {
                 $objectId = $aData['service_id'];
                 $hostId = $aData['host_id'];
             }
             if (isset($paramList['svc_macro_name']) && isset($paramList['svc_macro_value'])) {
                 $formatedParams = array($paramList['svc_macro_name'] => array('value' => $paramList['svc_macro_value'], 'is_password' => $paramList['is_password']));
             }
             CustomMacroRepository::saveServiceCustomMacro($this->objectName, $objectId, $formatedParams, false, $hostId);
             InputOutput::display("The macro '" . $paramList['svc_macro_name'] . "' has been successfully added to the object", true, 'green');
             break;
         default:
             break;
     }
     /*} catch(\Exception $ex) {
           InputOutput::display($ex->getMessage(), true, 'red');
       }*/
 }