How openingenium/execution_server works
Ingenium Execution Server is a Tornado REST service for running procedure steps against test venues. The main workflow is platform clients registering an execution, submitting a typed step, and retrieving execution state/results; execution work is assigned to persistent worker processes, with Redis preserving request-spanning state. Step implementations cover commanding, telemetry/EVR queries and verification, and operator input. The README documents authentication, logging, and additional lifecycle operations. Some step modules are unsampled, so their internal call relationships are not inferred.
Main entry points: execution_server.py Worker pool · ingenium_library.py Venue and step library · cmd_step.py Command steps · bus_1553_step.py 1553 bus steps
Components 21
API and execution
- REST handlers
image/execution_server.py - Worker pool
image/execution_server.py
Runtime state
- Execution state
image/state_manager.py - Redis
Procedure steps
- Verification logic
image/ingenium_embedded/verification_lib.py - Command steps
image/ingenium_embedded/cmd_step.py - Command file steps
image/ingenium_embedded/cmd_file_step.py - 1553 bus steps
image/ingenium_embedded/bus_1553_step.py - Custom scripts
image/ingenium_embedded/custom_script_step.py - EVR queries
image/ingenium_embedded/query_evr_step.py - EVR waits
image/ingenium_embedded/wait_evr_step.py - Data product listing
image/ingenium_embedded/list_data_products_step.py - Data product waits
image/ingenium_embedded/wait_data_products_step.py - EIP input
image/ingenium_embedded/manual_eip_step.py - Other step types
image/ingenium_embedded
Shared services
- Runtime configuration
image/ingenium_embedded/ingenium_config.py - Venue and step library
image/ingenium_embedded/ingenium_library.py - JSON logging
image/ingenium_embedded/json_log_config.py - Logging utility
image/ingenium_embedded/logging_util.py
Other components
- Ingenium platform
- Test venue services
Connections 27
- Ingenium platform → REST handlers: calls REST API
README.md - REST handlers → Worker pool: submits steps
README.md - REST handlers → Execution state: reads and updates
image/execution_server.py - Execution state → Redis: reads and writes
image/state_manager.py - Worker pool → Command steps: dispatches step
- Worker pool → Command file steps: dispatches step
- Worker pool → 1553 bus steps: dispatches step
- Worker pool → Custom scripts: dispatches step
- Worker pool → EVR queries: dispatches step
- Worker pool → EVR waits: dispatches step
- Worker pool → Data product listing: dispatches step
- Worker pool → Data product waits: dispatches step
- Worker pool → EIP input: dispatches step
- Worker pool → Other step types: dispatches step
image/execution_server.py - REST handlers → Runtime configuration: configures runtime
image/execution_server.py - REST handlers → Venue and step library: uses shared library
image/execution_server.py - Command steps → Venue and step library: calls shared functions
image/ingenium_embedded/cmd_step.py - Command steps → Verification logic: uses verification
image/ingenium_embedded/cmd_step.py - 1553 bus steps → Venue and step library: calls shared functions
image/ingenium_embedded/bus_1553_step.py - 1553 bus steps → Verification logic: uses verification
image/ingenium_embedded/bus_1553_step.py - Custom scripts → Venue and step library: calls shared functions
image/ingenium_embedded/custom_script_step.py - EVR queries → Venue and step library: queries EVRs
image/ingenium_embedded/query_evr_step.py - EVR queries → Verification logic: verifies results
image/ingenium_embedded/query_evr_step.py - EVR waits → Venue and step library: queries EVRs
image/ingenium_embedded/wait_evr_step.py - Logging utility → JSON logging: initializes logger
image/ingenium_embedded/logging_util.py - Logging utility → Runtime configuration: reads log level
image/ingenium_embedded/logging_util.py - Venue and step library → Test venue services: calls venue API
image/ingenium_embedded/ingenium_library.py