Commit Graph

90 Commits (40574c19382cfbd321f5a4bf7afee154fa2a8d22)

Author SHA1 Message Date
Sébastien Bocahu b94bf051d5 Makes $PIPE and $FILE macros accept utf-8 input 2013-04-06 23:28:15 +02:00
Michael DeHaan 95f30f0def Complete streamlining of vars handling in playbooks and how those are templated to avoid
repeat template calls at playbook intialization time.
2013-04-06 10:45:09 -04:00
Michael DeHaan 4cd69e81b9 Catch recursive templating errors and display what string caused them. 2013-04-06 09:55:31 -04:00
Michael DeHaan f585c4cde7 Upgraded variable support met with upgraded conditional support, see examples/playbooks/upgraded_vars.yml
for details!
2013-04-05 19:10:32 -04:00
Michael DeHaan 38c2b14339 Undefined Jinja2 statements are returned as they originally are so you can tell there are things to
correct.
2013-04-05 17:36:53 -04:00
Michael DeHaan cdaa2085ee Preliminary ability to use Jinja2 {{ }} to replace ${foo.bar} in playbooks. Can't use both at the same time per line. 2013-04-03 01:04:16 -04:00
Stoned Elipot 8edda38c61 exception safe list/tuple replacing for non-str values 2013-03-12 05:01:45 +01:00
Daniel Hokka Zakrisson 4807fbc8b7 Use regular strings to allow tests to work 2013-02-28 13:52:57 +01:00
Daniel Hokka Zakrisson bcf7a2c53a Catch all exceptions coming from lookup plugins
Fixes using $TEMPLATE() and hostvars in a task without a name, among
other things.
2013-02-27 10:11:14 +01:00
Daniel Hokka Zakrisson 1df56c07d3 If expand_lists is true, make lookup plugin result into a string
Fixes #2196.
2013-02-25 22:26:16 +01:00
Daniel Hokka Zakrisson f03e845920 Allow hyphens in complex variables
Primarily to support ${hostvars.hostname-with-hyphens.<var>}.
2013-02-25 15:09:44 +01:00
Michael DeHaan 9cf66f4376 Fixes from 'make pep8'. Partial, more to come. 2013-02-17 19:40:38 -05:00
Michel Blanc 0cd0a7fda3 Fixes jina typos
Moved *jina* to *jinja2*
2013-02-16 13:32:48 -05:00
Michel Blanc 1c22f2146e Adds configurable jinja2 extension loading
Jinja extensions adds features to the jinja2 templating engine. This
patch allows module loading for the templating engine vian an
ansible.cfg configuration key (jinja_extensions).
The default behaviour doesn't change (no module loading).
Requested modules can be added coma separated in ansible.cfg

Adds whitespace handling in jinja_extension config

Added whitespace handling in jinja_extension configuration directive, so
things stay safe if user adds spaces around comas in the directives
list.

Adds config example for jinja_extensions

Added config example with multiple extentions for jinja_extensions
2013-02-16 13:32:48 -05:00
Daniel Hokka Zakrisson c83e428a7e Default expand_lists to True and set it to False for only_if
Fixes #2026 and #2027.
2013-02-10 22:57:53 +01:00
Michael DeHaan e6ead2ca74 make things like $FILE(/etc/path/foo.conf) and $ENV(HOME) work without having to use brackets to index them 2013-02-09 22:35:27 -05:00
Daniel Hokka Zakrisson bc709e7b67 expand_lists should default to False 2013-02-07 11:56:59 +01:00
Daniel Hokka Zakrisson a79373f6b2 Make template_ds the only templater
Instead of having to remember when to use which one, rename template_ds
to template and move the last bit of code from template to varReplace
(which gets used for all string replacements, in the end).

This means that you can template any data type without worrying about
whether it's a string or not, and the right thing will happen.
2013-02-03 14:01:54 +01:00
Daniel Hokka Zakrisson b79960e13b If failed lookups are fatal, re-raise the exception
Fixes #1938.
2013-01-29 10:31:33 +01:00
Daniel Hokka Zakrisson 864b75e54b Override Jinja2 Template class to make {% include %} work again
Fixes #1908.
2013-01-25 14:16:29 +01:00
Daniel Hokka Zakrisson 87b2378e22 Resolve variable references inside variables
Fixes the case where variable x is '$y' and y is a dict(foo='bar') and
an attempt to access ${x.foo} is made.
2013-01-09 13:45:55 +01:00
willthames 411b2bf7d9 Added additional template variables
Added two additional template variables
* template_fullpath - absolute path to the template
* template_run_date - date that the template was rendered
Documented these additional variables in the module documentation
2013-01-04 16:36:02 +10:00
Daniel Hokka Zakrisson 3a36c024da Make lookups being fatal up to the caller
Fixes #1769.
2012-12-19 19:19:04 +01:00
Daniel Hokka Zakrisson 0f1706220b Add support for using the Jinja2 built-ins such as range 2012-12-19 09:42:15 +01:00
Brian Coca d7f38d07b3 fixed bug for string size mismatch, now substring depends on size of match string Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Brian Coca 6a1e2aaff5 moved override matching string to variable changed test template to match Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Brian Coca 68f5d69365 added ability to override jinja enviornment from first line of template Signed-off-by: Brian Coca <briancoca+ansible@gmail.com>
Signed-off-by: Brian Coca <briancoca+dev@gmail.com>
2012-11-26 10:41:13 -05:00
Daniel Hokka Zakrisson e74ffd6764 Lookup plugin arguments need to be templated 2012-11-14 11:17:30 +01:00
Daniel Hokka Zakrisson c200c26ced Keep hostvars from being templated 2012-11-13 11:34:34 +01:00
Daniel Hokka Zakrisson 25a8787e95 Template all variables before returning them to Jinja2 2012-11-13 02:39:33 +01:00
Daniel Hokka Zakrisson d2dce1d63f Make lookup plugin replacements part of the main variable logic 2012-11-13 02:18:05 +01:00
Daniel Hokka Zakrisson a2bb3a09d2 Completely ignore stray $ in input
Previously, "a $ string $var" would not have gotten replaced at all.
2012-11-13 02:13:10 +01:00
Daniel Hokka Zakrisson 24b536d7ed Add some comments to templating system 2012-11-13 02:13:04 +01:00
Daniel Hokka Zakrisson 233a36b9e8 Template using module_vars early
Since no basedir is available at that time, avoid invoking
lookup plugins since they assume it is present.
2012-11-12 16:53:24 +01:00
Michael DeHaan c890ae18e7 Merge pull request #1575 from dhozac/parameterized-playbook-include
Add parameterized playbook includes
2012-11-12 05:17:38 -08:00
Daniel Hokka Zakrisson 9924555623 Add support for generic $XXX() to call $LOOKUP() 2012-11-10 23:46:37 +01:00
Daniel Hokka Zakrisson 383dc30560 Rename varReplaceWithItems to template_ds 2012-11-09 15:43:29 +01:00
Daniel Hokka Zakrisson 47082a9171 Add $LOOKUP(<lookup plugin>,<data>) as a templating option
Also moves file and pipe to lookup_plugins.
2012-11-07 23:17:29 +01:00
Jeroen Hoekx 8ffed6df75 Support custom jinja2 filters.
This uses the plugin framework to add filter plugins.
The previously hardcoded core filters are defined using the plugin
framework now.
2012-11-05 15:11:34 +01:00
Daniel Hokka Zakrisson 000d3832cc Make ansible.utils a package 2012-11-02 00:42:37 +01:00