Проверка зерна вне списка с солончаком - PullRequest
0 голосов
/ 11 мая 2018

Я хочу проверить, установлена ​​ли конкретная версия программы. Поэтому я получил файл состояния:

{% set rvs = ['1113','1278'] %}

{% for rv in rvs %}

{% if ('r{{ rv }}' not in grains.get('cat12', [])) %}

... install it ...

{% else %}

... do nothing ...

{% endif %}

{% endfor %}

У меня в зернах:

cat12:
  - r1113

Я ожидаю, что «1278» установлено, а элемент списка «1113» ничего не вызывает, но даже это устанавливается снова ...

1 Ответ

0 голосов
/ 20 июня 2018

Нет такого синтаксиса, как использование {{ и }} внутри {% и %}.Что внутри {% и %} - это уже Джинджа.Просто объедините строковый литерал и строковую переменную с помощью оператора ~.

{% if 'r' ~ rv not in grains.get('cat12', []) %}

Или вы можете использовать фильтр формата:

{% if 'r%s'|format(rv) not in grains.get('cat12', []) %}
...