From 4d231f385bc27aa94dc3a17ed530dac88e971584 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Mon, 28 Oct 2019 14:15:08 -0500 Subject: [PATCH] mgr/ssh: provide get_unique_name helper Signed-off-by: Sage Weil --- src/pybind/mgr/ssh/module.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/pybind/mgr/ssh/module.py b/src/pybind/mgr/ssh/module.py index c4f0bdfd17d49..9446d0a5b9b92 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 = [] -- 2.39.5