Suppress output for ssh-keygen
ssh-keygen has private key which shouldn't be visible in output. This patch change the behaviour to print only exit code on failure. Also this patch closes file descriptor once key is read. Conflicts: tripleoclient/tests/workflows/test_deployment.py tripleoclient/workflows/deployment.py Change-Id: I5a286cca6e48b0abc9cec3f15b2648977ae838c2 Related-Bug: rhbz#1734356 (cherry picked from commitb40c9e3b1c
) (cherry picked from commit6055817d25
)
This commit is contained in:
parent
2e0b581f72
commit
3de174d7b0
|
@ -51,9 +51,8 @@ class TestDeploymentWorkflows(utils.TestCommand):
|
||||||
@mock.patch('tripleoclient.workflows.deployment.open')
|
@mock.patch('tripleoclient.workflows.deployment.open')
|
||||||
@mock.patch('tripleoclient.workflows.deployment.tempfile')
|
@mock.patch('tripleoclient.workflows.deployment.tempfile')
|
||||||
@mock.patch('tripleoclient.workflows.deployment.subprocess.check_call')
|
@mock.patch('tripleoclient.workflows.deployment.subprocess.check_call')
|
||||||
def test_enable_ssh_admin(self, mock_check_call, mock_tempfile,
|
def test_enable_ssh_admin(self, mock_check_call, mock_tempfile, mock_open,
|
||||||
mock_open, mock_rmtree, mock_sleep,
|
mock_rmtree, mock_sleep, mock_wait_for_ssh_port):
|
||||||
mock_wait_for_ssh_port):
|
|
||||||
log = mock.Mock()
|
log = mock.Mock()
|
||||||
hosts = 'a', 'b', 'c'
|
hosts = 'a', 'b', 'c'
|
||||||
ssh_user = 'test-user'
|
ssh_user = 'test-user'
|
||||||
|
@ -62,6 +61,8 @@ class TestDeploymentWorkflows(utils.TestCommand):
|
||||||
mock_tempfile.mkdtemp.return_value = '/foo'
|
mock_tempfile.mkdtemp.return_value = '/foo'
|
||||||
mock_read = mock.Mock()
|
mock_read = mock.Mock()
|
||||||
mock_read.read.return_value = 'key'
|
mock_read.read.return_value = 'key'
|
||||||
|
mock_read.__enter__ = mock.Mock()
|
||||||
|
mock_read.__exit__ = mock.Mock()
|
||||||
mock_open.return_value = mock_read
|
mock_open.return_value = mock_read
|
||||||
mock_state = mock.Mock()
|
mock_state = mock.Mock()
|
||||||
mock_state.state = 'SUCCESS'
|
mock_state.state = 'SUCCESS'
|
||||||
|
@ -104,6 +105,8 @@ class TestDeploymentWorkflows(utils.TestCommand):
|
||||||
mock_tempfile.mkdtemp.return_value = '/foo'
|
mock_tempfile.mkdtemp.return_value = '/foo'
|
||||||
mock_read = mock.Mock()
|
mock_read = mock.Mock()
|
||||||
mock_read.read.return_value = 'key'
|
mock_read.read.return_value = 'key'
|
||||||
|
mock_read.__enter__ = mock.Mock()
|
||||||
|
mock_read.__exit__ = mock.Mock()
|
||||||
mock_open.return_value = mock_read
|
mock_open.return_value = mock_read
|
||||||
mock_state = mock.Mock()
|
mock_state = mock.Mock()
|
||||||
mock_state.state = 'ERROR'
|
mock_state.state = 'ERROR'
|
||||||
|
|
|
@ -200,8 +200,19 @@ def enable_ssh_admin(log, clients, plan_name, hosts, ssh_user, ssh_key):
|
||||||
try:
|
try:
|
||||||
tmp_key_command = ["ssh-keygen", "-N", "", "-t", "rsa", "-b", "4096",
|
tmp_key_command = ["ssh-keygen", "-N", "", "-t", "rsa", "-b", "4096",
|
||||||
"-f", tmp_key_private, "-C", tmp_key_comment]
|
"-f", tmp_key_private, "-C", tmp_key_comment]
|
||||||
subprocess.check_call(tmp_key_command, stderr=subprocess.STDOUT)
|
DEVNULL = open(os.devnull, 'w')
|
||||||
tmp_key_public_contents = open(tmp_key_public).read()
|
try:
|
||||||
|
subprocess.check_call(tmp_key_command, stdout=DEVNULL,
|
||||||
|
stderr=subprocess.STDOUT)
|
||||||
|
except subprocess.CalledProcessError as exc:
|
||||||
|
log.error("ssh-keygen has failed with return code {0}".
|
||||||
|
format(exc.returncode))
|
||||||
|
else:
|
||||||
|
log.info("ssh-keygen has been run successfully")
|
||||||
|
DEVNULL.close()
|
||||||
|
|
||||||
|
with open(tmp_key_public) as pubkey:
|
||||||
|
tmp_key_public_contents = pubkey.read()
|
||||||
|
|
||||||
for host in hosts:
|
for host in hosts:
|
||||||
wait_for_ssh_port(host)
|
wait_for_ssh_port(host)
|
||||||
|
|
Loading…
Reference in New Issue