AwsInspector\Command\Ec2\SshCommand::execute PHP Метод

execute() защищенный Метод

protected execute ( Symfony\Component\Console\Input\InputInterface $input, Symfony\Component\Console\Output\OutputInterface $output )
$input Symfony\Component\Console\Input\InputInterface
$output Symfony\Component\Console\Output\OutputInterface
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        Registry::set('output', $output);
        $instance = $input->getArgument('instance');
        $repository = new Repository();
        $instance = $repository->findEc2Instance($instance);
        if (!$instance instanceof Instance) {
            throw new \Exception('Could not find instance');
        }
        $output->writeln('[Found instance: ' . $instance->getDefaultUsername() . '@' . $instance->getConnectionIp() . ']');
        $connection = $instance->getSshConnection();
        if ($command = $input->getOption('command')) {
            $commandObj = new \AwsInspector\Ssh\Command($connection, $command);
            if ($input->getOption('print')) {
                $output->writeln($commandObj->__toString());
                return 0;
            }
            $res = $commandObj->exec();
            $output->writeln($res['output']);
            return $res['returnVar'];
        }
        if ($input->getOption('print')) {
            $output->writeln($connection->__toString());
            return 0;
        }
        if ($input->getOption('tunnel')) {
            $output->writeln('Establishing tunnel... (CTRL-C to close connection)');
            $connection->tunnel($input->getOption('tunnel'));
        } else {
            $connection->connect();
        }
        return 0;
    }