]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/cephadm: always use fixed pool and namespace
authorSage Weil <sage@newdream.net>
Mon, 28 Jun 2021 17:55:15 +0000 (13:55 -0400)
committerSage Weil <sage@newdream.net>
Wed, 14 Jul 2021 20:20:11 +0000 (16:20 -0400)
Signed-off-by: Sage Weil <sage@newdream.net>
src/pybind/mgr/cephadm/services/nfs.py

index e331af08d483d1045595e86d636f2662b241774d..fdd4d7a59d3150b071b01034002123010c575ab5 100644 (file)
@@ -13,6 +13,9 @@ from orchestrator import DaemonDescription
 
 from cephadm.services.cephadmservice import AuthEntity, CephadmDaemonDeploySpec, CephService
 
+
+POOL_NAME = 'nfs-ganesha'   # make sure this matches pybind/mgr/nfs/nfs_utils.py
+
 logger = logging.getLogger(__name__)
 
 
@@ -97,8 +100,8 @@ class NFSService(CephService):
             context = {
                 "user": rados_user,
                 "nodeid": nodeid,
-                "pool": spec.pool,
-                "namespace": spec.namespace if spec.namespace else '',
+                "pool": POOL_NAME,
+                "namespace": spec.service_id,
                 "rgw_user": rgw_user,
                 "url": spec.rados_config_location(),
                 # fall back to default NFS port if not present in daemon_spec
@@ -110,9 +113,8 @@ class NFSService(CephService):
         # generate the cephadm config json
         def get_cephadm_config() -> Dict[str, Any]:
             config: Dict[str, Any] = {}
-            config['pool'] = spec.pool
-            if spec.namespace:
-                config['namespace'] = spec.namespace
+            config['pool'] = POOL_NAME
+            config['namespace'] = spec.service_id
             config['userid'] = rados_user
             config['extra_args'] = ['-N', 'NIV_EVENT']
             config['files'] = {
@@ -143,10 +145,9 @@ class NFSService(CephService):
             'rados',
             '-n', f"mgr.{self.mgr.get_mgr_id()}",
             '-k', str(self.mgr.get_ceph_option('keyring')),
-            '-p', cast(str, spec.pool),
+            '-p', POOL_NAME,
+            '--namespace', cast(str, spec.service_id),
         ]
-        if spec.namespace:
-            cmd += ['--namespace', spec.namespace]
         result = subprocess.run(
             cmd + ['get', objname, '-'],
             stdout=subprocess.PIPE, stderr=subprocess.PIPE,
@@ -170,9 +171,7 @@ class NFSService(CephService):
         spec = cast(NFSServiceSpec, self.mgr.spec_store[daemon_spec.service_name].spec)
         entity: AuthEntity = self.get_auth_entity(daemon_id)
 
-        osd_caps = 'allow rw pool=%s' % (spec.pool)
-        if spec.namespace:
-            osd_caps = '%s namespace=%s' % (osd_caps, spec.namespace)
+        osd_caps = 'allow rw pool=%s namespace=%s' % (POOL_NAME, spec.service_id)
 
         logger.info('Creating key for %s' % entity)
         keyring = self.get_keyring_with_caps(entity,
@@ -204,7 +203,7 @@ class NFSService(CephService):
         entity = AuthEntity(f'client.{tmp_id}')
         keyring = self.get_keyring_with_caps(
             entity,
-            ['mon', 'allow r', 'osd', f'allow rwx pool {spec.pool}']
+            ['mon', 'allow r', 'osd', f'allow rwx pool {POOL_NAME}']
         )
         tmp_keyring = tempfile.NamedTemporaryFile(mode='w', prefix='mgr-grace-keyring')
         os.fchmod(tmp_keyring.fileno(), 0o600)
@@ -219,11 +218,10 @@ class NFSService(CephService):
                 'ganesha-rados-grace',
                 '--cephconf', tmp_conf.name,
                 '--userid', tmp_id,
-                '--pool', cast(str, spec.pool),
+                '--pool', POOL_NAME,
+                '--ns', cast(str, spec.service_id),
+                action, nodeid,
             ]
-            if spec.namespace:
-                cmd += ['--ns', spec.namespace]
-            cmd += [action, nodeid]
             self.mgr.log.debug(cmd)
             result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                                     timeout=10)
@@ -282,11 +280,10 @@ class NFSService(CephService):
             'rados',
             '-n', f"mgr.{self.mgr.get_mgr_id()}",
             '-k', str(self.mgr.get_ceph_option('keyring')),
-            '-p', cast(str, spec.pool),
+            '-p', POOL_NAME,
+            '--namespace', cast(str, spec.service_id),
+            'rm', 'grace',
         ]
-        if spec.namespace:
-            cmd += ['--namespace', spec.namespace]
-        cmd += ['rm', 'grace']
         subprocess.run(
             cmd,
             stdout=subprocess.PIPE,