From: Sage Weil Date: Wed, 10 Mar 2021 18:48:10 +0000 (-0500) Subject: mgr/cephadm: move rgw frontend logic into RgwService X-Git-Tag: v17.1.0~2601^2~11 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=667b633de2aa4e3be541a1719b1cd9cced295627;p=ceph.git mgr/cephadm: move rgw frontend logic into RgwService This doesn't belong in the ServiceSpec/RGWSpec Signed-off-by: Sage Weil --- diff --git a/src/pybind/mgr/cephadm/services/cephadmservice.py b/src/pybind/mgr/cephadm/services/cephadmservice.py index 5e18c0f819eb..a4d8d3eeb210 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 213c0af9f4d9..af07d254c330 100644 --- a/src/python-common/ceph/deployment/service_spec.py +++ b/src/python-common/ceph/deployment/service_spec.py @@ -735,16 +735,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)