Currently, when a firmware upgrade fails or gets cancelled, users have no direct way to retry the upgrade operation without starting the entire process from scratch.
Proposed Solution:
- Add a "Retry Upgrade" button/action in the admin interface and API that allows users to:
- Retry failed upgrade operations
- Add new
retry_upgrade() method to DeviceFirmware model
- Add new API endpoint:
POST /api/v1/firmware-upgrader/upgrade-operation/{id}/retry/
- Update upgrade status workflow to handle RETRYING state
- Implement retry logic in upgrade tasks (celery/background jobs)