From fefcc5f06033eb3f79b518a7c203692f8435a83e Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Mon, 25 Mar 2024 12:23:53 +0100 Subject: [PATCH] [uss_qualifier] DSS0210,A2-7-2,4 initial subscription <-> OIR interactions scenario: oir creation (1/n) (#582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * DSS0210 prepare sub interactions scenario: oir creation * PR feedback; cosmetic changes --------- Co-authored-by: MickaΓ«l Misbach --- monitoring/prober/infrastructure.py | 2 +- .../dev/f3548_self_contained.yaml | 1 + .../resources/astm/f3548/v21/dss.py | 10 +- .../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 | 82 +++++ .../astm/utm/dss/subscription_interactions.py | 324 ++++++++++++++++++ .../op_intent_ref_synchronization.md | 2 +- .../subscription_synchronization.md | 4 +- .../suites/astm/utm/dss_probing.md | 34 +- .../suites/astm/utm/dss_probing.yaml | 8 + .../uss_qualifier/suites/astm/utm/f3548_21.md | 13 +- .../suites/astm/utm/f3548_21.yaml | 3 + .../suites/faa/uft/message_signing.md | 13 +- .../suites/interuss/dss/all_tests.md | 13 +- .../suites/uspace/flight_auth.md | 13 +- .../suites/uspace/flight_auth.yaml | 1 + .../suites/uspace/required_services.md | 13 +- 21 files changed, 522 insertions(+), 46 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 34254dbc13..f941fe8c95 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: 386 +# Next code: 389 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 3b1c72be2d..1625771558 100644 --- a/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml +++ b/monitoring/uss_qualifier/configurations/dev/f3548_self_contained.yaml @@ -28,6 +28,7 @@ v1: utm_client_identity: utm_client_identity 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/resources/astm/f3548/v21/dss.py b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py index 6b6afdd8ec..4ec77c6ef1 100644 --- a/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py +++ b/monitoring/uss_qualifier/resources/astm/f3548/v21/dss.py @@ -32,6 +32,7 @@ VehicleTelemetry, ExchangeRecord, ErrorReport, + AirspaceConflictResponse, ) from uas_standards.astm.f3548.v21.constants import Scope @@ -302,9 +303,16 @@ def put_op_intent( ): result = query.parse_json_result(ChangeOperationalIntentReferenceResponse) return result.operational_intent_reference, result.subscribers, query + elif query.status_code == 409: + result = query.parse_json_result(AirspaceConflictResponse) + raise QueryError( + f"Received code 409 when attempting to {'create' if create else 'update'} operational intent with ID {oi_uuid}; error message: `{result.message}`; missing operational intent IDs: {[oi.id for oi in result.missing_operational_intents]}", + query, + ) else: + err_msg = query.error_message if query.error_message is not None else "" 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 6a588d14b3..bf63c0f2a7 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/__init__.py @@ -5,3 +5,4 @@ from .dss_interoperability import DSSInteroperability from .report import Report from .op_intent_ref_key_validation import OIRKeyValidation +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..eab95740e3 --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.md @@ -0,0 +1,82 @@ +# 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. + +## OIR creation triggers relevant notifications test case + +This test case verifies that newly created OIRs will receive the relevant subscriptions to notify from the DSS instance, +regardless of which instance was used to create the entity. + +### [Create first background subscription test step](./fragments/sub/crud/create_query.md) + +Sets up the first subscription that cover the planning area from 'now' to 20 minutes in the future, and which will be used as part of the interaction tests. + +### [Create second background subscription test step](./fragments/sub/crud/create_query.md) + +Sets up the second subscription that cover the planning area from 20 minutes after the first starts and that lasts for 1 hour, 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)**. + +## [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..67f8ddcebe --- /dev/null +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/subscription_interactions.py @@ -0,0 +1,324 @@ +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(386, "First Subscription"), + register_resource_type(387, "Second Subscription"), + ] + OIR_TYPE = register_resource_type(388, "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 operational intents" + } + 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) + ] + + self._manager = utm_client_identity.subject() + + def run(self, context: ExecutionContext): + self.begin_test_scenario(context) + self._setup_case() + + self.begin_test_case("OIR creation triggers relevant notifications") + self._step_create_background_subs() + 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 + self.begin_test_step("Create first background 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 + self.end_test_step() + + # Create the second subscription, that starts later + self.begin_test_step("Create second background subscription") + + 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 + self.end_test_step() + + 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") + + # 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) + + # 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/op_intent_ref_synchronization.md b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.md index 0fca155e90..ab502f4121 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.md +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.md @@ -41,7 +41,7 @@ It then goes on to mutate and delete it, each time confirming that all other DSS ### Create OIR validation test step -#### [Create OIR](../fragments/oir/crud/create.md) +#### [Create OIR](../fragments/oir/crud/create_correct.md) Verify that an operational intent reference can be created on the primary DSS. 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 c1ff08d905..ed52cfd8b1 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 @@ -70,7 +70,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. @@ -206,7 +206,7 @@ Verify that when we are reading the subscription without mutating it, the versio If the second set of credentials is provided, this test step will create a subscription using these credentials, in order to prepare the next step that checks manager synchronization. -#### [Create subscription](../fragments/sub/crud/create.md) +#### [Create subscription](../fragments/sub/crud/create_query.md) Verify that a subscription can be created on the primary DSS using the separate set of credentials. diff --git a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md index 2b58c22b4b..9876becfbc 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.md @@ -4,16 +4,17 @@ ## [Actions](../../README.md#actions) -1. Scenario: [ASTM SCD DSS: Operational Intent Reference Key Validation](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.md) ([`scenarios.astm.utm.dss.OIRKeyValidation`](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.py)) -2. Scenario: [ASTM SCD DSS: Operational Intent Reference Synchronization](../../../scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.OIRSynchronization`](../../../scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.py)) -3. 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)) -4. 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)) -5. 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)) -6. 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)) -7. 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)) -8. 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)) -9. 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)) -10. 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: Operational Intent Reference Key Validation](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.md) ([`scenarios.astm.utm.dss.OIRKeyValidation`](../../../scenarios/astm/utm/dss/op_intent_ref_key_validation.py)) +3. Scenario: [ASTM SCD DSS: Operational Intent Reference Synchronization](../../../scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.md) ([`scenarios.astm.utm.dss.synchronization.OIRSynchronization`](../../../scenarios/astm/utm/dss/synchronization/op_intent_ref_synchronization.py)) +4. 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)) +5. 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)) +6. 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)) +7. 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)) +8. 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)) +9. 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)) +10. 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)) +11. 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) @@ -25,20 +26,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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -145,6 +146,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + 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 374a82fabc..ca6f3c6a42 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/dss_probing.yaml @@ -10,6 +10,14 @@ resources: planning_area: resources.astm.f3548.v21.PlanningAreaResource problematically_big_area: resources.VerticesResource 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.OIRKeyValidation resources: diff --git a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.md index 5d0591c955..8291245a05 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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -160,6 +160,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + 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 06fc17a2ed..072c510844 100644 --- a/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml +++ b/monitoring/uss_qualifier/suites/astm/utm/f3548_21.yaml @@ -20,6 +20,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 @@ -55,6 +56,7 @@ actions: utm_client_identity: utm_client_identity planning_area: planning_area problematically_big_area: problematically_big_area + utm_client_identity: utm_client_identity specification: action_to_repeat: test_suite: @@ -70,6 +72,7 @@ actions: utm_client_identity: utm_client_identity 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 9c38d7f6a6..1463da5f8e 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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -143,6 +143,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + 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/interuss/dss/all_tests.md b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md index 54206defa6..16b353e717 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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -528,6 +528,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + 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 881f3e48f4..d20362a78e 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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -144,6 +144,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + 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 39df85ffd6..1fa9248a4c 100644 --- a/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml +++ b/monitoring/uss_qualifier/suites/uspace/flight_auth.yaml @@ -19,6 +19,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 diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index 5de8707bfc..faa2760205 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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
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 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation + ASTM F3548 flight planners preparation
ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
ASTM SCD DSS: Interfaces authentication
ASTM SCD DSS: Operational Intent Reference Key Validation
ASTM SCD DSS: Operational Intent Reference Synchronization
ASTM SCD DSS: Subscription Simple
ASTM SCD DSS: Subscription Synchronization
ASTM SCD DSS: Subscription Validation
ASTM SCD DSS: Subscription and entity interaction DSS0015 @@ -579,6 +579,11 @@ Implemented ASTM SCD DSS: Operational Intent Reference Key Validation + + DSS0210,A2-7-2,4b + Implemented + ASTM SCD DSS: Subscription and entity interaction + DSS0210,A2-7-2,7 Implemented