def notify(self, notify_type, notify_id):
pass
- def get_unique_name(self, host, existing, prefix=None, forcename=None):
- # type: (str, List[orchestrator.DaemonDescription], Optional[str], Optional[str]) -> str
+ def get_unique_name(self, daemon_type, host, existing, prefix=None,
+ forcename=None):
+ # type: (str, str, List[orchestrator.DaemonDescription], Optional[str], Optional[str]) -> str
"""
Generate a unique random service name
"""
+ suffix = daemon_type not in [
+ 'mon', 'crash',
+ 'prometheus', 'node-exporter', 'grafana', 'alertmanager',
+ ]
if forcename:
if len([d for d in existing if d.daemon_id == forcename]):
raise RuntimeError('specified name %s already in use', forcename)
name = prefix + '.'
else:
name = ''
- name += host + '.' + ''.join(random.choice(string.ascii_lowercase)
- for _ in range(6))
+ name += host
+ if suffix:
+ name += '.' + ''.join(random.choice(string.ascii_lowercase)
+ for _ in range(6))
if len([d for d in existing if d.daemon_id == name]):
self.log('name %s exists, trying again', name)
continue
for host, _, name in hosts_without_daemons:
if (len(our_daemons) + num_added) >= spec.count:
break
- daemon_id = self.get_unique_name(host, daemons, spec.name, name)
+ daemon_id = self.get_unique_name(daemon_type, host, daemons,
+ spec.name, name)
self.log.debug('placing %s.%s on host %s' % (daemon_type, daemon_id, host))
args.append((daemon_id, host))
# add to daemon list so next name(s) will also be unique
args = []
for host_spec in spec.placement.hosts:
host = host_spec.hostname
- name = host_spec.name or self.get_unique_name(host, daemons)
+ name = host_spec.name or self.get_unique_name('mgr', host,
+ daemons)
args.append((name, host))
c = self._create_mgr(args)
c.add_progress('Creating MGRs', self)
existing = [
DaemonDescription(daemon_type='mon', daemon_id='a')
]
- new_mon = cephadm_module.get_unique_name('myhost', existing, 'mon')
- match_glob(new_mon, 'mon.myhost.*')
+ new_mon = cephadm_module.get_unique_name('mon', 'myhost', existing)
+ match_glob(new_mon, 'myhost')
+ new_mgr = cephadm_module.get_unique_name('mgr', 'myhost', existing)
+ match_glob(new_mgr, 'myhost.*')
@mock.patch("cephadm.module.CephadmOrchestrator._get_connection")
@mock.patch("cephadm.module.CephadmOrchestrator._run_cephadm", _run_cephadm('[]'))