From 0c702d530ef61d0485e89ef20ba47f93a8169b57 Mon Sep 17 00:00:00 2001 From: John Mulligan Date: Sat, 23 Sep 2023 15:27:46 -0400 Subject: [PATCH] cephadm: convert NFSGanesha to a ContainerDaemonForm Signed-off-by: John Mulligan --- src/cephadm/cephadm.py | 43 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/src/cephadm/cephadm.py b/src/cephadm/cephadm.py index c40d2f15bbf..43d3d453d8f 100755 --- a/src/cephadm/cephadm.py +++ b/src/cephadm/cephadm.py @@ -551,7 +551,7 @@ class Monitoring(DaemonForm): @register_daemon_form -class NFSGanesha(DaemonForm): +class NFSGanesha(ContainerDaemonForm): """Defines a NFS-Ganesha container""" daemon_type = 'nfs' @@ -700,6 +700,25 @@ class NFSGanesha(DaemonForm): def firewall_service_name(self) -> str: return 'nfs' + def container(self, ctx: CephadmContext) -> CephContainer: + return get_deployment_container(ctx, self.identity) + + def customize_container_endpoints( + self, endpoints: List[EndPoint], deployment_type: DeploymentType + ) -> None: + if deployment_type == DeploymentType.DEFAULT and not endpoints: + nfs_ports = list(NFSGanesha.port_map.values()) + endpoints.extend([EndPoint('0.0.0.0', p) for p in nfs_ports]) + + def uid_gid(self, ctx: CephadmContext) -> Tuple[int, int]: + # TODO: extract ganesha uid/gid (997, 994) ? + return extract_uid_gid(ctx) + + def config_and_keyring( + self, ctx: CephadmContext + ) -> Tuple[Optional[str], Optional[str]]: + return get_config_and_keyring(ctx) + ################################## @@ -5116,28 +5135,6 @@ def _dispatch_deploy( endpoints=daemon_endpoints ) - elif daemon_type == NFSGanesha.daemon_type: - # only check ports if this is a fresh deployment - if deployment_type == DeploymentType.DEFAULT and not daemon_endpoints: - nfs_ports = list(NFSGanesha.port_map.values()) - daemon_endpoints = [EndPoint('0.0.0.0', p) for p in nfs_ports] - - config, keyring = get_config_and_keyring(ctx) - # TODO: extract ganesha uid/gid (997, 994) ? - uid, gid = extract_uid_gid(ctx) - c = get_deployment_container(ctx, ident) - deploy_daemon( - ctx, - ident, - c, - uid, - gid, - config=config, - keyring=keyring, - deployment_type=deployment_type, - endpoints=daemon_endpoints - ) - elif daemon_type == CephIscsi.daemon_type: config, keyring = get_config_and_keyring(ctx) uid, gid = extract_uid_gid(ctx) -- 2.39.5