From 7801228d7409a95671f77ae8f7368622c7b3ecba Mon Sep 17 00:00:00 2001 From: Julien Perrochet Date: Sun, 3 Nov 2024 15:35:01 +0100 Subject: [PATCH] [uss_qualifier] rid: dss0130 - check information relative to intersecting entities is properly sync'd --- .../netrid/common/dss_interoperability.py | 42 +++++++++++++++++-- .../astm/netrid/v19/dss_interoperability.md | 8 ++++ .../astm/netrid/v22a/dss_interoperability.md | 8 ++++ .../suites/astm/netrid/f3411_19.md | 9 +++- .../astm/netrid/f3411_19/dss_probing.md | 9 +++- .../suites/astm/netrid/f3411_22a.md | 9 +++- .../astm/netrid/f3411_22a/dss_probing.md | 9 +++- .../suites/interuss/dss/all_tests.md | 18 ++++++-- .../suites/uspace/network_identification.md | 9 +++- .../suites/uspace/required_services.md | 9 +++- 10 files changed, 111 insertions(+), 19 deletions(-) diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/common/dss_interoperability.py b/monitoring/uss_qualifier/scenarios/astm/netrid/common/dss_interoperability.py index b9f2b629d0..d756506a2a 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/common/dss_interoperability.py +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/common/dss_interoperability.py @@ -1,8 +1,8 @@ +import datetime import ipaddress import socket import uuid from dataclasses import dataclass -import datetime from enum import Enum from typing import List, Dict, Optional from urllib.parse import urlparse @@ -429,6 +429,7 @@ def step5(self): subscription notification requests""" isa_1 = self._context["isa_1"] + sub_1_0 = self._context["sub_1_0"] with self.check( "Can get ISA from primary DSS", [self._dss_primary.participant_id] @@ -439,16 +440,51 @@ def step5(self): with self.check( "Can modify ISA in primary DSS", [self._dss_primary.participant_id] ) as check: - mutated_isa = self._dss_primary.put_isa( + mutated_isa_primary = self._dss_primary.put_isa( check, isa_id=isa_1.uuid, isa_version=isa_1.version, + do_not_notify="https://testdummy.interuss.org", **_default_params(datetime.timedelta(seconds=SHORT_WAIT_SEC)), ) - isa_1.version = mutated_isa.dss_query.isa.version + isa_1.version = mutated_isa_primary.dss_query.isa.version + + subs_to_notify_primary = [] + for subscriber in mutated_isa_primary.subscribers: + for s in subscriber.raw.subscriptions: + subs_to_notify_primary.append(s.subscription_id) # TODO: Implement "ISA modification triggers subscription notification requests check" + for sec_dss in self._dss_others: + with self.check( + "Can modify ISA on secondary DSS", + [sec_dss.participant_id], + ) as check: + mutated_isa_sec = self._dss_primary.put_isa( + check, + isa_id=isa_1.uuid, + isa_version=isa_1.version, + do_not_notify="https://testdummy.interuss.org", + **_default_params(datetime.timedelta(seconds=SHORT_WAIT_SEC)), + ) + isa_1.version = mutated_isa_sec.dss_query.isa.version + + subs_to_notify_sec = [] + for subscriber in mutated_isa_primary.subscribers: + for s in subscriber.raw.subscriptions: + subs_to_notify_sec.append(s.subscription_id) + + with self.check( + "ISA modification on secondary DSS triggers subscription notification requests", + [self._dss_primary.participant_id], + ) as check: + if sub_1_0.uuid not in subs_to_notify_sec: + check.record_failed( + summary=f"Subscription {sub_1_0.uuid} was not notified of ISA modification", + details=f"Subscription {sub_1_0.uuid} was created on the primary DSS and should have been notified of the ISA modification that happened on the primary DSS, but was not.", + ) + def step6(self): """Can delete all Subscription in primary DSS""" diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/dss_interoperability.md b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/dss_interoperability.md index 0be76b5bc2..96b1f2de3c 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/v19/dss_interoperability.md +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v19/dss_interoperability.md @@ -166,6 +166,14 @@ TODO: Implement **[astm.f3411.v19.DSS0130,A2-6-1,3c](../../../../requirements/astm/f3411/v19.md)** +#### 🛑 Can modify ISA on secondary DSS check + +**[astm.f3411.v19.DSS0130,A2-6-1,1b](../../../../requirements/astm/f3411/v19.md)** + +#### ⚠️ ISA modification on secondary DSS triggers subscription notification requests check + +**[astm.f3411.v19.DSS0130,A2-6-1,3c](../../../../requirements/astm/f3411/v19.md)** and **[astm.f3411.v19.DSS0130,2,e](../../../../requirements/astm/f3411/v19.md)** + ### S6 test step Action: USS2@DSS*P*: DELETE Subscription[*n*] diff --git a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/dss_interoperability.md b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/dss_interoperability.md index caa30a9b9c..b27f9c5867 100644 --- a/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/dss_interoperability.md +++ b/monitoring/uss_qualifier/scenarios/astm/netrid/v22a/dss_interoperability.md @@ -165,6 +165,14 @@ TODO: Implement **[astm.f3411.v22a.DSS0130,A2-6-1,3c](../../../../requirements/astm/f3411/v22a.md)** +#### 🛑 Can modify ISA on secondary DSS check + +**[astm.f3411.v22a.DSS0130,A2-6-1,1b](../../../../requirements/astm/f3411/v22a.md)** + +#### ⚠️ ISA modification on secondary DSS triggers subscription notification requests check + +**[astm.f3411.v22a.DSS0130,A2-6-1,3c](../../../../requirements/astm/f3411/v22a.md)** and **[astm.f3411.v22a.DSS0130,2,e](../../../../requirements/astm/f3411/v22a.md)** + ### S6 test step Action: USS2@DSS*P*: DELETE Subscription[*n*] diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md index 89bab93543..d29423b5f7 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19.md @@ -21,7 +21,7 @@ Checked in - astm
.f3411
.v19
+ astm
.f3411
.v19
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -101,6 +101,11 @@ Implemented ASTM F3411-19 NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-19 NetRID DSS interoperability + DSS0130,2,f Implemented @@ -173,7 +178,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-19 NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md index 4353e6d3d2..f0692c1063 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_19/dss_probing.md @@ -25,7 +25,7 @@ Checked in - astm
.f3411
.v19
+ astm
.f3411
.v19
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -105,6 +105,11 @@ Implemented ASTM F3411-19 NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-19 NetRID DSS interoperability + DSS0130,2,f Implemented @@ -177,7 +182,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-19 NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md index 3066d6a267..08b3ab8b1b 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a.md @@ -21,7 +21,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -106,6 +106,11 @@ Implemented ASTM F3411-22a NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-22a NetRID DSS interoperability + DSS0130,2,f Implemented @@ -178,7 +183,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-22a NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md index 1d46cfe2f4..7d2006c61d 100644 --- a/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md +++ b/monitoring/uss_qualifier/suites/astm/netrid/f3411_22a/dss_probing.md @@ -25,7 +25,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -110,6 +110,11 @@ Implemented ASTM F3411-22a NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-22a NetRID DSS interoperability + DSS0130,2,f Implemented @@ -182,7 +187,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-22a NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md index 3f8915e3d1..8fa5f4b6cf 100644 --- a/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md +++ b/monitoring/uss_qualifier/suites/interuss/dss/all_tests.md @@ -21,7 +21,7 @@ Checked in - astm
.f3411
.v19
+ astm
.f3411
.v19
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -101,6 +101,11 @@ Implemented ASTM F3411-19 NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-19 NetRID DSS interoperability + DSS0130,2,f Implemented @@ -173,7 +178,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-19 NetRID DSS interoperability @@ -212,7 +217,7 @@ 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
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -297,6 +302,11 @@ Implemented ASTM F3411-22a NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-22a NetRID DSS interoperability + DSS0130,2,f Implemented @@ -369,7 +379,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-22a NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/uspace/network_identification.md b/monitoring/uss_qualifier/suites/uspace/network_identification.md index 6d17e3c0e2..ab7b46f31c 100644 --- a/monitoring/uss_qualifier/suites/uspace/network_identification.md +++ b/monitoring/uss_qualifier/suites/uspace/network_identification.md @@ -17,7 +17,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -102,6 +102,11 @@ Implemented ASTM F3411-22a NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-22a NetRID DSS interoperability + DSS0130,2,f Implemented @@ -174,7 +179,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-22a NetRID DSS interoperability diff --git a/monitoring/uss_qualifier/suites/uspace/required_services.md b/monitoring/uss_qualifier/suites/uspace/required_services.md index 4e201b2411..6fba2ae6a2 100644 --- a/monitoring/uss_qualifier/suites/uspace/required_services.md +++ b/monitoring/uss_qualifier/suites/uspace/required_services.md @@ -18,7 +18,7 @@ Checked in - astm
.f3411
.v22a
+ astm
.f3411
.v22a
DSS0010 Implemented ASTM NetRID DSS: Token Validation @@ -103,6 +103,11 @@ Implemented ASTM F3411-22a NetRID DSS interoperability + + DSS0130,2,e + Implemented + ASTM F3411-22a NetRID DSS interoperability + DSS0130,2,f Implemented @@ -175,7 +180,7 @@ DSS0130,A2-6-1,3c - Implemented + TODO + Implemented ASTM F3411-22a NetRID DSS interoperability