private function isCommandUsed(Command $entity) { if ($entity->getType() === Command::TYPE_SERVICE_CHECK) { return count($this->getServiceRepository()->findByCommand($entity)) !== 0; } if ($entity->getType() === Command::TYPE_SERVICE_NOTIFICATION) { return count($this->getContactRepository()->findByCommand($entity)) !== 0; } throw new \LogicException('Unknown command type: ' . $entity->getType()); }
public function connect(Application $app) { $controllers = $app['controllers_factory']; $namespace = 'devture_nagios'; $types = array_merge(Command::getTypes(), array('__TYPE__')); $controllers->get('/commands/{type}', 'devture_nagios.controller.command.api:listAction')->assert('type', implode('|', $types))->convert('type', function ($type) { return $type === '__TYPE__' ? Command::TYPE_SERVICE_CHECK : $type; })->bind($namespace . '.api.command.list'); $controllers->get('/hosts-info/{id}', 'devture_nagios.controller.host.api:infoAction')->value('id', null)->bind($namespace . '.api.host.info'); $controllers->post('/host/recheck-services/{id}/{recheckType}/{token}', 'devture_nagios.controller.host.api:recheckServicesAction')->assert('recheckType', 'all|failing|__RECHECK_TYPE__')->convert('recheckType', function ($type) { return $type === '__RECHECK_TYPE__' ? 'all' : $type; })->bind($namespace . '.api.host.recheck_services'); $controllers->get('/logs/{ifNewerThanId}', 'devture_nagios.controller.log.api:listAction')->value('ifNewerThanId', null)->bind($namespace . '.api.log.list'); return $controllers; }
/** * @param Command $entity * @param array $options * @return \Devture\Component\Form\Validator\ViolationsList */ public function validate($entity, array $options = array()) { $violations = parent::validate($entity, $options); $name = $entity->getName(); if (strlen($name) < 3 || !preg_match("/^[a-z][a-z0-9_\\-\\.]+\$/", $name)) { $violations->add('name', 'Invalid name.'); } else { try { $ent = $this->repository->findOneBy(array('name' => $name)); if (spl_object_hash($ent) !== spl_object_hash($entity)) { $violations->add('name', 'The name is already in use.'); } } catch (NotFound $e) { } } if (!in_array($entity->getType(), Command::getTypes())) { $violations->add('type', 'Invalid type.'); } $line = $entity->getLine(); if ($this->isEmpty($line)) { $violations->add('line', 'The command line cannot be empty.'); } else { if (strpos($line, "\n") !== false) { $violations->add('line', 'The command cannot contain a new line.'); } if (strpos($line, ';') !== false) { $violations->add('line', 'The command cannot contain `;` as that is considered a comment.'); } } $expectedArgumentsCount = $entity->getLineArgumentsCount(); $arguments = $entity->getArguments(); if (count($arguments) !== $expectedArgumentsCount) { $violations->add('arguments', 'Command expects %expected% arguments. Got only %provided%.', array('{{expected}}' => $expectedArgumentsCount, '{{provided}}' => count($arguments))); } foreach ($arguments as $argument) { $argumentId = $argument->getId(); if ($argumentId === null || !preg_match('/^\\$ARG([0-9]+)\\$$/', $argumentId)) { $violations->add('arguments', 'Invalid command argument id: %id%', array('%id%' => $argumentId)); } if ($this->isEmpty($argument->getDescription())) { $violations->add('arguments', 'Command argument descriptions cannot be empty.'); } } return $violations; }
public function findByCommand(Command $command) { return $this->findBy(array('commandId' => $command->getId()), array('sort' => array('name' => 1))); }
public function findByCommand(Command $command) { return $this->findBy(array('serviceNotificationCommandId' => $command->getId())); }
public function export(Command $entity) { return array('id' => (string) $entity->getId(), 'title' => $entity->getTitle()); }