/** * Executes a subcommand * * @param string $subcommand * @param array $arguments * @param OutputInterface $output */ public function executeSubCommand($subcommand, $arguments, OutputInterface $output) { try { switch ($subcommand) { case 'create': $databaseIdentifier = array_shift($arguments); $options = $arguments; if (!$databaseIdentifier) { throw new \InvalidArgumentException('Missing database identifier argument', 1412524227); } $database = $this->coordinator->createDatabase($databaseIdentifier, $options); if ($database) { $output->writeln(sprintf('<info>Created database %s</info>', $databaseIdentifier)); } break; case 'drop': $databaseIdentifier = array_shift($arguments); if (!$databaseIdentifier) { throw new \InvalidArgumentException('Missing database identifier argument', 1412524227); } $this->coordinator->dropDatabase($databaseIdentifier); $output->writeln(sprintf('<info>Dropped database %s</info>', $databaseIdentifier)); break; case 'list': case 'll': $databases = $this->coordinator->listDatabases(); if ($databases) { $output->writeln('<info>Databases:</info>'); foreach ($databases as $databaseIdentifier) { $output->writeln($databaseIdentifier); } } else { $output->writeln('<info>No databases found</info>'); } break; default: throw new \InvalidArgumentException(sprintf('Undefined sub command "%s"', $subcommand), 1412525230); } } catch (\Exception $exception) { $output->writeln('<error>' . $exception->getMessage() . '</error>'); } }
/** * Action to display all databases * * @param RequestInfo $requestInfo * @return HandlerResultInterface */ public function getAllDbsAction(RequestInfo $requestInfo) { return new HandlerResult(200, $this->coordinator->listDatabases()); }