From 1c3007bcf962fbba62ad8fe16e4404443af8240a Mon Sep 17 00:00:00 2001 From: Jon Pugh Date: Tue, 25 Aug 2015 09:42:01 -0400 Subject: [PATCH 1/3] First steps at adding fixed ports. --- src/terra/Command/Environment/EnvironmentAdd.php | 4 ++++ src/terra/Config.php | 3 +++ src/terra/Factory/EnvironmentFactory.php | 2 +- src/terra/Terra.php | 16 ++++++++++++++++ 4 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/terra/Command/Environment/EnvironmentAdd.php b/src/terra/Command/Environment/EnvironmentAdd.php index 2df3889..018a71c 100644 --- a/src/terra/Command/Environment/EnvironmentAdd.php +++ b/src/terra/Command/Environment/EnvironmentAdd.php @@ -127,6 +127,7 @@ protected function execute(InputInterface $input, OutputInterface $output) 'path' => $path, 'document_root' => '', 'url' => '', + 'port' => '', 'version' => $input->getOption('ref'), ); @@ -143,6 +144,9 @@ protected function execute(InputInterface $input, OutputInterface $output) // Save current branch $environment['version'] = $environmentFactory->getRepo()->getCurrentBranch(); + // Pick a port + $environment['port'] = $this->getApplication()->getTerra()->getAvailablePort(); + // Save to registry. $this->getApplication()->getTerra()->getConfig()->saveEnvironment($environment); $this->getApplication()->getTerra()->getConfig()->save(); diff --git a/src/terra/Config.php b/src/terra/Config.php index 4dc1f53..1e0b9ab 100644 --- a/src/terra/Config.php +++ b/src/terra/Config.php @@ -82,6 +82,9 @@ public function getConfigTreeBuilder() ->scalarNode('url') ->isRequired(false) ->end() + ->scalarNode('port') + ->isRequired(false) + ->end() ->scalarNode('document_root') ->isRequired(true) ->end() diff --git a/src/terra/Factory/EnvironmentFactory.php b/src/terra/Factory/EnvironmentFactory.php index 06372a5..0421850 100644 --- a/src/terra/Factory/EnvironmentFactory.php +++ b/src/terra/Factory/EnvironmentFactory.php @@ -303,7 +303,7 @@ public function getDockerComposeArray() '80/tcp', ), 'ports' => array( - ':80', + "{$this->environment->port}:80", ), 'restart' => 'on-failure', ); diff --git a/src/terra/Terra.php b/src/terra/Terra.php index b745d6b..3c43588 100644 --- a/src/terra/Terra.php +++ b/src/terra/Terra.php @@ -37,4 +37,20 @@ public function setConfig(Config $config) { $this->config = $config; } + + /** + * Looks through config for available ports... + * + * Still figuring this out... + */ + public function getAvailablePort() + { + $start = 50000; + $this->getConfig(); + foreach ($this->config['apps'] as $app) { + foreach ($app['environments'] as $environment) { + + } + } + } } From 792822383cc8478940583e613327ff35c85707b5 Mon Sep 17 00:00:00 2001 From: Tommy Cox Date: Sat, 5 Dec 2015 11:34:45 -0700 Subject: [PATCH 2/3] Fixing Docker validation error when enabling environment. --- src/terra/Factory/EnvironmentFactory.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/terra/Factory/EnvironmentFactory.php b/src/terra/Factory/EnvironmentFactory.php index 0421850..45b6e12 100644 --- a/src/terra/Factory/EnvironmentFactory.php +++ b/src/terra/Factory/EnvironmentFactory.php @@ -270,6 +270,9 @@ public function getDockerComposeArray() { $this->getConfig(); + // Determine format for load port + $load_port = isset($this->environment->port) ? "{$this->environment->port}:80" : 80; + $source_root = $this->environment->path; if (!empty($this->config['document_root'])) { @@ -303,7 +306,7 @@ public function getDockerComposeArray() '80/tcp', ), 'ports' => array( - "{$this->environment->port}:80", + $load_port, ), 'restart' => 'on-failure', ); @@ -347,7 +350,7 @@ public function getDockerComposeArray() 'database', ), 'ports' => array( - ':22', + 22, ), 'volumes' => array( "$document_root:/var/www/html", From 0ec750313068a8b867dd64940c3327dc9da670d5 Mon Sep 17 00:00:00 2001 From: Jon Pugh Date: Fri, 26 Aug 2016 13:24:55 -0400 Subject: [PATCH 3/3] Move helper function to environmentFactorhy. --- src/terra/Command/Environment/EnvironmentAdd.php | 2 +- src/terra/Factory/EnvironmentFactory.php | 16 ++++++++++++++++ src/terra/Terra.php | 16 ---------------- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/terra/Command/Environment/EnvironmentAdd.php b/src/terra/Command/Environment/EnvironmentAdd.php index e7135ac..67583bc 100644 --- a/src/terra/Command/Environment/EnvironmentAdd.php +++ b/src/terra/Command/Environment/EnvironmentAdd.php @@ -175,7 +175,7 @@ protected function execute(InputInterface $input, OutputInterface $output) $environment['version'] = $environmentFactory->getRepo()->getCurrentBranch(); // Pick a port - $environment['port'] = $this->getApplication()->getTerra()->getAvailablePort(); + $environment['port'] = $environmentFactory->getAvailablePort(); // Save to registry. $this->getApplication()->getTerra()->getConfig()->saveEnvironment($environment); diff --git a/src/terra/Factory/EnvironmentFactory.php b/src/terra/Factory/EnvironmentFactory.php index 060a2bd..a8b74be 100644 --- a/src/terra/Factory/EnvironmentFactory.php +++ b/src/terra/Factory/EnvironmentFactory.php @@ -716,4 +716,20 @@ public function writeTerraYml() return false; } } + + /** + * Looks through config for available ports... + * + * Still figuring this out... + */ + public function getAvailablePort() + { + $start = 50000; + $this->getConfig(); + foreach ($this->config['apps'] as $app) { + foreach ($app['environments'] as $environment) { + + } + } + } } diff --git a/src/terra/Terra.php b/src/terra/Terra.php index 3c43588..b745d6b 100644 --- a/src/terra/Terra.php +++ b/src/terra/Terra.php @@ -37,20 +37,4 @@ public function setConfig(Config $config) { $this->config = $config; } - - /** - * Looks through config for available ports... - * - * Still figuring this out... - */ - public function getAvailablePort() - { - $start = 50000; - $this->getConfig(); - foreach ($this->config['apps'] as $app) { - foreach ($app['environments'] as $environment) { - - } - } - } }