From b887ee1d22f9e0040ee02169f8ccc90190c60f28 Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Wed, 20 Mar 2024 14:14:30 +0100 Subject: [PATCH] [uss_qualifier] (doc only) cover dss0215 and dss0020 for deletions/mutations in the subscription sync scenario (#565) [uss_qualifier] cover dss0215 and dss0020 for deletions/mutations in the subscription sync scenario --- .../subscription_synchronization.md | 14 ++++++++++++-- .../subscription_synchronization.py | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) 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 33fe346f07..46c4d64888 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 @@ -99,7 +99,12 @@ Query the updated subscription at every DSS provided in `dss_instances`. When queried for a subscription that was mutated via another DSS, a DSS instance is expected to provide a valid subscription. -If it does not, it might be in violation of **[astm.f3548.v21.DSS0005,5](../../../../../requirements/astm/f3548/v21.md)**. +If it does not, either one of the primary DSS or the DSS that returned the subscription is in violation of one of the following requirements: + +**[astm.f3548.v21.DSS0005,5](../../../../../requirements/astm/f3548/v21.md)**, if the API is not working as described by the OpenAPI specification; +**[astm.f3548.v21.DSS0215](../../../../../requirements/astm/f3548/v21.md)**, if the DSS through which the subscription was mutated is returning API calls to the client before having updated its underlying distributed storage. + +As a result, the DSS pool under test is failing to meet **[astm.f3548.v21.DSS0020](../../../../../requirements/astm/f3548/v21.md)**. #### [Subscription is synchronized](../fragments/sub/sync.md) @@ -142,6 +147,11 @@ Attempt to query and search for the deleted subscription in various ways #### 🛑 Secondary DSS should not return the deleted subscription check If a DSS returns a subscription that was previously successfully deleted from the primary DSS, -either one of the primary DSS or the DSS that returned the subscription is in violation of **[astm.f3548.v21.DSS0210,1a](../../../../../requirements/astm/f3548/v21.md)**. +either one of the primary DSS or the DSS that returned the subscription is in violation of one of the following requirements: + +**[astm.f3548.v21.DSS0210,1a](../../../../../requirements/astm/f3548/v21.md)**, if the API is not working as described by the OpenAPI specification; +**[astm.f3548.v21.DSS0215](../../../../../requirements/astm/f3548/v21.md)**, if the DSS through which the subscription was deleted is returning API calls to the client before having updated its underlying distributed storage. + +As a result, the DSS pool under test is failing to meet **[astm.f3548.v21.DSS0020](../../../../../requirements/astm/f3548/v21.md)**. ## [Cleanup](../clean_workspace.md) diff --git a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.py b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.py index 6cb84e84be..523f516f83 100644 --- a/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.py +++ b/monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.py @@ -451,7 +451,7 @@ def _validate_get_sub_from_secondary( with self.check( "Subscription returned by a secondary DSS is valid and correct", - [secondary_dss.participant_id], + [secondary_dss.participant_id, self._primary_pid], ) as check: # Do a full validation of the subscription as a sanity check SubscriptionValidator( @@ -584,7 +584,7 @@ def _confirm_secondary_has_no_sub(self, secondary_dss: DSSInstance): fetched_sub = secondary_dss.get_subscription(self._sub_id) with self.check( "Secondary DSS should not return the deleted subscription", - [secondary_dss.participant_id], + [secondary_dss.participant_id, self._primary_pid], ) as check: if fetched_sub.status_code != 404: check.record_failed(