Как отфильтровать результаты по запросу API ANSIBLE Tower - PullRequest
0 голосов
/ 21 июня 2019

Используя почтальон, мне нужно показывать только результаты, где name = TestWorkflow

Вот результаты, возвращенные для моего запроса: Получите http://ansible -awx.pxdtools.io: 8000 / api / v2 / workflow_job_template_nodes /

{
    "results": [
        {
            "id": 1323,
            "summary_fields": {
                "workflow_job_template": {
                    "id": 121,
                    "name": "TestWorkflow",
                }
              }
        },
        {
            "id": 29,
            "summary_fields": {
                "workflow_job_template": {
                    "id": 61,
                    "name": "Livraison en TEST",
                },
            }
        }
    ]
}

Я уже пробовал многие из этих фильтров: https://docs.ansible.com/ansible-tower/latest/html/towerapi/filtering.html

Этот запрос не работает, потому что имя находится внутри результатов / summary_fields

Получить http://ansible -awx.pxdtools.io: 8000 / api / v2 / workflow_job_template_nodes /? Name = TestWorkflow

{
    "detail": "WorkflowJobTemplateNode has no field named 'name'"
}

ожидаемые результаты, которые я хочу, будут

{
    "results": [
        {
            "id": 1323,
            "summary_fields": {
                "workflow_job_template": {
                    "id": 121,
                    "name": "TestWorkflow",
                }
              }
        }
    ]
}

1 Ответ

0 голосов
/ 21 июня 2019

Попробуйте задачу с selectattr ниже

- set_fact:
    results: "{{ data.results|
                 selectattr('summary_fields.workflow_job_template.name',
                            'match',
                            'TestWorkflow')|
                 list }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...