Thanks .
The issue was with my csv file , i created new file and pasted same data(with same format ) and it worked both json_query and item[''column_data'] working properly On Tuesday, January 24, 2023 at 6:06:41 PM UTC+5:30 walte...@nist.gov wrote: > I like to use json_query to search a JSON list. This saves "looping" in > ansible. I find it faster. The result is a list, but you can always select > your_list[0] for the first one. > > # query json list for data center and region match > - set_fact: > *my_isilons*: "{{ isilon_cluster_output.list | *json_query('[?`Data > Center`==`'+primary_data_center+'` && `Dedicated region` ==`'+region+'`]')* > | list }}" > > # display entire result of query > - debug: > msg: "{{ *my_isilons* }}' > > # display first item if query returned 1 or more > - debug: > msg: "{{ *my_isilons**[0]* }}' > when: *my_isilons* is iterable and len(*my_isilons*) > 0 > > The added benefit of this method is you can now test in later tasks > whether the query result is interable and has a length greater than zero to > determine whether you found a match. > > # get cluster name and ip address if query returned 1 or more > - set_fact: > isilon_cluster_name_p: "{{ *my_isilons**[0]*['Cluster Name'] }}" > isilon_ip_address_p: "{{ *my_isilons**[0]*['IP Address'] }}" > when: *my_isilons* is iterable and len(*my_isilons*) > 0 > > You also can act on more than one item if the json query matched multiple > items. > > # do some operation on all the returned results > - set_fact: > isilon_cluster_name_p: "{{ *item*['Cluster Name'] }}" > isilon_ip_address_p: "{{ *item*['IP Address'] }}" > loop: "{{ *my_isilons* }}" > when: *my_isilons* is iterable and len(*my_isilons*) > 0 > > Walter > -- > Walter Rowe, Division Chief > Infrastructure Services, OISM > Mobile: 202.355.4123 <(202)%20355-4123> > > On Jan 24, 2023, at 5:38 AM, javed khan <javedkha...@gmail.com> wrote: > > Yes, that was same , i also got the perfect list of dictionaries , but it > giving bad error > > On Tuesday, January 24, 2023 at 3:38:37 AM UTC+5:30 uto...@gmail.com > wrote: > >> That is strange, because I copy-n-pasted you play and data, and it worked >> for me. Does your output before your last step look like mine? >> >> $ ansible-playbook isilon.yml >> >> PLAY [Isilon tests] >> **************************************************************************** >> >> TASK [First Read isilon cluster csv file from mount point for login] >> *************************** >> ok: [localhost] >> >> TASK [Print The inventry Full File in List format] >> ********************************************* >> ok: [localhost] => { >> "msg": [ >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "cnnndcisip-hc01", >> "Data Center": "NDC", >> "Dedicated region": "SC", >> "Environment": "Production", >> "IP Address": "172.19.94.62", >> "Serial No.": "CF2ZJ203800133" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "", >> "Data Center": "NDC", >> "Dedicated region": "", >> "Environment": "Production", >> "IP Address": "172.19.94.63", >> "Serial No.": "CF2ZJ204300024" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "", >> "Data Center": "NDC", >> "Dedicated region": "", >> "Environment": "Production", >> "IP Address": "172.19.94.64", >> "Serial No.": "CF2ZJ204300026" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "massdcisip-hc01", >> "Data Center": "SSDC", >> "Dedicated region": "MA", >> "Environment": "Production", >> "IP Address": "172.30.146.231", >> "Serial No.": "JACNT205160062" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "", >> "Data Center": "SSDC", >> "Dedicated region": "", >> "Environment": "Production", >> "IP Address": "172.30.146.232", >> "Serial No.": "JACNT210260055" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "", >> "Data Center": "SSDC", >> "Dedicated region": "", >> "Environment": "Production", >> "IP Address": "172.30.146.233", >> "Serial No.": "JACNT210260073" >> }, >> { >> "Business Purpose": "KPHC", >> "Cluster Name": "", >> "Data Center": "SSDC", >> "Dedicated region": "", >> "Environment": "Production", >> "IP Address": "172.30.146.234", >> "Serial No.": "JACNT210260083" >> } >> ] >> } >> >> TASK [Get isilon host from isilon cluster file.] >> *********************************************** >> skipping: [localhost] => (item={'Data Center': 'NDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'CF2ZJ203800133', >> 'Cluster Name': 'cnnndcisip-hc01', 'Dedicated region': 'SC', 'IP Address': >> '172.19.94.62'}) >> skipping: [localhost] => (item={'Data Center': 'NDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'CF2ZJ204300024', >> 'Cluster Name': '', 'Dedicated region': '', 'IP Address': '172.19.94.63'}) >> >> skipping: [localhost] => (item={'Data Center': 'NDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'CF2ZJ204300026', >> 'Cluster Name': '', 'Dedicated region': '', 'IP Address': '172.19.94.64'}) >> >> ok: [localhost] => (item={'Data Center': 'SSDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'JACNT205160062', >> 'Cluster Name': 'massdcisip-hc01', 'Dedicated region': 'MA', 'IP Address': >> '172.30.146.231'}) >> skipping: [localhost] => (item={'Data Center': 'SSDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'JACNT210260055', >> 'Cluster Name': '', 'Dedicated region': '', 'IP Address': '172.30.146.232'}) >> >> skipping: [localhost] => (item={'Data Center': 'SSDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'JACNT210260073', >> 'Cluster Name': '', 'Dedicated region': '', 'IP Address': '172.30.146.233'}) >> >> skipping: [localhost] => (item={'Data Center': 'SSDC', 'Environment': >> 'Production', 'Business Purpose': 'KPHC', 'Serial No.': 'JACNT210260083', >> 'Cluster Name': '', 'Dedicated region': '', 'IP Address': '172.30.146.234'}) >> >> >> TASK [Print The File System Name] >> ************************************************************** >> ok: [localhost] => { >> "msg": [ >> "massdcisip-hc01", >> "172.30.146.231" >> ] >> } >> >> PLAY RECAP >> ************************************************************************************* >> localhost : ok=4 changed=0 unreachable=0 >> failed=0 skipped=0 rescued=0 ignored=0 >> >> On Monday, January 23, 2023 at 9:42:02 AM UTC-5 javedkha...@gmail.com >> wrote: >> >>> Hi Team, >>> >>> how i will get rid of dictionary or only grab first match in loop output >>> with satisfying when condition. >>> >>> >>> >>> ============================================================== >>> files/isilon-allocation-KPHC.csv >>> =============================================================== >>> Data Center,Environment,Business Purpose,Serial No.,Cluster >>> Name,Dedicated region,IP Address >>> NDC,Production,KPHC,CF2ZJ203800133,cnnndcisip-hc01,SC,172.19.94.62 >>> NDC,Production,KPHC,CF2ZJ204300024,,,172.19.94.63 >>> NDC,Production,KPHC,CF2ZJ204300026,,,172.19.94.64 >>> SSDC,Production,KPHC,JACNT205160062,massdcisip-hc01,MA,172.30.146.231 >>> SSDC,Production,KPHC,JACNT210260055,,,172.30.146.232 >>> SSDC,Production,KPHC,JACNT210260073,,,172.30.146.233 >>> SSDC,Production,KPHC,JACNT210260083,,,172.30.146.234 >>> >>> >>> >>> >>> >>> =============================================================== >>> default/main.yml >>> =============================================================== >>> region: MA >>> primary_data_center: SSDC >>> >>> >>> >>> >>> >>> =============================================================== >>> task/main.yml >>> =============================================================== >>> >>> - name: "First Read isilon cluster csv file from mount point for login" >>> community.general.read_csv: >>> path: "{{ role_path }}/files/isilon-allocation-KPHC.csv" >>> register: isilon_cluster_output >>> >>> >>> - name: "Print The inventry Full File in List format" >>> ansible.builtin.debug: >>> msg: "{{ isilon_cluster_output.list }}" >>> >>> >>> - name: "Get isilon host from isilon cluster file." >>> ansible.builtin.set_fact: >>> isilon_cluster_name_p: "{{ item['Cluster Name'] }}" >>> isilon_ip_address_p: "{{ item['IP Address'] }}" >>> when: (item['Data Center'] == primary_data_center) and >>> (item['Dedicated region'] == region) >>> loop: "{{ isilon_cluster_output.list }}" >>> >>> >>> - name: "Print The File System Name" >>> ansible.builtin.debug: >>> msg: >>> - "{{ isilon_cluster_name_p }}" >>> - "{{ isilon_ip_address_p }}" >>> >>> >>> >>> ========================== >>> Error >>> ========================== >>> >>> >>> TASK [isilon_allocation_for_KPHP_environment : Get isilon host from >>> isilon cluster file.] ************************************* >>> task path: >>> /home/ansiblecontroller/Desktop/PROJECT/NAS/roles/isilon_allocation_for_KPHP_environment/tasks/naming_standard_creation.yml:13 >>> fatal: [localhost]: FAILED! => { >>> "msg": "The conditional check '(item['Data Center'] == >>> primary_data_center) and (item['Dedicated region'] == region)' failed. The >>> error was: error while evaluating conditional ((item['Data Center'] == >>> primary_data_center) and (item['Dedicated region'] == region)): 'dict >>> object' has no attribute 'Data Center'. 'dict object' has no attribute >>> 'Data Center'\n\nThe error appears to be in >>> '/home/ansiblecontroller/Desktop/PROJECT/NAS/roles/isilon_allocation_for_KPHP_environment/tasks/naming_standard_creation.yml': >>> >>> line 13, column 3, but may\nbe elsewhere in the file depending on the exact >>> syntax problem.\n\nThe offending line appears to be:\n\n\n- name: \"Get >>> isilon host from isilon cluster file.\"\n ^ here\n" >>> } >>> >>> > -- > 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 ansible-proje...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/e63f1b39-494b-4f28-a256-2bf4509d5c75n%40googlegroups.com > > <https://gcc02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgroups.google.com%2Fd%2Fmsgid%2Fansible-project%2Fe63f1b39-494b-4f28-a256-2bf4509d5c75n%2540googlegroups.com%3Futm_medium%3Demail%26utm_source%3Dfooter&data=05%7C01%7Cwalter.rowe%40nist.gov%7C1f8b462bb26e4ba6353b08dafdf76a5d%7C2ab5d82fd8fa4797a93e054655c61dec%7C1%7C0%7C638101536358934866%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=dt0Zw0ML9b%2B5wKXcZbH2G6Gl6rBl2kHJc0Ae6PMF1Ec%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 ansible-project+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/27ffbaed-2a71-49a7-934b-e4c67fcfbeb7n%40googlegroups.com.