Do you mean add conditions for each iteration? No, you cant do that
currently. Shouldnt be hard, butnI dont have a lot of time to do it myself.

On Fri, Jul 24, 2015, 15:03 Hank Beatty <[email protected]> wrote:

>  Hello Hagai,
>
> This got me going. Thank you.
>
> Is there a way to match a given model (given that I set the 'Model' var
> earlier in the playbook)? I need the firmware and that works perfectly but,
> I need to limit the firmware that goes to a certain model of server.
>
> Thanks,
> Hank
>
> Something like:
>
> - debug: var=Model
>
> - debug: msg={{ item.key }}
>   when: item.key == 'idrac'
>   with_recursive:
>    - { name: dict, args: firmware, "{{ Model }}" }
>    - { name: dict, args: "{{item.value}}" }
>
> Here is the output of the above:
>
> TASK: [idrac-firmware | debug var=Model]
> **************************************
> ok: [<some server>] => {
>     "var": {
>         "Model": "PowerEdge_R730xd"
>     }
> }
>
> TASK: [idrac-firmware | debug msg={{ item.key }}]
> *****************************
> skipping: [<some server>] => (item={'key': 'bios', 'value': {'url': '
> http://downloads.dell.com/FOLDER02797483M/1/BIOS_CNN4X_WN64_2.5.2.EXE',
> 'search': 'none', 'target_version': '2.5.2', 'minimum_version': 'none',
> 'filename': 'BIOS_CNN4X_WN64_2.5.2.EXE'}})
> skipping: [<some server>] => (item={'key': 'os_collector', 'value':
> {'url': '
> http://downloads.dell.com/FOLDER02775623M/1/Diagnostics_Application_5W2KP_WN64_OSC_1.1_X10-00.EXE',
> 'search': 'none', 'target_version': 1.1000000000000001, 'minimum_version':
> 'none', 'filename':
> 'Diagnostics_Application_5W2KP_WN64_OSC_1.1_X10-00.EXE'}})
> skipping: [<some server>] => (item={'key': 'bios', 'value': {'url': '
> http://downloads.dell.com/FOLDER02868051M/1/BIOS_XR23Y_WN64_1.2.10.EXE',
> 'search': 'none', 'target_version': '1.2.10', 'minimum_version': 'none',
> 'filename': 'BIOS_XR23Y_WN64_1.2.10.EXE'}})
> ok: [<some server>] => (item={'key': 'idrac', 'value': {'url': '
> http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE',
> 'search': 'none', 'target_version': '2.10.10.10', 'minimum_version':
> 'none', 'filename':
> 'iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE'}})
> => {
>     "item": {
>         "key": "idrac",
>         "value": {
>             "filename":
> "iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE",
>             "minimum_version": "none",
>             "search": "none",
>             "target_version": "2.10.10.10",
>             "url":
> "http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE";
> <http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE>
>         }
>     },
>     "msg": "idrac"
> }
> skipping: [<some server>] => (item={'key': 'bios', 'value': {'url': '
> http://downloads.dell.com/FOLDER02868051M/1/BIOS_XR23Y_WN64_1.2.10.EXE',
> 'search': 'none', 'target_version': '1.2.10', 'minimum_version': 'none',
> 'filename': 'BIOS_XR23Y_WN64_1.2.10.EXE'}})
> ok: [<some server>] => (item={'key': 'idrac', 'value': {'url': '
> http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE',
> 'search': 'none', 'target_version': '2.10.10.10', 'minimum_version':
> 'none', 'filename':
> 'iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE'}})
> => {
>     "item": {
>         "key": "idrac",
>         "value": {
>             "filename":
> "iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE",
>             "minimum_version": "none",
>             "search": "none",
>             "target_version": "2.10.10.10",
>             "url":
> "http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE";
> <http://downloads.dell.com/FOLDER02881013M/1/iDRAC-with-Lifecycle-Controller_Firmware_FM1PC_WN64_2.10.10.10_A00.EXE>
>         }
>     },
>     "msg": "idrac"
>
> }
>
>
>
> On 6/27/15 7:56 AM, Hagai Kariti wrote:
>
> 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
> <https://groups.google.com/d/msgid/ansible-project/1fd734c7-7252-4b0f-b974-8cf6ad69f790%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
>
> For more options, visit https://groups.google.com/d/optout.
>
>  --
> You received this message because you are subscribed to a topic in the
> Google Groups "Ansible Project" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/ansible-project/GDRoK1yWo9U/unsubscribe.
> To unsubscribe from this group and all its topics, 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/55B22989.5030600%40gmail.com
> <https://groups.google.com/d/msgid/ansible-project/55B22989.5030600%40gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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/CAO0%3DbmG9oQvLa9fjZ4yVLrkcaALHLrCAMK4vDR61Qn91Udzhrg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to