-
Notifications
You must be signed in to change notification settings - Fork 737
Add progress reporting to addon, HA and Supervisor updates #6195
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR extends progress reporting functionality to addon installs, addon updates, Home Assistant updates and Supervisor updates. It builds on existing Docker layer progress tracking by aggregating individual layer progress into a single overall progress percentage for these high-level operations.
Key changes include:
- Modified job system to handle internal jobs that don't send WebSocket events to reduce noise
- Updated Docker interface to aggregate layer progress into main job progress
- Added progress tracking to addon, Home Assistant, and Supervisor update operations
Reviewed Changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 3 comments.
Show a summary per file
File | Description |
---|---|
tests/docker/test_interface.py | Removed detailed progress tracking tests and simplified to focus on exception handling |
tests/api/test_supervisor.py | Added test for supervisor update progress reporting via WebSocket events |
tests/api/test_store.py | Added tests for addon install/update progress reporting via WebSocket events |
tests/api/test_homeassistant.py | Added test for Home Assistant update progress reporting via WebSocket events |
tests/addons/test_manager.py | Updated test to include new progress_job_id parameter in install call |
supervisor/supervisor.py | Added Job decorator and progress tracking to supervisor update method |
supervisor/jobs/init.py | Modified job system to handle internal jobs and improved change notification logic |
supervisor/homeassistant/core.py | Added progress tracking to Home Assistant update with job completion at 100% |
supervisor/docker/interface.py | Enhanced Docker interface with layer progress aggregation and main job progress updates |
supervisor/docker/addon.py | Added progress_job_id parameter support to addon Docker operations |
supervisor/addons/manager.py | Added progress tracking to addon install/update operations with job completion |
supervisor/addons/addon.py | Added progress_job_id parameter to addon install/update methods |
Co-authored-by: Copilot <[email protected]>
9ef8f69
to
041bd45
Compare
@agners breaking change because I marked I guess it does also hide it from the REST API though. Maybe that is fair, I really doubt anyone is listening considering how recently it is added. Would you prefer I change it so |
Proposed change
Provides progress updates for addon installs, addon updates, Home Assistant updates and Supervisor updates. Really just an extension of #6102 to wrap up the reports we get from docker into a single progress number on these 4 jobs.
To reduce noise we are no longer reporting progress updates from all the individual layers over WS to HA. And the main job will only provide an update when the % has changed by at least 1.
The couple catches here are these:
Type of change
Additional information
Checklist
ruff format supervisor tests
)If API endpoints or add-on configuration are added/changed: