]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
make sure you do not allow single IPs for new
authorAlfredo Deza <alfredo.deza@inktank.com>
Tue, 3 Sep 2013 15:02:07 +0000 (11:02 -0400)
committerAlfredo Deza <alfredo.deza@inktank.com>
Tue, 3 Sep 2013 15:02:07 +0000 (11:02 -0400)
Signed-off-by: Alfredo Deza <alfredo.deza@inktank.com>
ceph_deploy/util/arg_validators.py

index 20db57ef6d219d51724a9aef8d5c8ce170cbba19..422bba3b9cd0da3b6de8113bb3845fc6803b1eb5 100644 (file)
@@ -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