diff --git a/NEXT_RELEASE_NOTES.md b/NEXT_RELEASE_NOTES.md index c694aacb88..67dd902ddc 100644 --- a/NEXT_RELEASE_NOTES.md +++ b/NEXT_RELEASE_NOTES.md @@ -39,10 +39,12 @@ The release notes should contain at least the following sections: * For any uss_qualifier test configurations using any of the test suites `suites.astm.utm.f3548_21`, `suites.faa.uft.message_signing`, `suites.uspace.flight_auth`, or `suites.uspace.required_services`, the following resources must be changed: * A new required resource named `conflicting_flights_provider` must be provided. It must be a `resources.resource.ResourceProvidingResource` providing `resources.flight_planning.FlightIntentsResource` instances with spatially separated flight intents for each planner combination used by `ConflictEqualPriorityNotPermitted`. One suitable implementation is `resources.geospatial.TriangularCascadeSoutheastResource` with `conflicting_flights` as its `base_resource`; see [f3548_self_contained](./monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml) for an example. + * A new required resource named `non_conflicting_flights_provider` must be provided. It must be a `resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]` providing spatially separated flight intents for each DSS instance used in the `dss_probing` test suite. One suitable implementation is `resources.geospatial.TriangularCascadeSoutheastResource` with `non_conflicting_flights` as its `base_resource`; see [f3548_self_contained](./monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml) for an example. * A new required resource named `planning_area_provider` must be provided to replace `planning_area`. It must be a `resources.resource.ResourceProvidingResource` providing `resources.planning_area.PlanningAreaResource` instances with spatially separated planning areas for each DSS instance used in the `dss_probing` test suite. One suitable implementation is `resources.geospatial.TriangularCascadeSoutheastResource` with `planning_area` as its `base_resource`; see [f3548_self_contained](./monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml) for an example. The existing `planning_area` suite input is no longer used except by `suites.uspace.required_services`, which still requires it for NetRID tests. Keep any underlying planning area resource used as the provider's `base_resource`. ## Optional migration tasks * For uss_qualifier test configurations using `suites.astm.utm.f3548_21`, `suites.faa.uft.message_signing`, `suites.uspace.flight_auth`, or `suites.uspace.required_services`, the `conflicting_flights` input is now optional and its suite resource mapping can be removed. By default, `f3548_21` selects index 0 from `conflicting_flights_provider`. An explicitly supplied `conflicting_flights` still overrides this default for now. Keep any base flight resource declaration needed by the provider. +* For the same test suites, the `non_conflicting_flights` input is now optional and its suite resource mapping can be removed. By default, `f3548_21` selects index 0 from `non_conflicting_flights_provider` for scenarios using a single set of flight intents. An explicitly supplied `non_conflicting_flights` still overrides this default for now; `dss_probing` always uses the provider's per-DSS flight intents. Keep any base flight resource declaration needed by the provider. ## Important information diff --git a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml index 83344ed5d1..76e7f7ad39 100644 --- a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml +++ b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml @@ -22,7 +22,7 @@ v1: conflicting_flights_provider: conflicting_flights_provider priority_preemption_flights_provider: conflicting_flights_provider invalid_flight_intents: invalid_flight_intents - non_conflicting_flights: non_conflicting_flights + non_conflicting_flights_provider: non_conflicting_flights_provider dss: dss dss_instances: dss_instances interuss_dss_instances: dss_instances @@ -296,6 +296,15 @@ v1: degrees_east: -96.7587 meters_up: 93 + # Provide spatially separated non-conflicting flights for each DSS instance + non_conflicting_flights_provider: + resource_type: resources.geospatial.TriangularCascadeSoutheastResource + dependencies: + base_resource: non_conflicting_flights + specification: + meters_east_margin: 10000 + meters_north_margin: 10000 + # How to execute a test run using this configuration execution: # Since we want to stop execution immediately if there are any unexpected failed checks, we set this parameter to diff --git a/monitoring/uss_qualifier/configurations/dev/library/resources.yaml b/monitoring/uss_qualifier/configurations/dev/library/resources.yaml index dfed009280..78f35adb97 100644 --- a/monitoring/uss_qualifier/configurations/dev/library/resources.yaml +++ b/monitoring/uss_qualifier/configurations/dev/library/resources.yaml @@ -415,6 +415,15 @@ che_non_conflicting_flights: degrees_east: 7.4774 meters_up: 605 +che_non_conflicting_flights_provider: + $content_schema: monitoring/uss_qualifier/resources/definitions/ResourceDeclaration.json + resource_type: resources.geospatial.TriangularCascadeSoutheastResource + dependencies: + base_resource: che_non_conflicting_flights + specification: + meters_east_margin: 10000 + meters_north_margin: 10000 + # ===== General flight authorization ===== example_flight_check_table: diff --git a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml index 728b3a4f12..a921107360 100644 --- a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml +++ b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml @@ -6,6 +6,7 @@ v1: che_conflicting_flights_provider: {$ref: 'library/resources.yaml#/che_conflicting_flights_provider'} che_invalid_flight_intents: {$ref: 'library/resources.yaml#/che_invalid_flight_intents'} che_non_conflicting_flights: {$ref: 'library/resources.yaml#/che_non_conflicting_flights'} + che_non_conflicting_flights_provider: {$ref: 'library/resources.yaml#/che_non_conflicting_flights_provider'} che_problematically_big_area: {$ref: 'library/resources.yaml#/che_problematically_big_area'} che_planning_area_volume: {$ref: 'library/resources.yaml#/che_planning_area_volume'} che_planning_area: {$ref: 'library/resources.yaml#/che_planning_area'} @@ -55,7 +56,7 @@ v1: combination_selector: combination_selector conflicting_flights_provider: che_conflicting_flights_provider invalid_flight_intents: che_invalid_flight_intents - non_conflicting_flights: che_non_conflicting_flights + non_conflicting_flights_provider: che_non_conflicting_flights_provider priority_preemption_flights_provider: che_conflicting_flights_provider dss: scd_dss dss_instances: scd_dss_instances diff --git a/monitoring/uss_qualifier/configurations/dev/uspace.yaml b/monitoring/uss_qualifier/configurations/dev/uspace.yaml index d6b02b9643..789d82d42a 100644 --- a/monitoring/uss_qualifier/configurations/dev/uspace.yaml +++ b/monitoring/uss_qualifier/configurations/dev/uspace.yaml @@ -9,6 +9,7 @@ v1: che_invalid_flight_intents: {$ref: 'library/resources.yaml#/che_invalid_flight_intents'} che_invalid_flight_auth_flights: {$ref: 'library/resources.yaml#/che_invalid_flight_auth_flights'} che_non_conflicting_flights: {$ref: 'library/resources.yaml#/che_non_conflicting_flights'} + che_non_conflicting_flights_provider: {$ref: 'library/resources.yaml#/che_non_conflicting_flights_provider'} che_planning_area_volume: {$ref: 'library/resources.yaml#/che_planning_area_volume'} che_planning_area: {$ref: 'library/resources.yaml#/che_planning_area'} netrid_observation_evaluation_configuration: {$ref: 'library/resources.yaml#/netrid_observation_evaluation_configuration'} @@ -64,7 +65,7 @@ v1: priority_preemption_flights_provider: che_conflicting_flights_provider invalid_flight_intents: che_invalid_flight_intents invalid_flight_auth_flights: che_invalid_flight_auth_flights - non_conflicting_flights: che_non_conflicting_flights + non_conflicting_flights_provider: che_non_conflicting_flights_provider flight_planners: all_flight_planners? mock_uss: mock_uss_instance_uss6 mock_uss_dp: mock_uss_instance_dp @@ -102,7 +103,7 @@ v1: priority_preemption_flights_provider: priority_preemption_flights_provider invalid_flight_intents: invalid_flight_intents invalid_flight_auth_flights: invalid_flight_auth_flights - non_conflicting_flights: non_conflicting_flights + non_conflicting_flights_provider: non_conflicting_flights_provider flight_planners: flight_planners? mock_uss: mock_uss mock_uss_dp: mock_uss_dp diff --git a/monitoring/uss_qualifier/configurations/dev/utm_implementation_us/definitions/baseline_a.libsonnet b/monitoring/uss_qualifier/configurations/dev/utm_implementation_us/definitions/baseline_a.libsonnet index 46ead55cb6..225a42abca 100644 --- a/monitoring/uss_qualifier/configurations/dev/utm_implementation_us/definitions/baseline_a.libsonnet +++ b/monitoring/uss_qualifier/configurations/dev/utm_implementation_us/definitions/baseline_a.libsonnet @@ -25,7 +25,7 @@ function(env) { conflicting_flights_provider: 'conflicting_flights_provider', priority_preemption_flights_provider: 'conflicting_flights_provider', invalid_flight_intents: 'invalid_flight_intents', - non_conflicting_flights: 'non_conflicting_flights', + non_conflicting_flights_provider: 'non_conflicting_flights_provider', test_exclusions: 'test_exclusions', dss: 'dss', dss_instances: 'dss_instances', @@ -267,6 +267,18 @@ function(env) { }, }, + // Provide spatially separated non-conflicting flights for each DSS instance + non_conflicting_flights_provider: { + resource_type: 'resources.geospatial.TriangularCascadeSoutheastResource', + dependencies: { + base_resource: 'non_conflicting_flights', + }, + specification: { + meters_east_margin: 10000, + meters_north_margin: 10000, + }, + }, + // Name of the system under test for which the system version should be obtained from participants who provide version information system_identity: { resource_type: 'resources.versioning.SystemIdentityResource', diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml index 2f873e524e..5adf44e1ce 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml @@ -9,14 +9,15 @@ resources: interuss_dss_instances: resources.astm.f3548.v21.DSSInstancesResource? dss_datastore_cluster: resources.interuss.datastore.DatastoreDBClusterResource? - # This input is DEPRECATED and may be removed in future versions. + # These inputs are DEPRECATED and may be removed in future versions. conflicting_flights: resources.flight_planning.FlightIntentsResource? + non_conflicting_flights: resources.flight_planning.FlightIntentsResource? conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] priority_preemption_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]? + non_conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] invalid_flight_intents: resources.flight_planning.FlightIntentsResource - non_conflicting_flights: resources.flight_planning.FlightIntentsResource nominal_planning_selector: resources.flight_planning.FlightPlannerCombinationSelectorResource? priority_planning_selector: resources.flight_planning.FlightPlannerCombinationSelectorResource? utm_auth: resources.communications.AuthAdapterResource? @@ -43,6 +44,12 @@ local_resources: dependencies: base_resource: id_generator specification: {} + non_conflicting_flights: + resource_type: resources.resource.SingularResource[resources.flight_planning.FlightIntentsResource] + dependencies: + provider: non_conflicting_flights_provider + specification: + index: 0 conflicting_flights: resource_type: resources.resource.SingularResource[resources.flight_planning.FlightIntentsResource] dependencies: @@ -64,7 +71,7 @@ local_resources: environments: dss_environments planning_area: planning_area_provider id_generator: id_generator_provider - # TODO: populate flight_intents from non_conflicting_flights_provider + flight_intents: non_conflicting_flights_provider specification: {} priority_preemption_combinations: resource_type: resources.combinations.ResourceCombinationsResource @@ -95,6 +102,7 @@ local_resources: flight_intents_environments: resource_type: resources.environments.ConcatenatedResourceEnvironmentsResource dependencies: + dss_probing: dss_probing_environments priority_preemption: priority_preemption_environments? equal_priority_conflict: equal_priority_conflict_environments specification: {} @@ -125,7 +133,6 @@ actions: dss_datastore_cluster: dss_datastore_cluster? second_utm_auth: second_utm_auth? utm_client_identity: utm_client_identity - flight_intents: non_conflicting_flights problematically_big_area: problematically_big_area test_exclusions: test_exclusions? specification: diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml index 79aaf73fa4..82fba8e9a7 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml @@ -7,13 +7,13 @@ resources: dss_instances: resources.astm.f3548.v21.DSSInstancesResource? dss_datastore_cluster: resources.interuss.datastore.DatastoreDBClusterResource? - # This input is DEPRECATED and may be removed in future versions. + # These inputs are DEPRECATED and may be removed in future versions. conflicting_flights: resources.flight_planning.FlightIntentsResource? - - non_conflicting_flights: resources.flight_planning.FlightIntentsResource + non_conflicting_flights: resources.flight_planning.FlightIntentsResource? conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] priority_preemption_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]? + non_conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] invalid_flight_intents: resources.flight_planning.FlightIntentsResource id_generator: resources.interuss.IDGeneratorResource @@ -33,7 +33,8 @@ actions: mock_uss: mock_uss conflicting_flights: conflicting_flights? conflicting_flights_provider: conflicting_flights_provider - non_conflicting_flights: non_conflicting_flights + non_conflicting_flights: non_conflicting_flights? + non_conflicting_flights_provider: non_conflicting_flights_provider priority_preemption_flights_provider: priority_preemption_flights_provider? flight_planners: flight_planners flight_planners_to_clear: flight_planners diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml index 1f1c68617f..1bd8b4c158 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml @@ -3,15 +3,16 @@ resources: test_env_version_providers: resources.versioning.VersionProvidersResource? prod_env_version_providers: resources.versioning.VersionProvidersResource? - # This input is DEPRECATED and may be removed in future versions. + # These inputs are DEPRECATED and may be removed in future versions. conflicting_flights: resources.flight_planning.FlightIntentsResource? + non_conflicting_flights: resources.flight_planning.FlightIntentsResource? conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] priority_preemption_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]? + non_conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] invalid_flight_auth_flights: resources.flight_planning.FlightIntentsResource invalid_flight_intents: resources.flight_planning.FlightIntentsResource - non_conflicting_flights: resources.flight_planning.FlightIntentsResource flight_planners: resources.flight_planning.FlightPlannersResource? mock_uss: resources.interuss.mock_uss.client.MockUSSResource? dss: resources.astm.f3548.v21.DSSInstanceResource @@ -35,7 +36,8 @@ actions: conflicting_flights_provider: conflicting_flights_provider priority_preemption_flights_provider: priority_preemption_flights_provider? invalid_flight_intents: invalid_flight_intents - non_conflicting_flights: non_conflicting_flights + non_conflicting_flights: non_conflicting_flights? + non_conflicting_flights_provider: non_conflicting_flights_provider flight_planners: flight_planners? flight_planners_to_clear: flight_planners? mock_uss: mock_uss diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.yaml b/monitoring/uss_qualifier/suites/uspace/required_services.yaml index db9b061a9e..33ac24c795 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.yaml +++ b/monitoring/uss_qualifier/suites/uspace/required_services.yaml @@ -3,15 +3,16 @@ resources: test_env_version_providers: resources.versioning.VersionProvidersResource? prod_env_version_providers: resources.versioning.VersionProvidersResource? - # This input is DEPRECATED and may be removed in future versions. + # These inputs are DEPRECATED and may be removed in future versions. conflicting_flights: resources.flight_planning.FlightIntentsResource? + non_conflicting_flights: resources.flight_planning.FlightIntentsResource? conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] priority_preemption_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource]? + non_conflicting_flights_provider: resources.resource.ResourceProvidingResource[resources.flight_planning.FlightIntentsResource] invalid_flight_intents: resources.flight_planning.FlightIntentsResource invalid_flight_auth_flights: resources.flight_planning.FlightIntentsResource - non_conflicting_flights: resources.flight_planning.FlightIntentsResource flight_planners: resources.flight_planning.FlightPlannersResource? mock_uss: resources.interuss.mock_uss.client.MockUSSResource? mock_uss_dp: resources.interuss.mock_uss.client.MockUSSResource? @@ -57,7 +58,8 @@ actions: priority_preemption_flights_provider: priority_preemption_flights_provider? invalid_flight_intents: invalid_flight_intents invalid_flight_auth_flights: invalid_flight_auth_flights - non_conflicting_flights: non_conflicting_flights + non_conflicting_flights: non_conflicting_flights? + non_conflicting_flights_provider: non_conflicting_flights_provider flight_planners: flight_planners? mock_uss: mock_uss dss: scd_dss