Files
navidrome-litefs/conductor/tracks/cluster_status_python_20260208/plan.md

1.9 KiB

Plan: Cluster Status Script (cluster_status_python)

Phase 1: Environment and Project Structure [x] [checkpoint: e71d5e2]

  • Task: Initialize Python project structure (venv, requirements.txt)
  • Task: Create initial configuration for Consul connectivity (default URLs and env var support)
  • Task: Conductor - User Manual Verification 'Phase 1: Environment and Project Structure' (Protocol in workflow.md)

Phase 2: Core Data Fetching [ ]

  • Task: Implement Consul API client to fetch navidrome and replica-navidrome services
    • Write tests for fetching services from Consul (mocking API)
    • Implement service discovery logic
  • Task: Implement LiteFS HTTP API client to fetch node status
    • Write tests for fetching LiteFS status (mocking API)
    • Implement logic to query :20202/status for each discovered node
  • Task: Conductor - User Manual Verification 'Phase 2: Core Data Fetching' (Protocol in workflow.md)

Phase 3: Data Processing and Formatting [ ]

  • Task: Implement data aggregation logic
    • Write tests for aggregating Consul and LiteFS data into a single cluster state object
    • Implement logic to calculate overall cluster health and role assignment
  • Task: Implement CLI output formatting (Table and Color)
    • Write tests for table formatting and color-coding logic
    • Implement tabulate based output with a health summary
  • Task: Conductor - User Manual Verification 'Phase 3: Data Processing and Formatting' (Protocol in workflow.md)

Phase 4: CLI Interface and Final Polishing [ ]

  • Task: Implement command-line arguments (argparse)
    • Write tests for CLI argument parsing (Consul URL overrides, etc.)
    • Finalize the main entry point
  • Task: Final verification of script against requirements
  • Task: Conductor - User Manual Verification 'Phase 4: CLI Interface and Final Polishing' (Protocol in workflow.md)