Ansible почтовые списки списков - PullRequest
0 голосов
/ 21 ноября 2018

У меня есть список ниже:

"list_stores": [
{
  "aliases": [],
  "expiry": [],
  "path": "/path/to/keystore1.jks"
},
{
  "aliases": [
    "abc"
  ],
  "expiry": [
    "Certificate will not expire"
  ],
  "path": "/path/to/keystore2.jks"
},
{
  "aliases": [
    "1194",
    "1195",
    "1196"
  ],
  "expiry": [
    "Certificate will not expire",
    "Certificate will not expire",
    "Certificate will expire"
  ],
  "path": "/path/to/keystore3.jks"
}]

Я хочу создать список с диктовками, такими как (пропуская пустые списки 'aliases' и 'expiry'):

"final_list": [
{
  "path": "/path/to/keystore2.jks",
  "result": [
    {
      "alias": "abc",
      "expiry": "Certificate will not expire"
    }
  ]
},
{
  "path": "/path/to/keystore3.jks",
  "result": [
    {
      "alias": "1194",
      "expiry": "Certificate will not expire"
    },
    {
      "alias": "1195",
      "expiry": "Certificate will not expire"
    },
    {
      "alias": "1196",
      "expiry": "Certificate will expire"
    }
  ]
}]

Сначала я попытался создать новые списки, сопоставив атрибуты 'aliases' и 'expiry', например:

- name: Set fact list_aliases
  set_fact:
    list_aliases: "{{ list_store_alias_validity | map(attribute='aliases') | list }}"

В результате получилось два новых списка.Я попытался сжать их, но мне все еще нужно включить атрибут path.Как я могу решить это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...