]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commit
doc/_ext: fix ceph_commands.py for new decorator-based command system 67254/head
authorKefu Chai <k.chai@proxmox.com>
Sun, 8 Feb 2026 12:34:15 +0000 (20:34 +0800)
committerKefu Chai <k.chai@proxmox.com>
Sun, 8 Feb 2026 12:59:28 +0000 (20:59 +0800)
commit77efb41aec4a3ccece0bbca94e7c5b3fea154298
tree94b674f0057c6292dc6a6d9bc81dec7b08599f1d
parenta0e6e11bdec678700f2698dd72992530d52ff882
doc/_ext: fix ceph_commands.py for new decorator-based command system

After commit 4aa9e246f, mgr modules migrated from using a class-level
COMMANDS list to decorator-based command registration using per-module
CLICommand instances (e.g., @BalancerCLICommand.Read('balancer status')).

This broke the ceph_commands.py Sphinx extension which was hardcoded to
expect m.COMMANDS to be a list, causing documentation builds to fail.

But not all modules are using this per-module CLICommand. Some modules are
fully migrated (balancer, hello, etc.) and use decorators, while others
are partially migrated (volumes, progress, stats, influx, k8sevents,
osd_perf_query, osd_support) - they have CLICommand defined but still
use the old COMMANDS list.

This fix updates _collect_module_commands() to handle three scenarios:

1. Fully migrated modules: Check CLICommand.dump_cmd_list() and use it
   if it returns commands
2. Partially migrated modules: Fall back to the old COMMANDS list if
   dump_cmd_list() returns empty
3. Legacy modules: Use COMMANDS list if CLICommand doesn't exist

This ensures the Sphinx extension works with modules in any migration
state, maintaining backwards compatibility while supporting the new
decorator pattern.

Signed-off-by: Kefu Chai <k.chai@proxmox.com>
doc/_ext/ceph_commands.py