как настроить поиск по общему правилу - PullRequest
0 голосов
/ 20 мая 2019

Я пытаюсь извлечь несколько значений из поставленной задачи.

, пожалуйста, посмотрите мой пример playbook

   - name: Iterate JSON
    set_fact:
     app_item: "{{ item.name }}"
     when: "{{ result.results|json_query('[].\"scope member\"[?\"vdom\"==`\"vdom-shop\"`].vdom')|flatten|first }} == vdom-shop"
    with_items: "{{ result.results }}"

, пожалуйста, посмотрите вывод json из предыдущего задания

{
        "msg": {
            "ansible_facts": {
                "discovered_interpreter_python": "/usr/bin/python"
            },
            "changed": false,
            "failed": false,
            "msg": "Custom Query Success",
            "results": [
                {
                    "name": "FG-04-Policy",
                    "obj ver": 3,
                    "oid": 1196,
                    "package settings": {
                        "central-nat": "disable",
                        "fwpolicy-implicit-log": "disable",
                        "fwpolicy6-implicit-log": "disable",
                        "inspection-mode": "proxy"
                    },
                    "scope member": [
                        {
                            "name": "IN-FG-04",
                            "vdom": "vdom-shop"
                        }
                    ],
                    "type": "pkg"
                },
                {
                    "name": "FG-04-DC",
                    "obj ver": 23,
                    "oid": 1216,
                    "package settings": {
                        "central-nat": "disable",
                        "fwpolicy-implicit-log": "disable",
                        "fwpolicy6-implicit-log": "disable",
                        "inspection-mode": "proxy"
                    },
                    "scope member": [
                        {
                            "name": "IN-FG-04",
                            "vdom": "vdom1-dc"
                        }
                    ],
                    "type": "pkg"
                }
            ]
        }
    }

ожидаемый выходной результат должен быть таким, как показано ниже, со следующим условием.

 "name": "FG-04-Policy" when  "vdom"== "vdom-shop"
 "name": "FG-04-DC"    when  "vdom"== "vdom1-dc"

По сути, я хотел извлечь "FG-04-Policy", когда условие совпадает с приведенным выше примером, я ожидаю имя как FG-04-Policy, когда значение vdom равно vdom-shop

Может ли кто-нибудь помочь мне здесь

...