]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-deploy.git/commitdiff
consistently remove domain from short hostname
authorDmitry Borodaenko <angdraug@gmail.com>
Tue, 10 Sep 2013 18:43:00 +0000 (11:43 -0700)
committerDmitry Borodaenko <angdraug@gmail.com>
Tue, 10 Sep 2013 18:45:50 +0000 (11:45 -0700)
Signed-off-by: Dmitry Borodaenko <angdraug@gmail.com>
ceph_deploy/hosts/centos/mon/create.py
ceph_deploy/hosts/debian/mon/create.py
ceph_deploy/hosts/fedora/mon/create.py
ceph_deploy/hosts/suse/mon/create.py
ceph_deploy/misc.py
ceph_deploy/mon.py
ceph_deploy/sudo_pushy.py
ceph_deploy/tests/unit/test_mon.py

index e8dcf8d07530b5649111b5b9e3776d4b463838d9..51dfdcb0e9d9bffff0e7f1ff0f8f8b63b25e46e8 100644 (file)
@@ -1,9 +1,10 @@
 from ceph_deploy.util.wrappers import check_call
 from ceph_deploy.hosts import common
+from ceph_deploy.misc import remote_shortname
 
 
 def create(distro, logger, args, monitor_keyring):
-    hostname = distro.sudo_conn.modules.socket.gethostname().split('.')[0]
+    hostname = remote_shortname(distro.sudo_conn.modules.socket)
     common.mon_create(distro, logger, args, monitor_keyring, hostname)
     service = common.which_service(distro.sudo_conn, logger)
     check_call(
index 29b48362440b58a2d40896705f4dbbd651837494..4592c5050d9c268f9b1c44b28692db7640a79b95 100644 (file)
@@ -1,9 +1,10 @@
 from ceph_deploy.util.wrappers import check_call
 from ceph_deploy.hosts import common
+from ceph_deploy.misc import remote_shortname
 
 
 def create(distro, logger, args, monitor_keyring):
-    hostname = distro.sudo_conn.modules.socket.gethostname().split('.')[0]
+    hostname = remote_shortname(distro.sudo_conn.modules.socket)
     common.mon_create(distro, logger, args, monitor_keyring, hostname)
 
     if distro.init == 'upstart': # Ubuntu uses upstart
index d7bae2d63155bec4a69fff594aa89265a8aa12ee..80da3af9d10b8a8bfe55263cf8c713dc64cfa7d3 100644 (file)
@@ -1,9 +1,10 @@
 from ceph_deploy.util.wrappers import check_call
 from ceph_deploy.hosts import common
+from ceph_deploy.misc import remote_shortname
 
 
 def create(distro, logger, args, monitor_keyring):
-    hostname = distro.sudo_conn.modules.socket.gethostname().split('.')[0]
+    hostname = remote_shortname(distro.sudo_conn.modules.socket)
     common.mon_create(distro, logger, args, monitor_keyring, hostname)
     service = common.which_service(distro.sudo_conn, logger)
 
index d7bae2d63155bec4a69fff594aa89265a8aa12ee..80da3af9d10b8a8bfe55263cf8c713dc64cfa7d3 100644 (file)
@@ -1,9 +1,10 @@
 from ceph_deploy.util.wrappers import check_call
 from ceph_deploy.hosts import common
+from ceph_deploy.misc import remote_shortname
 
 
 def create(distro, logger, args, monitor_keyring):
-    hostname = distro.sudo_conn.modules.socket.gethostname().split('.')[0]
+    hostname = remote_shortname(distro.sudo_conn.modules.socket)
     common.mon_create(distro, logger, args, monitor_keyring, hostname)
     service = common.which_service(distro.sudo_conn, logger)
 
index 09d14c318223f8610fba60ff2c464d6023a23c8a..08d7ce3d2a7b8c4c8b9b3d6a245b2229ae9fd589 100644 (file)
@@ -23,3 +23,10 @@ def mon_hosts(mons):
                 name = name.split('.')[0]
         yield (name, host)
 
+def remote_shortname(socket):
+    """
+    Obtains remote hostname of the socket and cuts off the domain part
+    if it's FQDN.
+    """
+    return socket.gethostname().split('.', 1)[0]
+
index de8fe813312180c8b68e26188ae826ed94143b5d..372bc65b3f8188ac47e37adce6be05bccd7a49d8 100644 (file)
@@ -11,7 +11,7 @@ from .cliutil import priority
 from .sudo_pushy import get_transport
 from .util import paths, wrappers
 from . import hosts
-from .misc import mon_hosts
+from .misc import mon_hosts, remote_shortname
 
 
 LOG = logging.getLogger(__name__)
@@ -113,7 +113,7 @@ def hostname_is_compatible(conn, logger, provided_hostname):
     `hostname` in the remote host, otherwise mons can fail not reaching quorum.
     """
     logger.debug('determining if provided host has same hostname in remote')
-    remote_hostname = conn.modules.socket.gethostname()
+    remote_hostname = remote_shortname(conn.modules.socket)
     if remote_hostname == provided_hostname:
         return
     logger.warning('*'*80)
@@ -133,7 +133,7 @@ def destroy_mon(cluster, paths, is_running):
     import time
     retries = 5
 
-    hostname = socket.gethostname().split('.')[0]
+    hostname = remote_shortname(socket)
     path = paths.mon.path(cluster, hostname)
 
     if os.path.exists(path):
index a44f438ed7834c75614d3bc9726bde4e8194a74d..ef57c98eb8383e8e9cd2cc6d020986979a3b7630 100644 (file)
@@ -5,6 +5,8 @@ import pushy.transport.ssh
 import pushy.transport.local
 import subprocess
 
+from .misc import remote_shortname
+
 logger = logging.getLogger(__name__)
 
 
@@ -42,7 +44,7 @@ class LocalSudoTransport(object):
 
 def get_transport(hostname):
     use_sudo = needs_sudo()
-    myhostname = socket.gethostname().split('.')[0]
+    myhostname = remote_shortname(socket)
     if hostname == myhostname:
         if use_sudo:
             logger.debug('will use a local connection with sudo')
index 5be312089eba7a10acc34cad9079cb0bd0c938b7..7f0c601ef82e65f69b32c403beb82b4f637d3a1b 100644 (file)
@@ -2,7 +2,7 @@ import sys
 from mock import Mock, MagicMock, patch, call
 from ceph_deploy import mon
 from ceph_deploy.hosts.common import mon_create
-from ceph_deploy.misc import mon_hosts
+from ceph_deploy.misc import mon_hosts, remote_shortname
 
 
 def path_exists(target_paths=None):
@@ -131,6 +131,15 @@ class TestCreateMon(object):
         result = hosts.mock_calls
         assert result == expected
 
+    def test_remote_shortname(self):
+        socket = Mock()
+        socket.gethostname.return_value = 'host.f.q.d.n'
+        assert remote_shortname(socket) == 'host'
+
+        socket = Mock()
+        socket.gethostname.return_value = 'host'
+        assert remote_shortname(socket) == 'host'
+
 class TestIsRunning(object):
 
     def setup(self):