mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
misc code cleanup, don't pass parameters to the connection object we can already get from Runner
This commit is contained in:
parent
6341e75e33
commit
4b73931351
5 changed files with 43 additions and 50 deletions
|
@ -134,10 +134,16 @@ class Runner(object):
|
|||
inventory : inventory object, if host_list is not provided
|
||||
"""
|
||||
|
||||
# -- handle various parameters that need checking/mangling
|
||||
|
||||
if setup_cache is None:
|
||||
setup_cache = collections.defaultdict(dict)
|
||||
if type(module_args) not in [str, unicode, dict]:
|
||||
raise errors.AnsibleError("module_args must be a string or dict: %s" % self.module_args)
|
||||
|
||||
if basedir is None:
|
||||
basedir = os.getcwd()
|
||||
self.basedir = basedir
|
||||
|
||||
if callbacks is None:
|
||||
callbacks = ans_callbacks.DefaultRunnerCallbacks()
|
||||
|
@ -145,9 +151,12 @@ class Runner(object):
|
|||
|
||||
self.generated_jid = str(random.randint(0, 999999999999))
|
||||
|
||||
self.sudo_user = sudo_user
|
||||
self.transport = transport
|
||||
self.connector = connection.Connection(self, self.transport, self.sudo_user)
|
||||
|
||||
if self.transport == 'ssh' and remote_pass:
|
||||
raise errors.AnsibleError("SSH transport does not support passwords, only keys or agents")
|
||||
if self.transport == 'local':
|
||||
self.remote_user = pwd.getpwuid(os.geteuid())[0]
|
||||
|
||||
if inventory is None:
|
||||
self.inventory = ansible.inventory.Inventory(host_list)
|
||||
|
@ -156,35 +165,31 @@ class Runner(object):
|
|||
|
||||
if module_vars is None:
|
||||
module_vars = {}
|
||||
|
||||
self.setup_cache = setup_cache
|
||||
self.conditional = conditional
|
||||
self.module_path = module_path
|
||||
self.module_name = module_name
|
||||
self.forks = int(forks)
|
||||
self.pattern = pattern
|
||||
self.module_args = module_args
|
||||
self.module_vars = module_vars
|
||||
self.timeout = timeout
|
||||
self.verbose = verbose
|
||||
self.remote_user = remote_user
|
||||
self.remote_pass = remote_pass
|
||||
self.remote_port = remote_port
|
||||
|
||||
# -- save constructor parameters for later use
|
||||
|
||||
self.sudo_user = sudo_user
|
||||
self.connector = connection.Connection(self)
|
||||
self.setup_cache = setup_cache
|
||||
self.conditional = conditional
|
||||
self.module_path = module_path
|
||||
self.module_name = module_name
|
||||
self.forks = int(forks)
|
||||
self.pattern = pattern
|
||||
self.module_args = module_args
|
||||
self.module_vars = module_vars
|
||||
self.timeout = timeout
|
||||
self.verbose = verbose
|
||||
self.remote_user = remote_user
|
||||
self.remote_pass = remote_pass
|
||||
self.remote_port = remote_port
|
||||
self.private_key_file = private_key_file
|
||||
self.background = background
|
||||
self.basedir = basedir
|
||||
self.sudo = sudo
|
||||
self.sudo_pass = sudo_pass
|
||||
self.is_playbook = is_playbook
|
||||
|
||||
if self.transport == 'local':
|
||||
self.remote_user = pwd.getpwuid(os.geteuid())[0]
|
||||
|
||||
if type(self.module_args) not in [str, unicode, dict]:
|
||||
raise errors.AnsibleError("module_args must be a string or dict: %s" % self.module_args)
|
||||
if self.transport == 'ssh' and self.remote_pass:
|
||||
raise errors.AnsibleError("SSH transport does not support passwords, only keys or agents")
|
||||
self.background = background
|
||||
self.sudo = sudo
|
||||
self.sudo_pass = sudo_pass
|
||||
self.is_playbook = is_playbook
|
||||
|
||||
# ensure we're using unique tmp paths
|
||||
random.seed()
|
||||
|
||||
# *****************************************************
|
||||
|
|
|
@ -18,17 +18,6 @@
|
|||
|
||||
################################################
|
||||
|
||||
import warnings
|
||||
import traceback
|
||||
import os
|
||||
import time
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import pipes
|
||||
import socket
|
||||
import random
|
||||
|
||||
import local
|
||||
import paramiko_ssh
|
||||
import ssh
|
||||
|
@ -36,19 +25,18 @@ import ssh
|
|||
class Connection(object):
|
||||
''' Handles abstract connections to remote hosts '''
|
||||
|
||||
def __init__(self, runner, transport,sudo_user):
|
||||
def __init__(self, runner):
|
||||
self.runner = runner
|
||||
self.transport = transport
|
||||
self.sudo_user = sudo_user
|
||||
|
||||
def connect(self, host, port=None):
|
||||
conn = None
|
||||
if self.transport == 'local':
|
||||
transport = self.runner.transport
|
||||
if transport == 'local':
|
||||
conn = local.LocalConnection(self.runner, host)
|
||||
elif self.transport == 'paramiko':
|
||||
elif transport == 'paramiko':
|
||||
conn = paramiko_ssh.ParamikoConnection(self.runner, host, port)
|
||||
elif self.transport == 'ssh':
|
||||
conn = ssh.SSHConnection(self.runner, host, port)
|
||||
elif transport == 'ssh':
|
||||
conn = SSHConnection(self.runner, host, port)
|
||||
if conn is None:
|
||||
raise Exception("unsupported connection type")
|
||||
return conn.connect()
|
||||
|
|
|
@ -43,7 +43,7 @@ class LocalConnection(object):
|
|||
|
||||
return self
|
||||
|
||||
def exec_command(self, cmd, tmp_path,sudo_user,sudoable=False):
|
||||
def exec_command(self, cmd, tmp_path, sudo_user, sudoable=False):
|
||||
''' run a command on the local host '''
|
||||
if self.runner.sudo and sudoable:
|
||||
cmd = "sudo -s %s" % cmd
|
||||
|
|
|
@ -92,7 +92,7 @@ class ParamikoConnection(object):
|
|||
self.ssh = self._get_conn()
|
||||
return self
|
||||
|
||||
def exec_command(self, cmd, tmp_path,sudo_user,sudoable=False):
|
||||
def exec_command(self, cmd, tmp_path, sudo_user, sudoable=False):
|
||||
|
||||
''' run a command on the remote host '''
|
||||
bufsize = 4096
|
||||
|
|
|
@ -56,7 +56,7 @@ class SSHConnection(object):
|
|||
|
||||
return self
|
||||
|
||||
def exec_command(self, cmd, tmp_path,sudo_user,sudoable=False):
|
||||
def exec_command(self, cmd, tmp_path, sudo_user,sudoable=False):
|
||||
''' run a command on the remote host '''
|
||||
|
||||
ssh_cmd = ["ssh", "-tt", "-q"] + self.common_args + [self.host]
|
||||
|
|
Loading…
Reference in a new issue