Back to OpenWISP
GSoC 2026

Persistent & Scheduled Firmware Upgrades

OpenWISP's firmware upgrader fails permanently when devices are offline during mass upgrades, requiring manual re-triggering. There is no way to schedule upgrades for future maintenance windows. Solution: Two features for openwisp-firmware-upgrader. 1. Persistent upgrades (#379): Offline devices go to "pending" status instead of "failed" and retry automatically via Celery Beat with exponential backoff until the device comes online or an admin cancels. 2. Scheduled upgrades (#380): Optional datetime picker on the mass upgrade page. Celery Beat executes due upgrades with runtime re-validation and conflict detection. Both features compose: a scheduled upgrade that hits offline devices enters the persistence loop. Deliverables: - Model fields (persistent, retry_count, next_retry_at, scheduled_at) with additive migrations - Modified failure handler with pending status branch - Celery Beat tasks for periodic retries and scheduled execution - Admin UI: persistent checkbox, datetime picker, pending/scheduled status display - REST API with full admin parity - Notifications via generic_notification - Selenium browser tests, documentation, usage videos

Project details

Contributor

Eeshu

Mentors

Not available

Technologies

Not listed in the archive