Michael DeHaan
b09ef21ec9
Add code to flag legacy templating like $foo.{bar} as deprecated in favor of Jinja2 {{ foo.bar }} so we
...
can remove the legacy system at a later date.
2013-04-10 17:52:35 -04:00
Michael DeHaan
804056a563
Use Jinja2 strict undefined in string templating to allow the default filter to be used.
2013-04-10 16:45:53 -04:00
Michael DeHaan
998230a84a
Allow $foo and {{ bar }} to be used on the same line in playbooks.
2013-04-10 16:40:49 -04:00
Stoned Elipot
154f58f82d
Fix Jinja2 filter plugins initialization
...
_get_filter_plugins() checks FILTER_PLUGINS against None hence
the latter should be initialized to None.
2013-04-09 22:38:24 +02:00
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