From e1b312644dd4ff62f76a0acdfe38ace97c049591 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 10 Mar 2021 13:48:10 -0500 Subject: [PATCH] mgr/cephadm: move rgw frontend logic into RgwService This doesn't belong in the ServiceSpec/RGWSpec Signed-off-by: Sage Weil (cherry picked from commit 667b633de2aa4e3be541a1719b1cd9cced295627) --- .../mgr/cephadm/services/cephadmservice.py | 28 +++++++++++++------ .../ceph/deployment/service_spec.py | 10 ------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index b632c790199..f77f3c40b81 100644 --- a/src/pybind/mgr/cephadm/services/cephadmservice.py +++ b/src/pybind/mgr/cephadm/services/cephadmservice.py @@ -4,7 +4,7 @@ import re import logging from abc import ABCMeta, abstractmethod from typing import TYPE_CHECKING, List, Callable, TypeVar, \ - Optional, Dict, Any, Tuple, NewType + Optional, Dict, Any, Tuple, NewType, cast from mgr_module import HandleCommandResult, MonCommandFailed @@ -700,13 +700,6 @@ class RgwService(CephService): 'value': spec.rgw_zone, }) - ret, out, err = self.mgr.check_mon_command({ - 'prefix': 'config set', - 'who': f"{utils.name_to_config_section('rgw')}.{spec.service_id}", - 'name': 'rgw_frontends', - 'value': spec.rgw_frontends_config_value(), - }) - if spec.rgw_frontend_ssl_certificate: if isinstance(spec.rgw_frontend_ssl_certificate, list): cert_data = '\n'.join(spec.rgw_frontend_ssl_certificate) @@ -745,11 +738,28 @@ class RgwService(CephService): def prepare_create(self, daemon_spec: CephadmDaemonDeploySpec) -> CephadmDaemonDeploySpec: assert self.TYPE == daemon_spec.daemon_type rgw_id, _ = daemon_spec.daemon_id, daemon_spec.host + spec = cast(RGWSpec, self.mgr.spec_store[daemon_spec.service_name].spec) keyring = self.get_keyring(rgw_id) - daemon_spec.keyring = keyring + # configure frontend + args = [] + if spec.ssl: + args.append(f"ssl_port={spec.get_port()}") + args.append(f"ssl_certificate=config://rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.crt") + args.append(f"ssl_key=config://rgw/cert/{spec.rgw_realm}/{spec.rgw_zone}.key") + else: + args.append(f"port={spec.get_port()}") + frontend = f'beast {" ".join(args)}' + ret, out, err = self.mgr.check_mon_command({ + 'prefix': 'config set', + 'who': utils.name_to_config_section(daemon_spec.name()), + 'name': 'rgw_frontends', + 'value': frontend + }) + + daemon_spec.keyring = keyring daemon_spec.final_config, daemon_spec.deps = self.generate_config(daemon_spec) return daemon_spec diff --git a/src/python-common/ceph/deployment/service_spec.py b/src/python-common/ceph/deployment/service_spec.py index 07cf097cd0e..105a790f0f2 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -731,16 +731,6 @@ class RGWSpec(ServiceSpec): else: return 80 - def rgw_frontends_config_value(self) -> str: - ports = [] - if self.ssl: - ports.append(f"ssl_port={self.get_port()}") - ports.append(f"ssl_certificate=config://rgw/cert/{self.rgw_realm}/{self.rgw_zone}.crt") - ports.append(f"ssl_key=config://rgw/cert/{self.rgw_realm}/{self.rgw_zone}.key") - else: - ports.append(f"port={self.get_port()}") - return f'beast {" ".join(ports)}' - yaml.add_representer(RGWSpec, ServiceSpec.yaml_representer) -- 2.47.3