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(
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
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)
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)
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]
+
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__)
`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)
import time
retries = 5
- hostname = socket.gethostname().split('.')[0]
+ hostname = remote_shortname(socket)
path = paths.mon.path(cluster, hostname)
if os.path.exists(path):
import pushy.transport.local
import subprocess
+from .misc import remote_shortname
+
logger = logging.getLogger(__name__)
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')
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):
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):