Test Real-Time Script

The test-realtime script is designed to test the processing controller logic concerning processing block dependencies.

The sequence of actions carried out by the script is:

  • Claims processing block

  • Sets processing block status to WAITING

  • Waits for resources_available to be True

    • This is the signal from the processing controller that the script can run

  • Sets processing block status to RUNNING

  • At this point a substantive script would make deployments to do the processing

  • Sets processing block status to READY

  • Waits for execution block status to be set to FINISHED

    • This is the signal from the Subarray device that the execution block is finished

  • Sets processing block status to FINISHED

The script makes no deployments.

Full description of processing block parameters of this script can be found at the bottom of this page.

Processing block parameters

pydantic settings test_realtime_params.TestRealtimeParams

test-realtime script parameters

Show JSON schema
{
   "title": "test-realtime",
   "description": "test-realtime script parameters",
   "type": "object",
   "properties": {
      "length": {
         "default": 3600.0,
         "description": "Length of time, in seconds, for the processing to complete",
         "title": "Time for the processing to complete",
         "type": "number"
      },
      "simulate_failed_engine_app": {
         "default": false,
         "description": "If True, update the processing script state with an error message",
         "title": "Simulate an error in an execution engine application",
         "type": "boolean"
      },
      "simulate_failed_engine_start": {
         "default": false,
         "description": "If True, update the processing script state with an error messageand with state=FAILED",
         "title": "Simulate an error in starting an engine pod",
         "type": "boolean"
      }
   },
   "additionalProperties": false
}

Config:
  • strict: bool = True

  • extra: str = forbid

  • arbitrary_types_allowed: bool = False

  • validate_assignment: bool = True

  • title: str = test-realtime

Fields:
field length: float = 3600.0

Length of time, in seconds, for the processing to complete

field simulate_failed_engine_app: bool = False

If True, update the processing script state with an error message

field simulate_failed_engine_start: bool = False

If True, update the processing script state with an error messageand with state=FAILED

Changelog

1.0.0

  • Update ska-sdp-scripting to 1.0.0 (MR248)

  • Update Dockerfile to use SKA python base image (MR211)

0.9.0

  • Script allows simulating errors with the simulate_failed_engine_start and simulate_failed_engine_app parameters (MR202)

  • Update ska-sdp-scripting to 0.12.0 (MR202)

  • Processing script reports internal errors in pb state (MR185)

  • Pydantic model included in documentation (MR189)

  • JSON parameter schema added to tmdata (MR186)

  • Validate processing block parameters using scripting library 0.10.0 (MR180)

  • Added processing block parameter JSON schema and Pydantic model (MR174, MR177)

0.8.0

  • Update to scripting library 0.9.0 and use ska-sdp-python base image (MR166)

  • Set up skart for dependency updates of processing scripts (MR156)

  • Use poetry for dependency management (MR155)

0.7.0

  • Update to scripting library 0.7.0

  • BREAKING This and newer versions are not compatible with SDP version < 0.21.0

0.6.0

  • Update to scripting library 0.6.1

0.5.1

  • Update to latest scripting library (0.5.2).

0.5.0

  • Update to latest scripting library (0.5.0). This required the update of how phase.wait_loop is used in the script.

0.4.0

  • Update scripting library to 0.4.1.

  • Set status to READY when script is ready to do its (fake) processing.

0.3.0

  • Port to use SDP scripting library (formerly known as the workflow library).

0.2.5

  • Use dependencies from the central artefact repository and publish the workflow image there.

0.2.4

  • Ported to use the latest version of workflow library (0.2.4).

0.2.3

  • use python:3.9-slim as the base docker image