From: Sage Weil Date: Mon, 16 Mar 2020 22:36:43 +0000 (-0500) Subject: Merge PR #33952 into octopus X-Git-Tag: v15.2.0~36 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ccf85a1fef8fbc33ec3537b32d890ccfc1e664ce;p=ceph.git Merge PR #33952 into octopus * refs/pull/33952/head: qa/workunits/cephadm: --skip-mon-network when using 127.0.0.1 cephadm: add tests qa/tasks/cephadm: pass -v to bootstrap mgr/cephadm: only try to place mons on hosts matching public_network mgr/cephadm: keep track of host networks, ips cephadm: automatically infer mon public_network, if we can cephadm: add list-networks command Reviewed-by: Sebastian Wagner --- ccf85a1fef8fbc33ec3537b32d890ccfc1e664ce diff --cc src/pybind/mgr/cephadm/module.py index c2702bdf3f84,825a26bf5f22..887543d105ee --- a/src/pybind/mgr/cephadm/module.py +++ b/src/pybind/mgr/cephadm/module.py @@@ -2238,7 -2257,29 +2262,27 @@@ class CephadmOrchestrator(orchestrator. return trivial_result([]) config_func = config_fns.get(daemon_type, None) - service_name = spec.service_name() - self.log.debug('Applying service %s spec' % service_name) daemons = self.cache.get_daemons_by_service(service_name) + + public_network = None + if daemon_type == 'mon': + ret, out, err = self.mon_command({ + 'prefix': 'config get', + 'who': 'mon', + 'key': 'public_network', + }) + if '/' in out: + public_network = out.strip() + self.log.debug('mon public_network is %s' % public_network) + + def matches_network(host): + # type: (str) -> bool + if not public_network: + return False + # make sure we have 1 or more IPs for that network on that + # host + return len(self.cache.networks[host].get(public_network, [])) > 0 + hosts = HostAssignment( spec=spec, get_hosts_func=self._get_hosts,