Add STOPPING/STOPPED states to session and kernel status enums
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 17h 7m
- Merged PRs (30d)
- 358
Description
Add STOPPING and STOPPED states to SessionStatus and KernelStatus enums, update transition maps, status classification methods, and create DB migration.
SessionStatus changes:
- Add STOPPING, STOPPED to enum
- SESSION_STATUS_TRANSITION_MAP additions:
- RUNNING → {STOPPING, ...existing}
- STOPPING → {STOPPED, TERMINATING, ERROR}
- STOPPED → {PENDING, TERMINATING, TERMINATED}
- resource_occupied_statuses: exclude STOPPED
- terminatable_statuses: include STOPPED (can be fully terminated)
- terminal_statuses: exclude STOPPED (can be resumed)
KernelStatus changes:
- Add corresponding states or map to existing TERMINATED for kernels in stopped sessions
Key files:
- manager/data/session/types.py (SessionStatus enum + helper methods)
- manager/data/kernel/types.py (KernelStatus enum + helper methods)
- manager/models/session/row.py (SESSION_STATUS_TRANSITION_MAP, KERNEL_SESSION_STATUS_MAPPING)
- alembic/versions/ (new migration file)
## Success Criteria
- [ ] SessionStatus.STOPPING and SessionStatus.STOPPED are valid enum values
- [ ] RUNNING → STOPPING transition is allowed in SESSION_STATUS_TRANSITION_MAP
- [ ] STOPPING → STOPPED transition is allowed
- [ ] STOPPED → PENDING transition is allowed (for resume)
- [ ] STOPPED → TERMINATING transition is allowed (for full termination)
- [ ] STOPPED is NOT in resource_occupied_statuses()
- [ ] STOPPED is NOT in terminal_statuses()
- [ ] STOPPED is in terminatable_statuses()
- [ ] DB migration applies cleanly
- [ ] pants check passes for affected packages
JIRA Issue: BA-4960
Contributor guide
Assessment
This issue has not been assessed yet.