From: Sage Weil Date: Mon, 28 Oct 2019 19:15:08 +0000 (-0500) Subject: mgr/ssh: provide get_unique_name helper X-Git-Tag: v15.1.0~1123^2~5 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=4d231f385bc27aa94dc3a17ed530dac88e971584;p=ceph.git mgr/ssh: provide get_unique_name helper Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index c4f0bdfd17d..9446d0a5b9b 100644 --- a/src/pybind/mgr/ssh/module.py +++ b/src/pybind/mgr/ssh/module.py @@ -3,8 +3,10 @@ import errno import logging from functools import wraps +import string import six import os +import random import tempfile import multiprocessing.pool @@ -183,6 +185,22 @@ class SSHOrchestrator(MgrModule, orchestrator.Orchestrator): self.get_ceph_option(opt)) self.log.debug(' native option %s = %s', opt, getattr(self, opt)) + def get_unique_name(self, existing, prefix=None): + """ + Generate a unique random service name + """ + while True: + if prefix: + name = prefix + '-' + else: + name = '' + name += ''.join(random.choice(string.ascii_lowercase) + for i in range(6)) + if len([d for d in existing if d.service_instance == name]): + self.log('name %s exists, trying again', name) + continue + return name + def _reconfig_ssh(self): temp_files = [] ssh_options = []