total_seconds not present on timedelta on python2.6

reviewable/pr18780/r1
Lars Larsson 9 years ago
parent 0de2627efc
commit fa2ea225dd

@ -103,7 +103,7 @@ options:
notes: notes:
- The ability to use search_regex with a port connection was added in 1.7. - The ability to use search_regex with a port connection was added in 1.7.
requirements: [] requirements: []
author: author:
- "Jeroen Hoekx (@jhoekx)" - "Jeroen Hoekx (@jhoekx)"
- "John Jarvis (@jarv)" - "John Jarvis (@jarv)"
- "Andrii Radyk (@AnderEnder)" - "Andrii Radyk (@AnderEnder)"
@ -127,7 +127,7 @@ EXAMPLES = '''
- wait_for: path=/tmp/foo search_regex=completed - wait_for: path=/tmp/foo search_regex=completed
# wait until the lock file is removed # wait until the lock file is removed
- wait_for: path=/var/lock/file.lock state=absent - wait_for: path=/var/lock/file.lock state=absent
# wait until the process is finished and pid was destroyed # wait until the process is finished and pid was destroyed
- wait_for: path=/proc/3466/status state=absent - wait_for: path=/proc/3466/status state=absent
@ -322,6 +322,11 @@ def _create_connection( (host, port), connect_timeout):
connect_socket = socket.create_connection( (host, port), connect_timeout) connect_socket = socket.create_connection( (host, port), connect_timeout)
return connect_socket return connect_socket
def _timedelta_total_seconds(timedelta):
return (
timedelta.microseconds + 0.0 +
(timedelta.seconds + timedelta.days * 24 * 3600) * 10 ** 6) / 10 ** 6
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
@ -432,7 +437,7 @@ def main():
except IOError: except IOError:
pass pass
elif port: elif port:
alt_connect_timeout = math.ceil((end - datetime.datetime.now()).total_seconds()) alt_connect_timeout = math.ceil(_timedelta_total_seconds(end - datetime.datetime.now()))
try: try:
s = _create_connection((host, port), min(connect_timeout, alt_connect_timeout)) s = _create_connection((host, port), min(connect_timeout, alt_connect_timeout))
except: except:
@ -444,7 +449,7 @@ def main():
data = '' data = ''
matched = False matched = False
while datetime.datetime.now() < end: while datetime.datetime.now() < end:
max_timeout = math.ceil((end - datetime.datetime.now()).total_seconds()) max_timeout = math.ceil(_timedelta_total_seconds(end - datetime.datetime.now()))
(readable, w, e) = select.select([s], [], [], max_timeout) (readable, w, e) = select.select([s], [], [], max_timeout)
if not readable: if not readable:
# No new data. Probably means our timeout # No new data. Probably means our timeout

Loading…
Cancel
Save