Como fazer multiline Jinja2 condicionais em bloco único? [fechadas]

2

O código abaixo é rejeitado como sintaticamente incorreto:

{%
    if inventory_hostname in groups.aptcache
        set cachehost = 'localhost'
    else
        set cachehost = groups['aptcache'] | first
    endif
%}
cache={{ cachehost }}

Espero que minha intenção seja clara o suficiente para um guru Jinja2 me corrigir ... Por favor?

    
por Mikhail T. 24.08.2017 / 23:38

1 resposta

4

Você não pode colocar o if-then-else em um bloco, a menos que seja uma expressão if. Qualquer um:

{% if inventory_hostname in groups.aptcache %}
{%      set cachehost = 'localhost' %}
{% else %}
{%      set cachehost = groups['aptcache'] | first %}
{% endif %}
cache={{ cachehost }}

ou

cache={{ 'localhost' if inventory_hostname in groups.aptcache else groups['aptcache'] | first }}
    
por 25.08.2017 / 02:18