Fix the basic templating system such that when the template ends in '$', life continues as normal.

This commit is contained in:
Michael DeHaan 2012-10-20 10:53:34 -04:00
parent 6b8448051f
commit 6fa1a49037
4 changed files with 11 additions and 7 deletions

View file

@ -399,12 +399,9 @@ class Runner(object):
actual_host = delegate_to actual_host = delegate_to
try: try:
transport = None # use Runner setting
if delegate_to and actual_host in [ '127.0.0.1', 'localhost' ]:
transport = 'local'
if actual_port is not None: if actual_port is not None:
actual_port = int(actual_port) actual_port = int(actual_port)
conn = self.connector.connect(actual_host, actual_port, transport=transport) conn = self.connector.connect(actual_host, actual_port)
if delegate_to: if delegate_to:
conn.delegate = host conn.delegate = host

View file

@ -40,12 +40,11 @@ class Connection(object):
self.runner = runner self.runner = runner
self.modules = None self.modules = None
def connect(self, host, port, transport=None): def connect(self, host, port):
if self.modules is None: if self.modules is None:
self.modules = modules.copy() self.modules = modules.copy()
self.modules.update(utils.import_plugins(os.path.join(self.runner.basedir, 'connection_plugins'))) self.modules.update(utils.import_plugins(os.path.join(self.runner.basedir, 'connection_plugins')))
conn = None conn = None
if transport is None:
transport = self.runner.transport transport = self.runner.transport
module = self.modules.get(transport, None) module = self.modules.get(transport, None)
if module is None: if module is None:

View file

@ -246,6 +246,8 @@ def _varFind(text):
if start == -1: if start == -1:
return None return None
var_start = start + 1 var_start = start + 1
if var_start >= len(text):
return None
if text[var_start] == '{': if text[var_start] == '{':
is_complex = True is_complex = True
brace_level = 1 brace_level = 1

View file

@ -19,6 +19,12 @@ class TestUtils(unittest.TestCase):
assert res == 'hello world' assert res == 'hello world'
def test_varReplace_trailing_dollar(self):
template = '$what $who $'
vars = dict(what='hello', who='world')
res = ansible.utils.varReplace(template, vars)
assert res == 'hello world $'
def test_varReplace_multiple(self): def test_varReplace_multiple(self):
template = '$what $who' template = '$what $who'
vars = { vars = {