Spec-Zone.ru › Ansible

Фильтр community.general.replace_keys – Замена определённых ключей в списке словарей

Примечание

Этот плагин-фильтр входит в коллекцию community.general (версия 9.5.0).

Эта коллекция может быть уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general.

Чтобы использовать его в книге задач, укажите: community.general.replace_keys.

Новое в community.general 9.1.0

  • Описание
  • Входные данные
  • Параметры
  • Примеры
  • Возвращаемое значение

Описание

  • Этот фильтр заменяет указанные ключи в предоставленном списке словарей.

Входные данные

Это описание входных данных фильтра, значение перед | community.general.replace_keys.

Параметр

Комментарии

Входные данные

список / элементы=словарь / обязательно

Список словарей.

Ключи верхнего уровня должны быть строками.

Параметры

Это описание параметров фильтра. Это значения key1=value1, key2=value2 и так далее в следующем примере: input | community.general.replace_keys(key1=value1, key2=value2, ...)

Параметр

Комментарии

matching_parameter

строка

Укажите параметр соответствия целевых ключей.

Варианты:

  • "ends_with": Сопоставляет ключи, заканчивающиеся одним из target[].before элементов.
  • "equal" (по умолчанию): Сопоставляет ключи, точно совпадающие с одним из target[].before элементов.
  • "regex": Сопоставляет ключи, соответствующие одному из регулярных выражений, указанных в target[].before.
  • "starts_with": Сопоставляет ключи, начинающиеся с одного из target[].before элементов.

target

список / элементы=словарь / обязательно

Список словарей с атрибутами before и after.

Значение target[].after заменяет ключ, соответствующий target[].before.

after

строка

Изменение соответствия ключа.

before

строка

Ключ или шаблон ключа для изменения.

Интерпретация target[].before зависит от matching_parameter.

Для ключа, соответствующего нескольким target[].before, будет использован первый соответствующий target[].after.

Примеры

l:
  - {k0_x0: A0, k1_x1: B0, k2_x2: [C0], k3_x3: foo}
  - {k0_x0: A1, k1_x1: B1, k2_x2: [C1], k3_x3: bar}

# 1) By default, replace keys that are equal any of the attributes before.
t:
  - {before: k0_x0, after: a0}
  - {before: k1_x1, after: a1}
r: "{{ l | community.general.replace_keys(target=t) }}"

# 2) Replace keys that starts with any of the attributes before.
t:
  - {before: k0, after: a0}
  - {before: k1, after: a1}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='starts_with') }}"

# 3) Replace keys that ends with any of the attributes before.
t:
  - {before: x0, after: a0}
  - {before: x1, after: a1}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='ends_with') }}"

# 4) Replace keys that match any regex of the attributes before.
t:
  - {before: "^.*0_x.*$", after: a0}
  - {before: "^.*1_x.*$", after: a1}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='regex') }}"

# The results of above examples 1-4 are all the same.
r:
  - {a0: A0, a1: B0, k2_x2: [C0], k3_x3: foo}
  - {a0: A1, a1: B1, k2_x2: [C1], k3_x3: bar}

# 5) If more keys match the same attribute before the last one will be used.
t:
  - {before: "^.*_x.*$", after: X}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='regex') }}"

# gives

r:
  - X: foo
  - X: bar

# 6) If there are items with equal attribute before the first one will be used.
t:
  - {before: "^.*_x.*$", after: X}
  - {before: "^.*_x.*$", after: Y}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='regex') }}"

# gives

r:
  - X: foo
  - X: bar

# 7) If there are more matches for a key the first one will be used.
l:
  - {aaa1: A, bbb1: B, ccc1: C}
  - {aaa2: D, bbb2: E, ccc2: F}
t:
  - {before: a, after: X}
  - {before: aa, after: Y}
r: "{{ l | community.general.replace_keys(target=t, matching_parameter='starts_with') }}"

# gives

r:
  - {X: A, bbb1: B, ccc1: C}
  - {X: D, bbb2: E, ccc2: F}

Возвращаемое значение

Ключ

Описание

Возвращаемое значение

список / элементы=словарь

Список словарей с изменёнными ключами.

Возвращено: успех

Авторы

  • Владимир Ботка (@vbotka)
  • Феликс Фонтейн (@felixfontein)

Подсказка

Элементы конфигурации для каждого типа имеют порядок приоритетов снизу вверх. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше.

Ссылки на коллекцию

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить сообщение об ошибке
  • Запросить функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/replace_keys_filter.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API