Fix python-2.4 compatibility

This commit is contained in:
Andrey Trubachev 2015-01-05 21:05:01 +03:00 committed by Matt Clay
parent c55187ff42
commit b93633d7c2

View file

@ -301,6 +301,25 @@ def _little_endian_convert_32bit(block):
# which lets us start at the end of the string block and work to the begining # which lets us start at the end of the string block and work to the begining
return "".join([ block[x:x+2] for x in xrange(6, -2, -2) ]) return "".join([ block[x:x+2] for x in xrange(6, -2, -2) ])
def _create_connection( (host, port), connect_timeout):
"""
Connect to a 2-tuple (host, port) and return
the socket object.
Args:
2-tuple (host, port) and connection timeout
Returns:
Socket object
"""
if sys.version_info < (2, 6):
(family, _) = _convert_host_to_ip(host)
connect_socket = socket.socket(family, socket.SOCK_STREAM)
connect_socket.settimeout(connect_timeout)
connect_socket.connect( (host, port) )
else:
connect_socket = socket.create_connection( (host, port), connect_timeout)
return connect_socket
def main(): def main():
module = AnsibleModule( module = AnsibleModule(
@ -363,7 +382,7 @@ def main():
break break
elif port: elif port:
try: try:
s = socket.create_connection( (host, port), connect_timeout) s = _create_connection( (host, port), connect_timeout)
s.shutdown(socket.SHUT_RDWR) s.shutdown(socket.SHUT_RDWR)
s.close() s.close()
time.sleep(1) time.sleep(1)
@ -409,7 +428,7 @@ def main():
module.fail_json(msg="Failed to stat %s, %s" % (path, e.strerror), elapsed=elapsed.seconds) module.fail_json(msg="Failed to stat %s, %s" % (path, e.strerror), elapsed=elapsed.seconds)
elif port: elif port:
try: try:
s = socket.create_connection( (host, port), connect_timeout) s = _create_connection( (host, port), connect_timeout)
if search_regex: if search_regex:
data = '' data = ''
matched = False matched = False