Ansible - Json_Path не работает - PullRequest
0 голосов
/ 06 апреля 2020

У меня есть следующая задача set_fact:

- set_fact:
   task_uuid: "{{ task_status.json  |lower |to_json | from_json |json_query('taskuuid') }}"

Это то, что у меня есть для task_status. json:

 debug:
   var: task_status.json
{
"task_status.json": {
    "taskUuid": "e66cea71-ef33-4610-9194-0403e4bb2153"
}
}

Вывод: task_uuid var is empty.

Я попробовал любую комбинацию (убрал to_ json, из_ json, et c).

Пожалуйста, советуйте. Я в основном хочу получить значение taskUUID.

Я повторно использую задачу set_fact для нескольких конечных точек API - некоторые из которых дают 'taskUuid', а некоторые дают 'taskuuid', а некоторые даже 'task_uuid' - я нахожу способ получить UUID из этих конечных точек, используя общий фильтр

1 Ответ

1 голос
/ 06 апреля 2020

Вот как я могу сделать, чтобы убедиться, что я поймаю любой случай, независимо от того, является ли идентификатор верблюжьим регистром или нет:

    - set_fact:
        task_uuid : "{{ task_status.json.taskUuid | default(task_status.json.taskuuid | default(''))  }}"

Вложенный default только для того, чтобы убедиться, что задача не Ошибка в случае, если ни один из идентификаторов не присутствует. Адаптируйся под свои нужды.

...