From: Frode Nordahl Date: Sun, 13 Apr 2014 20:28:25 +0000 (+0200) Subject: Update arg_validators.py X-Git-Tag: v1.5.0~12^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=56cf3d53fb31052be57c826290ae0c54cf2eed8a;p=ceph-deploy.git Update arg_validators.py o Handle name:ip correctly for IPv6 address o Handle hostnames that resolves to IPv6-only address o Detect IPv6 address and raise error when hostname is expected --- diff --git a/ceph_deploy/util/arg_validators.py b/ceph_deploy/util/arg_validators.py index 571a182..d350a9b 100644 --- a/ceph_deploy/util/arg_validators.py +++ b/ceph_deploy/util/arg_validators.py @@ -34,7 +34,7 @@ class Hostname(object): self.socket = _socket or socket # just used for testing def __call__(self, string): - parts = string.split(':') + parts = string.split(':', 1) name = parts[0] host = parts[-1] try: @@ -44,8 +44,8 @@ class Hostname(object): raise argparse.ArgumentError(None, msg) try: - self.socket.inet_aton(name) - except self.socket.error: + self.socket.getaddrinfo(name, 0, 0, 0, 0, self.socket.AI_NUMERICHOST) + except self.socket.gaierror: return string # not an IP else: msg = '%s must be a hostname not an IP' % name