You can write a small filter plugin that gives you the items of dicts
(something that simply returns an `item.values()` or something like that).
Then you could do:
vars:
# Will create a list of inner dict values inside a list of parent
dict's values
- firmware_items: "{{ firmware.values() | map('get_dict_values') | list
}}"
tasks:
- debug: var=item.url
with_flattened: firmware_items
Alternatively, I wrote a lookup plugin that allows you do chain lookups and
make them iterate on each other. Then you can do this:
tasks:
- debug: item.values.url
with_recursive:
- { name: dict, args: firmware }
- { name: dict, args: "{{item.values}}" }
Lookup plugin is here: https://gist.github.com/hkariti/d07695b4b9c5a68d8c02
On Wednesday, June 24, 2015 at 10:37:52 PM UTC+3, Hank Beatty wrote:
>
> Hello,
>
> Given the data below I would like to create a single task that will
> print the url or the filename without having to specify the hardware
> (PowerEdge_xxxxx) or the firmware (bios, idrac, etc.).
>
> Any ideas would be very much appreciated.
>
> Thanks,
> Hank
>
> Something like:
>
> - name: Print firmfware info
> debug: msg="item0 {{ item.0 }} item1 {{ item.1.url }}"
> with_indexed_items: "{{firmware}}"
>
> OR:
>
> - name: Print firmfware info
> debug: msg="item0 {{ item.0 }} item1 {{ item.1.url }}"
> with_dict: "{{firmware}}"
>
>
>
> ---
> firmware:
> PowerEdge_730xd:
> bios:
> type: bios
> url:
> http://downloads.dell.com/FOLDER02868051M/1/BIOS_XR23Y_WN64_1.2.10.EXE
> filename: BIOS_XR23Y_WN64_1.2.10.EXE
> target_version: 1.2.10
> search: none
> minimum_version: none
> idrac:
> type: idrac
> url:
>
> http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE
>
> filename:
> iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE
> target_version: 2.10.10.10
> search: none
> minimum_version: none
> raid:
> type: raid
> url:
>
> http://downloads.dell.com/FOLDER02864367M/2/SAS-RAID_Firmware_V43G1_WN64_25.2.2-0004_A03.EXE
>
> filename: SAS-RAID_Firmware_V43G1_WN64_25.2.2-0004_A03.EXE
> target_version: 25.2.2-0004
> search: none
> minimum_version: none
> nic_intel1:
> type: nic
> url:
>
> http://downloads.dell.com/FOLDER02309982M/1/Network_Firmware_M26VT_WN64_15.5.0_A00.EXE
>
> filename: Network_Firmware_M26VT_WN64_15.5.0_A00.EXE
> target_version: 15.5.0
> search: X520
> minimum_version: none
> nic_intel2:
> type: nic
> url:
>
> http://downloads.dell.com/FOLDER02861870M/2/Network_Firmware_6FD9P_WN64_16.5.20_A00.EXE
>
> filename: Network_Firmware_6FD9P_WN64_16.5.20_A00.EXE
> target_version: 16.5.20
> search: X520
> minimum_version: 15.5.0
> PowerEdge_720xd:
> bios:
> type: bios
> url:
> http://downloads.dell.com/FOLDER02797465M/1/BIOS_MKCTM_WN64_2.5.2.EXE
> filename: BIOS_MKCTM_WN64_2.5.2.EXE
> target_version: 2.5.2
> search: none
> minimum_version: none
> nic:
> type: nic
> url:
>
> http://downloads.dell.com/FOLDER02861870M/2/Network_Firmware_6FD9P_WN64_16.5.20_A00.EXE
>
> filename: Network_Firmware_6FD9P_WN64_16.5.20_A00.EXE
> target_version: 16.5.20
> search: X520
> minimum_version: 15.5.0
> PowerEdge_620xd:
> bios:
> type: bios
> url:
> http://downloads.dell.com/FOLDER02797465M/1/BIOS_MKCTM_WN64_2.5.2.EXE
> filename: BIOS_MKCTM_WN64_2.5.2.EXE
> target_version: 2.5.2
> search: none
> minimum_version: none
> raid:
> type: raid
> url:
>
> http://downloads.dell.com/FOLDER02864367M/2/SAS-RAID_Firmware_V43G1_WN64_25.2.2-0004_A03.EXE
>
> filename: SAS-RAID_Firmware_V43G1_WN64_25.2.2-0004_A03.EXE
> target_version: 25.2.2-0004
> search: none
> minimum_version: none
>
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/1fd734c7-7252-4b0f-b974-8cf6ad69f790%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.