Fix the basic templating system such that when the template ends in '$', life continues as normal.
This commit is contained in:
parent
6b8448051f
commit
6fa1a49037
4 changed files with 11 additions and 7 deletions
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -40,13 +40,12 @@ 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:
|
||||||
raise AnsibleError("unsupported connection type: %s" % transport)
|
raise AnsibleError("unsupported connection type: %s" % transport)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
Loading…
Reference in a new issue