/** * Format discovery rule. * * @param array $discoveryRule * * @return array */ protected function formatDiscoveryRule(array $discoveryRule) { $discoveryRule = $this->renameItemFields($discoveryRule); if (!empty($discoveryRule['item_prototypes'])) { foreach ($discoveryRule['item_prototypes'] as &$prototype) { $prototype = $this->renameItemFields($prototype); CArrayHelper::convertFieldToArray($prototype, 'applications'); } unset($prototype); } else { $discoveryRule['item_prototypes'] = array(); } if (!empty($discoveryRule['trigger_prototypes'])) { foreach ($discoveryRule['trigger_prototypes'] as &$trigger) { $trigger = $this->renameTriggerFields($trigger); } unset($trigger); } else { $discoveryRule['trigger_prototypes'] = array(); } if (!empty($discoveryRule['graph_prototypes'])) { foreach ($discoveryRule['graph_prototypes'] as &$graph) { $graph = $this->renameGraphFields($graph); } unset($graph); } else { $discoveryRule['graph_prototypes'] = array(); } if (!empty($discoveryRule['host_prototypes'])) { foreach ($discoveryRule['host_prototypes'] as &$hostPrototype) { CArrayHelper::convertFieldToArray($hostPrototype, 'group_prototypes'); CArrayHelper::convertFieldToArray($hostPrototype, 'templates'); } unset($hostPrototype); } else { $discoveryRule['host_prototypes'] = array(); } return $discoveryRule; }
/** * Format discovery rule. * * @param array $discoveryRule * * @return array */ protected function formatDiscoveryRule(array $discoveryRule) { $discoveryRule = $this->renameItemFields($discoveryRule); if (!empty($discoveryRule['item_prototypes'])) { foreach ($discoveryRule['item_prototypes'] as &$prototype) { $prototype = $this->renameItemFields($prototype); CArrayHelper::convertFieldToArray($prototype, 'applications'); } unset($prototype); } else { $discoveryRule['item_prototypes'] = array(); } if (!empty($discoveryRule['trigger_prototypes'])) { foreach ($discoveryRule['trigger_prototypes'] as &$trigger) { $trigger['expression'] = $this->triggerExpressionConverter->convert($trigger['expression']); $trigger = $this->renameTriggerFields($trigger); } unset($trigger); } else { $discoveryRule['trigger_prototypes'] = array(); } if (!empty($discoveryRule['graph_prototypes'])) { foreach ($discoveryRule['graph_prototypes'] as &$graph) { $graph = $this->renameGraphFields($graph); } unset($graph); } else { $discoveryRule['graph_prototypes'] = array(); } if (!empty($discoveryRule['host_prototypes'])) { foreach ($discoveryRule['host_prototypes'] as &$hostPrototype) { CArrayHelper::convertFieldToArray($hostPrototype, 'group_prototypes'); CArrayHelper::convertFieldToArray($hostPrototype, 'templates'); } unset($hostPrototype); } else { $discoveryRule['host_prototypes'] = array(); } if (!empty($discoveryRule['filter'])) { // array filter structure if (is_array($discoveryRule['filter'])) { CArrayHelper::convertFieldToArray($discoveryRule['filter'], 'conditions'); } else { list($filterMacro, $filterValue) = explode(':', $discoveryRule['filter']); if ($filterMacro) { $discoveryRule['filter'] = array('evaltype' => CONDITION_EVAL_TYPE_AND_OR, 'formula' => '', 'conditions' => array(array('macro' => $filterMacro, 'value' => $filterValue, 'operator' => CONDITION_OPERATOR_REGEXP))); } else { unset($discoveryRule['filter']); } } } return $discoveryRule; }