-
Notifications
You must be signed in to change notification settings - Fork 5.6k
Open
Labels
Corerelates to code central or existential to Saltrelates to code central or existential to Saltbugbroken, incorrect, or confusing behaviorbroken, incorrect, or confusing behaviordoc-reworkconfusing, misleading, or wrongconfusing, misleading, or wrongdocumentationRelates to Salt documentationRelates to Salt documentationpending-closeseverity-medium3rd level, incorrect or bad functionality, confusing and lacks a work around3rd level, incorrect or bad functionality, confusing and lacks a work aroundtime-estimate-sprint
Milestone
Description
Can't use tpldir or slspath in template file
I want to load defaults with construction like this
{%- import_yaml slspath ~ "/defaults.yaml" as defaults %}
Which work flawless in sls state file. But fails in template file. On #salt IRC channel I received a recommendation to use 'tpldir' variable instead, but it doesn't work as well.
Setup
init.sls
{%- import_yaml slspath ~ "/defaults.yaml" as defaults %}
config:
file.managed:
- name: "/tmp/test.cfg"
- source: salt://{{ slspath }}/test.cfg.jinja
- template: jinja
test.cfg.jinja
{%- import_yaml tpldir ~ "/defaults.yaml" as defaults %}
opt1 = var1
opt2 = var2
With setup like this I receive error:
ID: config
Function: file.managed
Name: /tmp/test.cfg
Result: False
Comment: An exception occurred in this state: Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1746, in call
**cdata['kwargs'])
File "/usr/lib/python2.7/dist-packages/salt/loader.py", line 1704, in wrapper
return f(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/salt/states/file.py", line 1821, in managed
**kwargs
File "/usr/lib/python2.7/dist-packages/salt/modules/file.py", line 4340, in check_managed_changes
**kwargs)
File "/usr/lib/python2.7/dist-packages/salt/modules/file.py", line 3834, in get_managed
**kwargs)
File "/usr/lib/python2.7/dist-packages/salt/utils/templates.py", line 178, in render_tmpl
output = render_str(tmplstr, context, tmplpath)
File "/usr/lib/python2.7/dist-packages/salt/utils/templates.py", line 386, in render_jinja_tmpl
buf=tmplstr)
SaltRenderError: Jinja variable 'tpldir' is undefined
Started: 18:20:39.233032
Duration: 52.652 ms
Changes:
Expected result is 'tpldir' will contain path to current template file.
Versions Report
Salt Version:
Salt: 2016.11.4
Dependency Versions:
cffi: 0.8.6
cherrypy: Not Installed
dateutil: 2.2
docker-py: Not Installed
gitdb: 0.5.4
gitpython: 0.3.2 RC1
ioflo: Not Installed
Jinja2: 2.9.4
libgit2: Not Installed
libnacl: Not Installed
M2Crypto: Not Installed
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.4.2
mysql-python: 1.2.3
pycparser: 2.10
pycrypto: 2.6.1
pycryptodome: Not Installed
pygit2: Not Installed
Python: 2.7.9 (default, Jun 29 2016, 13:08:31)
python-gnupg: Not Installed
PyYAML: 3.11
PyZMQ: 14.4.0
RAET: Not Installed
smmap: 0.8.2
timelib: Not Installed
Tornado: 4.2.1
ZMQ: 4.0.5
System Versions:
dist: debian 8.8
machine: x86_64
release: 3.16.0-4-amd64
system: Linux
version: debian 8.8
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Corerelates to code central or existential to Saltrelates to code central or existential to Saltbugbroken, incorrect, or confusing behaviorbroken, incorrect, or confusing behaviordoc-reworkconfusing, misleading, or wrongconfusing, misleading, or wrongdocumentationRelates to Salt documentationRelates to Salt documentationpending-closeseverity-medium3rd level, incorrect or bad functionality, confusing and lacks a work around3rd level, incorrect or bad functionality, confusing and lacks a work aroundtime-estimate-sprint