Closed bettio closed 1 year ago
OTA flowchart with new status:
flowchart TD
INIT[[INIT]]
ACKNOWLEDGED:::sBlock
DOWNLOADING:::sBlock
ERROR:::sBlock
DEPLOYING:::sBlock
DEPLOYED:::sBlock
REBOOTING:::sBlock
FAILURE
INIT -->|Receive OTA Request| HANDLE_OTA_REQ{handle request}
HANDLE_OTA_REQ --> |UpdateInProgress| FAILURE[FAILURE]
HANDLE_OTA_REQ --> |Invalid Request| FAILURE[FAILURE]
HANDLE_OTA_REQ --> CANCELLING(Cancelling)
CANCELLING --> HANDLE_OTA_CANCEL_REQ{ ACKN <= state < DING }
HANDLE_OTA_CANCEL_REQ --> |Cancelled|FAILURE
FAILURE --> INIT
HANDLE_OTA_REQ --> ACKNOWLEDGED
ACKNOWLEDGED --> DOWNLOADING
DOWNLOADING:::sBlock --> DownRes{ok}
DownRes{ok} --> |NetworkFAILURE|ERROR
ERROR --> CHECK_NETWORK_ERR{err < max_retry}
CHECK_NETWORK_ERR --> DOWNLOADING
CHECK_NETWORK_ERR --> |NetworkFAILURE|FAILURE
DownRes{ok} --> |IOFAILURE/InternalFAILURE|FAILURE
DownRes{ok} --> CHECK_BUNDLE
CHECK_BUNDLE{verify image} --> |InvalidBaseImage|FAILURE
CHECK_BUNDLE{verify image} --> DEPLOYING
DEPLOYING --> DEPLOYING_RESULT{ok}
DEPLOYING_RESULT --> |Deploying FAILURE|FAILURE
DEPLOYING_RESULT --> DEPLOYED(DEPLOYED)
DEPLOYED --> REBOOTING
REBOOTING --> REB_RESULT{ok}
REB_RESULT --> |SystemRollback/?|FAILURE
REB_RESULT --> Success
Success --> INIT
style FAILURE fill:#f44336,color:#fff
style INIT fill:#9E9E9E,color:#fff
style Success fill:#4CAF50,color:#fff
classDef sBlock fill:#2196F3,color:#fff
classDef cBlock fill:#000000,color:#fff
classDef rBlock fill:#FFEB3G,color:#fff