Hi.

I'm running my playbook to get akamai to clear some caches and I'm using 
theit REST API that return json.

now I'm running into a problem with a look that I want to delay for X 
amount of seconds and X is part of the json response from the api so I'm 
doing something like :

- name: Wait for akamai to clear
     action: uri 
url=https://api.ccu.akamai.com{{akamairesponse.json.progressUri}}
             method=GET user=xxx password=xxx
             HEADER_Content-Type="application/json"
             status_code=200
             return_content=yes
     register: akamaistatus
   #- debug: msg="value of status  {{akamaistatus.json.purgeStatus}}"
     until: "'{{akamaistatus.json.purgeStatus}}' == 'Done'"
     retries: 10
     #delay: 60
     delay: '{{akamairesponse.json.estimatedSeconds|int}}'

debug shows :

TASK: [debug msg="value of {{akamairesponse.json.estimatedSeconds|int}}"] 
*****
ok: [localhost] => {
    "msg": "value of 420"
}

but when I run the playbook I get this :

TASK: [Wait for akamai to clear] 
**********************************************
<localhost> EXEC ['/bin/sh', '-c', 'mkdir -p 
$HOME/.ansible/tmp/ansible-1385160064.24-173468909890043 && chmod a+rx 
$HOME/.ansible/tmp/ansible-1385160064.24-173468909890043 && echo 
$HOME/.ansible/tmp/ansible-1385160064.24-173468909890043']
<localhost> REMOTE_MODULE uri 
url=https://api.ccu.akamai.com/ccu/v2/purges/ef63d1a5-5401-11e3-8c54-712f0c54712f
 
method=GET user=xxx password=xxx HEADER_Content-Type="application/json" 
status_code=200 return_content=yes
<localhost> PUT /tmp/tmpctvzt8 TO 
/usr/home/jamengual/.ansible/tmp/ansible-1385160064.24-173468909890043/uri
<localhost> EXEC ['/bin/sh', '-c', '/usr/local/bin/python 
/usr/home/jamengual/.ansible/tmp/ansible-1385160064.24-173468909890043/uri; 
rm -rf 
/usr/home/jamengual/.ansible/tmp/ansible-1385160064.24-173468909890043/ 
>/dev/null 2>&1']
fatal: [localhost] => Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/ansible/runner/__init__.py", 
line 394, in _executor
    exec_rc = self._executor_internal(host, new_stdin)
  File "/usr/local/lib/python2.7/site-packages/ansible/runner/__init__.py", 
line 485, in _executor_internal
    return self._executor_internal_inner(host, self.module_name, 
self.module_args, inject, port, complex_args=complex_args)
  File "/usr/local/lib/python2.7/site-packages/ansible/runner/__init__.py", 
line 688, in _executor_internal_inner
    time.sleep(delay)
TypeError: a float is required


FATAL: all hosts have already failed -- aborting

I tried using jinga2 filter as float and int and it doesn't work is there a 
limitation with loops delay variables ?

Thanks.



-- 
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 ansible-project+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to