]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
doc/_ext: do not load all modules for a certain module
authorKefu Chai <kchai@redhat.com>
Mon, 10 May 2021 03:41:58 +0000 (11:41 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 11 May 2021 07:43:59 +0000 (15:43 +0800)
instead of collecting all options from all modules, just load the
options from the specified module, this addresses the issue where
options with the same name are overriden by the options defined by
another mgr module.

Signed-off-by: Kefu Chai <kchai@redhat.com>
doc/_ext/ceph_confval.py

index 3d02559c190489b0851026fc889297aa2645a749..d824f384ef99b049cdc3c2e4159cabe781cf76e7 100644 (file)
@@ -329,19 +329,13 @@ class CephOption(ObjectDescription):
         module_path = self.env.config.ceph_confval_mgr_module_path
         module_path = self._normalize_path(module_path)
         sys.path.insert(0, module_path)
+        if not self._is_mgr_module(module_path, module):
+            raise self.error(f'module "{module}" not found under {module_path}')
+        fn = os.path.join(module_path, module, 'module.py')
+        if os.path.exists(fn):
+            self.env.note_dependency(fn)
         os.environ['UNITTEST'] = 'true'
-
-        modules = [name for name in os.listdir(module_path)
-                   if self._is_mgr_module(module_path, name)]
-        opts = []
-        for module in status_iterator(modules,
-                                      'loading module...', 'darkgreen',
-                                      len(modules),
-                                      self.env.app.verbosity):
-            fn = os.path.join(module_path, module, 'module.py')
-            if os.path.exists(fn):
-                self.env.note_dependency(fn)
-            opts += self._collect_options_from_module(module)
+        opts = self._collect_options_from_module(module)
         CephOption.mgr_opts[module] = dict((opt['name'], opt) for opt in opts)
         return CephOption.mgr_opts[module]