Ansible Анализ значения из заголовка ответа REST API - PullRequest
0 голосов
/ 05 августа 2020

Я, должно быть, упускаю что-то очевидное. Мне нужно извлечь значение из одного ключа в заголовке ответа на вызов GET API.

Я пытаюсь получить значение client_version , но не могу извлечь эти данные.

Версия Anisble: 2.4.2.0

playbook:

- name: Get test client version
  uri:
    url: "{{ current_client_version_url }}"
    method: GET
    header:
      Content-Type: "application/json"
  register: resp

- debug: msg={{ resp }}

Вывод:

{
    "msg": {
        "content_length": "180",
        "status": 200,
        "cookies": {},
        "x_ratelimit_reset": "1",
        "json": {
            "defaultContainerAlias": "_default",
            "exchangeContainerAlias": null,
            "hasContainersEnabled": true,
            "hasExchangeEnabled": false,
            "hasTargetedOffers": false,
            "autoDeleteItemReferences": false
        },
        "url": "https://some.url.goes.here.com/v1/subdir/metadata",
        "changed": false,
        "vary": "Accept-Encoding, User-Agent",
        "x_envoy_upstream_service_time": "3",
        "failed": false,
        "connection": "close",
        "content_type": "application/json;charset=utf-8",
        "client_version": "1a2b3c4d5f",
        "date": "Tue, 04 Aug 2020 22:34:34 GMT",
        "redirected": false,
        "x_ratelimit_remaining": "197",
        "msg": "OK (180 bytes)"
    },
    "changed": false,
    "_ansible_verbose_always": true,
    "_ansible_no_log": false
}

Я предполагал, что это будет обычный Ansible вывод, и попробовал:

resp.msg.client_version

resp.msg ['client_version']

resp.msg [client_version]

Когда я ссылаюсь на resp.msg в операторе отладки, я просто получаю:

"msg": "OK (180 bytes)"

, что для меня не имеет смысла ...

Помощь приветствуется.

1 Ответ

0 голосов
/ 05 августа 2020

понял, что это решение соотв. Client_version . это стало достаточно забавным, когда я вставил сюда. есть еще один ключ msg .

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