Provide a config option to customize remote shell command
Our remote ssh code makes all kinds of assumptions about the shell and
path of the guest. Recently some code was added to the command to generate
errors more promptly but it does not work if the shell is /bin/sh. This
commit allows the user to configure tempest with a desired prologue to handle
this case. It does nothing to solve the more general problem and, like the
other image-related options, cannot be customized individually for various
images that tempest may use.
Debug logging of remote commands was also added.
Change-Id: I669dd4386ffb539dad88a9487bef6c172b5d65fa
Closes-Bug: #1465682
diff --git a/tempest/common/utils/linux/remote_client.py b/tempest/common/utils/linux/remote_client.py
index 4b3995b..d4e6eb8 100644
--- a/tempest/common/utils/linux/remote_client.py
+++ b/tempest/common/utils/linux/remote_client.py
@@ -14,6 +14,7 @@
import re
import time
+from oslo_log import log as logging
import six
from tempest_lib.common import ssh
@@ -22,6 +23,8 @@
CONF = config.CONF
+LOG = logging.getLogger(__name__)
+
class RemoteClient(object):
@@ -48,7 +51,8 @@
def exec_command(self, cmd):
# Shell options below add more clearness on failures,
# path is extended for some non-cirros guest oses (centos7)
- cmd = "set -eu -o pipefail; PATH=$PATH:/sbin; " + cmd
+ cmd = CONF.compute.ssh_shell_prologue + " " + cmd
+ LOG.debug("Remote command: %s" % cmd)
return self.ssh_client.exec_command(cmd)
def validate_authentication(self):