diff --git a/devops/helpers/ssh_client.py b/devops/helpers/ssh_client.py index 4ca1206e..9ea2b71a 100644 --- a/devops/helpers/ssh_client.py +++ b/devops/helpers/ssh_client.py @@ -870,7 +870,8 @@ class SSHClient(six.with_metaclass(_MemorizedSSH, object)): cmd = "{}\n".format(command) if self.sudo_mode: encoded_cmd = base64.b64encode(cmd.encode('utf-8')).decode('utf-8') - cmd = "sudo -S bash -c 'eval $(base64 -d <(echo \"{0}\"))'".format( + cmd = ("sudo -S bash -c 'eval \"$(base64 -d " + "<(echo \"{0}\"))\"'").format( encoded_cmd ) chan.exec_command(cmd) diff --git a/devops/tests/helpers/test_ssh_client.py b/devops/tests/helpers/test_ssh_client.py index eb9da69d..d829bf43 100644 --- a/devops/tests/helpers/test_ssh_client.py +++ b/devops/tests/helpers/test_ssh_client.py @@ -1010,7 +1010,7 @@ class TestExecute(unittest.TestCase): mock.call.makefile_stderr('rb'), mock.call.exec_command( "sudo -S bash -c '" - "eval $(base64 -d <(echo \"{0}\"))'".format(encoded_cmd)) + "eval \"$(base64 -d <(echo \"{0}\"))\"'".format(encoded_cmd)) )) self.assertIn( mock.call.debug( @@ -1046,7 +1046,7 @@ class TestExecute(unittest.TestCase): mock.call.makefile_stderr('rb'), mock.call.exec_command( "sudo -S bash -c '" - "eval $(base64 -d <(echo \"{0}\"))'".format(encoded_cmd)) + "eval \"$(base64 -d <(echo \"{0}\"))\"'".format(encoded_cmd)) )) self.assertIn( mock.call.debug( @@ -1155,7 +1155,7 @@ class TestExecute(unittest.TestCase): mock.call.makefile_stderr('rb'), mock.call.exec_command( "sudo -S bash -c '" - "eval $(base64 -d <(echo \"{0}\"))'".format(encoded_cmd)) + "eval \"$(base64 -d <(echo \"{0}\"))\"'".format(encoded_cmd)) )) self.assertIn( mock.call.debug(