.. _assignlow: ================== AssignResources ================== Workflow on Sub-array Node- 1. Subarry Node provides API for Assign Resources workflow. 2. Assign Resources prepares a low subarray for later configuration by assigning resources in MCCS (stations, subarray beams, apertures), CSP (pulsar search and timing beams), and optionally SDP (receptors, execution block context). It transitions the observation state from **EMPTY** to **RESOURCING** and on success to **IDLE**. 3. The Sub-array node **accepts the command** if :- A. Admin mode reported by each of the system - CSP,SDP subarray are in **ONLINE/ENGINEERING/RESERVED** B. Operational state of the Sub-array node is **ON/OFF/INIT/STANDBY/ALARM** 4. The Sub-array Node **rejects the command** if :- A. Admin mode reported by each of the system - CSP,SDP Sub-array are in **OFFLINE** or **NOT FITTED**. B. Operational state of the sub-array node is **FAULT/UNKNOWN/DISABLE** . 5. The following **state requirements** are applied for the **command execution** :- A. TMC Subarray is in `'observation state'` **EMPTY** or **IDLE** . B. :term:`isSubarrayAvailable` is checked to ensure the subsystems (CSP, SDP and MCCS) are :term:`available` 6. The command execution involves below key operations :- A. The Input JSON is validated and if malformed , and Command is `'Failed'` with exception message :- B. Input jsons are prepared for each of the subsystems as follows :- + **MCCS** subarray_id is added inside MCCS payload. + **SDP** No changes inside the `"sdp"` block of json itself , it is forwarded as it is to SDP subarry Leaf Node. + **CSP** a. Renames keys inside "pss" and "pst": * In `"pss"`, it replaces "pss_beam_ids" with "beams_id" * In `"pst"`, it replaces "pst_beam_ids" with "beams_id" b. Adds or updates the `"interface"` field c. Adds a `"common"` block with the current subarray ID d. If `"lowcbf"` isn't already there, it adds it as an empty block. C. The command is then invoked on the relevant TMC CSP, SDP, MCCS leaf Nodes. + If leaf node rejects assign resources command , command failure is reported as **'RESULT_CODE - FAILED'** on Long Running Command Result attribute of the TMC Subarry node.Command will not be sent to remaining subsystems in this case if multiple subsystems are involved . + If all leaf node accept command , the TMC Subarry node will wait for command completion. 7. The Sub-array node monitors the progress of command via the Sub-array node ObsState transitions and the long running command results. A. Command is successful when the TMC Subarray Node transitions to IDLE ObsState. This is reported as **'RESULT_CODE - OK'** on Long Running Command Result attribute of the Subarray node. B. Command failure is reported in any of the below cases as **'RESULT_CODE - FAILED'** on Long Running Command Result attribute of the Subarray node. + The CSP Leaf node/SDP Leaf node/MCCS Leaf node reports **'RESULT_CODE - FAILED'** on its Long Running Command Result attribute + The command times out if TMC SubarrayNode does not transition to **IDLE** within the timeout period specified by `CommandTimeOutDefault` property specified in helm chart of the TMC Subarray node . 8. On success the system is ready for Configure; on failure it may revert to **EMPTY** or **FAULT** depending on severity. 9. Once command is completed receiveAddresses attribute gets populated from SDP Subarry node and assignedResources attributes get populated from MCCS subarry .