Yes guess so, Thanking you once again.
On Tue, 7 Mar 2023, 00:30 'Rowe, Walter P. (Fed)' via Ansible Project, < [email protected]> wrote: > You probably need to upgrade your ansible. > > Walter > -- > Walter Rowe, Division Chief > Infrastructure Services, OISM > Mobile: 202.355.4123 > > On Mar 6, 2023, at 1:55 PM, Aharonu <[email protected]> wrote: > > The same playbook also giving issue from end. May be i will look into in > deep if any version dependance. > > the output i got for you provided playbook: > > TASK [convert list of lists to list of dicts 1] > ********************************************************************************************************************************************* > ok: [ciccdot1] => (item=['Cluster 1', 'aggr1']) > ok: [ciccdot1] => (item=['Cluster 1', 'aggr2']) > ok: [ciccdot1] => (item=['Cluster 1', 'aggr4']) > ok: [ciccdot1] => (item=['Cluster 2', 'aggr1']) > ok: [ciccdot1] => (item=['Cluster 3', 'aggr2']) > > TASK [convert list of lists to list of dicts 2] > ********************************************************************************************************************************************* > fatal: [ciccdot1]: FAILED! => {} > > MSG: > > Invalid data passed to 'loop', it requires a list, got this instead: > <generator object sync_do_map at 0x7f1b5adf7830>. Hint: If you passed a > list/dict of just one element, try adding wantlist=True to your lookup > invocation or use q/query instead of lookup. > > > On Mon, Mar 6, 2023 at 6:10 PM 'Rowe, Walter P. (Fed)' via Ansible Project > <[email protected]> wrote: > >> --- >> - name: test loop with JSON dict list >> hosts: all >> become: false >> gather_facts: false >> vars: >> aggregates: >> - { cluster: "Cluster 1", aggregate: "aggr1" } >> - { cluster: "Cluster 1", aggregate: "aggr2" } >> - { cluster: "Cluster 1", aggregate: "aggr4" } >> - { cluster: "Cluster 2", aggregate: "aggr1" } >> - { cluster: "Cluster 3", aggregate: "aggr2" } >> aggregates2: [ >> [ "Cluster 1", "aggr1" ], >> [ "Cluster 1", "aggr2" ], >> [ "Cluster 1", "aggr4" ], >> [ "Cluster 2", "aggr1" ], >> [ "Cluster 3", "aggr2" ] >> ] >> >> tasks: >> >> - name: convert list of lists to list of dicts 1 >> set_fact: >> json_list1: "{{ aggregates2 | map('zip',['cluster','aggregate']) >> | map('map','reverse') | map('community.general.dict') }}" >> json_list2: "{{ aggregates2 | map('zip',['cluster','aggregate']) >> | map('map','reverse') }}" >> loop: "{{ aggregates2 }}" >> >> - name: convert list of lists to list of dicts 2 >> set_fact: >> json_list3: "{{ (json_list3 | default([])) + [ { item.0.0: >> item.0.1, item.1.0: item.1.1 } ] }}" >> loop: "{{ json_list2 }}" >> >> - name: show reference >> debug: >> msg: >> - "{{ json_list1 }}" >> - "{{ json_list2 }}" >> - "{{ json_list3 }}" >> >> >> Walter >> -- >> Walter Rowe, Division Chief >> Infrastructure Services, OISM >> Mobile: 202.355.4123 >> >> On Mar 6, 2023, at 1:04 PM, Aharonu <[email protected]> wrote: >> >> Hi Walter, >> >> Sorry for the trouble. I got still some error >> >> TASK [convert list of lists to list of dicts] >> *********************************************************************************************************************************************** >> ok: [localhost] => (item=['cluster1', 'aggr1']) >> ok: [localhost] => (item=['cluster1', 'aggr2']) >> ok: [localhost] => (item=['cluster1', 'aggr3']) >> ok: [localhost] => (item=['cluster1', 'aggr2']) >> ok: [localhost] => (item=['cluster2', 'aggr4']) >> >> TASK [convert list of lists to list of dicts 2] >> ********************************************************************************************************************************************* >> fatal: [localhost]: FAILED! => {} >> >> MSG: >> >> Invalid data passed to 'loop', it requires a list, got this instead: >> <generator object sync_do_map at 0x7f086aad40f8>. Hint: If you passed a >> list/dict of just one element, try adding wantlist=True to your lookup >> invocation or use q/query instead of lookup. >> >> On Mon, Mar 6, 2023 at 5:40 PM 'Rowe, Walter P. (Fed)' via Ansible >> Project <[email protected]> wrote: >> >>> Absent community.general.dict you can do it in two steps: >>> >>> - name: convert list of lists to list of dicts 1 >>> set_fact: >>> json_list: "{{ aggregates2 | map('zip',['cluster','aggregate']) >>> | map('map','reverse') }}" >>> loop: "{{ aggregates2 }}" >>> >>> - name: convert list of lists to list of dicts 2 >>> set_fact: >>> new_list: "{{ (new_list | default([])) + [ { item.0.0: >>> item.0.1, item.1.0: item.1.1 } ] }}" >>> loop: "{{ json_list }}" >>> >>> Walter >>> -- >>> Walter Rowe, Division Chief >>> Infrastructure Services, OISM >>> Mobile: 202.355.4123 >>> >>> On Mar 6, 2023, at 12:10 PM, Aharonu <[email protected]> wrote: >>> >>> Hi, >>> >>> Is there any version dependance to use community.general.dict? my >>> current Ansible version 2.9.13. >>> >>> When i use >>> - name: convert list of lists to list of dicts >>> set_fact: >>> json_list: "{{ aggregates | map('zip',['cluster','aggregate']) | >>> map('map','reverse') | map('community.general.dict') }}" >>> >>> output: >>> ok: [localhost] => { >>> "json_list": "<generator object sync_do_map at 0x7f47f2a99fc0>" >>> >>> When i use: >>> - name: convert list of lists to list of dicts >>> set_fact: >>> json_list: "{{ aggregates | map('zip',['cluster','aggregate']) | >>> map('map','reverse') | map('community.general.dict')|list }}" >>> Output: >>> An exception occurred during task execution. To see the full traceback, >>> use -vvv. The error was: jinja2.exceptions.TemplateRuntimeError: No filter >>> named 'community.general.dict'. >>> fatal: [localhost]: FAILED! => { >>> "changed": false >>> } >>> >>> On Mon, Mar 6, 2023 at 3:58 PM 'Rowe, Walter P. (Fed)' via Ansible >>> Project <[email protected]> wrote: >>> >>>> No problem. >>>> >>>> - name: convert list of lists to list of dicts >>>> set_fact: >>>> json_list: "{{ aggregates2 | >>>> map('zip',['cluster','aggregate']) | map('map','reverse') | >>>> map('community.general.dict') }}" >>>> >>>> produces >>>> >>>> "json_list": [ >>>> { >>>> "aggregate": "aggr1", >>>> "cluster": "Cluster 1" >>>> }, >>>> { >>>> "aggregate": "aggr2", >>>> "cluster": "Cluster 1" >>>> }, >>>> { >>>> "aggregate": "aggr4", >>>> "cluster": "Cluster 1" >>>> }, >>>> { >>>> "aggregate": "aggr1", >>>> "cluster": "Cluster 2" >>>> }, >>>> { >>>> "aggregate": "aggr2", >>>> "cluster": "Cluster 3" >>>> } >>>> ] >>>> >>>> >>>> Walter >>>> -- >>>> Walter Rowe, Division Chief >>>> Infrastructure Services, OISM >>>> Mobile: 202.355.4123 >>>> >>>> On Mar 6, 2023, at 10:36 AM, Aharonu <[email protected]> wrote: >>>> >>>> Hi, All and Walter, >>>> >>>> Thank you for good suggestions. >>>> >>>> That's a really good way to deal with it but there is something I >>>> should mention here to request help. >>>> >>>> Actually below aggregates data coming from another set_task ( see >>>> below) which contains a list data. >>>> >>>> vars: >>>> aggregates: [] >>>> >>>> aggregates data coming below set_fact. >>>> >>>> - set_fact: >>>> aggregates: "{{ aggregates|default([]) + ([item.item]| >>>> product(item | json_query(get_attrs)))| map('flatten')|list }}" >>>> vars: >>>> get_attrs: "ontap_info.storage_aggregates.records[*].[name]" >>>> loop: "{{ ontap.results }}" >>>> no_log: true >>>> >>>> *Looking for:* >>>> As above mentioned set_fact giving data into list into lists, Can we >>>> make aggregates *data into dict structure* as mentioned below from >>>> same set_fact ? >>>> >>>> aggregates: >>>> - { cluster: "Cluster 1", aggregate: "aggr1" } >>>> - { cluster: "Cluster 1", aggregate: "aggr2" } >>>> - { cluster: "Cluster 1", aggregate: "aggr4" } >>>> - { cluster: "Cluster 2", aggregate: "aggr1" } >>>> - { cluster: "Cluster 3", aggregate: "aggr2" } >>>> >>>> Thank you for your time and helping out. >>>> >>>> >>>> On Mon, Mar 6, 2023 at 2:14 PM 'Rowe, Walter P. (Fed)' via Ansible >>>> Project <[email protected]> wrote: >>>> >>>>> If you are defining aggregates (vs getting from some other task >>>>> register var), there is another way you could construct your aggregates >>>>> var. >>>>> >>>>> aggregates: >>>>> - { cluster: "Cluster 1", aggregate: "aggr1" } >>>>> - { cluster: "Cluster 1", aggregate: "aggr2" } >>>>> - { cluster: "Cluster 1", aggregate: "aggr4" } >>>>> - { cluster: "Cluster 2", aggregate: "aggr1" } >>>>> - { cluster: "Cluster 3", aggregate: "aggr2" } >>>>> >>>>> >>>>> This syntax makes it really easy to add more items and maintain proper >>>>> syntax. >>>>> >>>>> Your item.0 changes to item.cluster, and your item.1 change to >>>>> item.aggregate. >>>>> >>>>> - name: Get info >>>>> na_ontap_rest_info: >>>>> <<: *login >>>>> gather_subset: >>>>> - storage/volumes >>>>> parameters: >>>>> aggregates.name >>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0>: >>>>> "{{ item.cluster }}" >>>>> hostname: "{{ item.aggregate }}" >>>>> use_python_keys: true >>>>> register: vol_data >>>>> loop: "{{ aggregates }}" >>>>> no_log: false >>>>> >>>>> - debug: var=vol_data >>>>> >>>>> This might be more description and easier for someone else to make the >>>>> connection between your aggregates var and your loop references. The >>>>> aggregates var is still a list. It is a list of JSON dictionary items. >>>>> >>>>> --- >>>>> - name: test loop with JSON dict list >>>>> hosts: all >>>>> become: false >>>>> gather_facts: false >>>>> vars: >>>>> aggregates: >>>>> - { cluster: "Cluster 1", aggregate: "aggr1" } >>>>> - { cluster: "Cluster 1", aggregate: "aggr2" } >>>>> - { cluster: "Cluster 1", aggregate: "aggr4" } >>>>> - { cluster: "Cluster 2", aggregate: "aggr1" } >>>>> - { cluster: "Cluster 3", aggregate: "aggr2" } >>>>> >>>>> tasks: >>>>> - name: show reference >>>>> debug: msg="cluster {{ item.cluster }}, hostname {{ >>>>> item.aggregate }}" >>>>> loop: "{{ aggregates }}" >>>>> >>>>> >>>>> % ansible-playbook -i localhost, netapp.yml >>>>> >>>>> PLAY [test loop with JSON dict list] >>>>> *********************************************************************************** >>>>> >>>>> TASK [show reference] >>>>> ************************************************************************************************** >>>>> ok: [localhost] => (item={'cluster': 'Cluster 1', 'aggregate': >>>>> 'aggr1'}) => { >>>>> "msg": "cluster Cluster 1, hostname aggr1" >>>>> } >>>>> ok: [localhost] => (item={'cluster': 'Cluster 1', 'aggregate': >>>>> 'aggr2'}) => { >>>>> "msg": "cluster Cluster 1, hostname aggr2" >>>>> } >>>>> ok: [localhost] => (item={'cluster': 'Cluster 1', 'aggregate': >>>>> 'aggr4'}) => { >>>>> "msg": "cluster Cluster 1, hostname aggr4" >>>>> } >>>>> ok: [localhost] => (item={'cluster': 'Cluster 2', 'aggregate': >>>>> 'aggr1'}) => { >>>>> "msg": "cluster Cluster 2, hostname aggr1" >>>>> } >>>>> ok: [localhost] => (item={'cluster': 'Cluster 3', 'aggregate': >>>>> 'aggr2'}) => { >>>>> "msg": "cluster Cluster 3, hostname aggr2" >>>>> } >>>>> >>>>> PLAY RECAP >>>>> ************************************************************************************************************* >>>>> localhost : ok=1 changed=0 unreachable=0 >>>>> failed=0 skipped=0 rescued=0 ignored=0 >>>>> >>>>> Just another idea ... >>>>> >>>>> Walter >>>>> -- >>>>> Walter Rowe, Division Chief >>>>> Infrastructure Services, OISM >>>>> Mobile: 202.355.4123 >>>>> >>>>> >>>>> On Mar 6, 2023, at 8:24 AM, Aharonu <[email protected]> wrote: >>>>> >>>>> Yes, I got it what I was looking for. >>>>> >>>>> Thank you very much for your help *Todd* and *Walter*. >>>>> >>>>> >>>>> >>>>> On Mon, 6 Mar 2023, 18:25 'Rowe, Walter P. (Fed)' via Ansible Project, >>>>> <[email protected]> wrote: >>>>> >>>>>> Your 'aggregates' is a list of lists. For each aggregate list item, >>>>>> you have a two-element list where element [0] is cluster name and element >>>>>> [1] is aggregate name. >>>>>> >>>>>> Loop through aggregates, and use item.0 for cluster and item.1 for >>>>>> hostname ? >>>>>> >>>>>> - name: Get info >>>>>> na_ontap_rest_info: >>>>>> <<: *login >>>>>> gather_subset: >>>>>> - storage/volumes >>>>>> parameters: >>>>>> aggregates.name >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0>: >>>>>> "{{ item.1 }}" >>>>>> hostname: "{{ item.0 }}" >>>>>> use_python_keys: true >>>>>> register: vol_data >>>>>> loop: "{{ aggregates }}" >>>>>> loop_control: >>>>>> label: "{{ ?? }}" >>>>>> no_log: false >>>>>> - debug: var=vol_data >>>>>> >>>>>> Walter >>>>>> -- >>>>>> Walter Rowe, Division Chief >>>>>> Infrastructure Services, OISM >>>>>> Mobile: 202.355.4123 >>>>>> >>>>>> On Mar 4, 2023, at 7:27 AM, Aharonu <[email protected]> wrote: >>>>>> >>>>>> Hi Team, >>>>>> >>>>>> Greetings for the day! >>>>>> >>>>>> I have a variables called 'aggregates' under *vars* which ontaints >>>>>> cluster1,cluster3,cluster2..etc and aggr1,aggr2,aggr3..etc list as >>>>>> mentioned below. >>>>>> >>>>>> { >>>>>> "aggregates": [ >>>>>> [ >>>>>> "Cluster1", >>>>>> "aggr1" >>>>>> ], >>>>>> [ >>>>>> "Cluster1", >>>>>> "aggr2" >>>>>> ], >>>>>> [ >>>>>> "Cluster1", >>>>>> "aggr4" >>>>>> ], >>>>>> [ >>>>>> "Cluster2", >>>>>> "aggr1" >>>>>> ], >>>>>> [ >>>>>> "Cluster3", >>>>>> "aggr2" >>>>>> ] >>>>>> ] >>>>>> } >>>>>> >>>>>> ******************************************************************** >>>>>> Based on data from 'aggregates', Below playbook has 2 items to work >>>>>> on: >>>>>> aggregates.name >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0> >>>>>> : here we need to use aggr1,aggr3,aggr2...from variable 'aggregates' >>>>>> hostname: here we need to use Cluster1,Cluster2,Cluster3...from >>>>>> variable 'aggregates' >>>>>> >>>>>> What looking for is: >>>>>> *it has to go through loop iteration until 'aggregates' list >>>>>> completed.* First loop iteration has to go for Cluster1, aggr1, >>>>>> Second loop iteration to go for Cluster1, aggr2 based on data from ' >>>>>> aggregates'. >>>>>> >>>>>> 1st loop iteration: >>>>>> aggregates.name >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0>: >>>>>> 'aggr1' >>>>>> hostname: 'Cluster1' >>>>>> 2nd loop iteration: >>>>>> aggregates.name >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0>: >>>>>> 'aggr2' >>>>>> hostname: "Cluster1}" >>>>>> >>>>>> >>>>>> Playbook: >>>>>> --- >>>>>> - hosts: localhost >>>>>> gather_facts: false >>>>>> collections: >>>>>> - netapp.ontap >>>>>> vars_files: >>>>>> - < login file path > >>>>>> vars: >>>>>> aggregates: [] >>>>>> login: &login >>>>>> username: "{{ username }}" >>>>>> password: "{{ password }}" >>>>>> https: true >>>>>> validate_certs: false >>>>>> feature_flags: >>>>>> trace_apis: true >>>>>> tasks: >>>>>> - name: Get info >>>>>> na_ontap_rest_info: >>>>>> <<: *login >>>>>> gather_subset: >>>>>> - storage/volumes >>>>>> parameters: >>>>>> aggregates.name >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=http%3A%2F%2Faggregates.name%2F&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=gJLtuleSVqDwEYfHQMpCg4WbJe%2Bcg7wp8ICEScYuHqw%3D&reserved=0>: >>>>>> "{{ ?? }}" --> here we need to use aggr1,aggr3,aggr2...from >>>>>> variable 'aggregates' >>>>>> hostname: "{{ ?? }}" --> here we need to use >>>>>> Cluster1,Cluster2,Cluster3...from variable 'aggregates' >>>>>> use_python_keys: true >>>>>> register: vol_data >>>>>> loop: "{{ ?? }}" >>>>>> loop_control: >>>>>> label: "{{ ?? }}" >>>>>> no_log: false >>>>>> - debug: var=vol_data >>>>>> ... >>>>>> >>>>>> -- >>>>>> 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 view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/ansible-project/CANGEjuX20ndh8%2Bh_oCx8nGGBJTZ4oeEFfGQb0tWy6MXAuhTucA%40mail.gmail.com >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuX20ndh8%252Bh_oCx8nGGBJTZ4oeEFfGQb0tWy6MXAuhTucA%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829278436%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=fZ9G4Y8iYXVN4yJpY2DrDlPpHhXXxiKwXy6o2asyB0c%3D&reserved=0> >>>>>> . >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> 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 view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/ansible-project/03325950-FBD3-49F2-82BC-485D290BDEE1%40nist.gov >>>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2F03325950-FBD3-49F2-82BC-485D290BDEE1%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=MbKlbkqW7Y5fwd9n4Ci%2FzlDli66gWFh%2FT8MpsE6qD5s%3D&reserved=0> >>>>>> . >>>>>> >>>>> >>>>> -- >>>>> 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 view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/ansible-project/CANGEjuXJdpJe7gBCCY1nQYxhz44DuQA4V7c5qVXAakPCe_-hEA%40mail.gmail.com >>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuXJdpJe7gBCCY1nQYxhz44DuQA4V7c5qVXAakPCe_-hEA%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=D7XnyN%2FFwiMd97UEiXrbbalfQJZ7IiKbz0LlhipfMOM%3D&reserved=0> >>>>> . >>>>> >>>>> >>>>> >>>>> -- >>>>> 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 view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/ansible-project/3006506F-DEBA-4596-BF35-765F7DA80939%40nist.gov >>>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2F3006506F-DEBA-4596-BF35-765F7DA80939%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=XQKnev55CSnyPL1QK7R7PAoyzVj4WPbLIQieUfOF4fM%3D&reserved=0> >>>>> . >>>>> >>>> >>>> -- >>>> 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 view this discussion on the web visit >>>> https://groups.google.com/d/msgid/ansible-project/CANGEjuVhbZtfcH8cYjaM1%2BsypwfbHQK1P_QFQozw3%3DKOizudrA%40mail.gmail.com >>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuVhbZtfcH8cYjaM1%252BsypwfbHQK1P_QFQozw3%253DKOizudrA%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=5mTG4UehN2F432CDEVsyRw5Q%2Fk9v5mcu1mIMWwvBlDU%3D&reserved=0> >>>> . >>>> >>>> >>>> >>>> -- >>>> 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 view this discussion on the web visit >>>> https://groups.google.com/d/msgid/ansible-project/BFABBF7B-29C9-4299-B0A8-3F6FCB1EE68D%40nist.gov >>>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FBFABBF7B-29C9-4299-B0A8-3F6FCB1EE68D%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=h%2FjHIUk%2FNG94cmkw7KvFVYBRVt%2FbNBsujmCgqxOV5Rc%3D&reserved=0> >>>> . >>>> >>> >>> -- >>> 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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/ansible-project/CANGEjuWVoLVV%2BQJU0AC9fSn%2BCpnPp%2BETkMpCV61fuVt_UbhFhg%40mail.gmail.com >>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuWVoLVV%252BQJU0AC9fSn%252BCpnPp%252BETkMpCV61fuVt_UbhFhg%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=tR0bBFMRjD2KefrBewW37aNeHbIE%2BnKCaE14wEryew0%3D&reserved=0> >>> . >>> >>> >>> >>> -- >>> 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 view this discussion on the web visit >>> https://groups.google.com/d/msgid/ansible-project/464F213D-3BF5-401F-ADC3-E917E992DDFC%40nist.gov >>> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2F464F213D-3BF5-401F-ADC3-E917E992DDFC%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=T8KWKV4clSPEFXemXhdwrGZISTJeKUbPCpTyqme81oA%3D&reserved=0> >>> . >>> >> >> -- >> 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 view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/CANGEjuU_-FeRf3vkwHS2OApGxp8JmhPzSstUb0DTBPEqfQemDQ%40mail.gmail.com >> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuU_-FeRf3vkwHS2OApGxp8JmhPzSstUb0DTBPEqfQemDQ%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=R4lJ6HIRpSUebe28FyFgrWhph2seV%2FQ4E04FLTzQ2RQ%3D&reserved=0> >> . >> >> >> >> -- >> 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 view this discussion on the web visit >> https://groups.google.com/d/msgid/ansible-project/6051A287-FFAC-416E-B098-85A767239113%40nist.gov >> <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2F6051A287-FFAC-416E-B098-85A767239113%2540nist.gov%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=f9PlIEvoMR6GaD6yzDjBztNvZ8qztmka9%2Ff%2FxBHzGOw%3D&reserved=0> >> . >> > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/CANGEjuWT_KQcqw2mHHMcoWhNKkP5v25qHYudKjyXhtjxy8uP1Q%40mail.gmail.com > <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2FCANGEjuWT_KQcqw2mHHMcoWhNKkP5v25qHYudKjyXhtjxy8uP1Q%2540mail.gmail.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7Cb208e3a35f7742f1252b08db1e7478ae%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638137257829434599%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=52EiHjCPpTFFAoz9ZXo5wkOppQD%2FfL266Wc%2Fz%2FCtaPw%3D&reserved=0> > . > > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/AF580880-6BE1-4F34-853E-BF41847E0AE7%40nist.gov > <https://groups.google.com/d/msgid/ansible-project/AF580880-6BE1-4F34-853E-BF41847E0AE7%40nist.gov?utm_medium=email&utm_source=footer> > . > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CANGEjuV%3DiY2tcnkzyLBQOdtDJxiHBBfyTo4qPk21PSS8uKBSOg%40mail.gmail.com.
