misc code cleanup, don't pass parameters to the connection object we can already get from Runner
parent
6341e75e33
commit
4b73931351
|
@ -134,10 +134,16 @@ class Runner(object):
|
||||||
inventory : inventory object, if host_list is not provided
|
inventory : inventory object, if host_list is not provided
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# -- handle various parameters that need checking/mangling
|
||||||
|
|
||||||
if setup_cache is None:
|
if setup_cache is None:
|
||||||
setup_cache = collections.defaultdict(dict)
|
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:
|
if basedir is None:
|
||||||
basedir = os.getcwd()
|
basedir = os.getcwd()
|
||||||
|
self.basedir = basedir
|
||||||
|
|
||||||
if callbacks is None:
|
if callbacks is None:
|
||||||
callbacks = ans_callbacks.DefaultRunnerCallbacks()
|
callbacks = ans_callbacks.DefaultRunnerCallbacks()
|
||||||
|
@ -145,9 +151,12 @@ class Runner(object):
|
||||||
|
|
||||||
self.generated_jid = str(random.randint(0, 999999999999))
|
self.generated_jid = str(random.randint(0, 999999999999))
|
||||||
|
|
||||||
self.sudo_user = sudo_user
|
|
||||||
self.transport = transport
|
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:
|
if inventory is None:
|
||||||
self.inventory = ansible.inventory.Inventory(host_list)
|
self.inventory = ansible.inventory.Inventory(host_list)
|
||||||
|
@ -156,35 +165,31 @@ class Runner(object):
|
||||||
|
|
||||||
if module_vars is None:
|
if module_vars is None:
|
||||||
module_vars = {}
|
module_vars = {}
|
||||||
|
|
||||||
self.setup_cache = setup_cache
|
# -- save constructor parameters for later use
|
||||||
self.conditional = conditional
|
|
||||||
self.module_path = module_path
|
self.sudo_user = sudo_user
|
||||||
self.module_name = module_name
|
self.connector = connection.Connection(self)
|
||||||
self.forks = int(forks)
|
self.setup_cache = setup_cache
|
||||||
self.pattern = pattern
|
self.conditional = conditional
|
||||||
self.module_args = module_args
|
self.module_path = module_path
|
||||||
self.module_vars = module_vars
|
self.module_name = module_name
|
||||||
self.timeout = timeout
|
self.forks = int(forks)
|
||||||
self.verbose = verbose
|
self.pattern = pattern
|
||||||
self.remote_user = remote_user
|
self.module_args = module_args
|
||||||
self.remote_pass = remote_pass
|
self.module_vars = module_vars
|
||||||
self.remote_port = remote_port
|
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.private_key_file = private_key_file
|
||||||
self.background = background
|
self.background = background
|
||||||
self.basedir = basedir
|
self.sudo = sudo
|
||||||
self.sudo = sudo
|
self.sudo_pass = sudo_pass
|
||||||
self.sudo_pass = sudo_pass
|
self.is_playbook = is_playbook
|
||||||
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")
|
|
||||||
|
|
||||||
|
# ensure we're using unique tmp paths
|
||||||
random.seed()
|
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 local
|
||||||
import paramiko_ssh
|
import paramiko_ssh
|
||||||
import ssh
|
import ssh
|
||||||
|
@ -36,19 +25,18 @@ import ssh
|
||||||
class Connection(object):
|
class Connection(object):
|
||||||
''' Handles abstract connections to remote hosts '''
|
''' Handles abstract connections to remote hosts '''
|
||||||
|
|
||||||
def __init__(self, runner, transport,sudo_user):
|
def __init__(self, runner):
|
||||||
self.runner = runner
|
self.runner = runner
|
||||||
self.transport = transport
|
|
||||||
self.sudo_user = sudo_user
|
|
||||||
|
|
||||||
def connect(self, host, port=None):
|
def connect(self, host, port=None):
|
||||||
conn = None
|
conn = None
|
||||||
if self.transport == 'local':
|
transport = self.runner.transport
|
||||||
|
if transport == 'local':
|
||||||
conn = local.LocalConnection(self.runner, host)
|
conn = local.LocalConnection(self.runner, host)
|
||||||
elif self.transport == 'paramiko':
|
elif transport == 'paramiko':
|
||||||
conn = paramiko_ssh.ParamikoConnection(self.runner, host, port)
|
conn = paramiko_ssh.ParamikoConnection(self.runner, host, port)
|
||||||
elif self.transport == 'ssh':
|
elif transport == 'ssh':
|
||||||
conn = ssh.SSHConnection(self.runner, host, port)
|
conn = SSHConnection(self.runner, host, port)
|
||||||
if conn is None:
|
if conn is None:
|
||||||
raise Exception("unsupported connection type")
|
raise Exception("unsupported connection type")
|
||||||
return conn.connect()
|
return conn.connect()
|
||||||
|
|
|
@ -43,7 +43,7 @@ class LocalConnection(object):
|
||||||
|
|
||||||
return self
|
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 '''
|
''' run a command on the local host '''
|
||||||
if self.runner.sudo and sudoable:
|
if self.runner.sudo and sudoable:
|
||||||
cmd = "sudo -s %s" % cmd
|
cmd = "sudo -s %s" % cmd
|
||||||
|
|
|
@ -92,7 +92,7 @@ class ParamikoConnection(object):
|
||||||
self.ssh = self._get_conn()
|
self.ssh = self._get_conn()
|
||||||
return self
|
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 '''
|
''' run a command on the remote host '''
|
||||||
bufsize = 4096
|
bufsize = 4096
|
||||||
|
|
|
@ -56,7 +56,7 @@ class SSHConnection(object):
|
||||||
|
|
||||||
return self
|
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 '''
|
''' run a command on the remote host '''
|
||||||
|
|
||||||
ssh_cmd = ["ssh", "-tt", "-q"] + self.common_args + [self.host]
|
ssh_cmd = ["ssh", "-tt", "-q"] + self.common_args + [self.host]
|
||||||
|
|
Loading…
Reference in New Issue