The aim of this feature was to put in place a mechanism, which we have started to refer to as 'message queuing', following a successful trail conducted by MCCS in PI10. The purpose of implementing message queuing was to overcome an issue that we had started to encounter where commands (such as Configure(), Abort(), Restart() etc.) which we were sending were timing out before completion. The team's plan was to add sequentially commands to specifically-identified areas of MCCS so that message queuing would take place. This should have been a relatively independent stream of work. However, as the refactor of MCCS to adopt v0.11 of the tango_base_classes progressed it became apparent that through what was being introduced via the latest base classes, duplication of work effort was on the horizon. As a result 10 planned message queue tickets in this feature were discarded (as they had already been addressed through SP-1716 & SP-1716 albeit indirectly). Four tickets with a small amount of further work were completed in this feature:
MCCS-536 Add MCCS Controller "Allocate" command to use message queue,
MCCS-539 Add message queue to MCCS Subarray for "On" command
MCCS-544 Add MCCS Subarray "End" command to use message queue
MCCS-560 Add MCCS Subarray "AssignResources" command to use message queue
Currently there are 5 tickets which remain 'to-do'. However the coding portion of this work is complete, through the SP-1716 & SP-1717 feature work. These remain currently incomplete because it has not been possible to make a demonstration in line with the requirements of the acceptance criteria. As part of the MCCS-400 post merge review work carried out through MCCS-686 these 5 tickets are named:
MCCS-533 Add MCCS Controller "Standby" command to use message queue
MCCS-542 Add MCCS Subarray "Scan" command to use message queue
MCCS-546 Add MCCS Subarray "ObsReset" command to use message queue
MCCS-547 Add MCCS Controller "Restart" command to use message queue
MCCS-541 Add MCCS Subarray "Configure" command to use message queue
We recommend pausing MCCS work on this feature pending final delivery of the solution at base class level by the Karoo team. We will then reassess whether that work effectively displaces this issue or if, for example, we should re-implement them under component managers
Therefore we propose to release this feature and to carry these 5 to-do tickets to the MCCS backlog for PI12. As we identify any urgent need for these ticket to be completed, we will pull them into the appropriate iteration under the SP-1934 feature, until we are in a position to commence and complete SP-1984 to adopt v0.12 of the tango_base_classes (which should contain the KAROO team's message queuing / long running commands solution) bringing all SKAO software teams into alignment in this respect, or otherwise to refactor them.
https://gitlab.com/ska-telescope/ska-low-mccs contains all code referenced in this feature. All work that has been completed features in release 0.8.6, https://gitlab.com/ska-telescope/ska-low-mccs/-/tree/ska-low-mccs-0.8.6