From 3a8b1af46ccac6ab7f6fbd64a336443afec0282d Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Fri, 26 May 2023 15:06:40 -0400 Subject: [PATCH] cephadm: add fetch_tcp_ports function for getting processed ports The cephadm cli can pass ports as either a string containing space separated port numbers or, in the newer method, a (JSON) list of ints. The fetch_tcp_ports function abstracts away the handling of these input forms. Signed-off-by: John Mulligan --- src/cephadm/cephadm.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index d0332f1900a..06d8161a4ae 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -3067,6 +3067,17 @@ def fetch_configs(ctx: CephadmContext) -> Dict[str, str]: return {} +def fetch_tcp_ports(ctx: CephadmContext) -> List[int]: + """Return a list of tcp ports, as integers, stored on the given ctx. + """ + ports = getattr(ctx, 'tcp_ports', None) + if ports is None: + return [] + if isinstance(ports, str): + return list(map(int, ports.split())) + return ports + + def get_config_and_keyring(ctx): # type: (CephadmContext) -> Tuple[Optional[str], Optional[str]] config = None -- 2.39.5