Merge pull request #392 from WorldWarIII/SupportHostPortNotation

[FEATURE]Support colon notation in host config definition
This commit is contained in:
Andrés Montañez 2017-07-22 16:10:42 -03:00 committed by GitHub
commit 26150f4e60
2 changed files with 27 additions and 2 deletions

View file

@ -457,10 +457,10 @@ class Runtime
*/ */
public function getSSHConfig() public function getSSHConfig()
{ {
$sshConfig = $this->getEnvOption('ssh', ['port' => '22', 'flags' => '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no']); $sshConfig = $this->getEnvOption('ssh', ['flags' => '-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no']);
if (!array_key_exists('port', $sshConfig)) { if (!array_key_exists('port', $sshConfig)) {
$sshConfig['port'] = '22'; $sshConfig['port'] = $this->getHostPort();
} }
if (!array_key_exists('flags', $sshConfig)) { if (!array_key_exists('flags', $sshConfig)) {
@ -470,6 +470,17 @@ class Runtime
return $sshConfig; return $sshConfig;
} }
/**
* Get the current Host Port or default ssh port
*
* @return integer
*/
public function getHostPort()
{
$info = explode(':', $this->getWorkingHost());
return isset($info[1]) ? $info[1] : '22';
}
/** /**
* Gets a Temporal File name * Gets a Temporal File name
* *

View file

@ -119,6 +119,20 @@ class RuntimeTest extends TestCase
$this->assertEquals('-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no', $sshConfig['flags']); $this->assertEquals('-q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no', $sshConfig['flags']);
} }
public function testSSHConfigPortDefinedInHostNotation()
{
$runtime = new Runtime();
$runtime->setWorkingHost('223.12.24.64:1056');
$sshConfig = $runtime->getSSHConfig();
$this->assertEquals('1056', $sshConfig['port']);
$runtime->setWorkingHost('223.12.24.64');
$sshConfig = $runtime->getSSHConfig();
$this->assertEquals('22', $sshConfig['port']);
}
public function testSSHConfigEmptyOptions() public function testSSHConfigEmptyOptions()
{ {
$runtime = new Runtime(); $runtime = new Runtime();