-
Notifications
You must be signed in to change notification settings - Fork 5.5k
/
yaml_jinja.py
39 lines (30 loc) · 921 Bytes
/
yaml_jinja.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
'''
The default rendering engine, process yaml with the jinja2 templating engine
This renderer will take a yaml file with the jinja2 template and render it to a
high data format for salt states.
'''
# Import Python Modules
import os
# Import thirt party modules
import yaml
try:
yaml.Loader = yaml.CLoader
yaml.Dumper = yaml.CDumper
except:
pass
# Import Salt libs
from salt.utils.jinja import get_template
def render(template_file, env='', sls=''):
'''
Render the data passing the functions and grains into the rendering system
'''
if not os.path.isfile(template_file):
return {}
passthrough = {}
passthrough['salt'] = __salt__
passthrough['grains'] = __grains__
passthrough['env'] = env
passthrough['sls'] = sls
template = get_template(template_file, __opts__, env)
yaml_data = template.render(**passthrough)
return yaml.safe_load(yaml_data)