diff --git a/teuthology/orchestra/run.py b/teuthology/orchestra/run.py index a3edc0ea55c..7bc50476688 100644 --- a/teuthology/orchestra/run.py +++ b/teuthology/orchestra/run.py @@ -41,6 +41,7 @@ def quote(args): yield pipes.quote(a) return ' '.join(_quote(args)) + def execute(client, args): """ Execute a command remotely. @@ -49,13 +50,16 @@ def execute(client, args): :param client: SSHConnection to run the command with :param args: command to run - :type args: list of string + :type args: string or list of strings Returns a RemoteProcess, where exitstatus is a callable that will block until the exit status is available. """ - cmd = quote(args) - (host,port) = client.get_transport().getpeername() + if isinstance(args, basestring): + cmd = args + else: + cmd = quote(args) + (host, port) = client.get_transport().getpeername() log.debug('Running [{h}]: {cmd!r}'.format(h=host, cmd=cmd)) (in_, out, err) = client.exec_command(cmd)