]> 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 67511/head
authorKefu Chai <k.chai@proxmox.com>
Sun, 8 Feb 2026 12:34:15 +0000 (20:34 +0800)
committerPatrick Donnelly <pdonnell@ibm.com>
Fri, 17 Apr 2026 19:02:32 +0000 (15:02 -0400)
commitb6b561bf59d4b5b18b39adc78f3a43cd3ad477bc
tree1e09205a4a824c434deaf0ab7a7afd57ec3eed68
parentbb69cca72e476a8bd2f4beb6f562519d9c2001f8
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>
(cherry picked from commit 77efb41aec4a3ccece0bbca94e7c5b3fea154298)
doc/_ext/ceph_commands.py