ansible: фильтр по умолчанию, который обрабатывает пустую строку как не определенную

Не уверен, что это лучшая практика, но при работе с большими объемами изображений в цикле (т. е. создании и удалении множества объектов Graphics / Image / Bitmap) я регулярно позволяю GC.Collect.

Я думаю, что где-то я читал, что GC работает только тогда, когда программа (в основном) простаивает, а не в середине интенсивного цикла, так что это может выглядеть как область, где может быть полезен ручной GC.

0
задан Nathan 18 January 2019 в 16:51
поделиться

1 ответ

Да, это возможно.

Не знаю, хотите ли вы чего-то подобного, но, для вашего описания, это будет работать для вас ...

- hosts: localhost
  vars:
    VARIABLE: ""
  tasks:
    - set_fact:
        NEW_VARIABLE: '{{ (VARIABLE |length > 0) | ternary(VARIABLE, "default") }}'
    - debug: msg="{{ NEW_VARIABLE }}"
PLAY [localhost] ********************************************************************************************************************************************************************************

TASK [Gathering Facts] **************************************************************************************************************************************************************************
ok: [localhost]

TASK [set_fact] *********************************************************************************************************************************************************************************
ok: [localhost]

TASK [debug] ************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "default"
}

Я предполагаю, что ваша переменная всегда будет определяться как "". Предполагая это, можно проверить его длину, а затем использовать троичный фильтр. Если его значение больше 0, он использует значение переменной, а если нет, то установит NEW_VARIABLE в "default". Если вы не знаете, будет ли определен VARIABLE или нет, поместите when: VARIABLE is defined в свою задачу set_fact, и так и должно быть.

Источник: Ansible filters

0
ответ дан Kelson Silva 18 January 2019 в 16:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: