You can read about

   - jmespath - https://jmespath.org/
   - Use jsonpath - https://jsonpath.com, you may end up something like this

 $.products[?(@.chartName == 'workload-manager')]

You can take this free course -
https://kodekloud.com/courses/enrolled/635226 to know more about JSON Path.


On Wed, Sep 9, 2020 at 12:55 PM [email protected] <[email protected]>
wrote:

> Tom,
>
> thanks for that reply, but it is way beyond my current experience.
>
> but looking at your reply & what i am looking for it doesn't seem to match.
>
> Under 'products' you can see there are several "groups" using the same
> keys but potentially different values, with nothing unique that i can use
> to show the difference between them, other the the values for each key. I
> want to understand if I can 'sort' through the response body, find the
> required 'name' & associate the correct 'status.state' to it.
>
> Your example only shows one 'group' with clear associations, my response
> body has multiple similar keys but different values.
>
> Thanks for the response though, but I can't see how it would help me.
>
>
>
> On Wednesday, 9 September 2020 at 08:14:32 UTC+1 [email protected] wrote:
>
>> HI
>>
>> from programming view, you should decode json string to a data structure
>> (hash), then access to the hash.
>>
>> my test:
>>
>> $ cat a.json
>>
>> {"a":123,"b":456,"c":789}
>>
>>
>> $ perl -MJSON -le 'open
>> FD,"a.json";$str=<FD>;$hash=JSON->new->decode($str);print $hash->{c}'
>>
>> 789
>>
>>
>> Thanks.
>>
>>
>>
>>
>>
>> On Wed, Sep 9, 2020 at 2:59 PM [email protected] <[email protected]>
>> wrote:
>>
>>> Morning all,
>>>
>>> have had this question from a co-worker & not managed to work out how do
>>> do it. Any help is greatly appreciated as I can see this coming up several
>>> times in the future as well.
>>>
>>> We have the following response body
>>>
>>> {
>>>
>>>     "products": [
>>>
>>>         {
>>>
>>>             "chartName": "action-orchestrator",
>>>
>>>             "installTime": 1599482114,
>>>
>>>             "modifiedTime": 1599482114,
>>>
>>>             "name": "Action Orchestrator",
>>>
>>>             "revision": 1,
>>>
>>>             "status": {
>>>
>>>                 "message": "Product is ready",
>>>
>>>                 "progressPercentage": 100,
>>>
>>>                 "state": "running"
>>>
>>>             },
>>>
>>>             "version": [
>>>
>>>                 "5.2.0"
>>>
>>>             ]
>>>
>>>         },
>>>
>>>         {
>>>
>>>             "chartName": "cloudcenter-shared",
>>>
>>>             "installTime": 1599483017,
>>>
>>>             "modifiedTime": 1599483017,
>>>
>>>             "name": "cloudcenter-shared",
>>>
>>>             "revision": 1,
>>>
>>>             "status": {
>>>
>>>                 "message": "Product is ready",
>>>
>>>                 "progressPercentage": 100,
>>>
>>>                 "state": "running"
>>>
>>>             },
>>>
>>>             "version": [
>>>
>>>                 "5.4.0"
>>>
>>>             ]
>>>
>>>         },
>>>
>>>         {
>>>
>>>             "chartName": "common-framework",
>>>
>>>             "installTime": 1599469174,
>>>
>>>             "modifiedTime": 1599469174,
>>>
>>>             "name": "Suite Admin",
>>>
>>>             "revision": 1,
>>>
>>>             "status": {
>>>
>>>                 "message": "Product is ready",
>>>
>>>                 "progressPercentage": 100,
>>>
>>>                 "state": "running"
>>>
>>>             },
>>>
>>>             "version": [
>>>
>>>                 "5.2.0"
>>>
>>>             ]
>>>
>>>         },
>>>
>>>         {
>>>
>>>             "chartName": "workload-manager",
>>>
>>>             "installTime": 1599483064,
>>>
>>>             "modifiedTime": 1599483064,
>>>
>>>             "name": "Workload Manager",
>>>
>>>             "revision": 1,
>>>
>>>             "status": {
>>>
>>>                 "message": "Waiting for product to be ready",
>>>
>>>                 "progressPercentage": 67,
>>>
>>>                 "state": "creating"
>>>
>>>             },
>>>
>>>             "version": [
>>>
>>>                 "5.4.0"
>>>
>>>             ]
>>>
>>>         }
>>>
>>>     ],
>>>
>>>     "status": {
>>>
>>>         "message": "Product install success",
>>>
>>>         "progressPercentage": 100,
>>>
>>>         "state": "running"
>>>
>>>     }
>>>
>>> }
>>>
>>>
>>>
>>> What we need to do is search through 'products', & check that the
>>> 'status.state' is 'running' for a specific 'name', in our case 'Workload
>>> Manager'
>>>
>>> I can't work out how to provide the search, with the expected result for
>>> the co-wokrer to use with an 'until' module.
>>>
>>> The idea is to only execute the next task, when the 'status.state'
>>> changes to 'running'.
>>>
>>>
>>> Hope this makes sense!
>>>
>>>
>>> Regards
>>>
>>> --
>>> 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/14ccb917-6782-48c5-9d9d-89dafb336d47n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/14ccb917-6782-48c5-9d9d-89dafb336d47n%40googlegroups.com?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/c41801fe-83b3-4f23-9cda-6578c1559321n%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/c41801fe-83b3-4f23-9cda-6578c1559321n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Thanks,
Abhijeet Kasurde

-- 
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/CAFwWkHqaGKUonuGCDDNtwAdFN_HMj74bXf3mOC_zZxmCFLUK-w%40mail.gmail.com.

Reply via email to