I'm looking to return value based on query result, so far I'm not getting the desired result. json looks like this and is coming from ansible var
{
"header": {
"nodes": {
"node1": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "admin"
}
}
},
"node2": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "engine"
}
}
},
"node3": {
"last_shutdown": "date",
"level": {
"kind_node": {}
},
"state": {
"running": "true",
"more": {
"type": "engine"
}
}
}
}
}
}
So far I've tried to use dict2items but no luck. Currently, I'm getting an empty list.
set_fact:
my_var: "{{ nodes | dict2items | json_query('[?value.state.more.type==`admin`]') }}"
Basically, this task should set my_var ==> node1 since it's the admin. Any help is greatly appreciated.