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 26, 2019
1 parent cb6ece6 commit 0a3410f
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 @@ -10,7 +10,6 @@
import time
import textwrap
import functools
import pipes
import sys
import hashlib
import difflib
Expand Down Expand Up @@ -61,6 +60,7 @@
get_remote_completion,
named_temporary_file,
COVERAGE_OUTPUT_PATH,
cmd_quote,
)

from lib.docker_util import (
Expand Down Expand Up @@ -219,7 +219,7 @@ def install_command_requirements(args, python_version=None):

if changes:
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)))

# ask pip to check for conflicts between installed packages
try:
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 @@ -107,7 +107,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 @@ -273,14 +273,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 @@ -38,6 +37,11 @@
# noinspection PyCompatibility
from configparser import ConfigParser

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

DOCKER_COMPLETION = {} # type: dict[str, dict[str, str]]
REMOTE_COMPLETION = {} # type: dict[str, dict[str, str]]
PYTHON_PATHS = {} # type: dict[str, str]
Expand Down Expand Up @@ -389,7 +393,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 @@ -763,7 +767,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 0a3410f

Please sign in to comment.