From 870160b8ed73e58280d0374c1c7be9939972eb47 Mon Sep 17 00:00:00 2001 From: Thomas Steinbach Date: Thu, 24 Mar 2016 22:09:41 +0100 Subject: [PATCH] fixed some breaks after merging ansible/devel --- lib/ansible/playbook/play_context.py | 5 +---- lib/ansible/plugins/connection/docker.py | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/lib/ansible/playbook/play_context.py b/lib/ansible/playbook/play_context.py index cb8692800c3..6f276067d7d 100644 --- a/lib/ansible/playbook/play_context.py +++ b/lib/ansible/playbook/play_context.py @@ -50,7 +50,6 @@ except ImportError: MAGIC_VARIABLE_MAPPING = dict( connection = ('ansible_connection',), - docker_extra_args = ('ansible_docker_extra_args',), remote_addr = ('ansible_ssh_host', 'ansible_host'), remote_user = ('ansible_ssh_user', 'ansible_user'), port = ('ansible_ssh_port', 'ansible_port'), @@ -66,6 +65,7 @@ MAGIC_VARIABLE_MAPPING = dict( become_exe = ('ansible_become_exe',), become_flags = ('ansible_become_flags',), ssh_common_args = ('ansible_ssh_common_args',), + docker_extra_args= ('ansible_docker_extra_args',), sftp_extra_args = ('ansible_sftp_extra_args',), scp_extra_args = ('ansible_scp_extra_args',), ssh_extra_args = ('ansible_ssh_extra_args',), @@ -258,9 +258,6 @@ class PlayContext(Base): lower precedence than those set on the play or host. ''' - if options.connection: - self.connection = options.connection - # privilege escalation self.become = options.become self.become_method = options.become_method diff --git a/lib/ansible/plugins/connection/docker.py b/lib/ansible/plugins/connection/docker.py index 66184d10f77..df6c8707100 100644 --- a/lib/ansible/plugins/connection/docker.py +++ b/lib/ansible/plugins/connection/docker.py @@ -68,10 +68,10 @@ class Connection(ConnectionBase): # root. if 'docker_command' in kwargs: - self.docker_cmd = [kwargs['docker_command']] + self.docker_cmd = kwargs['docker_command'] else: - self.docker_cmd = [distutils.spawn.find_executable('docker')] - if not self.docker_cmd[0]: + self.docker_cmd = distutils.spawn.find_executable('docker') + if not self.docker_cmd: raise AnsibleError("docker command not found in PATH") docker_version = self._get_docker_version() @@ -106,7 +106,13 @@ class Connection(ConnectionBase): def _get_docker_version(self): - cmd = self.docker_cmd + ['version'] + cmd = [self.docker_cmd] + + if self._play_context.docker_extra_args: + cmd += self._play_context.docker_extra_args.split(' ') + + cmd += ['version'] + cmd_output = subprocess.check_output(cmd) for line in cmd_output.split('\n'): @@ -114,7 +120,10 @@ class Connection(ConnectionBase): return self._sanitize_version(line.split()[2]) # no result yet, must be newer Docker version - new_docker_cmd = self.docker_cmd + ['version', '--format', "'{{.Server.Version}}'"] + new_docker_cmd = [ + self.docker_cmd, + 'version', '--format', "'{{.Server.Version}}'" + ] cmd_output = subprocess.check_output(new_docker_cmd)