utils.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:kolla-kubernetes 作者: openstack 项目源码 文件源码
def render_jinja(dict_, template_str):
        """Render dict onto jinja template and return the string result"""
        name = 'jvars'

        def loader(n):
            if n == name:
                return template_str
            else:
                kkdir = pathfinder.PathFinder.find_kolla_kubernetes_dir()
                path = os.path.join(kkdir, n)
                with open(path) as f:
                    d = f.read()
                return d

        j2env = jinja2.Environment(
            loader=jinja2.FunctionLoader(loader))

        # Do not print type for bools "!!bool" on output
        j2env.filters['bool'] = TypeUtils.str_to_bool
        j2env.filters['min'] = min
        j2env.filters['b64encode'] = lambda x: \
            base64.b64encode(x.encode('ascii'))
        j2env.filters['b64decode'] = base64.b64decode
        j2env.filters['to_nice_yaml'] = lambda x: \
            yaml.safe_dump(x, default_flow_style=False) if x else ''

        # Add a "raise" keyword for raising exceptions from within jinja
        def jinja_raise(message):
            raise Exception(message)
        j2env.globals['raise'] = jinja_raise

        # Add a keyword for accessing KubeUtils from within jinja
        j2env.globals['KubeUtils'] = KubeUtils

        # Render the template
        rendered_template = j2env.get_template(name).render(dict_)
        return rendered_template + "\n"
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号