Simplify zuul_console port binding logic
Now that osic-cloud1 is providing IPv6 only, we need to update
zuul_console to also include ipv6 support. Previously, our logic
would only bind to 1 address, even if the host supported both
ipv4/ipv6.
With help from fungi, we can simplify our logic binding to both ipv4
and ipv6 at the same time.
Change-Id: Ia0286e017f14eab77c5d60333ee092c87bb1a84b
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
diff --git a/zuul/ansible/library/zuul_console.py b/zuul/ansible/library/zuul_console.py
index 1186235..e70dac8 100644
--- a/zuul/ansible/library/zuul_console.py
+++ b/zuul/ansible/library/zuul_console.py
@@ -60,28 +60,13 @@
class Server(object):
def __init__(self, path, port):
self.path = path
- s = None
- for res in socket.getaddrinfo(None, port, socket.AF_UNSPEC,
- socket.SOCK_STREAM, 0,
- socket.AI_PASSIVE):
- af, socktype, proto, canonname, sa = res
- try:
- s = socket.socket(af, socktype, proto)
- s.setsockopt(socket.SOL_SOCKET,
- socket.SO_REUSEADDR, 1)
- except socket.error:
- s = None
- continue
- try:
- s.bind(sa)
- s.listen(1)
- except socket.error:
- s.close()
- s = None
- continue
- break
- if s is None:
- sys.exit(1)
+
+ s = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
+ s.setsockopt(socket.SOL_SOCKET,
+ socket.SO_REUSEADDR, 1)
+ s.bind(('::', port))
+ s.listen(1)
+
self.socket = s
def accept(self):