У меня есть json с приведенным ниже списком уникальных ключей.
{
"image_names": [
{
"name": "sles-11-factory-os-ready"
},
{
"name": "sles-11-factory-base-vg00"
},
{
"name": "sles-11-factory-base"
},
{
"name": "rhel-7-factory-os-ready"
},
{
"name": "sles-12-factory-os-ready"
},
{
"name": "rhel-6-factory-os-ready"
},
{
"name": "rhel-7-factory-base-vg00"
},
{
"name": "sles-12-factory-base-vg00"
},
{
"name": "rhel-6-factory-base-vg00"
},
{
"name": "rhel-7-factory-base"
},
{
"name": "rhel-6-factory-base"
},
{
"name": "sles-12-factory-base"
}
]
}
У меня есть другой json с указанными выше ключами, но с другими значениями.
{
"rhel-7-factory-os-ready" : [
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
},
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
},
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
}
],
"rhel-6-factory-os-ready" : [
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
},
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
},
{
"id": "79334504-3e48-4411-b602-afe920e32e14",
"updated": "2019-05-07T15:51:00Z"
}
]
}
Я пытаюсь получить самые старые изображения по их обновленным значениям даты и времени, просматривая каждое изображение. В конце концов, я ожидаю следующий набор данных старых изображений при сортировке по полю updated
из rhel-6-factory-base
image
skipping: [localhost] => (item={'updated': u'2019-05-07T15:20:39Z', 'name': u'rhel-6-factory-base', 'id': u'30109a53-4aab-4fb5-87ff-7650e75731b0'})
ok: [localhost] => (item={'updated': u'2019-05-07T12:21:36Z', 'name': u'rhel-6-factory-base', 'id': u'294821b3-e9df-4b12-ae39-8deb8f9c72ff'}) => {
"msg": "The images to be deleted are: 294821b3-e9df-4b12-ae39-8deb8f9c72ff"
}
ok: [localhost] => (item={'updated': u'2019-04-29T14:04:20Z', 'name': u'rhel-6-factory-base', 'id': u'068ae5f0-d7a0-4419-829e-18eb25551c94'}) => {
"msg": "The images to be deleted are: 068ae5f0-d7a0-4419-829e-18eb25551c94"
}
Я пробовал с нижеуказанным, но не повезло!
- name: Print the old images
debug:
msg: "The images to be deleted are: {{ item.id }}"
when:
- item|length > 1
- index != 0
- item.id is defined
# loop: "{{ grouped_by_name['rhel-6-factory-base'] }}"
with_subelements:
- "{{ image_names | map(attribute='name') | list }}"
- grouped_by_name
loop_control:
index_var: index
В приведенном выше фрагменте image_names
& grouped_by_name
переменные являются первыми двумя наборами данных соответственно.
Как я могу сделать двойную петлю grouped_by_name
из ключей, переданных image_names
var?
В случае, если вопрос не ясен, пожалуйста, не стесняйтесь комментировать, я постараюсь перефразировать его.