ska_oso_scripting.engineering.low.workarounds

ska_oso_scripting.engineering.low.workarounds.csp

Workarounds for known issues in the CSP subsystem.

ska_oso_scripting.engineering.low.workarounds.csp.ensure_cbf_processors_registered(cbf: CBFDevices)[source]

Ensures that all CBF processors are registered with the CBF allocator.

If the allocator is restarted after processors - for example because of an upgrade to ska-low-cbf but not ska-low-cbf-proc, or a Pod eviction - then it won’t know about the processors, and won’t be able to allocate them to a subarray.

ska_oso_scripting.engineering.low.workarounds.csp.ensure_pst_routing(cbf: CBFDevices, beam_ids: Iterable[int])[source]

Update PST routing.

TODO: Identify or raise the SKB for this.

ska_oso_scripting.engineering.low.workarounds.mccs

Workarounds for known issues in the MCCS subsystem.

ska_oso_scripting.engineering.low.workarounds.mccs.ensure_sps_csp_endpoints(sps_stations: Iterable[tango.DeviceProxy])[source]

Ensure that each station’s CSP endpoint is set to its CspIngestIp property.

We need to check that the stations’ station beams are being sent to CBF, and not e.g. the DAQ.

The only true way to tell this is to inspect TPMs, which we currently don’t have access to from the SPC cluster. So we check the value reported by SpsStation and warn if it disagrees, but unconditionally call SetCspIngest anyway.

ska_oso_scripting.engineering.low.workarounds.oso

Functions that apply short-term workarounds by editing the inputs (SBDefinitions) and outputs (TMC commands) of OSO observations.

ska_oso_scripting.engineering.low.workarounds.oso.update_assign_resources_request(assign_resources_request: ska_tmc_cdm.messages.central_node.assign_resources.AssignResourcesRequest) ska_tmc_cdm.messages.central_node.assign_resources.AssignResourcesRequest[source]

Applies Low AIV overrides to set of AssignResourcesRequest for TMC CentralNode

The purpose of this function is for any short-lived workarounds or changes that eventually should be fixed ska-oso-scripting.pdm_transforms (or possibly further upstream)

ska_oso_scripting.engineering.low.workarounds.oso.update_configure_requests(cfg_requests: Mapping[Any, Iterable[ska_tmc_cdm.messages.subarray_node.configure.ConfigureRequest]]) Mapping[Any, Iterable[ska_tmc_cdm.messages.subarray_node.configure.ConfigureRequest]][source]

Applies Low AIV overrides to set of ConfigureRequest for TMC SubarrayNode

The purpose of this function is for any short-lived workarounds or changes that eventually should be fixed ska-oso-scripting.pdm_transforms (or possibly further upstream)

ska_oso_scripting.engineering.low.workarounds.oso.update_scheduling_block_definition(sbd: ska_oso_pdm.SBDefinition) ska_oso_pdm.SBDefinition[source]

Applies Low AIV overrides to an SBDefinition, returning the mutated SBDefinition.

The purpose of this function is for any short-lived workarounds or changes that eventually should be fixed in the ODT.

ska_oso_scripting.engineering.low.workarounds.subarray

Helper functions for working with SKA Low subarrays.

ska_oso_scripting.engineering.low.workarounds.subarray.back_to_empty(tm_subarray: DeviceProxy | int, assign_resources_block: dict | None = None)[source]

Take a TMC subarray and do our best to bring it back to EMPTY.

Split into 2 parts - 1) building the device tree then 2) operate on the device tree - to making integration testing using a shallower device tree easier.

ska_oso_scripting.engineering.low.workarounds.subarray.pre_obs_checks(assign_resources_block: dict)[source]

Make sure all devices relevant to an AssignResources are EMPTY.

ska_oso_scripting.engineering.low.workarounds.tmc

Workarounds for TMC

ska_oso_scripting.engineering.low.workarounds.tmc.check_mccs_subarray_leaf_node_obsstate(subarray_id: int)[source]

Restart MCCS subarray leaf node if it’s out of sync with MCCS subarray.

This should be called after AssignResources is issued, as it will wait for MCCS to reach IDLE.

See https://jira.skatelescope.org/browse/SKB-997.