Can you explain what you're doing with the until line you posted?
So I know what's in task_result.json.results[4].result. Here's what I get
if I debug as my next task:
- debug:
var: tasks_list.json.results[4].result
TASK [debug]
**********************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
"tasks_list.json.results[4].result": "success"
}
That's why I'm confused, because according to that debug, the until line
should work.
On Wednesday, June 12, 2019 at 12:38:06 PM UTC-4, Matt Martz wrote:
>
> You can, but the error is telling you that the JSON response, didn't have
> a `results` key. You need to account for the fact, that you might not
> always get the response you expect.
>
> Maybe like:
>
> until: (task_result.json.results|default([0, 1, 2, 3,
> dict(result='NOT_SUCCESS')))[4].result == 'success'
>
> In any case, your until makes a lot of assumptions about the data you
> expect to be there, you need to work from the perspective of not having
> what you expect.
>
> On Wed, Jun 12, 2019 at 11:14 AM Cade Lambert <[email protected]
> <javascript:>> wrote:
>
>> I'm writing a playbook to publish new Content View versions and promote
>> the new version to our Lifecycle Environments using the uri module. I'm
>> trying to create a task that will query the task ID until it reports a
>> result of 'success'. I've tried the following:
>>
>> - name: Get the tasks list from Satellite
>> uri:
>> url: https://satelitlite-server/foreman_tasks/api/tasks
>> method: GET
>> body:
>> order: 'id DESC'
>> organization_id: 3
>> user: "{{ satellite_user }}"
>> password: "{{ satellite_pass }}"
>> force_basic_auth: yes
>> validate_certs: no
>> body_format: json
>> register: tasks_list
>>
>> - name: Wait for new Content View version to finish publishing
>> uri:
>> url: "https://satellite-server/foreman_tasks/api/tasks/{{
>> tasks_list.json.results[4].id }}"
>> method: GET
>> status_code: 200
>> validate_certs: no
>> user: "{{ satellite_user }}"
>> password: "{{ satellite_pass }}"
>> force_basic_auth: yes
>> body_format: json
>> register: task_result
>> until: task_result.json.results[4].result == 'success'
>> retries: 60
>> delay: 20
>>
>> This gives me an error of:
>>
>> TASK [Wait for new Content View version to finish publishing]
>> *********************************************************************************************************************************************************************************
>> fatal: [localhost]: FAILED! => {"msg": "The conditional check
>> 'task_result.json.results[4].result == 'success'' failed. The error was:
>> error while evaluating conditional (task_result.json.results[4].result ==
>> 'success'): 'dict object' has no attribute 'results'"}
>>
>> I'm guessing I can't query a variable that's registered in the same
>> task? Does anyone know an alternative method other than just pausing the
>> playbook for a few minutes to let the publish task finish?
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Ansible Project" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/ansible-project/6f35ca5c-1c4c-439c-bf05-42a5ad6fe478%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/ansible-project/6f35ca5c-1c4c-439c-bf05-42a5ad6fe478%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> --
> Matt Martz
> @sivel
> sivel.net
>
--
You received this message because you are subscribed to the Google Groups
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/7c683512-75d6-4707-9689-d76f522adc6a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.