I’m trying to parse the output of a uri request that I have saved in a variable named “apis”. Ultimately i will want to match several items when AnonymousAccessAllowed=true but I’m not having success. Any help would be appreciated.
If i debug “{{apis.json}}” this is the output.
`
TASK [debut apis] **********************************************************************************************************************************
ok: [localhost] => {
“msg”: {
“APIImplementationInfo”: [
{
“APIOwnedImplementation”: true,
“APIVersionID”: “799285b2-ac87-44be-8f61-342b96ffba2c.travelportAPI”,
“AnonymousAccessAllowed”: false,
“EndpointAccessAutoApproved”: true,
“ImplementationCode”: “Live”,
“Pattern”: “com.akana.pattern.proxy”,
“ServiceKey”: “uddi:5988b66a-ff7f-11e6-8674-d0288b15863d”
},
{
“APIOwnedImplementation”: true,
“APIVersionID”: “799285b2-ac87-44be-8f61-342b96ffba2c.travelportAPI”,
“AnonymousAccessAllowed”: true,
“EndpointAccessAutoApproved”: true,
“ImplementationCode”: “Sandbox”,
“Pattern”: “com.akana.pattern.proxy”,
“ServiceKey”: “uddi:3ebe224d-506b-11e7-ba06-98021d1b1c3f”
}
]
}
}
`
This is the relevant parts of the playbook. I’ve commented out the when condition but get an undefined variable in the test task.
`
- name: debut apis
debug:
msg: “{{apis.json}}”
- name: init fact
set_fact:
anon: “”
- name: test
set_fact:
anon: “{{anon}} + [ {{item.AnonymousAccessAllowed}} ]"
#when: item.AnonymousAccessAllowed | search(“true”)
with_items: “{{apis.json.APIImplementationInfo}}”
- name: output
debug:
msg: “{{anon}}”
`