Невозможно проверить переменную, превышающую условие в шаблоне Ansible jinja2 - PullRequest
0 голосов
/ 26 марта 2020

Мой шаблон jinja2 выдает правильное значение для переменной

{{ vars[fruit | join("")] | default('ERR') }}

Переменная fruit имеет значение 83,6 и печатается модулем шаблона Ansible.

I wi sh написать условие if в шаблоне jinja2, где я хочу проверить, больше ли значение переменной fruit более 70

{% if ( vars[fruit | join("")] | int ) > 70 %}

MORE THAN 70

{% endif%}

Однако условие «если» не выполняется, когда я ожидаю, что оно выполнится успешно.

Я также попробовал следующее:

{% if ( vars[fruit | join("")] | int  > 70 ) %}

Я также попытался

{% if vars[fruit | join("")] | int  > 70 %}

Но ни один из них не работал. Пожалуйста, дайте мне знать, что нужно сделать, чтобы выполнить условие if?

1 Ответ

0 голосов
/ 26 марта 2020

Фильтр int не принимает строку с точкой. Вместо этого вы должны преобразовать его в число с плавающей точкой, округлив его с помощью фильтра round:

{% if ( vars[fruit | join("")] | round(method='floor')) > 70 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...