Skip to content

Commit

Permalink
ansible-test: prefer shlex.quote (#56823)
Browse files Browse the repository at this point in the history
(cherry picked from commit 484c023)
  • Loading branch information
mkrizek authored and abadger committed May 28, 2019
1 parent 03bab95 commit b6c6046
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 9 deletions.
4 changes: 2 additions & 2 deletions test/runner/lib/executor.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import time
import textwrap
import functools
import pipes
import sys
import hashlib
import difflib
Expand Down Expand Up @@ -55,6 +54,7 @@
generate_pip_command,
find_python,
get_docker_completion,
cmd_quote,
)

from lib.docker_util import (
Expand Down Expand Up @@ -210,7 +210,7 @@ def install_command_requirements(args, python_version=None):
return # no changes means no conflicts

raise ApplicationError('Conflicts detected in requirements. The following commands reported changes during verification:\n%s' %
'\n'.join((' '.join(pipes.quote(c) for c in cmd) for cmd in changes)))
'\n'.join((' '.join(cmd_quote(c) for c in cmd) for cmd in changes)))


def run_pip_commands(args, pip, commands, detect_pip_changes=False):
Expand Down
8 changes: 4 additions & 4 deletions test/runner/lib/manage_ci.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from __future__ import absolute_import, print_function

import os
import pipes
import tempfile
import time

Expand All @@ -14,6 +13,7 @@
ApplicationError,
run_command,
intercept_command,
cmd_quote,
)

from lib.core_ci import (
Expand Down Expand Up @@ -105,7 +105,7 @@ def ssh(self, command, options=None, force_pty=True):
options.append('-tt')

if isinstance(command, list):
command = ' '.join(pipes.quote(c) for c in command)
command = ' '.join(cmd_quote(c) for c in command)

run_command(self.core_ci.args,
['ssh', '-q'] + self.ssh_args +
Expand Down Expand Up @@ -267,14 +267,14 @@ def ssh(self, command, options=None):
options = []

if isinstance(command, list):
command = ' '.join(pipes.quote(c) for c in command)
command = ' '.join(cmd_quote(c) for c in command)

run_command(self.core_ci.args,
['ssh', '-tt', '-q'] + self.ssh_args +
options +
['-p', str(self.core_ci.connection.port),
'%s@%s' % (self.core_ci.connection.username, self.core_ci.connection.hostname)] +
self.become + [pipes.quote(command)])
self.become + [cmd_quote(command)])

def scp(self, src, dst):
"""
Expand Down
10 changes: 7 additions & 3 deletions test/runner/lib/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
import inspect
import json
import os
import pipes
import pkgutil
import random
import re
Expand Down Expand Up @@ -41,6 +40,11 @@
DOCKER_COMPLETION = {}
COVERAGE_PATHS = {} # type: dict[str, str]

try:
from shlex import quote as cmd_quote
except ImportError:
from pipes import quote as cmd_quote


def get_docker_completion():
"""
Expand Down Expand Up @@ -335,7 +339,7 @@ def raw_command(cmd, capture=False, env=None, data=None, cwd=None, explain=False

cmd = list(cmd)

escaped_cmd = ' '.join(pipes.quote(c) for c in cmd)
escaped_cmd = ' '.join(cmd_quote(c) for c in cmd)

display.info('Run command: %s' % escaped_cmd, verbosity=cmd_verbosity, truncate=True)
display.info('Working directory: %s' % cwd, verbosity=2)
Expand Down Expand Up @@ -701,7 +705,7 @@ def __init__(self, cmd, status=0, stdout=None, stderr=None, runtime=None):
:type stderr: str | None
:type runtime: float | None
"""
message = 'Command "%s" returned exit status %s.\n' % (' '.join(pipes.quote(c) for c in cmd), status)
message = 'Command "%s" returned exit status %s.\n' % (' '.join(cmd_quote(c) for c in cmd), status)

if stderr:
message += '>>> Standard Error\n'
Expand Down

0 comments on commit b6c6046

Please sign in to comment.