From: Joao Eduardo Luis Date: Thu, 31 Dec 2020 01:55:25 +0000 (+0000) Subject: cephadm/bootstrap: move mon net discovery to function X-Git-Tag: v16.2.0~232^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=5c1ce09002a7ba362a291d8ecd9073f0898e55c2;p=ceph.git cephadm/bootstrap: move mon net discovery to function Signed-off-by: Joao Eduardo Luis (cherry picked from commit bc256983c119d5d91576e659d56af267af37b760) --- diff --git a/src/cephadm/cephadm b/src/cephadm/cephadm index 272716cff20f..30e3b473ec71 100755 --- a/src/cephadm/cephadm +++ b/src/cephadm/cephadm @@ -3100,9 +3100,9 @@ def is_ipv6(ctx, address): return False -def obtain_mon_ip( +def prepare_mon_addresses( ctx: CephadmContext -) -> Tuple[str, str, bool]: +) -> Tuple[str, bool, Optional[str]]: r = re.compile(r':(\d+)$') base_ip = "" ipv6 = False @@ -3148,7 +3148,23 @@ def obtain_mon_ip( else: raise Error('must specify --mon-ip or --mon-addrv') logger.debug('Base mon IP is %s, final addrv is %s' % (base_ip, addr_arg)) - return (base_ip, addr_arg, ipv6) + + mon_network = None + if not ctx.args.skip_mon_network: + # make sure IP is configured locally, and then figure out the + # CIDR network + for net, ips in list_networks(ctx).items(): + if ipaddress.ip_address(unicode(unwrap_ipv6(base_ip))) in \ + [ipaddress.ip_address(unicode(ip)) for ip in ips]: + mon_network = net + logger.info('Mon IP %s is in CIDR network %s' % (base_ip, + mon_network)) + break + if not mon_network: + raise Error('Failed to infer CIDR network for mon ip %s; pass ' + '--skip-mon-network to configure it later' % base_ip) + + return (addr_arg, ipv6, mon_network) def create_initial_keys( @@ -3602,24 +3618,7 @@ def command_bootstrap(ctx): l = FileLock(ctx, fsid) l.acquire() - # ip - (base_ip, addr_arg, ipv6) = obtain_mon_ip(ctx) - - mon_network = None - if not ctx.args.skip_mon_network: - # make sure IP is configured locally, and then figure out the - # CIDR network - for net, ips in list_networks(ctx).items(): - if ipaddress.ip_address(unicode(unwrap_ipv6(base_ip))) in \ - [ipaddress.ip_address(unicode(ip)) for ip in ips]: - mon_network = net - logger.info('Mon IP %s is in CIDR network %s' % (base_ip, - mon_network)) - break - if not mon_network: - raise Error('Failed to infer CIDR network for mon ip %s; pass ' - '--skip-mon-network to configure it later' % base_ip) - + (addr_arg, ipv6, mon_network) = prepare_mon_addresses(ctx) config = prepare_bootstrap_config(ctx, fsid, addr_arg, ctx.args.image) logger.info('Extracting ceph user uid/gid from container image...')