From c76bd0f531e6f0f431d73e9989c0fe798195c4cd Mon Sep 17 00:00:00 2001 From: Maximilien Cuony Date: Wed, 19 Nov 2025 18:02:36 +0100 Subject: [PATCH] [CI/mock_uss] Add optionnal 'modification of activated flight' behaviour --- .github/workflows/monitoring-test.yml | 9 ++++++--- monitoring/mock_uss/config.py | 9 +++++++++ monitoring/mock_uss/docker-compose.yaml | 9 +++++++++ monitoring/mock_uss/scd_injection/__init__.py | 4 ++++ .../mock_uss/scd_injection/routes_injection.py | 13 ++++++++++++- 5 files changed, 40 insertions(+), 4 deletions(-) diff --git a/.github/workflows/monitoring-test.yml b/.github/workflows/monitoring-test.yml index e9d89bf426..c1fd19fb39 100644 --- a/.github/workflows/monitoring-test.yml +++ b/.github/workflows/monitoring-test.yml @@ -18,6 +18,9 @@ jobs: name: ${{ inputs.name }} test permissions: contents: read + strategy: + matrix: + behaviour_activated_flights_editables: [true, false] steps: - name: Job information run: | @@ -36,12 +39,12 @@ jobs: - name: Load monitoring image uses: ./.github/actions/load-image - name: Run ${{ inputs.name }} test - run: ${{ inputs.script }} + run: export MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE=${{ matrix.behaviour_activated_flights_editables }} && ${{ inputs.script }} - name: Save containers and tracer logs as artifact if: always() uses: actions/upload-artifact@v5 with: - name: monitoring-test-${{ inputs.name }}-logs + name: monitoring-test-${{ inputs.name }}-${{ matrix.behaviour_activated_flights_editables }}-logs path: | logs monitoring/mock_uss/output @@ -49,7 +52,7 @@ jobs: if: always() uses: actions/upload-artifact@v5 with: - name: monitoring-test-${{ inputs.name }}-reports + name: monitoring-test-${{ inputs.name }}-${{ matrix.behaviour_activated_flights_editables }}-reports path: | monitoring/uss_qualifier/output monitoring/prober/output diff --git a/monitoring/mock_uss/config.py b/monitoring/mock_uss/config.py index cc18d5592b..10cd59ae53 100644 --- a/monitoring/mock_uss/config.py +++ b/monitoring/mock_uss/config.py @@ -9,6 +9,9 @@ KEY_DSS_URL = "MOCK_USS_DSS_URL" KEY_BEHAVIOR_LOCALITY = "MOCK_USS_BEHAVIOR_LOCALITY" KEY_CODE_VERSION = "MONITORING_VERSION" +KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES = ( + "MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE" +) import_environment_variable( @@ -27,3 +30,9 @@ import_environment_variable(KEY_DSS_URL, required=False) import_environment_variable(KEY_BEHAVIOR_LOCALITY, default="US.IndustryCollaboration") import_environment_variable(KEY_CODE_VERSION, default="Unknown") + +import_environment_variable( + KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES, + default="true", + mutator=lambda s: s.lower() == "true", +) diff --git a/monitoring/mock_uss/docker-compose.yaml b/monitoring/mock_uss/docker-compose.yaml index 3ac506963f..a9ffe658b2 100644 --- a/monitoring/mock_uss/docker-compose.yaml +++ b/monitoring/mock_uss/docker-compose.yaml @@ -21,6 +21,7 @@ services: - MOCK_USS_INTERACTIONS_LOG_DIR=output/scdsc_a_interaction_logs - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -52,6 +53,7 @@ services: - MOCK_USS_SERVICES=scdsc,versioning,flight_planning - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -78,6 +80,7 @@ services: - MOCK_USS_SERVICES=geoawareness - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -109,6 +112,7 @@ services: - MOCK_USS_RID_VERSION=F3411-22a - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -141,6 +145,7 @@ services: - MOCK_USS_RID_VERSION=F3411-22a - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -173,6 +178,7 @@ services: - MOCK_USS_RID_VERSION=F3411-19 - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -205,6 +211,7 @@ services: - MOCK_USS_RID_VERSION=F3411-19 - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -240,6 +247,7 @@ services: - MOCK_USS_SERVICES=tracer - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: @@ -274,6 +282,7 @@ services: - MOCK_USS_INTERACTIONS_LOG_DIR=output/scdsc_interaction_logs - MOCK_USS_PORT=80 - MOCK_USS_PROXY_VALUES=x_for=1,x_proto=1,x_host=1,x_prefix=1,x_port=1 + - MOCK_USS_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLE expose: - 80 ports: diff --git a/monitoring/mock_uss/scd_injection/__init__.py b/monitoring/mock_uss/scd_injection/__init__.py index e69de29bb2..a63995c716 100644 --- a/monitoring/mock_uss/scd_injection/__init__.py +++ b/monitoring/mock_uss/scd_injection/__init__.py @@ -0,0 +1,4 @@ +from monitoring.mock_uss.app import require_config_value +from monitoring.mock_uss.config import KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES + +require_config_value(KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES) diff --git a/monitoring/mock_uss/scd_injection/routes_injection.py b/monitoring/mock_uss/scd_injection/routes_injection.py index edf9ca71d5..84666ed4ed 100644 --- a/monitoring/mock_uss/scd_injection/routes_injection.py +++ b/monitoring/mock_uss/scd_injection/routes_injection.py @@ -19,7 +19,10 @@ from monitoring.mock_uss.app import require_config_value, webapp from monitoring.mock_uss.auth import requires_scope -from monitoring.mock_uss.config import KEY_BASE_URL +from monitoring.mock_uss.config import ( + KEY_BASE_URL, + KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES, +) from monitoring.mock_uss.dynamic_configuration.configuration import get_locality from monitoring.mock_uss.f3548v21 import utm_client from monitoring.mock_uss.f3548v21.flight_planning import ( @@ -178,6 +181,14 @@ def unsuccessful( except PlanningError as e: return unsuccessful(PlanningActivityResult.Rejected, str(e)) + if ( + not webapp.config[KEY_BEHAVIOUR_ACTIVATED_FLIGHTS_EDITABLES] + and old_status == FlightPlanStatus.OkToFly + ): + return unsuccessful( + PlanningActivityResult.NotSupported, "Unable to modify an activated flight" + ) + step_name = "performing unknown operation" notes: str | None = None try: