.. _restartmid: ======= Restart ======= 1. CSP Leaf Node provides API for **Restart workflow**. 2. The CSP Leaf Node **accepts the command** if :- A. Operational state of the CSP Leaf node is **ON/OFF/INIT/STANDBY/ALARM** B. CSP Subarray is responsive. 3. The CSP Leaf Node **rejects the command** if :- A. Operational state of CSP Leaf node is **FAULT/UNKNOWN/DISABLE** . B. CSP Subarray is not responsive. 4. The following **state requirements** are applied for the **command execution** :- A. CSP Subarray is in any of the `'observation state'` - **FAULT,ABORTED,RESOURCING,CONFIGURING,IDLE,READY,SCANNING** B. CSP Subarray node is :term:`available` . 5. The **command execution** involves below **key operations** :- A. Check for CSP Subarray obsState is done. + If it is in any of the **RESOURCING/IDLE/CONFIGURING/SCANNING/READY** obsState - #. Abort command is sent to CSP Subarray. #. **Delay values** are **reset to default values** and any executing **delay threads are stopped on CSP Leaf Node** #. Once Abort command transtitions CSP Subarray to **ABORTED** obsState , Restart command is sent to CSP Subarray. + If it is **FAULT/ABORTED** , Restart command is sent to CSP Subarray. B. When Restart is invoked on the CSP Subarray. + If CSP Subarry **reports rejection/failure**, command failure is reported as **'RESULT_CODE - FAILED'** on Long Running Command Result attribute of the CSP leaf node. + If CSP Subarry **accept command** , the TMC CSP leaf node will wait for command completion. 6. The CSP leaf node **monitors the progress** of command via the CSP sub-array node **ObsState transitions** and the **long running command results**. A. Command is **successful** when the CSP Subarray transitions to **EMPTY** ObsState. This is reported as **'RESULT_CODE - OK'** on Long Running Command Result attribute of the TMC CSP Subarray leaf node. B. Command **failure is reported** in any of the below cases as **'RESULT_CODE - FAILED'** on Long Running Command Result attribute of the TMC CSP Sub-array leaf node. + The CSP Subarray reports **'RESULT_CODE - FAILED'** on its Long Running Command Result attribute + The **command times out** if CSP SubarrayNode **does not transition to EMPTY** within the timeout period specified by `CommandTimeOutDefault` property specified in helm chart of the CSP Leaf Node .