From 41f5ee2acc3b92dd80828d214c93b961215909b7 Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Wed, 13 Mar 2024 16:33:57 +0100 Subject: [PATCH] DSS0210 prepare sub interactions scenario: oir creation --- monitoring/prober/infrastructure.py | 2 +- .../dev/f3548_self_contained.yaml | 1 + .../configurations/dev/message_signing.yaml | 1 + .../resources/astm/f3548/v21/dss.py | 9 +- .../scenarios/astm/utm/dss/__init__.py | 1 + .../oir/crud/{create.md => create_correct.md} | 10 +- .../dss/fragments/oir/crud/create_query.md | 8 + .../sub/crud/{create.md => create_correct.md} | 5 +- .../dss/fragments/sub/crud/create_query.md | 8 + .../astm/utm/dss/subscription_interactions.md | 79 +++++ .../astm/utm/dss/subscription_interactions.py | 321 ++++++++++++++++++ .../subscription_synchronization.md | 2 +- .../suites/astm/utm/dss_probing.md | 30 +- .../suites/astm/utm/dss_probing.yaml | 9 + .../uss_qualifier/suites/astm/utm/f3548_21.md | 13 +- .../suites/astm/utm/f3548_21.yaml | 3 + .../suites/faa/uft/message_signing.md | 13 +- .../suites/faa/uft/message_signing.yaml | 2 + .../suites/interuss/dss/all_tests.md | 13 +- .../suites/uspace/flight_auth.md | 13 +- .../suites/uspace/flight_auth.yaml | 2 + .../suites/uspace/required_services.md | 13 +- .../suites/uspace/required_services.yaml | 1 + 23 files changed, 517 insertions(+), 42 deletions(-) rename monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/{create.md => create_correct.md} (61%) create mode 100644 monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md rename monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/{create.md => create_correct.md} (74%) create mode 100644 monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md create mode 100644 monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md create mode 100644 monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py diff --git a/monitoring/prober/infrastructure.py b/monitoring/prober/infrastructure.py index 95e3aac299..9ee27668f3 100644 --- a/monitoring/prober/infrastructure.py +++ b/monitoring/prober/infrastructure.py @@ -100,7 +100,7 @@ def wrapper_default_scope(*args, **kwargs): resource_type_code_descriptions: Dict[ResourceType, str] = {} -# Next code: 381 +# Next code: 388 def register_resource_type(code: int, description: str) -> ResourceType: """Register that the specified code refers to the described resource. diff --git a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml index c5a5b232fd..6c6ae21ef2 100644 --- a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml +++ b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml @@ -26,6 +26,7 @@ v1: second_utm_auth: second_utm_auth planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity # This block defines all the resources available in the resource pool. # Presumably all resources defined below would be used either diff --git a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml index 56ccd5028b..a81f809f53 100644 --- a/monitoring/uss_qualifier/configurations/dev/message_signing.yaml +++ b/monitoring/uss_qualifier/configurations/dev/message_signing.yaml @@ -60,6 +60,7 @@ v1: dss_instances: scd_dss_instances id_generator: id_generator second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: che_planning_area problematically_big_area: che_problematically_big_area execution: diff --git a/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py index 6b6afdd8ec..f54f8669d5 100644 --- a/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py +++ b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py @@ -303,8 +303,15 @@ def put_op_intent( result = query.parse_json_result(ChangeOperationalIntentReferenceResponse) return result.operational_intent_reference, result.subscribers, query else: + err_msg = query.error_message if query.error_message is not None else "" + if ( + query.status_code == 409 + and "missing_operational_intents" in query.response.json + ): + err_msg += f" (missing_operational_intents: {query.response.json['missing_operational_intents']})" + raise QueryError( - f"Received code {query.status_code} when attempting to {'create' if create else 'update'} operational intent with ID {oi_uuid}{f'; error message: `{query.error_message}`' if query.error_message is not None else ''}", + f"Received code {query.status_code} when attempting to {'create' if create else 'update'} operational intent with ID {oi_uuid}; error message: `{err_msg}`", query, ) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py index 47a422e5d9..4333161a45 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py @@ -4,3 +4,4 @@ from .op_intent_ref_access_control import OpIntentReferenceAccessControl from .dss_interoperability import DSSInteroperability from .report import Report +from .subscription_interactions import SubscriptionInteractions diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md similarity index 61% rename from monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md rename to monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md index f0ae40f967..53d2b92d69 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_correct.md @@ -1,11 +1,13 @@ # Create operational intent reference test step fragment -This test step fragment validates that operational intent references can be created +This test step fragment validates that: + - a query to create an operational intent reference with valid parameters succeeds + - the response to the query conforms to the OpenAPI specification + - the content of the response reflects the created operational intent reference -## 🛑 Create operational intent reference query succeeds check +## [Query Success](./create_query.md) -As per **[astm.f3548.v21.DSS0005,1](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create an operational intent reference with either one or both of the -start and end time missing, provided all the required parameters are valid. +Check query succeeds ## [Response Format](./create_format.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md new file mode 100644 index 0000000000..4db2c3944f --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/oir/crud/create_query.md @@ -0,0 +1,8 @@ +# Create operational intent reference test step fragment + +This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds + +## 🛑 Create operational intent reference query succeeds check + +As per **[astm.f3548.v21.DSS0005,1](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create an operational intent reference with either one or both of the +start and end time missing, provided all the required parameters are valid. diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md similarity index 74% rename from monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md rename to monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md index de0bc5cfab..1991d4038e 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_correct.md @@ -2,10 +2,9 @@ This test step fragment validates that subscriptions can be created. -## 🛑 Create subscription query succeeds check +## [Query Success](./create_query.md) -As per **[astm.f3548.v21.DSS0005,5](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create a subscription with either one or both of the -start and end time missing, provided all the required parameters are valid. +Check query succeeds ## 🛑 Create subscription response format conforms to spec check diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md new file mode 100644 index 0000000000..ed438e1a7d --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/fragments/sub/crud/create_query.md @@ -0,0 +1,8 @@ +# Create subscription test step fragment + +This test step fragment validates that a query to create a subscription with valid parameters succeeds. + +## 🛑 Create subscription query succeeds check + +As per **[astm.f3548.v21.DSS0005,5](../../../../../../../requirements/astm/f3548/v21.md)**, the DSS API must allow callers to create a subscription with either one or both of the +start and end time missing, provided all the required parameters are valid. diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md new file mode 100644 index 0000000000..43e2139186 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md @@ -0,0 +1,79 @@ +# ASTM SCD DSS: Subscription and entity interaction test scenario + +## Overview + +Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly. + +## Resources + +### dss + +[`DSSInstanceResource`](../../../../resources/astm/f3548/v21/dss.py) to be tested in this scenario. + +### other_instances + +[`DSSInstancesResource`](../../../../resources/astm/f3548/v21/dss.py) pointing to the DSS instances used to confirm that entities are properly propagated. + +### id_generator + +[`IDGeneratorResource`](../../../../resources/interuss/id_generator.py) providing the Subscription IDs for this scenario. + +### planning_area + +[`PlanningAreaResource`](../../../../resources/astm/f3548/v21/planning_area.py) describes the 3D volume in which subscriptions will be created. + +### utm_client_identity + +[`ClientIdentityResource`](../../../../resources/communications/client_identity.py) provides the identity that will be used to interact with the DSS. + +## Setup test case + +### [Ensure clean workspace test step](clean_workspace.md) + +This step ensures that no subscriptions and OIRs with the known test IDs exists in the DSS deployment. + +## Subscription interactions test case + +Test case that ensures that interactions between subscriptions and entities are correctly handled by a deployment of multiple DSS instances. + +### [Create background subscriptions test step](./fragments/sub/crud/create_query.md) + +Sets up two subscriptions that cover the planning area at different times, and which will be used as part of the interaction tests. + +### Create an OIR at every DSS in sequence test step + +This test step will create an operational intent reference and assorted subscription at every DSS, in sequence, each time verifying that the DSS +requires notifications for any previously established subscription that intersects with the newly created OIR. + +Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS) + +#### [Create OIR](./fragments/oir/crud/create_query.md) + +Check that the OIR creation query succeeds + +#### 🛑 DSS response contains the expected background subscription check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This includes one of the subscriptions created earlier, as it is designed to intersect with the OIRs being created. + +If the DSS omits the intersecting subscription, it fails to implement **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +#### 🛑 DSS does not return non-intersecting background subscription check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This should exclude one of subscriptions created earlier, as it is designed to not intersect with the OIRs being created. + +If the DSS includes the non-intersecting subscription, it fails to implement **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +#### 🛑 DSS returns the implicit subscriptions from intersecting OIRs check + +The response from a DSS to a valid OIR creation request is expected to contain any relevant subscription for the OIR's extents. +This includes any implicit subscription previously created on the DSS as part of a previously created OIR. + +If the DSS omits any of the implicit subscriptions belonging to an OIR previously created on another DSS (which are designed to all intersect), +any of the DSSes at which an earlier OIR was created, or the DSS at which the current OIR has been created, +are in violation of **[astm.f3548.v21.DSS0210,A2-7-2,4b](../../../../requirements/astm/f3548/v21.md)**. + +More specifically, they are breaking the above requirement by failing one or both of the following requirements: + +## [Cleanup](./clean_workspace.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py new file mode 100644 index 0000000000..fa6d68880a --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py @@ -0,0 +1,321 @@ +from datetime import datetime, timedelta +from typing import Dict, List, Tuple, Set + +from uas_standards.astm.f3548.v21.api import ( + Subscription, + SubscriptionID, + EntityID, + OperationalIntentReference, + OperationalIntentState, + PutOperationalIntentReferenceParameters, + SubscriberToNotify, +) +from uas_standards.astm.f3548.v21.constants import Scope + +from monitoring.monitorlib.delay import sleep +from monitoring.monitorlib.fetch import QueryError, Query +from monitoring.monitorlib.geotemporal import Volume4D +from monitoring.monitorlib.mutate.scd import MutatedSubscription +from monitoring.prober.infrastructure import register_resource_type +from monitoring.uss_qualifier.resources.astm.f3548.v21 import PlanningAreaResource +from monitoring.uss_qualifier.resources.astm.f3548.v21.dss import ( + DSSInstanceResource, + DSSInstancesResource, + DSSInstance, +) +from monitoring.uss_qualifier.resources.astm.f3548.v21.subscription_params import ( + SubscriptionParams, +) +from monitoring.uss_qualifier.resources.communications import ClientIdentityResource +from monitoring.uss_qualifier.resources.interuss.id_generator import IDGeneratorResource +from monitoring.uss_qualifier.scenarios.astm.utm.dss import test_step_fragments +from monitoring.uss_qualifier.scenarios.scenario import ( + TestScenario, + PendingCheck, +) +from monitoring.uss_qualifier.suites.suite import ExecutionContext + +SUBSCRIPTION_EXPIRY_DELAY_SEC = 5 +WAIT_FOR_EXPIRY_SEC = 7 + + +class SubscriptionInteractions(TestScenario): + """ + A scenario that tests interactions between subscriptions and entities across a DSS cluster. + """ + + SUB_TYPES = [ + register_resource_type(385, "Subscription"), + register_resource_type(386, "Subscription"), + ] + OIR_TYPE = register_resource_type(387, "Operational Intent References") + + _sub_ids: List[SubscriptionID] + _oir_ids: List[EntityID] + + _current_subs: Dict[SubscriptionID, Subscription] + _current_oirs: Dict[EntityID, OperationalIntentReference] + + # Times for the background subscriptions + _sub_1_start: datetime + _sub_1_end: datetime + _sub_2_start: datetime + _sub_2_end: datetime + + _manager: str + + def __init__( + self, + dss: DSSInstanceResource, + other_instances: DSSInstancesResource, + id_generator: IDGeneratorResource, + planning_area: PlanningAreaResource, + utm_client_identity: ClientIdentityResource, + ): + """ + Args: + dss: primary dss to test + other_instances: other dss instances to test + id_generator: will let us generate specific identifiers + planning_area: An Area to use for the tests. It should be an area for which the DSS is responsible, + but has no other requirements. + """ + super().__init__() + scopes = { + Scope.StrategicCoordination: "create and delete subscriptions and entities" + } + self._dss = dss.get_instance(scopes) + self._pid = [self._dss.participant_id] + self._planning_area = planning_area.specification + + self._secondary_instances = [ + dss.get_instance(scopes) for dss in other_instances.dss_instances + ] + + # Prepare the two subscription ids: + self._sub_ids = [ + id_generator.id_factory.make_id(sub_type) for sub_type in self.SUB_TYPES + ] + + # Prepare one OIR id for each DSS we will interact with (one for the main and one for each secondary) + base_oir_id = id_generator.id_factory.make_id(self.OIR_TYPE) + self._oir_ids = [ + f"{base_oir_id[:-3]}{i:03d}" + for i in range(len(self._secondary_instances) + 1) + ] + + # First subscription from now to 20 minutes in the future + self._sub_1_start = datetime.utcnow() + self._sub_1_end = self._sub_1_start + timedelta(minutes=20) + + # Second subscription starts 20 minutes after the first ends and lasts for 1 hour + self._sub_2_start = self._sub_1_end + timedelta(minutes=20) + self._sub_2_end = self._sub_2_start + timedelta(hours=1) + + self._manager = utm_client_identity.subscriber() + + def run(self, context: ExecutionContext): + self.begin_test_scenario(context) + self._setup_case() + self.begin_test_case("Subscription interactions") + + self.begin_test_step("Create background subscriptions") + self._step_create_background_subs() + self.end_test_step() + + self._steps_create_oirs_at_each_dss() + + self.end_test_case() + self.end_test_scenario() + + def _step_create_background_subs(self): + """Creates two subscription through the primary DSS: one that is valid from now into a short future, + and one that starts one hour after the first ends""" + + # Create the first subscription + sub_now_params = self._planning_area.get_new_subscription_params( + subscription_id=self._sub_ids[0], + start_time=self._sub_1_start, + duration=self._sub_1_end - self._sub_1_start, + # This is a planning area without constraint processing + notify_for_op_intents=True, + notify_for_constraints=False, + ) + + sub_now = self._create_sub_with_params(sub_now_params) + self._current_subs[sub_now_params.sub_id] = sub_now + + # Create the second subscription, that starts later + sub_later_params = self._planning_area.get_new_subscription_params( + subscription_id=self._sub_ids[1], + start_time=self._sub_2_start, + duration=self._sub_2_end - self._sub_2_start, + # This is a planning area without constraint processing + notify_for_op_intents=True, + notify_for_constraints=False, + ) + + sub_later = self._create_sub_with_params(sub_later_params) + self._current_subs[sub_later_params.sub_id] = sub_later + + def _steps_create_oirs_at_each_dss(self): + """Creates an OIR at each DSS instance""" + + common_params = self._planning_area.get_new_operational_intent_ref_params( + key=[], # Proper key added in each step below + state=OperationalIntentState.Accepted, + uss_base_url="https://example.interuss.org/oir_base_url", + time_start=datetime.utcnow(), + # Cover the first subscription's time, but not the second one + time_end=self._sub_1_end + timedelta(minutes=10), + subscription_id=None, + implicit_sub_base_url="https://example.interuss.org/sub_base_url", + ) + + existing_oir = None + possible_culprits = [] + for i, dss in enumerate([self._dss] + self._secondary_instances): + + self.begin_test_step("Create an OIR at every DSS in sequence") + + oir_id = self._oir_ids[i] + + if existing_oir: + common_params.key.append(existing_oir.ovn) + oir, subs, q = self._put_op_intent(dss, oir_id, common_params) + notification_ids = _to_sub_ids(subs) + possible_culprits.append(dss.participant_id) + + with self.check( + "DSS response contains the expected background subscription", + dss.participant_id, + ) as check: + if self._sub_ids[0] not in notification_ids: + check.record_failed( + summary="DSS did not return the intersecting background subscription", + details=f"Expected subscription {self._sub_ids[0]} (first background subscription) in the" + f" list of subscriptions to notify, but got {notification_ids}", + query_timestamps=[q.request.timestamp], + ) + + with self.check( + "DSS does not return non-intersecting background subscription", + dss.participant_id, + ) as check: + if self._sub_ids[1] in notification_ids: + check.record_failed( + summary="DSS returned the non-intersecting background subscription", + details=f"Expected subscription {self._sub_ids[1]} (second background subscription) to not be in the" + f" list of subscriptions to notify, but got {notification_ids}", + query_timestamps=[q.request.timestamp], + ) + + with self.check( + "DSS returns the implicit subscriptions from intersecting OIRs", + possible_culprits, + ) as check: + # Previously created OIRs have subscriptions that should be triggered: + for existing_oir_id, existing_oir in self._current_oirs.items(): + if existing_oir.subscription_id not in notification_ids: + check.record_failed( + summary="Missing subscription to notify", + details=f"Expected subscription {existing_oir.subscription_id} to be notified for " + f"freshly created OIR {existing_oir_id}", + query_timestamps=[q.request.timestamp], + ) + + existing_oir = oir + self._current_oirs[oir_id] = oir + self.end_test_step() + + def _put_op_intent( + self, + dss: DSSInstance, + oir_id: EntityID, + params: PutOperationalIntentReferenceParameters, + ) -> Tuple[OperationalIntentReference, List[SubscriberToNotify], Query]: + + with self.check( + "Create operational intent reference query succeeds", [dss.participant_id] + ) as check: + try: + oir, subs, q = dss.put_op_intent( + extents=params.extents, + key=params.key, + state=params.state, + base_url=params.uss_base_url, + oi_id=oir_id, + ovn=None, + ) + self.record_query(q) + except QueryError as qe: + self.record_queries(qe.queries) + check.record_failed( + summary="Failed to create operational intent reference", + details=f"Failed to create operational intent reference: {qe}", + query_timestamps=qe.query_timestamps, + ) + + return oir, subs, q + + def _create_sub_with_params(self, params: SubscriptionParams) -> Subscription: + """Create a subscription with the given parameters via the primary DSS instance""" + with self.check("Create subscription query succeeds") as check: + r = self._dss.upsert_subscription(**params) + if not r.success: + check.record_failed( + summary="Create subscription query failed", + details=f"Failed to create a subscription on primary DSS with code {r.status_code}: {r.error_message}", + query_timestamps=[r.request.timestamp], + ) + return r.subscription + + def _setup_case(self): + self.begin_test_case("Setup") + + # Multiple runs of the scenario seem to rely on the same instance: + # thus we need to reset the state of the scenario before running it. + self._current_subs = {} + self._current_oirs = {} + + self._ensure_clean_workspace_step() + + self.end_test_case() + + def _ensure_clean_workspace_step(self): + self.begin_test_step("Ensure clean workspace") + self._clean_workspace() + self.end_test_step() + + def _clean_workspace(self): + extents = Volume4D(volume=self._planning_area.volume) + test_step_fragments.cleanup_active_oirs( + self, + self._dss, + extents, + self._manager, + ) + for oir_id in self._oir_ids: + test_step_fragments.cleanup_op_intent(self, self._dss, oir_id) + test_step_fragments.cleanup_active_subs( + self, + self._dss, + extents, + ) + for sub_id in self._sub_ids: + test_step_fragments.cleanup_sub(self, self._dss, sub_id) + + def cleanup(self): + self.begin_cleanup() + self._clean_workspace() + self.end_cleanup() + + +def _to_sub_ids(subscribers: List[SubscriberToNotify]) -> Set[SubscriptionID]: + """Flatten the passed list of subscribers to notify to a set of subscription IDs""" + sub_ids = set() + for subscriber in subscribers: + for subscription in subscriber.subscriptions: + sub_ids.add(subscription.subscription_id) + + return sub_ids diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md index 01c3dea057..8b40ec3d56 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md @@ -40,7 +40,7 @@ This test step creates multiple subscriptions with different combinations of the All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step. -#### [Create subscription](../fragments/sub/crud/create.md) +#### [Create subscription](../fragments/sub/crud/create_correct.md) Verify that a subscription can be created on the primary DSS. diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md index aa77032f43..35dc1ffb82 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md @@ -4,14 +4,15 @@ ## [Actions](../../README.md#actions) -1. Scenario: [ASTM SCD DSS: Interfaces authentication](../../../scenarios/astm/utm/dss/authentication/authentication_validation.md) ([`scenarios.astm.utm.dss.authentication.AuthenticationValidation`](../../../scenarios/astm/utm/dss/authentication/authentication_validation.py)) -2. Scenario: [ASTM SCD DSS: Subscription Simple](../../../scenarios/astm/utm/dss/subscription_simple.md) ([`scenarios.astm.utm.dss.SubscriptionSimple`](../../../scenarios/astm/utm/dss/subscription_simple.py)) -3. Scenario: [ASTM SCD DSS: Subscription Validation](../../../scenarios/astm/utm/dss/subscription_validation.md) ([`scenarios.astm.utm.dss.SubscriptionValidation`](../../../scenarios/astm/utm/dss/subscription_validation.py)) -4. Scenario: [ASTM F3548-21 UTM DSS Operational Intent Reference Access Control](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.md) ([`scenarios.astm.utm.dss.OpIntentReferenceAccessControl`](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.py)) -5. Scenario: [ASTM F3548-21 UTM DSS interoperability](../../../scenarios/astm/utm/dss/dss_interoperability.md) ([`scenarios.astm.utm.dss.DSSInteroperability`](../../../scenarios/astm/utm/dss/dss_interoperability.py)) -6. Scenario: [ASTM SCD DSS: Subscription Synchronization](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.SubscriptionSynchronization`](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.py)) -7. Scenario: [ASTM UTM DSS: Direct CRDB access](../../../scenarios/astm/utm/dss/crdb_access.md) ([`scenarios.astm.utm.dss.CRDBAccess`](../../../scenarios/astm/utm/dss/crdb_access.py)) -8. Scenario: [ASTM SCD DSS: Report](../../../scenarios/astm/utm/dss/report.md) ([`scenarios.astm.utm.dss.Report`](../../../scenarios/astm/utm/dss/report.py)) +1. Scenario: [ASTM SCD DSS: Subscription and entity interaction](../../../scenarios/astm/utm/dss/subscription_interactions.md) ([`scenarios.astm.utm.dss.SubscriptionInteractions`](../../../scenarios/astm/utm/dss/subscription_interactions.py)) +2. Scenario: [ASTM SCD DSS: Interfaces authentication](../../../scenarios/astm/utm/dss/authentication/authentication_validation.md) ([`scenarios.astm.utm.dss.authentication.AuthenticationValidation`](../../../scenarios/astm/utm/dss/authentication/authentication_validation.py)) +3. Scenario: [ASTM SCD DSS: Subscription Simple](../../../scenarios/astm/utm/dss/subscription_simple.md) ([`scenarios.astm.utm.dss.SubscriptionSimple`](../../../scenarios/astm/utm/dss/subscription_simple.py)) +4. Scenario: [ASTM SCD DSS: Subscription Validation](../../../scenarios/astm/utm/dss/subscription_validation.md) ([`scenarios.astm.utm.dss.SubscriptionValidation`](../../../scenarios/astm/utm/dss/subscription_validation.py)) +5. Scenario: [ASTM F3548-21 UTM DSS Operational Intent Reference Access Control](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.md) ([`scenarios.astm.utm.dss.OpIntentReferenceAccessControl`](../../../scenarios/astm/utm/dss/op_intent_ref_access_control.py)) +6. Scenario: [ASTM F3548-21 UTM DSS interoperability](../../../scenarios/astm/utm/dss/dss_interoperability.md) ([`scenarios.astm.utm.dss.DSSInteroperability`](../../../scenarios/astm/utm/dss/dss_interoperability.py)) +7. Scenario: [ASTM SCD DSS: Subscription Synchronization](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.SubscriptionSynchronization`](../../../scenarios/astm/utm/dss/synchronization/subscription_synchronization.py)) +8. Scenario: [ASTM UTM DSS: Direct CRDB access](../../../scenarios/astm/utm/dss/crdb_access.md) ([`scenarios.astm.utm.dss.CRDBAccess`](../../../scenarios/astm/utm/dss/crdb_access.py)) +9. Scenario: [ASTM SCD DSS: Report](../../../scenarios/astm/utm/dss/report.md) ([`scenarios.astm.utm.dss.Report`](../../../scenarios/astm/utm/dss/report.py)) ## [Checked requirements](../../README.md#checked-requirements) @@ -23,20 +24,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,2 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -108,6 +109,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml index f91516fd35..8ee9f4d992 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml @@ -8,7 +8,16 @@ resources: id_generator: resources.interuss.IDGeneratorResource planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource + utm_client_identity: resources.communications.ClientIdentityResource actions: + - test_scenario: + scenario_type: scenarios.astm.utm.dss.SubscriptionInteractions + resources: + dss: dss + other_instances: all_dss_instances + id_generator: id_generator + planning_area: planning_area + utm_client_identity: utm_client_identity - test_scenario: scenario_type: scenarios.astm.utm.dss.authentication.AuthenticationValidation resources: diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md index 1e9959bc3e..2139e7fb4f 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md @@ -35,20 +35,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -125,6 +125,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml index 88cbe33c9f..cdf14b7e1e 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml @@ -18,6 +18,7 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource system_identity: resources.versioning.SystemIdentityResource? + utm_client_identity: resources.communications.ClientIdentityResource local_resources: system_identity: resource_type: resources.versioning.SystemIdentityResource @@ -51,6 +52,7 @@ actions: id_generator: id_generator planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity specification: action_to_repeat: test_suite: @@ -64,6 +66,7 @@ actions: id_generator: id_generator planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity on_failure: Continue dss_instances_source: dss_instances dss_instance_id: dss diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md index 51ff8f2706..c9f4d84fce 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.md +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.md @@ -18,20 +18,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -108,6 +108,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml index f3a4766e2b..de4f003aa7 100644 --- a/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml +++ b/monitoring/uss_qualifier/suites/faa/uft/message_signing.yaml @@ -12,6 +12,7 @@ resources: invalid_flight_intents: resources.flight_planning.FlightIntentsResource id_generator: resources.interuss.IDGeneratorResource second_utm_auth: resources.communications.AuthAdapterResource? + utm_client_identity: resources.communications.ClientIdentityResource planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource actions: @@ -36,6 +37,7 @@ actions: dss_crdb_cluster: dss_crdb_cluster? id_generator: id_generator second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area on_failure: Continue diff --git a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md index f805a4a36e..171ea45a28 100644 --- a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md +++ b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md @@ -408,20 +408,20 @@ ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: ISA Subscription Interactions
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Submitted ISA Validations
ASTM NetRID DSS: Subscription Simple
ASTM NetRID DSS: Subscription Validation
ASTM NetRID DSS: Token Validation - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,2 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -493,6 +493,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.md b/monitoring/uss_qualifier/suites/uspace/flight_auth.md index 1613c6fe67..ee4906e672 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.md +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.md @@ -19,20 +19,20 @@ Checked in - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -109,6 +109,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml index 20a5fe5d78..bbd6e3857b 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml @@ -17,6 +17,7 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource system_identity: resources.versioning.SystemIdentityResource? + utm_client_identity: resources.communications.ClientIdentityResource actions: - test_suite: suite_type: suites.astm.utm.f3548_21 @@ -34,6 +35,7 @@ actions: dss_crdb_cluster: dss_crdb_cluster? id_generator: id_generator second_utm_auth: second_utm_auth + utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area system_identity: system_identity? diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index 60e1ff0ad4..b8458d7aba 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -454,20 +454,20 @@ ASTM NetRID DSS: Concurrent Requests
ASTM NetRID DSS: ISA Expiry
ASTM NetRID DSS: ISA Subscription Interactions
ASTM NetRID DSS: Simple ISA
ASTM NetRID DSS: Submitted ISA Validations
ASTM NetRID DSS: Subscription Simple
ASTM NetRID DSS: Subscription Validation
ASTM NetRID DSS: Token Validation - astm
.f3548
.v21
+ astm
.f3548
.v21
DSS0005,1 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted DSS0005,2 Implemented - ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction
Awareness of relevant operational intents
Data Validation of GET operational intents by USS
Nominal planning: conflict with higher priority
Nominal planning: not permitted conflict with equal priority
Off-Nominal planning: down USS
Off-Nominal planning: down USS with equal priority conflicts not permitted
Validation of operational intents DSS0005,5 Implemented - ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -544,6 +544,11 @@ Implemented ASTM SCD DSS: Subscription Synchronization + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.yaml b/monitoring/uss_qualifier/suites/uspace/required_services.yaml index 02e466a46e..d6c28bbd90 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.yaml +++ b/monitoring/uss_qualifier/suites/uspace/required_services.yaml @@ -54,6 +54,7 @@ actions: dss_crdb_cluster: dss_crdb_cluster? id_generator: id_generator second_utm_auth: second_utm_auth? + utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area system_identity: system_identity