Commit 04954dbc by Michael DeHaan

Makes ports configurable for fireball. Note port defaults really belong in the…

Makes ports configurable for fireball.  Note port defaults really belong in the connection plugins, not runner, which can be refactored later.
parent 612561ad
...@@ -100,7 +100,7 @@ class Runner(object): ...@@ -100,7 +100,7 @@ class Runner(object):
pattern=C.DEFAULT_PATTERN, # which hosts? ex: 'all', 'acme.example.org' pattern=C.DEFAULT_PATTERN, # which hosts? ex: 'all', 'acme.example.org'
remote_user=C.DEFAULT_REMOTE_USER, # ex: 'username' remote_user=C.DEFAULT_REMOTE_USER, # ex: 'username'
remote_pass=C.DEFAULT_REMOTE_PASS, # ex: 'password123' or None if using key remote_pass=C.DEFAULT_REMOTE_PASS, # ex: 'password123' or None if using key
remote_port=C.DEFAULT_REMOTE_PORT, # if SSH on different ports remote_port=None, # if SSH on different ports
private_key_file=C.DEFAULT_PRIVATE_KEY_FILE, # if not using keys/passwords private_key_file=C.DEFAULT_PRIVATE_KEY_FILE, # if not using keys/passwords
sudo_pass=C.DEFAULT_SUDO_PASS, # ex: 'password123' or None sudo_pass=C.DEFAULT_SUDO_PASS, # ex: 'password123' or None
background=0, # async poll every X seconds, else 0 for non-async background=0, # async poll every X seconds, else 0 for non-async
...@@ -208,7 +208,9 @@ class Runner(object): ...@@ -208,7 +208,9 @@ class Runner(object):
# hack to support fireball mode # hack to support fireball mode
if module_name == 'fireball': if module_name == 'fireball':
args = "%s password=%s port=%s" % (args, base64.b64encode(str(utils.key_for_hostname(conn.host))), C.ZEROMQ_PORT) args = "%s password=%s" % (args, base64.b64encode(str(utils.key_for_hostname(conn.host))))
if 'port' not in args:
args += " port=%s" % C.ZEROMQ_PORT
(remote_module_path, is_new_style) = self._copy_module(conn, tmp, module_name, args, inject) (remote_module_path, is_new_style) = self._copy_module(conn, tmp, module_name, args, inject)
cmd = "chmod u+x %s" % remote_module_path cmd = "chmod u+x %s" % remote_module_path
...@@ -262,7 +264,13 @@ class Runner(object): ...@@ -262,7 +264,13 @@ class Runner(object):
''' executes any module one or more times ''' ''' executes any module one or more times '''
host_variables = self.inventory.get_variables(host) host_variables = self.inventory.get_variables(host)
port = host_variables.get('ansible_ssh_port', self.remote_port) if self.transport in [ 'paramiko', 'ssh' ]:
port = host_variables.get('ansible_ssh_port', self.remote_port)
if port is None:
port = C.DEFAULT_REMOTE_PORT
else:
# fireball, local, etc
port = self.remote_port
inject = {} inject = {}
inject.update(host_variables) inject.update(host_variables)
......
...@@ -35,12 +35,14 @@ class Connection(object): ...@@ -35,12 +35,14 @@ class Connection(object):
def __init__(self, runner): def __init__(self, runner):
self.runner = runner self.runner = runner
def connect(self, host, port=None): def connect(self, host, port):
conn = None conn = None
transport = self.runner.transport transport = self.runner.transport
module = modules.get(transport, None) module = modules.get(transport, None)
if module is None: if module is None:
raise AnsibleError("unsupported connection type: %s" % transport) raise AnsibleError("unsupported connection type: %s" % transport)
conn = module.Connection(self.runner, host, port) conn = module.Connection(self.runner, host, port)
return conn.connect() self.active = conn.connect()
return self.active
...@@ -31,9 +31,9 @@ except ImportError: ...@@ -31,9 +31,9 @@ except ImportError:
pass pass
class Connection(object): class Connection(object):
''' SSH based connections with Paramiko ''' ''' ZeroMQ accelerated connection '''
def __init__(self, runner, host, port=None): def __init__(self, runner, host, port):
self.runner = runner self.runner = runner
...@@ -45,9 +45,12 @@ class Connection(object): ...@@ -45,9 +45,12 @@ class Connection(object):
self.key = utils.key_for_hostname(host) self.key = utils.key_for_hostname(host)
self.context = None self.context = None
self.socket = None self.socket = None
# port passed in is the SSH port, which we ignore
self.port = constants.ZEROMQ_PORT if port is None:
self.port = constants.ZEROMQ_PORT
else:
self.port = port
def connect(self): def connect(self):
''' activates the connection object ''' ''' activates the connection object '''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment