From: Alfredo Deza Date: Tue, 3 Sep 2013 15:02:07 +0000 (-0400) Subject: make sure you do not allow single IPs for new X-Git-Tag: v1.2.4~24^2~2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=20dc915705fb44e604194190b7b7be3be035641a;p=ceph-deploy.git make sure you do not allow single IPs for new Signed-off-by: Alfredo Deza --- diff --git a/ceph_deploy/util/arg_validators.py b/ceph_deploy/util/arg_validators.py index 20db57e..422bba3 100644 --- a/ceph_deploy/util/arg_validators.py +++ b/ceph_deploy/util/arg_validators.py @@ -34,11 +34,21 @@ class Hostname(object): self.socket = _socket or socket # just used for testing def __call__(self, string): - host = string.split(':')[-1] # we might have name:host + parts = string.split(':') + name = parts[0] + host = parts[-1] try: - resolved_addr = self.socket.gethostbyname(host) + self.socket.gethostbyname(host) except self.socket.gaierror: msg = "hostname: %s is not resolvable" % host raise argparse.ArgumentError(None, msg) + try: + self.socket.inet_aton(name) + except self.socket.error: + return string # not an IP + else: + msg = '%s must be a hostname not an IP' % name + raise argparse.ArgumentError(None, msg) + return string