-
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
mkotsbak, md-magenta, Skeen and wimglenn
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