Skip to content

Commit 0de75f1

Browse files
committed
PR comments
1 parent b887ee1 commit 0de75f1

File tree

10 files changed

+303
-67
lines changed

10 files changed

+303
-67
lines changed

monitoring/uss_qualifier/resources/astm/f3548/v21/subscription_params.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from __future__ import annotations
2+
13
import datetime
24
from typing import List, Optional, Self
35

@@ -72,3 +74,19 @@ def to_upsert_subscription_params(
7274
min_alt_m=self.min_alt_m,
7375
max_alt_m=self.max_alt_m,
7476
)
77+
78+
def shift_time(self, shift: datetime.timedelta) -> SubscriptionParams:
79+
"""
80+
Returns a new SubscriptionParams object with the start and end times shifted by the given timedelta.
81+
"""
82+
return SubscriptionParams(
83+
sub_id=self.sub_id,
84+
area_vertices=self.area_vertices,
85+
min_alt_m=self.min_alt_m,
86+
max_alt_m=self.max_alt_m,
87+
start_time=self.start_time + shift,
88+
end_time=self.end_time + shift,
89+
base_url=self.base_url,
90+
notify_for_op_intents=self.notify_for_op_intents,
91+
notify_for_constraints=self.notify_for_constraints,
92+
)

monitoring/uss_qualifier/scenarios/astm/utm/dss/synchronization/subscription_synchronization.md

Lines changed: 74 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,10 @@ Verify that the subscription returned by every DSS is correctly formatted and co
7474

7575
Verify that the version of the subscription returned by every DSS is as expected.
7676

77-
### Mutate subscription test step
77+
### Mutate subscription broadcast test step
7878

79-
This test step mutates the previously created subscription to verify that the DSS reacts properly: notably, it checks that the subscription version is updated,
80-
including for changes that are not directly visible, such as changing the subscription's footprint.
79+
This test step mutates the previously created subscription, by accessing the primary DSS, to verify that the update is propagated to all other DSSes.
80+
Notably, it checks that the subscription version is updated, including for changes that are not directly visible, such as changing the subscription's footprint.
8181

8282
#### [Update subscription](../fragments/sub/crud/update.md)
8383

@@ -122,9 +122,51 @@ Verify that the subscription returned by every DSS is correctly formatted and co
122122

123123
Verify that the version of the subscription returned by every DSS is as expected.
124124

125-
### Delete subscription test step
125+
### Mutate subscription on secondaries test step
126126

127-
Attempt to delete the subscription in various ways and ensure that the DSS reacts properly.
127+
This test step attempts to mutate the subscription on every secondary DSS instance (that is, instances through which the subscription has not been created) to confirm that such mutations are properly propagated to every DSS.
128+
129+
#### 🛑 Subscription can be mutated on secondary DSS check
130+
131+
If the secondary DSS does not allow the subscription to be mutated, either the secondary DSS or the primary DSS are in violation of one or both of the following requirements:
132+
133+
**[astm.f3548.v21.DSS0210,1b](../../../../../requirements/astm/f3548/v21.md)**, if the `manager` of the subscription fails to be taken into account (either because the primary DSS did not propagated it, or because the secondary failed to consider it);
134+
**[astm.f3548.v21.DSS0005,5](../../../../../requirements/astm/f3548/v21.md)**, if the secondary DSS fails to properly implement the API to mutate subscriptions.
135+
136+
#### 🛑 Subscription returned by a secondary DSS is valid and correct check
137+
138+
When queried for a subscription that was created via another DSS, a DSS instance is expected to provide a valid subscription.
139+
140+
If it does not, it might be in violation of **[astm.f3548.v21.DSS0005,5](../../../../../requirements/astm/f3548/v21.md)**.
141+
142+
#### [Update subscription](../fragments/sub/crud/update.md)
143+
144+
Confirm that the secondary DSS handles the update properly.
145+
146+
#### [Subscription is synchronized](../fragments/sub/sync.md)
147+
148+
Confirm that the subscription that was just mutated is properly synchronized across all DSS instances.
149+
150+
#### [Get subscription](../fragments/sub/crud/read.md)
151+
152+
Confirms that the subscription that was just mutated can be retrieved from any DSS, and that it has the expected content.
153+
154+
#### [Validate subscription](../fragments/sub/validate/correctness.md)
155+
156+
Verify that the subscription returned by the DSS is properly formatted and contains the correct content.
157+
158+
#### [Validate version is updated by mutation](../fragments/sub/validate/mutated.md)
159+
160+
Verify that the version of the subscription returned by the DSS the subscription was mutated through has been updated.
161+
162+
#### [Validate new version is synced](../fragments/sub/validate/non_mutated.md)
163+
164+
Verify that the new version of the subscription has been propagated.
165+
166+
### Delete subscription on primary test step
167+
168+
Attempt to delete the subscription that was created on the primary DSS through the primary DSS in various ways,
169+
and ensure that the DSS reacts properly.
128170

129171
This also checks that the subscription data returned by a successful deletion is correct.
130172

@@ -144,7 +186,33 @@ Verify that the version of the subscription returned by the DSS is as expected
144186

145187
Attempt to query and search for the deleted subscription in various ways
146188

147-
#### 🛑 Secondary DSS should not return the deleted subscription check
189+
#### 🛑 DSS should not return the deleted subscription check
190+
191+
If a DSS returns a subscription that was previously successfully deleted from the primary DSS,
192+
either one of the primary DSS or the DSS that returned the subscription is in violation of one of the following requirements:
193+
194+
**[astm.f3548.v21.DSS0210,1a](../../../../../requirements/astm/f3548/v21.md)**, if the API is not working as described by the OpenAPI specification;
195+
**[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.
196+
197+
As a result, the DSS pool under test is failing to meet **[astm.f3548.v21.DSS0020](../../../../../requirements/astm/f3548/v21.md)**.
198+
199+
### Delete subscriptions on secondaries test step
200+
201+
Attempt to delete subscriptions that were created through the primary DSS via the secondary DSS instances.
202+
203+
#### [Delete subscription](../fragments/sub/crud/delete.md)
204+
205+
Confirms that a subscription can be deleted from a secondary DSS
206+
207+
#### [Validate subscription](../fragments/sub/validate/correctness.md)
208+
209+
Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.
210+
211+
#### [Validate version](../fragments/sub/validate/non_mutated.md)
212+
213+
Verify that the version of the subscription returned by the DSS is as expected
214+
215+
#### 🛑 DSS should not return the deleted subscription check
148216

149217
If a DSS returns a subscription that was previously successfully deleted from the primary DSS,
150218
either one of the primary DSS or the DSS that returned the subscription is in violation of one of the following requirements:

0 commit comments

Comments
 (0)