Test run e456523

1. Table of contents

1.1. Setup

  1. Test run information
  2. Resource pool

1.2. Test scenarios

  1. [S1] Get system versions
  2. [S2] ASTM F3548 flight planners preparation
  3. [S3] ASTM SCD DSS: Implicit Subscription handling
  4. [S4] ASTM SCD DSS: Operational Intent Reference Simple
  5. [S5] ASTM SCD DSS: Constraint Reference Simple
  6. [S6] ASTM SCD DSS: Constraint Reference Synchronization
  7. [S7] ASTM SCD DSS: USS Availability Synchronization
  8. [S8] ASTM F3548-21 UTM DSS Operational Intent Reference State Transitions
  9. [S9] ASTM SCD DSS: Subscription and entity deletion interaction
  10. [S10] ASTM SCD DSS: Subscription and entity interaction
  11. [S11] ASTM SCD DSS: Operational Intent Reference Key Validation
  12. [S12] ASTM SCD DSS: Operational Intent Reference Synchronization
  13. [S13] ASTM SCD DSS: Interfaces authentication
  14. [S14] ASTM SCD DSS: Subscription Simple
  15. [S15] ASTM SCD DSS: Subscription Validation
  16. [S16] ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
  17. [S17] ASTM F3548-21 UTM DSS interoperability
  18. [S18] ASTM SCD DSS: Subscription Synchronization
  19. [skipped] ASTM UTM DSS: Direct CRDB access
  20. [S19] OVN Request Optional Extension to ASTM F3548-21
  21. [S20] ASTM SCD DSS: Report
  22. [S21] ASTM SCD DSS: Implicit Subscription handling
  23. [S22] ASTM SCD DSS: Operational Intent Reference Simple
  24. [S23] ASTM SCD DSS: Constraint Reference Simple
  25. [S24] ASTM SCD DSS: Constraint Reference Synchronization
  26. [S25] ASTM SCD DSS: USS Availability Synchronization
  27. [S26] ASTM F3548-21 UTM DSS Operational Intent Reference State Transitions
  28. [S27] ASTM SCD DSS: Subscription and entity deletion interaction
  29. [S28] ASTM SCD DSS: Subscription and entity interaction
  30. [S29] ASTM SCD DSS: Operational Intent Reference Key Validation
  31. [S30] ASTM SCD DSS: Operational Intent Reference Synchronization
  32. [S31] ASTM SCD DSS: Interfaces authentication
  33. [S32] ASTM SCD DSS: Subscription Simple
  34. [S33] ASTM SCD DSS: Subscription Validation
  35. [S34] ASTM F3548-21 UTM DSS Operational Intent Reference Access Control
  36. [S35] ASTM F3548-21 UTM DSS interoperability
  37. [S36] ASTM SCD DSS: Subscription Synchronization
  38. [skipped] ASTM UTM DSS: Direct CRDB access
  39. [S37] OVN Request Optional Extension to ASTM F3548-21
  40. [S38] ASTM SCD DSS: Report
  41. [S39] Solo happy path
  42. [S40] Solo happy path
  43. [S41] Validation of operational intents
  44. [S42] Validation of operational intents
  45. [skipped] All actions from action generator
  46. [S43] Nominal planning: not permitted conflict with equal priority
  47. [S44] Nominal planning: not permitted conflict with equal priority
  48. [S45] Nominal planning: not permitted conflict with equal priority
  49. [S46] Nominal planning: not permitted conflict with equal priority
  50. [S47] Data Validation of GET operational intents by USS
  51. [S48] Data Validation of GET operational intents by USS
  52. [S49] Awareness of relevant operational intents
  53. [S50] Awareness of relevant operational intents
  54. [skipped] All actions from action generator
  55. [skipped] All actions from action generator
  56. [S51] ASTM F3548 flight planners preparation
  57. [S52] ASTM F3548-21 evaluate system versions
  58. [S53] ASTM F3548 UTM aggregate checks

2. Test run information

Test characteristic Value
Test run identifier TR-e456523
Start time 2024-12-19 16:17:43 UTC
End time 2024-12-19 16:18:44 UTC
Test baseline identifier TB-f381196
Environment identifier TE-c8d3580
Codebase version interuss/monitoring/v0.0.0-9848684
Commit hash 9848684815df0a2dcb30390d85bf613ab56fd736

This artifact was generated by interuss/monitoring/v0.0.0-9848684

3. Resource pool

3.1. Environment

3.1.1. utm_auth (resources.communications.AuthAdapterResource)

3.1.2. second_utm_auth (resources.communications.AuthAdapterResource)

3.1.3. test_env_version_providers (resources.versioning.VersionProvidersResource)

3.1.4. flight_planners (resources.flight_planning.FlightPlannersResource)

3.1.5. dss (resources.astm.f3548.v21.DSSInstanceResource)

3.1.6. dss_instances (resources.astm.f3548.v21.DSSInstancesResource)

3.1.7. mock_uss (resources.interuss.mock_uss.client.MockUSSResource)

3.2. Baseline

3.2.1. prod_env_version_providers (resources.versioning.VersionProvidersResource)

3.2.2. test_exclusions (resources.dev.TestExclusionsResource)

3.2.3. utm_client_identity (resources.communications.ClientIdentityResource)

3.2.4. id_generator (resources.interuss.IDGeneratorResource)

3.2.5. planning_area (resources.astm.f3548.v21.PlanningAreaResource)

3.2.6. problematically_big_area (resources.VerticesResource)

3.2.7. conflicting_flights (resources.flight_planning.FlightIntentsResource)

3.2.8. invalid_flight_intents (resources.flight_planning.FlightIntentsResource)

3.2.9. non_conflicting_flights (resources.flight_planning.FlightIntentsResource)

4. [S1] Get system versions

This test scenario obtains versions for the specified systems.

4.1. Resources

4.1.1. version_providers

A VersionProvidersResource containing the means by which to query system versions for each applicable participant.

✅ Provided by test_env_version_providers in top-level resource pool.

4.1.2. system_identity

A SystemIdentityResource indicating the identity of the system for which to query the version from all providers.

✅ Provided by system_identity in suites.astm.utm.f3548_21.

4.2. Get versions test case

4.2.1. Get versions test step

Each version provider is queried for the version of its system (identified by system_identity) and the result is recorded as a note in the report.

4.2.1.1. Valid response check

If a valid response is not received from a version provider, they will have failed to meet versioning.ReportSystemVersion.

✅ uss1_core (2024-12-19T16:17:43.451208Z)

✅ uss2_core (2024-12-19T16:17:43.466081Z)

5. [S2] ASTM F3548 flight planners preparation

5.1. Description

This scenario prepares flight planner systems for execution of controlled test scenarios by checking planner systems' readiness and having them remove any existing flights that may already be in the test area.

5.2. Resources

5.2.1. flight_planners

FlightPlannersResource listing all USSs undergoing planning tests so that they can be checked for readiness and instructed to remove any existing flights from the area in this scenario.

✅ Provided by flight_planners in top-level resource pool.

5.2.2. mock_uss

(Optional) MockUSSResource is checked for readiness and instructed to remove any existing flights from the area in this scenario.

✅ Provided by mock_uss in top-level resource pool.

5.2.3. dss

DSSInstanceResource to check for lingering operational intents after the area has been cleared.

✅ Provided by dss in top-level resource pool.

5.2.4. flight_intents

FlightIntentsResource containing flight intents that will be used in subsequent tests, so all planners should be instructed to clear any area involved with any of these intents of flights it manages.

✅ Provided by invalid_flight_intents in top-level resource pool.

5.2.5. flight_intents2

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

This resource was not applicable to this test run and was therefore not provided.

5.2.6. flight_intents3

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

✅ Provided by conflicting_flights in top-level resource pool.

5.2.7. flight_intents4

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

✅ Provided by non_conflicting_flights in top-level resource pool.

5.3. Flight planners preparation test case

5.3.1. Check for flight planning readiness test step

All USSs are queried for their readiness to ensure later tests can proceed.

5.3.1.1. ⚠️ Valid response to readiness query check

interuss.automated_testing.flight_planning.ImplementAPI

✅ uss1_core (2024-12-19T16:17:43.481365Z)

✅ uss2_core (2024-12-19T16:17:43.491628Z)

✅ mock_uss (2024-12-19T16:17:43.503180Z)

5.3.1.2. ⚠️ Flight planning USS ready check

This readiness indicates the USS's ability to inject test data, so if this check fails, not only has the USS not met interuss.automated_testing.flight_planning.Readiness, but it also does not meet astm.f3548.v21.GEN0310.

✅ uss1_core (2024-12-19T16:17:43.481444Z)

✅ uss2_core (2024-12-19T16:17:43.491710Z)

✅ mock_uss (2024-12-19T16:17:43.503275Z)

5.3.2. Area clearing test step

All USSs are requested to remove all flights from the area under test.

5.3.2.1. ⚠️ Valid response to clearing query check

interuss.automated_testing.flight_planning.ImplementAPI

✅ uss1_core (2024-12-19T16:17:43.543267Z)

✅ uss2_core (2024-12-19T16:17:43.579780Z)

✅ mock_uss (2024-12-19T16:17:43.615056Z)

✅ uss1_core (2024-12-19T16:17:43.632008Z)

✅ uss2_core (2024-12-19T16:17:43.648818Z)

✅ mock_uss (2024-12-19T16:17:43.666246Z)

✅ uss1_core (2024-12-19T16:17:43.683169Z)

✅ uss2_core (2024-12-19T16:17:43.699935Z)

✅ mock_uss (2024-12-19T16:17:43.717072Z)

5.3.2.2. ⚠️ Area cleared successfully check

interuss.automated_testing.flight_planning.ClearArea

✅ uss1_core (2024-12-19T16:17:43.543383Z)

✅ uss2_core (2024-12-19T16:17:43.579868Z)

✅ mock_uss (2024-12-19T16:17:43.615150Z)

✅ uss1_core (2024-12-19T16:17:43.632103Z)

✅ uss2_core (2024-12-19T16:17:43.648920Z)

✅ mock_uss (2024-12-19T16:17:43.666384Z)

✅ uss1_core (2024-12-19T16:17:43.683283Z)

✅ uss2_core (2024-12-19T16:17:43.700054Z)

✅ mock_uss (2024-12-19T16:17:43.717221Z)

5.3.3. Clear area validation test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

5.3.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:17:43.723997Z)

✅ uss1_dss (2024-12-19T16:17:43.727852Z)

✅ uss1_dss (2024-12-19T16:17:43.731667Z)

5.3.3.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

This step examines whether any operational intents remain. If any foreign (other than uss_qualifier-owned) operational intents remain, then this step's checks will fail. If any uss_qualifier-owned operational intents remain, the checks for this step do not fail but instead we proceed to the next test case. If the area is clear, we skip the next test case.

✅ (2024-12-19T16:17:43.724115Z)

✅ (2024-12-19T16:17:43.727949Z)

✅ (2024-12-19T16:17:43.731758Z)

5.4. uss_qualifier preparation test case

This test case was not applicable to this test run and is therefore not statused.

In addition to foreign flight planners, uss_qualifier may have left operational intents in the DSS from an incomplete previous run. This test case attempts to clean them up if they exist. If there are no operational intents from uss_qualifier in the flight intent areas, this test case will be skipped.

5.4.1. Remove uss_qualifier op intents test step

5.4.1.1. Remove op intents

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

5.4.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

5.4.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

5.4.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

The operational intent references managed by uss_qualifier discovered in the previous test case are removed.

5.4.2. Clear area validation test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

5.4.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

5.4.2.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

After removing the operational intents of all flight planning participants previously, and just having attempted to remove uss_qualifier-owned operational intents, the area should now be fully clear.

6. [S3] ASTM SCD DSS: Implicit Subscription handling

6.1. Overview

Checks that implicit subscriptions are properly created, mutated and cleaned up.

6.2. Resources

6.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

6.2.2. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

6.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

6.2.4. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

6.3. Setup test case

6.3.1. Ensure clean workspace test step

6.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

6.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.740405Z)

✅ uss1_dss (2024-12-19T16:17:43.742588Z)

✅ uss1_dss (2024-12-19T16:17:43.744801Z)

6.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:43.737345Z)

6.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

6.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

6.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:43.749248Z)

6.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:43.752625Z)

6.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

6.4. Single OIR implicit subscription is removed upon OIR deletion test case

6.4.1. Create an OIR with implicit subscription test step

This step creates an OIR with an implicit subscription and confirms that the subscription can be queried

6.4.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.4.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:43.776487Z)

6.4.1.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

6.4.1.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.787537Z)

6.4.1.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

6.4.1.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.788876Z)

6.4.2. Delete the OIR with implicit subscription test step

6.4.2.1. Delete OIR

This test step fragment validates that operational intent references can be deleted

6.4.2.1.1. 🛑 Delete operational intent reference query succeeds check

A query to delete an operational intent reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.803913Z)

6.4.2.1.2. 🛑 Delete operational intent reference response format conforms to spec check

The response to a successful operational intent reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

6.4.2.1.3. 🛑 Delete operational intent reference response content is correct check

A successful operational intent reference deletion query is expected to return a body, the content of which reflects the operational intent reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

This check was not applicable to this test run and is therefore not statused.

6.4.2.2. 🛑 The implicit subscription was removed check

Upon deletion of an OIR that is associated to an implicit subscription, if the subscription has no other associated OIRs, the DSS is expected to remove it.

If a query attempting to fetch the implicit subscription succeeds, it implies that the implicit subscription has not been removed, and the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.810612Z)

6.4.2.3. 🛑 After removal of the only created OIR, subscriptions should be as before its creation check

If, after the DSS is left in the same state as it was 'found' for an area, the subscriptions currently active do not correspond to the ones that were present when the test case started, the DSS may be failing to properly implement astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:43.810697Z)

6.5. Implicit subscriptions always properly cover their OIR test case

This test case verifies that implicit subscriptions belonging to OIRs that are created, updated and deleted are properly managed.

In particular, the scenario verifies that:

6.5.1. Create an OIR with implicit subscription test step

Create an OIR with which interactions will be tested and request an implicit subscription to be created.

6.5.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.5.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:43.826701Z)

6.5.1.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

6.5.1.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.836844Z)

6.5.1.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

6.5.1.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.838109Z)

6.5.2. Create an overlapping OIR without any subscription test step

This step creates an OIR in the ACCEPTED state that overlaps with the previously created OIR: it does not request the creation of an implicit subscription and does not attach the OIR to any subscription explicitly.

This step expects that the implicit subscription from the previously created OIR is mentioned in the response's notifications, and that no new implicit subscription is created.

6.5.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.5.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:43.853142Z)

6.5.2.2. 🛑 New OIR creation response contains previous implicit subscription to notify check

If the newly created OIR does not mention the implicit subscription from the previous OIR in its notifications, the DSS is either improperly managing implicit subscriptions, or failing to report the subscriptions relevant to an OIR, and therefore in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5 respectively.

✅ uss1_dss (2024-12-19T16:17:43.856046Z)

6.5.2.3. 🛑 No implicit subscription was attached check

If the DSS attached an implicit subscription, by either creating or re-using an existing one, to the OIR that was created in this step, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.855993Z)

6.5.3. Mutate OIR with implicit subscription to not overlap anymore test step

This step mutates the first OIR, which has an implicit subscription, to no longer overlap with the second OIR.

The mutation request does not specify an existing subscription, and provides the parameters required for the creation of an implicit subscription.

6.5.3.1. Mutate OIR

This test step fragment validates that operational intent references can be updated.

6.5.3.1.1. Update query succeeds

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

6.5.3.1.2. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:43.890003Z)

6.5.3.1.3. Response Format

This test step fragment validates that updates to operational intent references return a body in the correct format.

6.5.3.1.4. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

This check was not applicable to this test run and is therefore not statused.

6.5.3.1.5. 🛑 Mutate operational intent reference response content is correct check

A successful operational intent reference mutation query is expected to return a well-defined body, the content of which reflects the updated operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

This check was not applicable to this test run and is therefore not statused.

6.5.3.2. 🛑 The implicit subscription can be queried check

The implicit subscription attached to the mutated OIR should be able to be queried.

If it cannot, the DSS is either improperly managing implicit subscriptions for OIRs, or failing to report the subscriptions relevant to an OIR, in which case the DSS is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5, respectively.

✅ uss1_dss (2024-12-19T16:17:43.899669Z)

6.5.3.3. Correct temporal bounds

This test step fragment validates the time-bounds of an implicit subscription

6.5.3.3.1. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.900961Z)

6.5.3.4. 🛑 Non-mutated implicit subscription is deleted check

If the DSS chose to create a new implicit subscription instead of updating the existing one, and the DSS did not remove the previous subscription, the DSS is in violation of either astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:43.904195Z)

6.5.4. Create an OIR overlapping with the second OIR but not the first test step

This step creates a new OIR that only overlaps the OIR that has no implicit subscription, and expects to not have to notify any subscription related to the OIRs created in this scenario.

6.5.4.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.5.4.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:43.918495Z)

6.5.4.2. 🛑 Within a temporal frame not overlapping a newly created implicit subscription, subscriptions should be the same as at the start of the test case check

Within a geotemporal area that does not intersect with any of the implicit subscriptions that are left within the DSS, the subscriptions returned for an OIR created within said area should correspond to the ones that were present when the test case started.

Otherwise, the DSS may be failing to properly implement astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:43.921147Z)

6.5.4.3. 🛑 No implicit subscription was attached check

If the DSS attached an implicit subscription, by either creating or re-using an existing one, to the OIR that was created in this step, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.921094Z)

6.6. Implicit subscriptions are properly deleted when required by OIR mutation test case

This test case verifies that implicit subscriptions are properly removed if they become unnecessary following the mutation of an OIR.

6.6.1. Ensure clean workspace test step

6.6.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

6.6.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.967197Z)

✅ uss1_dss (2024-12-19T16:17:43.969766Z)

✅ uss1_dss (2024-12-19T16:17:43.972167Z)

6.6.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:43.964373Z)

6.6.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:43.940117Z)

✅ uss1_dss (2024-12-19T16:17:43.954499Z)

✅ uss1_dss (2024-12-19T16:17:43.964304Z)

6.6.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

6.6.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:43.975121Z)

6.6.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:43.977384Z)

6.6.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

6.6.2. Create two OIRs with implicit subscription test step

Creates two OIRs with an implicit subscription, which will then be replaced by an explicitly created subscription and deleted by an update that requests no subscription, respectively.

6.6.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.6.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:43.991941Z)

✅ uss1_dss (2024-12-19T16:17:44.019115Z)

6.6.2.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

6.6.2.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.001252Z)

✅ uss1_dss (2024-12-19T16:17:44.028842Z)

6.6.2.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

6.6.2.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.002636Z)

✅ uss1_dss (2024-12-19T16:17:44.030112Z)

6.6.3. Create a subscription test step

This test step creates a subscription that will be used to replace the implicit subscription that was created for an OIR.

6.6.3.1. Create subscription

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

6.6.3.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 creation succeeds and response is correct.

✅ uss1_dss (2024-12-19T16:17:44.041779Z)

6.6.4. Update OIR with implicit subscription to use explicit subscription test step

This step updates the OIR to use the subscription that was created in the previous step, and expects the previous implicit subscription to be removed.

6.6.4.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

6.6.4.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss1_dss (2024-12-19T16:17:44.063552Z)

6.6.4.2. 🛑 Previously attached implicit subscription was deleted check

If the implicit subscription that was attached to the OIR is still present after the OIR is updated to use another subscription, the DSS is failing to properly manage implicit subscriptions for OIRs, and is therefore in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.070142Z)

6.6.5. Update OIR with implicit subscription to use no subscription test step

This step updates the OIR to not use any subscription, and expects the implicit subscription to be removed.

6.6.5.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

6.6.5.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss1_dss (2024-12-19T16:17:44.086830Z)

6.6.5.2. 🛑 Previously attached implicit subscription was deleted check

If the implicit subscription that was attached to the OIR is still present after the OIR is updated to use another subscription, the DSS is failing to properly manage implicit subscriptions for OIRs, and is therefore in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.095275Z)

6.7. Implicit subscriptions are expanded as needed test case

This test case checks that a DSS will properly expand an implicit subscription to cover an OIR that is being attached to it.

6.7.1. Ensure clean workspace test step

6.7.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

6.7.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.126739Z)

✅ uss1_dss (2024-12-19T16:17:44.130995Z)

✅ uss1_dss (2024-12-19T16:17:44.133238Z)

6.7.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:44.124187Z)

6.7.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.112541Z)

✅ uss1_dss (2024-12-19T16:17:44.124147Z)

6.7.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

6.7.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:44.136754Z)

6.7.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:44.141656Z)

✅ uss1_dss (2024-12-19T16:17:44.151027Z)

6.7.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:44.148628Z)

6.7.2. Create an OIR with implicit subscription test step

Create an OIR with which interactions will be tested and request an implicit subscription to be created.

6.7.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

6.7.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:44.168259Z)

6.7.2.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

6.7.2.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.177100Z)

6.7.2.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

6.7.2.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.178524Z)

6.7.3. Expand the OIR while keeping the same implicit subscription test step

Expand the previously created OIR's duration while explicitly specifying the implicit subscription that was automatically created for it.

6.7.3.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

6.7.3.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss1_dss (2024-12-19T16:17:44.196607Z)

6.7.3.2. 🛑 The implicit subscription can be queried check

The implicit subscription attached to the mutated OIR should be able to be queried.

If it cannot, the DSS is either improperly managing implicit subscriptions for OIRs, or failing to report the subscriptions relevant to an OIR, in which case the DSS is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5, respectively.

✅ uss1_dss (2024-12-19T16:17:44.205002Z)

6.7.3.3. Correct temporal bounds

This test step fragment validates the time-bounds of an implicit subscription with respect to the OIRs it needs to cover.

6.7.3.3.1. 🛑 Implicit subscription has wide enough temporal parameters check

If the implicit subscription's time boundaries do not cover every OIR attached to it, the DSS is in violation of astm.f3548.v21.DSS0005,1.

Ensure that the attached implicit subscription has been expanded

✅ uss1_dss (2024-12-19T16:17:44.206505Z)

6.8. Cleanup

6.8.1. Remove OIRs created during this test

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

6.8.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.232681Z)

✅ uss1_dss (2024-12-19T16:17:44.235020Z)

✅ uss1_dss (2024-12-19T16:17:44.237338Z)

6.8.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:44.224330Z)

6.8.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.224274Z)

6.8.2. Remove subscriptions created during this test

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

6.8.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:44.240110Z)

6.8.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:44.242368Z)

6.8.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

7. [S4] ASTM SCD DSS: Operational Intent Reference Simple

7.1. Overview

Verifies the behavior of a DSS for simple interactions pertaining to operational intent references.

7.2. Resources

7.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

7.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

7.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

7.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

7.3. Setup test case

7.3.1. Ensure clean workspace test step

7.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

7.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.250635Z)

7.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:44.248391Z)

7.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

7.3.2. Create an operational intent reference test step

7.3.2.1. Create an operational intent reference to be used in this scenario.

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

7.3.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss1_dss (2024-12-19T16:17:44.264914Z)

7.4. Deletion requires correct OVN test case

Ensures that a DSS will only delete OIRs when the correct OVN is presented.

7.4.1. Attempt deletion with missing OVN test step

This step verifies that an existing OIR cannot be deleted with a missing OVN.

7.4.1.1. 🛑 Request to delete OIR with empty OVN fails check

If the DSS under test allows the qualifier to delete an existing OIR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss1_dss (2024-12-19T16:17:44.266516Z)

7.4.2. Attempt deletion with incorrect OVN test step

This step verifies that an existing OIR cannot be deleted with an incorrect OVN.

7.4.2.1. 🛑 Request to delete OIR with incorrect OVN fails check

If the DSS under test allows the qualifier to delete an existing OIR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss1_dss (2024-12-19T16:17:44.271999Z)

7.5. Mutation requires correct OVN test case

Test DSS behavior when mutation requests are not providing the required OVN.

7.5.1. Attempt mutation with missing OVN test step

This step verifies that an existing OIR cannot be mutated with a missing OVN.

7.5.1.1. 🛑 Request to mutate OIR with empty OVN fails check

If the DSS under test allows the qualifier to mutate an existing OIR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss1_dss (2024-12-19T16:17:44.277739Z)

7.5.2. Attempt mutation with incorrect OVN test step

This step verifies that an existing OIR cannot be mutated with an incorrect OVN.

7.5.2.1. 🛑 Request to mutate OIR with incorrect OVN fails check

If the DSS under test allows the qualifier to mutate an existing OIR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss1_dss (2024-12-19T16:17:44.282819Z)

7.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

7.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.307549Z)

7.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:44.300598Z)

7.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.300550Z)

8. [S5] ASTM SCD DSS: Constraint Reference Simple

8.1. Overview

Verifies the behavior of a DSS for simple interactions pertaining to constraint references.

8.2. Resources

8.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

8.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

8.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update constraint references.

✅ Provided by utm_client_identity in top-level resource pool.

8.2.4. planning_area

PlanningAreaResource describes the 3D volume in which constraint references will be created.

✅ Provided by planning_area in top-level resource pool.

8.3. Setup test case

8.3.1. Ensure clean workspace test step

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

8.3.1.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.321032Z)

8.3.1.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.318236Z)

8.3.1.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This step ensures that no entities with the known test IDs exists in the DSS.

This check was not applicable to this test run and is therefore not statused.

8.3.2. Create a constraint reference test step

This test step fragment validates that a query to create a constraint reference with valid parameters succeeds

8.3.2.1. 🛑 Create constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to create a constraint reference with either one or both of the start and end time missing, provided all the required parameters are valid.

This step creates the constraint reference to be used in this scenario.

✅ uss1_dss (2024-12-19T16:17:44.330355Z)

8.4. Deletion requires correct OVN test case

Ensures that an existing CR can only be deleted when the correct OVN is provided.

8.4.1. Attempt deletion with missing OVN test step

This step verifies that an existing CR cannot be deleted with a missing OVN.

8.4.1.1. 🛑 Request to delete CR with empty OVN fails check

If the DSS under test allows the qualifier to delete an existing CR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss1_dss (2024-12-19T16:17:44.331745Z)

8.4.2. Attempt deletion with incorrect OVN test step

This step verifies that an existing CR cannot be deleted with an incorrect OVN.

8.4.2.1. 🛑 Request to delete CR with incorrect OVN fails check

If the DSS under test allows the qualifier to delete an existing CR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss1_dss (2024-12-19T16:17:44.334072Z)

8.5. Mutation requires correct OVN test case

Ensures that an existing CR can only be mutated when the correct OVN is provided.

8.5.1. Attempt mutation with missing OVN test step

This step verifies that an existing CR cannot be mutated with a missing OVN.

8.5.1.1. 🛑 Request to mutate CR with empty OVN fails check

If the DSS under test allows the qualifier to mutate an existing CR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss1_dss (2024-12-19T16:17:44.337397Z)

8.5.2. Attempt mutation with incorrect OVN test step

This step verifies that an existing CR cannot be mutated with an incorrect OVN.

8.5.2.1. 🛑 Request to mutate CR with incorrect OVN fails check

If the DSS under test allows the qualifier to mutate an existing CR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss1_dss (2024-12-19T16:17:44.340644Z)

8.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

8.6.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.354250Z)

8.6.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.344632Z)

8.6.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.352115Z)

9. [S6] ASTM SCD DSS: Constraint Reference Synchronization

9.1. Overview

Verifies that all CRUD operations on constraint references performed on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

9.2. Resources

9.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

9.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

9.2.3. id_generator

IDGeneratorResource providing the constraint reference ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

9.2.4. planning_area

PlanningAreaResource describes the 3D volume in which constraint reference will be created.

✅ Provided by planning_area in top-level resource pool.

9.2.5. client_identity

ClientIdentityResource to be used for this scenario.

✅ Provided by utm_client_identity in top-level resource pool.

9.3. Setup test case

9.3.1. Ensure clean workspace test step

9.3.1.1. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

9.3.1.1.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.362021Z)

9.3.1.1.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.359869Z)

9.3.1.1.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This check was not applicable to this test run and is therefore not statused.

9.4. CR synchronization test case

This test case creates an constraint reference on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

9.4.1. Create CR validation test step

9.4.1.1. Create CR

This test step fragment validates that:

9.4.1.1.1. Query Success

This test step fragment validates that a query to create a constraint reference with valid parameters succeeds

9.4.1.1.2. 🛑 Create constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to create a constraint reference with either one or both of the start and end time missing, provided all the required parameters are valid.

Check query succeeds

✅ uss1_dss (2024-12-19T16:17:44.369252Z)

9.4.1.1.3. Response Format

This test step fragment validates that a constraint references creation returns a body in the correct format.

9.4.1.1.4. 🛑 Create constraint reference response format conforms to spec check

The response to a successful constraint reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss (2024-12-19T16:17:44.670616Z)

9.4.1.1.5. 🛑 Create constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects the created constraint reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Verify that an constraint reference can be created on the primary DSS.

✅ uss1_dss (2024-12-19T16:17:44.671790Z)

9.4.1.2. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.1.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.671429Z)

9.4.1.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.671478Z)

9.4.1.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.671517Z)

9.4.1.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.671554Z)

9.4.1.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.671591Z)

9.4.1.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.671626Z)

9.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.671698Z)

9.4.1.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.671660Z)

9.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.671735Z)

9.4.1.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.671768Z)

9.4.1.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS under test is properly formatted and contains the expected content.

This check was not applicable to this test run and is therefore not statused.

9.4.2. Retrieve newly created CR test step

Retrieve and validate synchronization of the created constraint at every DSS provided in dss_instances.

9.4.2.1. Get CR query

This test step fragment validates that constraint references can be read

9.4.2.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

9.4.2.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.676448Z)

✅ uss2_dss (2024-12-19T16:17:44.694557Z)

9.4.2.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

9.4.2.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss (2024-12-19T16:17:44.687709Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.706228Z)

9.4.2.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.688950Z)

✅ uss1_dss (2024-12-19T16:17:44.707458Z)

9.4.2.2. Newly created CR can be consistently retrieved from all DSS instances check

If the constraint retrieved from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1f, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:44.677461Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.695769Z)

9.4.2.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

9.4.2.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.676516Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.694638Z)

9.4.2.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

9.4.2.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.676590Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.694722Z)

9.4.2.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.676634Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.694780Z)

9.4.2.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.677389Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.695676Z)

9.4.2.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the created constraint reference. Confirm that the constraint reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:44.677438Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.695739Z)

9.4.2.4. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.2.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.688470Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.706974Z)

9.4.2.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.688525Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707027Z)

9.4.2.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688569Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707069Z)

9.4.2.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.688610Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707108Z)

9.4.2.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688651Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707146Z)

9.4.2.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.688690Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707183Z)

9.4.2.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688770Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707260Z)

9.4.2.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688728Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707220Z)

9.4.2.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688811Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707300Z)

9.4.2.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.688851Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707357Z)

9.4.2.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Sanity check on the rest of the content and format of the response.

This check was not applicable to this test run and is therefore not statused.

9.4.2.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

9.4.2.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.688930Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707438Z)

9.4.2.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

Confirm that version and OIR are as expected.

✅ uss1_dss (2024-12-19T16:17:44.688891Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.707399Z)

9.4.3. Search for newly created CR test step

Search for and validate synchronization of the created constraint at every DSS provided in dss_instances.

9.4.3.1. Search CR

This test step fragment validates that constraint references can be searched for.

9.4.3.1.1. Search query succeeds

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

9.4.3.1.2. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.711436Z)

✅ uss2_dss (2024-12-19T16:17:44.728088Z)

9.4.3.1.3. Response format

This test step fragment validates that constraint references search responses are properly formatted.

9.4.3.1.4. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format.

✅ uss1_dss (2024-12-19T16:17:44.722847Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.739675Z)

9.4.3.1.5. 🛑 Expected constraint reference is in search results check

If the existing constraint reference is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.723576Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740362Z)

9.4.3.1.6. 🛑 Search constraint reference response content is correct check

A successful constraint reference search query is expected to return a body, the content of which reflects any constraint reference present in the searched area. This includes the previously created constraint reference, which should accurately represent the constraint reference as it was requested. If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that search query succeeds and the response is well-formed.

✅ uss1_dss (2024-12-19T16:17:44.724086Z)

✅ uss1_dss (2024-12-19T16:17:44.741025Z)

9.4.3.2. Newly created CR can be consistently searched for from all DSS instances check

If the constraint searched from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1e, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:44.712397Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.729051Z)

9.4.3.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

9.4.3.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

9.4.3.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.711501Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.728152Z)

9.4.3.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.711565Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.728216Z)

9.4.3.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.711609Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.728259Z)

9.4.3.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.712302Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.728983Z)

9.4.3.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the constraint in relevant search results. Confirm that the constraint reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:44.712374Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.729029Z)

9.4.3.4. CR content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.3.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.723632Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740429Z)

9.4.3.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.723674Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740484Z)

9.4.3.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.723715Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740542Z)

9.4.3.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.723755Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740587Z)

9.4.3.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.723794Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740645Z)

9.4.3.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.723832Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740700Z)

9.4.3.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.723912Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740802Z)

9.4.3.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.723871Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740745Z)

9.4.3.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.723952Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740847Z)

9.4.3.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.723990Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740904Z)

9.4.3.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

9.4.3.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

9.4.3.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.724065Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.741001Z)

9.4.3.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.724028Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.740958Z)

9.4.4. Mutate CR test step

This test step mutates the previously created constraint reference to verify that the DSS reacts properly: notably, it checks that the constraint reference version is updated, including for changes that are not directly visible, such as changing the constraint reference's footprint.

9.4.4.1. Update CR

This test step fragment validates that constraint references can be updated.

9.4.4.1.1. Update query succeeds

This test step fragment validates that a query to update a constraint reference with valid parameters succeeds.

9.4.4.1.2. 🛑 Mutate constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to mutate a constraint reference.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.750445Z)

9.4.4.1.3. Response Format

This test step fragment validates that updates to constraint references return a body in the correct format.

9.4.4.1.4. 🛑 Mutate constraint reference response format conforms to spec check

The response to a successful constraint reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss (2024-12-19T16:17:44.761169Z)

9.4.4.1.5. 🛑 Mutate constraint reference response content is correct check

A successful constraint reference mutation query is expected to return a well-defined body, the content of which reflects the updated constraint reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that the constraint reference can be mutated.

✅ uss1_dss (2024-12-19T16:17:44.762308Z)

9.4.4.2. Validate CR

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.4.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.761886Z)

9.4.4.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.761933Z)

9.4.4.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.761971Z)

9.4.4.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.762007Z)

9.4.4.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.762044Z)

9.4.4.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.762079Z)

9.4.4.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.762149Z)

9.4.4.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.762112Z)

9.4.4.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.762185Z)

9.4.4.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.762218Z)

9.4.4.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

9.4.4.3. CR Versions are correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been mutated.

The code for these checks lives in the cr_validator.py class.

9.4.4.3.1. ⚠️ Mutated constraint reference version is updated check

Following a mutation, the DSS needs to update the constraint reference version, otherwise it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.762287Z)

9.4.4.3.2. ⚠️ Mutated constraint reference OVN is updated check

Following a mutation, the DSS needs to update the constraint reference OVN, otherwise it is in violation of astm.f3548.v21.DSS0005,3.

Verify that the constraint reference's version fields have been updated.

✅ uss1_dss (2024-12-19T16:17:44.762253Z)

9.4.5. Retrieve updated CR test step

Retrieve and validate synchronization of the updated constraint at every DSS provided in dss_instances.

9.4.5.1. Get CR query

This test step fragment validates that constraint references can be read

9.4.5.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

9.4.5.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.765644Z)

✅ uss2_dss (2024-12-19T16:17:44.781488Z)

9.4.5.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

9.4.5.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss (2024-12-19T16:17:44.776812Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793094Z)

9.4.5.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds and the response is well-formed.

✅ uss1_dss (2024-12-19T16:17:44.778008Z)

✅ uss1_dss (2024-12-19T16:17:44.794373Z)

9.4.5.2. Updated CR can be consistently retrieved from all DSS instances check

If the constraint retrieved from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b, astm.f3548.v21.DSS0210,A2-7-2,1d, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:44.766602Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.782421Z)

9.4.5.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

9.4.5.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.765707Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.781547Z)

9.4.5.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

9.4.5.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.765770Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.781609Z)

9.4.5.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.765813Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.781650Z)

9.4.5.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.766535Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.782350Z)

9.4.5.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the updated constraint reference. Confirm that the constraint reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:44.766581Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.782399Z)

9.4.5.4. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.5.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.777496Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793811Z)

9.4.5.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.777549Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793864Z)

9.4.5.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777619Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793906Z)

9.4.5.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.777667Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793946Z)

9.4.5.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777709Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.793986Z)

9.4.5.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.777749Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794024Z)

9.4.5.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777829Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794102Z)

9.4.5.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777788Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794062Z)

9.4.5.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777870Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794164Z)

9.4.5.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.777909Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794213Z)

9.4.5.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

9.4.5.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

9.4.5.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777987Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794341Z)

9.4.5.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.777948Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.794271Z)

9.4.6. Search for updated CR test step

Search for and validate synchronization of the updated constraint at every DSS provided in dss_instances.

9.4.6.1. Search CR

This test step fragment validates that constraint references can be searched for.

9.4.6.1.1. Search query succeeds

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

9.4.6.1.2. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.798368Z)

✅ uss2_dss (2024-12-19T16:17:44.814573Z)

9.4.6.1.3. Response format

This test step fragment validates that constraint references search responses are properly formatted.

9.4.6.1.4. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format.

✅ uss1_dss (2024-12-19T16:17:44.809643Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.825663Z)

9.4.6.1.5. 🛑 Expected constraint reference is in search results check

If the existing constraint reference is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.810311Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826353Z)

9.4.6.1.6. 🛑 Search constraint reference response content is correct check

A successful constraint reference search query is expected to return a body, the content of which reflects any constraint reference present in the searched area. This includes the previously created constraint reference, which should accurately represent the constraint reference as it was requested. If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that search query succeeds and the response is well-formed.

✅ uss1_dss (2024-12-19T16:17:44.810830Z)

✅ uss1_dss (2024-12-19T16:17:44.826856Z)

9.4.6.2. Updated CR can be consistently searched for from all DSS instances check

If the constraint searched from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b, astm.f3548.v21.DSS0210,A2-7-2,1e, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:44.799303Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.815527Z)

9.4.6.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

9.4.6.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

9.4.6.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.798434Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.814637Z)

9.4.6.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.798499Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.814701Z)

9.4.6.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.798542Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.814744Z)

9.4.6.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:44.799236Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.815460Z)

9.4.6.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the constraint in relevant search results. Confirm that the constraint reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:44.799283Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.815507Z)

9.4.6.4. CR content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.6.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.810382Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826408Z)

9.4.6.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.810425Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826451Z)

9.4.6.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810464Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826490Z)

9.4.6.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.810502Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826529Z)

9.4.6.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810541Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826568Z)

9.4.6.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.810579Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826606Z)

9.4.6.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810657Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826684Z)

9.4.6.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810616Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826643Z)

9.4.6.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810697Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826724Z)

9.4.6.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.810735Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826762Z)

9.4.6.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

9.4.6.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

9.4.6.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810809Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826836Z)

9.4.6.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.810772Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.826799Z)

9.4.7. Delete CR test step

Attempt to delete the constraint reference in various ways and ensure that the DSS reacts properly.

This also checks that the constraint reference data returned by a successful deletion is correct.

9.4.7.1. Delete CR

This test step fragment validates that constraint references can be deleted

9.4.7.1.1. 🛑 Delete constraint reference query succeeds check

A query to delete a constraint reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.833911Z)

9.4.7.1.2. Response format

This test step fragment validates that a constraint references deletion returns a body in the correct format.

9.4.7.1.3. 🛑 Delete constraint reference response format conforms to spec check

The response to a successful constraint reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss (2024-12-19T16:17:44.844517Z)

9.4.7.1.4. 🛑 Delete constraint reference response content is correct check

A successful constraint reference deletion query is expected to return a body, the content of which reflects the constraint reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that an constraint reference can be deleted.

✅ uss1_dss (2024-12-19T16:17:44.845649Z)

9.4.7.2. Validate CR

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

9.4.7.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.845210Z)

9.4.7.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.845257Z)

9.4.7.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845296Z)

9.4.7.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.845350Z)

9.4.7.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845389Z)

9.4.7.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.845423Z)

9.4.7.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845493Z)

9.4.7.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845456Z)

9.4.7.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845528Z)

9.4.7.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss (2024-12-19T16:17:44.845562Z)

9.4.7.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS via the deletion is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

9.4.7.3. CR Versions are correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

9.4.7.3.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.845628Z)

9.4.7.3.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

Verify that the constraint reference's version fields are as expected.

✅ uss1_dss (2024-12-19T16:17:44.845595Z)

9.4.8. Query deleted CR test step

Attempt to query and search for the deleted constraint reference in various ways

9.4.8.1. Get CR query

This test step fragment validates that constraint references can be read

9.4.8.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

9.4.8.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.848228Z)

✅ uss2_dss (2024-12-19T16:17:44.853292Z)

9.4.8.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

9.4.8.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

This check was not applicable to this test run and is therefore not statused.

9.4.8.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds.

This check was not applicable to this test run and is therefore not statused.

9.4.8.2. 🛑 Deleted CR cannot be retrieved from all DSS instances check

If a DSS returns an constraint reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the constraint reference is in violation of astm.f3548.v21.DSS0210,2a, astm.f3548.v21.DSS0210,A2-7-2,3b, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:44.848274Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.853369Z)

9.4.8.3. Search CR

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

9.4.8.3.1. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:17:44.851096Z)

✅ uss2_dss (2024-12-19T16:17:44.856148Z)

9.4.8.4. 🛑 Deleted CR cannot be searched for from all DSS instances check

If a DSS returns an constraint reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the constraint reference is in violation of astm.f3548.v21.DSS0210,2a, astm.f3548.v21.DSS0210,A2-7-2,3a, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:44.851142Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:44.856195Z)

9.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

9.5.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:44.861713Z)

9.5.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:44.859642Z)

9.5.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3. ∅ This check was not applicable to this test run and is therefore not statused.

10. [S7] ASTM SCD DSS: USS Availability Synchronization

10.1. Overview

Verifies that all CRUD operations for USS availabilities on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

10.2. Resources

10.2.1. dss

DSSInstanceResource the DSS instance through which USS availabilities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

10.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that USS availabilities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

10.2.3. client_identity

ClientIdentityResource to be used for this scenario: it contains the identifier of the USS for which availabilities will be updated.

✅ Provided by utm_client_identity in top-level resource pool.

10.3. Setup test case

For the setup of this test case, the scenario ensures that the availability for the USS specified in the client_identity resource is Unknown, which is the default expected state when nothing else is known.

10.3.1. Ensure test USS has Unknown availability test step

This step ensures that the scenario starts from a state where the USS availability is Unknown.

10.3.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.867211Z)

✅ uss1_dss (2024-12-19T16:17:44.870153Z)

✅ uss2_dss (2024-12-19T16:17:44.874402Z)

10.3.1.2. 🛑 USS Availability can be set to Unknown check

A valid request to set the availability of a USS to Unknown should be accepted by the DSS, otherwise it is failing to implement the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

10.3.1.3. Consistent availability
10.3.1.3.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.3.1.3.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4. USS Availability synchronization test case

Checks that updates to a USS availability on one DSS instance are properly propagated to every other DSS instance in the deployment.

Ensures that this is true for every possible availability state.

10.4.1. Update USS availability on primary DSS to Normal test step

10.4.1.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.1.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

10.4.2. Check Normal USS availability broadcast test step

10.4.2.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.2.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.881457Z)

✅ uss2_dss (2024-12-19T16:17:44.883850Z)

10.4.2.2. Consistent availability
10.4.2.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4.2.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4.3. Update USS Availability on primary DSS to Down test step

10.4.3.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.3.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

10.4.4. Check Down USS availability broadcast test step

10.4.4.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.4.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.890524Z)

✅ uss2_dss (2024-12-19T16:17:44.893383Z)

10.4.4.2. Consistent availability
10.4.4.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4.4.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4.5. Update USS availability on primary DSS to Unknown test step

10.4.5.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.5.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

10.4.6. Check Unknown USS availability broadcast test step

10.4.6.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.4.6.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.900955Z)

✅ uss2_dss (2024-12-19T16:17:44.903356Z)

10.4.6.2. Consistent availability
10.4.6.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.4.6.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.5. Unknown USS state is reported as Unknown test case

Checks that if queried for a USS it does not know about, any DSS will return an Unknown availability.

10.5.1. Query all DSS instances with an unknown USS identifier test step

This test step requests the availability for a USS identifier that is not known to any DSS instance, and expects to receive an Unknown availability along with an unset version. This should be true for every DSS that is part of the same deployment.

10.5.1.1. Request availability

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

10.5.1.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.908469Z)

✅ uss2_dss (2024-12-19T16:17:44.911008Z)

10.5.1.2. 🛑 Main DSS instance reports Unknown availability check

If the primary DSS instance does not return an Unknown availability for a USS identifier that has not received any updates, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.906024Z)

10.5.1.3. ⚠️ Availability version for an unknown USS should be empty check

If the primary DSS instance reports a non-empty version for the availability of an USS identifier that should not be known to the DSS, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.906086Z)

10.5.1.4. Consistent availability
10.5.1.4.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.5.1.4.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

10.6. Cleanup

10.6.1. ⚠️ USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:44.913467Z)

10.6.2. ⚠️ USS Availability can be set to Unknown check

A valid request to set the availability of a USS to Unknown should be accepted by the DSS, otherwise it is failing to implement the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1. ∅ This check was not applicable to this test run and is therefore not statused.

11. [S8] ASTM F3548-21 UTM DSS Operational Intent Reference State Transitions

11.1. Overview

This scenario ensures that a DSS will only let the owner of an operational intent reference modify it.

11.2. Resources

11.2.1. flight_intents

A resources.flight_planning.FlightIntentsResource containing the flight intents to be used in this scenario:

This scenario expects to find at least one flight intent in this resource. It will use its extents to create and mutate an operational intent reference, but ignore any specified states, as this scenario will iterate over all allowed states.

✅ Provided by non_conflicting_flights in top-level resource pool.

11.2.2. dss

A resources.astm.f3548.v21.DSSInstanceResource pointing to the DSS instance to test for this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

11.2.3. id_generator

A resources.interuss.IDGeneratorResource that will be used to generate the IDs of the operational intent references created in this scenario.

✅ Provided by id_generator in top-level resource pool.

11.3. Setup test case

Makes sure that the DSS is in a clean and expected state before running the test, and that the passed resources work as required.

11.3.1. Ensure clean workspace test step

11.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

11.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.920610Z)

11.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:44.927455Z)

✅ uss1_dss (2024-12-19T16:17:44.930887Z)

11.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

11.3.1.2. No OIR exists
11.3.1.2.1. ⚠️ Any existing operational intent reference has been removed check

If, after cleanup, one or more operational intent reference are still present at the DSS, this scenario cannot proceed.

This scenario is able to remove any operational intent reference that belongs to the configured credentials, but it cannot remove references that belong to other credentials.

A regular failure of this check indicates that other scenarios might not properly clean up their resources, or that the Prepare Flight Planners scenario should be moved in front of the present one.

If this check fails, the rest of the scenario is entirely skipped.

✅ uss1_dss (2024-12-19T16:17:44.930932Z)

11.4. Attempt unauthorized state creation test case

This test case attempts to create an operational intent reference with a state that would require the utm.conformance_monitoring_sa scope while only using the utm.strategic_coordination scope.

11.4.1. Attempt direct creation with unauthorized state test step

This test step attempts to directly create an operational intent reference with a state that is not allowable.

The creation of such an entity is expected to fail for two reasons:

11.4.1.1. 🛑 Direct Nonconforming state creation is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to create an operational intent reference in the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.935881Z)

11.4.1.2. 🛑 Direct Contingent state creation is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to create an operational intent reference in the Contingent state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.938086Z)

11.5. Attempt unauthorized state transitions test case

This test case attempts to transition an existing operational intent reference to a state that would require the utm.conformance_monitoring_sa scope while only using the utm.strategic_coordination scope.

11.5.1. Create an Accepted OIR test step

This step sets up an operational intent reference in the Accepted state.

11.5.1.1. 🛑 Creation of an Accepted OIR is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to create an operational intent reference in the Accepted state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.952984Z)

11.5.2. Attempt transition of an accepted operational intent reference to an unauthorized state test step

This test step attempts to transition an existing operational intent reference to a state it should not be allowed to when using the ``utm.strategic_coordination` scope.

11.5.2.1. 🛑 Transition from Accepted to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.954801Z)

11.5.2.2. 🛑 Transition from Accepted to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.956524Z)

11.5.3. Transition the OIR to Activated test step

This step transitions the operational intent reference to the Activated state.

11.5.3.1. 🛑 Transition from Accepted to Activated is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Activated state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.972213Z)

11.5.4. Attempt transition of an activated operational intent reference to an unauthorized state test step

11.5.4.1. 🛑 Transition from Activated to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.973996Z)

11.5.4.2. 🛑 Transition from Activated to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.975570Z)

11.5.5. Transition the OIR to Ended test step

11.5.5.1. 🛑 Transition from Activated to Ended is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Ended state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.991611Z)

11.5.6. Attempt transition of an ended operational intent reference to an unauthorized state test step

11.5.6.1. 🛑 Transition from Ended to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Ended state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.993414Z)

11.5.6.2. 🛑 Transition from Ended to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Ended state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss1_dss, mock_uss (2024-12-19T16:17:44.994939Z)

11.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

11.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:44.999023Z)

11.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

11.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:45.010764Z)

12. [S9] ASTM SCD DSS: Subscription and entity deletion interaction

12.1. Overview

Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly.

12.2. Resources

12.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

12.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

12.2.3. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

12.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

12.2.5. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

12.3. Setup test case

12.3.1. Ensure clean workspace test step

12.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

12.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:45.018896Z)

✅ uss1_dss (2024-12-19T16:17:45.021017Z)

✅ uss1_dss (2024-12-19T16:17:45.023160Z)

12.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:45.016533Z)

12.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

12.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

12.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:45.025793Z)

12.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:45.027960Z)

✅ uss1_dss (2024-12-19T16:17:45.030070Z)

✅ uss1_dss (2024-12-19T16:17:45.032139Z)

12.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

12.4. Subscription deletion is reflected on all DSS instances test case

This test case verifies that after a subscription is deleted from a DSS instance, it cannot be retrieved from any other DSS instance.

12.4.1. Create a subscription at every DSS in sequence test step

This test step will create a new subscription at every DSS, in sequence.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

12.4.1.1. Create subscription on a DSS instance

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

12.4.1.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 that the subscription creation succeeds.

✅ uss1_dss (2024-12-19T16:17:45.040129Z)

✅ uss1_dss (2024-12-19T16:17:45.049505Z)

✅ uss1_dss (2024-12-19T16:17:45.059255Z)

12.4.2. Delete a subscription at every DSS in sequence test step

This test step will delete the freshly created subscription at every DSS, in sequence. It then verifies that the subscription has been deleted from all DSS instances.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

12.4.2.1. Delete subscription on a DSS instance

This test step fragment validates that a query to remove a subscription succeeds.

12.4.2.1.1. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check that the subscription deletion succeeds.

✅ uss1_dss (2024-12-19T16:17:45.066838Z)

✅ uss1_dss (2024-12-19T16:17:45.080468Z)

✅ uss2_dss (2024-12-19T16:17:45.090823Z)

12.4.2.2. Get subscription query from all other DSS instances succeeds

This test step fragment validates that a query to read a subscription succeeds.

12.4.2.2.1. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check that the subscription retrieval from all DSS instance succeeds. It is expected to be not found, but that is validated in the check below.

✅ uss2_dss (2024-12-19T16:17:45.070872Z)

✅ uss1_dss (2024-12-19T16:17:45.073796Z)

✅ uss2_dss (2024-12-19T16:17:45.082698Z)

✅ uss1_dss (2024-12-19T16:17:45.084847Z)

✅ uss1_dss (2024-12-19T16:17:45.093068Z)

✅ uss1_dss (2024-12-19T16:17:45.095186Z)

12.4.2.3. 🛑 Subscription does not exist on all other DSS instances check

The subscription deleted on a DSS instance must have been removed from all other DSS instances.

If the subscription still exists on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,5a.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:45.070919Z)

✅ uss1_dss, uss1_dss (2024-12-19T16:17:45.073845Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:45.082742Z)

✅ uss1_dss, uss1_dss (2024-12-19T16:17:45.084890Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:45.093111Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:45.095229Z)

12.5. OIR creation and modification does not trigger relevant notifications after subscription deletion test case

This test case verifies that after a subscription is deleted, newly created or modified OIRs will not receive the relevant subscriptions to notify from the DSS instance, regardless of which instance was used to create or modify the entity.

12.5.1. Create an OIR at every DSS in sequence test step

This test step will create an operational intent reference at every DSS, in sequence, each time verifying that the DSS does not require notification for any previously deleted 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)

12.5.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

12.5.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds.

✅ uss1_dss (2024-12-19T16:17:45.112859Z)

✅ uss1_dss (2024-12-19T16:17:45.131595Z)

✅ uss2_dss (2024-12-19T16:17:45.150641Z)

12.5.1.2. 🛑 DSS response does not contain the deleted subscriptions 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 does not include subscriptions deleted earlier.

If the DSS includes a deleted subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,5b.

✅ uss1_dss (2024-12-19T16:17:45.112919Z)

✅ uss1_dss (2024-12-19T16:17:45.131660Z)

✅ uss2_dss (2024-12-19T16:17:45.150718Z)

12.5.2. Modify an OIR at every DSS in sequence test step

This test step will modify an operational intent reference at every DSS, in sequence, each time verifying that the DSS does not require notification for any previously deleted subscription that intersects with the modified 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)

12.5.2.1. Modify OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

12.5.2.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check that the OIR modification query succeeds.

✅ uss1_dss (2024-12-19T16:17:45.170038Z)

✅ uss1_dss (2024-12-19T16:17:45.187910Z)

✅ uss2_dss (2024-12-19T16:17:45.206634Z)

12.5.2.2. 🛑 DSS response does not contain the deleted subscriptions check

The response from a DSS to a valid OIR modification request is expected to contain any relevant subscription for the OIR's extents. This does not include subscriptions deleted earlier.

If the DSS includes a deleted subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,5c.

✅ uss1_dss (2024-12-19T16:17:45.170111Z)

✅ uss1_dss (2024-12-19T16:17:45.187971Z)

✅ uss2_dss (2024-12-19T16:17:45.206694Z)

12.6. Cleanup

12.6.1. Clean any straggling OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

12.6.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:45.263350Z)

✅ uss1_dss (2024-12-19T16:17:45.265517Z)

✅ uss1_dss (2024-12-19T16:17:45.268053Z)

12.6.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:45.261026Z)

12.6.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:45.229665Z)

✅ uss1_dss (2024-12-19T16:17:45.245201Z)

✅ uss1_dss (2024-12-19T16:17:45.260989Z)

12.6.2. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

12.6.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:45.271014Z)

12.6.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:45.273193Z)

✅ uss1_dss (2024-12-19T16:17:45.275357Z)

✅ uss1_dss (2024-12-19T16:17:45.277498Z)

12.6.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

13. [S10] ASTM SCD DSS: Subscription and entity interaction

13.1. Overview

Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly.

13.2. Resources

13.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

13.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

13.2.3. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

13.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

13.2.5. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

13.3. Setup test case

13.3.1. Ensure clean workspace test step

13.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

13.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:45.284759Z)

✅ uss1_dss (2024-12-19T16:17:45.287444Z)

✅ uss1_dss (2024-12-19T16:17:45.289669Z)

13.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:45.282600Z)

13.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

13.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

13.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:45.292405Z)

13.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:45.294579Z)

✅ uss1_dss (2024-12-19T16:17:45.296670Z)

✅ uss1_dss (2024-12-19T16:17:45.298837Z)

✅ uss1_dss (2024-12-19T16:17:45.300893Z)

13.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This step ensures that no subscriptions and OIRs with the known test IDs exists in the DSS deployment.

This check was not applicable to this test run and is therefore not statused.

13.4. OIR creation and modification trigger relevant notifications test case

This test case verifies that newly created or modified OIRs will receive the relevant subscriptions to notify from the DSS instance, regardless of which instance was used to create the entity.

13.4.1. Create background subscription test step

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

13.4.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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.

Sets up the 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.

✅ uss1_dss (2024-12-19T16:17:45.309188Z)

13.4.2. 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)

13.4.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

13.4.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds

✅ uss1_dss (2024-12-19T16:17:45.327405Z)

✅ uss1_dss (2024-12-19T16:17:45.346373Z)

✅ uss2_dss (2024-12-19T16:17:45.365838Z)

13.4.2.2. 🛑 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 the subscription 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.

✅ uss1_dss (2024-12-19T16:17:45.327481Z)

✅ uss1_dss (2024-12-19T16:17:45.346438Z)

✅ uss2_dss (2024-12-19T16:17:45.365901Z)

13.4.2.3. 🛑 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.

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.327533Z)

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.346479Z)

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.365940Z)

13.4.3. Modify an OIR at every DSS in sequence test step

This test step will modify the previously created 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 modified 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)

13.4.3.1. Modify OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

13.4.3.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check that the OIR modification query succeeds

✅ uss1_dss (2024-12-19T16:17:45.384641Z)

✅ uss1_dss (2024-12-19T16:17:45.404298Z)

✅ uss2_dss (2024-12-19T16:17:45.423588Z)

13.4.3.2. 🛑 DSS response contains the expected background subscription check

The response from a DSS to a valid OIR modification request is expected to contain any relevant subscription for the OIR's extents. This includes the subscription created earlier, as it is designed to intersect with the OIRs being modified.

If the DSS omits the intersecting subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,4c.

✅ uss1_dss (2024-12-19T16:17:45.384726Z)

✅ uss1_dss (2024-12-19T16:17:45.404388Z)

✅ uss2_dss (2024-12-19T16:17:45.423651Z)

13.4.3.3. 🛑 DSS returns the implicit subscriptions from intersecting OIRs check

The response from a DSS to a valid OIR modification 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 over time range A 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 modified, are in violation of astm.f3548.v21.DSS0210,A2-7-2,4c.

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.384776Z)

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.404436Z)

✅ uss1_dss, uss1_dss, uss2_dss (2024-12-19T16:17:45.423693Z)

13.5. Subscription creation returns relevant OIRs test case

This test case checks that, when a newly created subscription intersects with an existing OIR and that the subscription is intended for operational intent references, the DSS includes the relevant OIRs in the response to the creation.

13.5.1. Create a subscription at every DSS in sequence test step

This test step will create a new subscription at every DSS, in sequence, each time verifying that the DSS returns any OIRs that intersect with the newly created subscription.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

13.5.1.1. Create subscription on a DSS instance

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

13.5.1.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 that the subscription creation succeeds.

✅ uss1_dss (2024-12-19T16:17:45.435018Z)

13.5.1.2. 🛑 DSS response contains the expected OIRs check

The response from a DSS to a valid subscription creation request is expected to contain any relevant OIRs for the subscription's extents if the subscription had the notify_for_op_intents flag set to true.

If the DSS omits the intersecting OIR, it fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4a.

✅ uss1_dss (2024-12-19T16:17:45.435082Z)

13.5.1.3. Get subscription query from all other DSS instances succeeds

This test step fragment validates that a query to read a subscription succeeds.

13.5.1.3.1. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:45.439638Z)

✅ uss2_dss (2024-12-19T16:17:45.443690Z)

13.5.1.4. 🛑 Subscription may be retrieved from all other DSS instances check

The subscription created on a DSS instance must be retrievable from all other DSS instances.

If the subscription does not exist on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4a.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:45.439690Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:45.443741Z)

13.6. Expiration of subscriptions removes them test case

This test case validates that expired subscriptions (created explicitly) are removed from all DSS instances. To validate this requirement, the subscriptions that were previously created at each DSS instance are modified so that they expire shortly after the modification. Then it is checked that all the associated subscriptions were removed from all the DSS instances by searching for them in their planning area. Do note that they are not queried directly, as it is deemed acceptable for expired subscription that were not explicitly deleted to still be retrievable.

13.6.1. Expire explicit subscriptions at every DSS in sequence test step

This test step will modify explicit subscriptions that were previously created at each DSS instance so that they expire shortly after the modification.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

13.6.1.1. Modify subscription on a DSS instance so that it expires soon

This test step fragment validates that a query to update a subscription succeeds.

13.6.1.1.1. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check that the subscription modifications succeed and wait for them to expire.

✅ uss1_dss (2024-12-19T16:17:45.492937Z)

✅ uss1_dss (2024-12-19T16:17:45.502233Z)

✅ uss2_dss (2024-12-19T16:17:45.511500Z)

13.6.1.2. Search for subscriptions from all other DSS instances succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

13.6.1.2.1. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check that query succeeds.

✅ uss1_dss (2024-12-19T16:17:52.524963Z)

✅ uss1_dss (2024-12-19T16:17:52.546197Z)

✅ uss1_dss (2024-12-19T16:17:52.565542Z)

✅ uss1_dss (2024-12-19T16:17:52.584573Z)

✅ uss2_dss (2024-12-19T16:17:52.606505Z)

✅ uss2_dss (2024-12-19T16:17:52.624418Z)

13.6.1.3. 🛑 Subscription does not exist on all other DSS instances check

The explicit subscription expired on a DSS instance must have been removed from all other DSS instances.

If the subscription still exists on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4d.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:52.532375Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:52.554359Z)

✅ uss1_dss, uss1_dss (2024-12-19T16:17:52.571330Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:52.593593Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:52.612111Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:52.630530Z)

13.7. Cleanup

13.7.1. Clean any straggling OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

13.7.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.703048Z)

✅ uss1_dss (2024-12-19T16:17:52.706356Z)

✅ uss1_dss (2024-12-19T16:17:52.709011Z)

13.7.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:52.699877Z)

13.7.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.657110Z)

✅ uss1_dss (2024-12-19T16:17:52.680278Z)

✅ uss1_dss (2024-12-19T16:17:52.699836Z)

13.7.2. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

13.7.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:52.713152Z)

13.7.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:52.719728Z)

✅ uss1_dss (2024-12-19T16:17:52.732309Z)

✅ uss1_dss (2024-12-19T16:17:52.736144Z)

✅ uss1_dss (2024-12-19T16:17:52.748911Z)

✅ uss1_dss (2024-12-19T16:17:52.761948Z)

13.7.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:52.729476Z)

✅ uss1_dss (2024-12-19T16:17:52.744529Z)

✅ uss1_dss (2024-12-19T16:17:52.757439Z)

✅ uss1_dss (2024-12-19T16:17:52.770749Z)

14. [S11] ASTM SCD DSS: Operational Intent Reference Key Validation

14.1. Overview

Verifies that a DSS requires from a client creating or updating operational intent references that they provide all OVNs for all currently relevant entities.

14.2. Resources

14.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

14.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

14.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

14.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

14.3. Setup test case

14.3.1. Ensure clean workspace test step

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

14.3.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.782726Z)

✅ uss1_dss (2024-12-19T16:17:52.785261Z)

✅ uss1_dss (2024-12-19T16:17:52.787649Z)

14.3.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:52.779010Z)

14.3.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This step ensures that no operational intent references with the known test IDs exists in the DSS.

This check was not applicable to this test run and is therefore not statused.

14.4. Key validation on creation test case

This test case will create multiple operational intent references and verify that the key field of the parameters to create or update an operational intent reference is properly validated.

That is: the DSS should require that the client provides the OVNs for each entity that is in the vicinity, both geographically and temporally, of the client's operational intent reference.

14.4.1. Create first OIR test step

This step creates one operational intent references. As no other operational intent reference is present, the key field may remain empty.

14.4.1.1. 🛑 First operational intent reference in area creation query succeeds check

With no potentially conflicting entity present, the DSS is expected to allow the creation of an operational intent without the client specifying any OVN in the key field.

If the DSS rejects a well-formed request to create the operational intent reference, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.807097Z)

14.4.2. Create second non-overlapping OIR test step

This step creates a second operational intent references that does not overlap in time with the first, and should therefore not require any entry in the key field.

14.4.2.1. 🛑 Second, non-overlapping operational intent reference creation succeeds check

With a single existing OIR in the area that is not overlapping in time, the DSS is expected to allow the creation of an operational intent without the client specifying any OVN in the key field.

If the DSS rejects a well-formed request to create the operational intent reference, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.824759Z)

14.4.3. Attempt OIR creation overlapping with first OIR test step

This test step will attempt to create an operational intent reference that intersects with the first of the previously created OIR, and expect the DSS to require its OVN to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

14.4.3.1. Non de-conflicted request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

14.4.3.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss1_dss (2024-12-19T16:17:52.837891Z)

14.4.3.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:52.851267Z)

14.4.3.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVN of the already existing and overlapping OIR fails.

✅ uss1_dss (2024-12-19T16:17:52.852586Z)

14.4.4. Attempt OIR creation overlapping with second OIR test step

This test step will attempt to create an operational intent reference that intersects with the second of the previously created OIR, and expect the DSS to require its OVN to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

14.4.4.1. Non de-conflicted request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

14.4.4.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss1_dss (2024-12-19T16:17:52.864935Z)

14.4.4.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:52.876838Z)

14.4.4.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVN of the already existing and overlapping OIR fails.

✅ uss1_dss (2024-12-19T16:17:52.877854Z)

14.4.5. Attempt OIR creation overlapping with both OIRs test step

This test step will attempt to create an operational intent reference that intersects with both of the previously created OIRs, and expect the DSS to require their OVNs to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

14.4.5.1. Non de-conflicted creation request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

14.4.5.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss1_dss (2024-12-19T16:17:52.891183Z)

14.4.5.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:52.904239Z)

14.4.5.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVNs of the already existing and overlapping OIRs fails.

✅ uss1_dss (2024-12-19T16:17:52.905953Z)

14.4.6. Attempt valid OIR creation overlapping with both OIRs test step

This test step will attempt to create an operational intent reference that intersects with both of the previously created OIRs, while providing the required OVNs in the key field.

After this test step succeeds, three OIRs are expected to exist in the DSS, with one intersecting with the two others.

14.4.6.1. 🛑 Create operational intent reference with proper OVNs succeeds check

If the DSS prevents the creation of an operational intent reference that is providing all required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.932515Z)

14.5. Key validation on mutation test case

This test case will update multiple operational intent references and verify that the key field of the parameters to create or update an operational intent reference is properly validated.

That is: the DSS should require that the client provides the OVNs for each entity that is in the vicinity, both geographically and temporally, of the client's operational intent reference.

14.5.1. Attempt mutation with both OVNs missing test step

This test step will attempt to mutate the third previously created operational intent reference so that it keeps overlapping with the others, while omitting their OVNs in the key field.

The expectation is that the DSS will require the two missing OVNs.

14.5.1.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

14.5.1.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss1_dss (2024-12-19T16:17:52.962451Z)

14.5.1.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:52.976632Z)

14.5.1.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:52.978440Z)

14.5.2. Attempt mutation with first OVN missing test step

This test step will attempt to mutate the third previously created operational intent reference so that it keeps overlapping with the others, while omitting the first OVN in the key field.

The expectation is that the DSS will require the missing OVN.

14.5.2.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

14.5.2.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss1_dss (2024-12-19T16:17:52.993007Z)

14.5.2.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:53.007972Z)

14.5.2.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.008910Z)

14.5.3. Attempt mutation to overlap with the first OIR test step

This test step will attempt to mutate the third previously created operational intent reference so that it overlaps with the first one, while omitting the first OVN in the key field.

The expectation is that the DSS will require the missing OVN.

14.5.3.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

14.5.3.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss1_dss (2024-12-19T16:17:53.022402Z)

14.5.3.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss1_dss (2024-12-19T16:17:53.037024Z)

14.5.3.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.038409Z)

14.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

14.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.099625Z)

✅ uss1_dss (2024-12-19T16:17:53.102722Z)

✅ uss1_dss (2024-12-19T16:17:53.105489Z)

14.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:53.095012Z)

14.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.062156Z)

✅ uss1_dss (2024-12-19T16:17:53.077703Z)

✅ uss1_dss (2024-12-19T16:17:53.094959Z)

15. [S12] ASTM SCD DSS: Operational Intent Reference Synchronization

15.1. Overview

Verifies that all CRUD operations on operational intent references performed on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

15.2. Resources

15.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

15.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

15.2.3. id_generator

IDGeneratorResource providing the operational intent reference ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

15.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent reference will be created.

✅ Provided by planning_area in top-level resource pool.

15.2.5. client_identity

ClientIdentityResource to be used for this scenario.

✅ Provided by utm_client_identity in top-level resource pool.

15.3. Setup test case

15.3.1. Ensure clean workspace test step

15.3.1.1. Clean any existing operational intents references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

15.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.116092Z)

15.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:53.113452Z)

15.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

15.4. OIR synchronization test case

This test case creates an operational intent reference on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

15.4.1. Create OIR validation test step

15.4.1.1. Create OIR

This test step fragment validates that:

15.4.1.1.1. Query Success

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

15.4.1.1.2. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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

✅ uss1_dss (2024-12-19T16:17:53.136583Z)

15.4.1.1.3. Response Format

This test step fragment validates that an operational intent references creation returns a body in the correct format.

15.4.1.1.4. 🛑 Create operational intent reference response format conforms to spec check

The response to a successful operational intent reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

✅ uss1_dss (2024-12-19T16:17:53.153565Z)

15.4.1.1.5. 🛑 Create operational intent reference response content is correct check

A successful operational intent reference creation query is expected to return a body, the content of which reflects the created operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Verify that an operational intent reference can be created on the primary DSS.

✅ uss1_dss (2024-12-19T16:17:53.155543Z)

15.4.1.2. OIR Content is correct

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

15.4.1.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.154935Z)

15.4.1.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.155019Z)

15.4.1.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.155091Z)

15.4.1.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

15.4.1.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.155156Z)

15.4.1.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.155227Z)

15.4.1.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.155298Z)

15.4.1.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.155445Z)

15.4.1.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.155377Z)

15.4.1.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.155499Z)

15.4.1.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS under test is properly formatted and contains the expected content.

This check was not applicable to this test run and is therefore not statused.

15.4.2. Retrieve newly created OIR test step

Retrieve and validate synchronization of the created operational intent at every DSS provided in dss_instances.

15.4.2.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

15.4.2.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.160993Z)

✅ uss2_dss (2024-12-19T16:17:53.168104Z)

15.4.2.2. Newly created OIR can be consistently retrieved from all DSS instances check

If the operational intent retrieved from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1d, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:53.162813Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.169642Z)

15.4.2.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

15.4.2.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.161096Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.168195Z)

15.4.2.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

15.4.2.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.161193Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.168289Z)

15.4.2.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.161272Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.168392Z)

15.4.2.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.161365Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.168461Z)

15.4.2.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.162705Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.169575Z)

15.4.2.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the created operational intent reference. Confirm that the operational intent reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:53.162775Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.169620Z)

15.4.3. Search for newly created OIR test step

Search for and validate synchronization of the created operational intent at every DSS provided in dss_instances.

15.4.3.1. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

15.4.3.1.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.174580Z)

✅ uss2_dss (2024-12-19T16:17:53.181361Z)

15.4.3.2. Newly created OIR can be consistently searched for from all DSS instances check

If the operational intent searched from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1c, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss (2024-12-19T16:17:53.175559Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.183123Z)

15.4.3.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

15.4.3.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

15.4.3.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.174632Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.181457Z)

15.4.3.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.174679Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.181548Z)

15.4.3.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.174713Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.181622Z)

15.4.3.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.174745Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.181691Z)

15.4.3.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.175480Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.183005Z)

15.4.3.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the operational intent in relevant search results. Confirm that the operational intent reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:53.175534Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.183076Z)

15.4.4. Mutate OIR test step

This test step mutates the previously created operational intent reference to verify that the DSS reacts properly: notably, it checks that the operational intent reference version is updated, including for changes that are not directly visible, such as changing the operational intent reference's footprint.

15.4.4.1. Update OIR

This test step fragment validates that operational intent references can be updated.

15.4.4.1.1. Update query succeeds

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

15.4.4.1.2. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.203774Z)

15.4.4.1.3. Response Format

This test step fragment validates that updates to operational intent references return a body in the correct format.

15.4.4.1.4. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

✅ uss1_dss (2024-12-19T16:17:53.219222Z)

15.4.4.1.5. 🛑 Mutate operational intent reference response content is correct check

A successful operational intent reference mutation query is expected to return a well-defined body, the content of which reflects the updated operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that the operational intent reference can be mutated.

✅ uss1_dss (2024-12-19T16:17:53.221701Z)

15.4.4.2. Validate OIR

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

15.4.4.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.220902Z)

15.4.4.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.220987Z)

15.4.4.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221061Z)

15.4.4.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

15.4.4.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.221136Z)

15.4.4.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221205Z)

15.4.4.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.221270Z)

15.4.4.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221440Z)

15.4.4.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221360Z)

15.4.4.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221516Z)

15.4.4.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

15.4.4.3. OIR Versions are correct

This test step fragment attempts to validate a single operational intent reference returned by the DSS, usually after it has been mutated.

The code for these checks lives in the oir_validator.py class.

15.4.4.3.1. ⚠️ Mutated operational intent reference version is updated check

Following a mutation, the DSS needs to update the operational intent reference version, otherwise it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.221663Z)

15.4.4.3.2. ⚠️ Mutated operational intent reference OVN is updated check

Following a mutation, the DSS needs to update the operational intent reference OVN, otherwise it is in violation of astm.f3548.v21.DSS0005,1.

Verify that the operational intent reference's version fields have been updated.

✅ uss1_dss (2024-12-19T16:17:53.221591Z)

15.4.5. Retrieve updated OIR test step

Retrieve and validate synchronization of the updated operational intent at every DSS provided in dss_instances.

15.4.5.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

15.4.5.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.226173Z)

✅ uss2_dss (2024-12-19T16:17:53.231133Z)

15.4.5.2. Updated OIR can be consistently retrieved from all DSS instances check

If the operational intent retrieved from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b and astm.f3548.v21.DSS0210,A2-7-2,1d.

✅ uss1_dss (2024-12-19T16:17:53.227513Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.232147Z)

15.4.5.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

15.4.5.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.226231Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.231186Z)

15.4.5.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

15.4.5.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.226306Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.231232Z)

15.4.5.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.226375Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.231268Z)

15.4.5.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.226425Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.231299Z)

15.4.5.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.227426Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.232067Z)

15.4.5.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the updated operational intent reference. Confirm that the operational intent reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:53.227488Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.232124Z)

15.4.6. Search for updated OIR test step

Search for and validate synchronization of the updated operational intent at every DSS provided in dss_instances.

15.4.6.1. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

15.4.6.1.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.236541Z)

✅ uss2_dss (2024-12-19T16:17:53.242554Z)

15.4.6.2. Updated OIR can be consistently searched for from all DSS instances check

If the operational intent searched from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b and astm.f3548.v21.DSS0210,A2-7-2,1c.

✅ uss1_dss (2024-12-19T16:17:53.237726Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.243546Z)

15.4.6.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

15.4.6.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

15.4.6.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.236591Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.242610Z)

15.4.6.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.236636Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.242656Z)

15.4.6.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.236670Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.242691Z)

15.4.6.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.236701Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.242722Z)

15.4.6.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:53.237615Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.243486Z)

15.4.6.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the operational intent in relevant search results. Confirm that the operational intent reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:53.237679Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.243525Z)

15.4.7. Delete OIR test step

Attempt to delete the operational intent reference in various ways and ensure that the DSS reacts properly.

This also checks that the operational intent reference data returned by a successful deletion is correct.

15.4.7.1. Delete OIR

This test step fragment validates that operational intent references can be deleted

15.4.7.1.1. 🛑 Delete operational intent reference query succeeds check

A query to delete an operational intent reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.258564Z)

15.4.7.1.2. 🛑 Delete operational intent reference response format conforms to spec check

The response to a successful operational intent reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.274848Z)

15.4.7.1.3. 🛑 Delete operational intent reference response content is correct check

A successful operational intent reference deletion query is expected to return a body, the content of which reflects the operational intent reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that an operational intent reference can be deleted.

✅ uss1_dss (2024-12-19T16:17:53.277272Z)

15.4.7.2. Validate OIR

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

15.4.7.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.276505Z)

15.4.7.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.276587Z)

15.4.7.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.276654Z)

15.4.7.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

15.4.7.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.276719Z)

15.4.7.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.276793Z)

15.4.7.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss1_dss (2024-12-19T16:17:53.276856Z)

15.4.7.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.277002Z)

15.4.7.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.276928Z)

15.4.7.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.277077Z)

15.4.7.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS via the deletion is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

15.4.7.3. OIR Versions are correct

This test step fragment attempts to validate a single operational intent reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the oir_validator.py class.

15.4.7.3.1. ⚠️ Non-mutated operational intent reference keeps the same version check

If the version of the operational intent reference is updated without there having been any mutation of the operational intent reference, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.277226Z)

15.4.7.3.2. ⚠️ Non-mutated operational intent reference keeps the same OVN check

If the OVN of the operational intent reference is updated without there having been any mutation of the operational intent reference, the DSS is in violation of astm.f3548.v21.DSS0005,1.

Verify that the operational intent reference's version fields are as expected.

✅ uss1_dss (2024-12-19T16:17:53.277157Z)

15.4.8. Query deleted OIR test step

Attempt to query and search for the deleted operational intent reference in various ways

15.4.8.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

15.4.8.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.280711Z)

✅ uss2_dss (2024-12-19T16:17:53.286900Z)

15.4.8.2. 🛑 Deleted OIR cannot be retrieved from all DSS instances check

If a DSS returns an operational intent reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the operational intent reference is in violation of astm.f3548.v21.DSS0210,2a and astm.f3548.v21.DSS0210,A2-7-2,3b.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:53.280772Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.286945Z)

15.4.8.3. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

15.4.8.3.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:17:53.284571Z)

✅ uss2_dss (2024-12-19T16:17:53.290473Z)

15.4.8.4. 🛑 Deleted OIR cannot be searched for from all DSS instances check

If a DSS returns an operational intent reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the operational intent reference is in violation of astm.f3548.v21.DSS0210,2a and astm.f3548.v21.DSS0210,A2-7-2,3a.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:53.284617Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:53.290520Z)

15.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

15.5.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.297044Z)

15.5.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:53.294738Z)

15.5.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1. ∅ This check was not applicable to this test run and is therefore not statused.

16. [S13] ASTM SCD DSS: Interfaces authentication

16.1. Overview

Ensures that a DSS properly authenticates requests to all its endpoints.

Note that this does not cover authorization.

16.2. Resources

16.2.1. dss

DSSInstanceResource to be tested in this scenario.

Note that to benefit from the maximum coverage, the DSS' AuthAdapterResource must be able to obtain credentials for multiple scopes (so that a wrong scope may be used in place of the correct one) as well as an empty scope (that is, provide credentials where the scope is an empty string).

This scenario will check for the scope's availability and transparently ignore checks that can't be conducted.

At least one of the following scopes needs to be available for this scenario to at least partially run:

In order to verify each endpoint group, all scopes above must be available.

Optional scopes that will allow the scenario to provide additional coverage:

✅ Provided by instance 1 in dss_instances in top-level resource pool.

16.2.2. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

16.2.3. planning_area

PlanningAreaResource describes the 3D volume in which entities will be created.

✅ Provided by planning_area in top-level resource pool.

16.3. Setup test case

To perform this scenario, the area must be clear of test entities with the IDs we intend to use.

16.3.1. Ensure clean workspace test step

16.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

16.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.301431Z)

16.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

16.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

16.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

16.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:53.319184Z)

16.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:53.303999Z)

16.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

16.3.1.3. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

16.3.1.3.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:53.307511Z)

16.3.1.3.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

This check was not applicable to this test run and is therefore not statused.

16.3.1.3.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This step ensures that the availability for the test identifier is set to Unknown.

This check was not applicable to this test run and is therefore not statused.

16.3.1.4. Availability can be requested

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

16.3.1.4.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:53.310985Z)

16.3.1.5. Availability can be set

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

16.3.1.5.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

16.4. Endpoint authorization test case

This test case ensures that the DSS properly authenticates requests to all its endpoints.

16.4.1. Subscription endpoints authentication test step

16.4.1.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.336102Z)

✅ uss1_dss (2024-12-19T16:17:53.345901Z)

✅ uss1_dss (2024-12-19T16:17:53.410482Z)

✅ uss1_dss (2024-12-19T16:17:53.425639Z)

✅ uss1_dss (2024-12-19T16:17:53.442027Z)

✅ uss1_dss (2024-12-19T16:17:53.453886Z)

✅ uss1_dss (2024-12-19T16:17:53.471517Z)

✅ uss1_dss (2024-12-19T16:17:53.481288Z)

✅ uss1_dss (2024-12-19T16:17:53.506445Z)

✅ uss1_dss (2024-12-19T16:17:53.521673Z)

✅ uss1_dss (2024-12-19T16:17:53.534649Z)

✅ uss1_dss (2024-12-19T16:17:53.548021Z)

✅ uss1_dss (2024-12-19T16:17:53.573261Z)

✅ uss1_dss (2024-12-19T16:17:53.591238Z)

✅ uss1_dss (2024-12-19T16:17:53.609928Z)

✅ uss1_dss (2024-12-19T16:17:53.629246Z)

✅ uss1_dss (2024-12-19T16:17:53.655910Z)

✅ uss1_dss (2024-12-19T16:17:53.673407Z)

✅ uss1_dss (2024-12-19T16:17:53.692096Z)

✅ uss1_dss (2024-12-19T16:17:53.711913Z)

✅ uss1_dss (2024-12-19T16:17:53.736371Z)

✅ uss1_dss (2024-12-19T16:17:53.747880Z)

✅ uss1_dss (2024-12-19T16:17:53.758688Z)

✅ uss1_dss (2024-12-19T16:17:53.768744Z)

16.4.1.2. 🛑 Create subscription with missing credentials check

If the DSS under test allows the creation of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.336157Z)

16.4.1.3. 🛑 Create subscription with invalid credentials check

If the DSS under test allows the creation of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.410550Z)

16.4.1.4. 🛑 Create subscription with missing scope check

If the DSS under test allows the creation of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.442110Z)

16.4.1.5. 🛑 Create subscription with incorrect scope check

If the DSS under test allows the creation of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.471595Z)

16.4.1.6. 🛑 Create subscription with valid credentials check

If the DSS does not allow the creation of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.488919Z)

16.4.1.7. 🛑 Get subscription with missing credentials check

If the DSS under test allows the fetching of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.491662Z)

16.4.1.8. 🛑 Get subscription with invalid credentials check

If the DSS under test allows the fetching of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.508739Z)

16.4.1.9. 🛑 Get subscription with missing scope check

If the DSS under test allows the fetching of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.523742Z)

16.4.1.10. 🛑 Get subscription with incorrect scope check

If the DSS under test allows the fetching of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.536715Z)

16.4.1.11. 🛑 Get subscription with valid credentials check

If the DSS does not allow fetching a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.552757Z)

16.4.1.12. 🛑 Mutate subscription with missing credentials check

If the DSS under test allows the mutation of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.560771Z)

16.4.1.13. 🛑 Mutate subscription with invalid credentials check

If the DSS under test allows the mutation of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.581217Z)

16.4.1.14. 🛑 Mutate subscription with missing scope check

If the DSS under test allows the mutation of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.599243Z)

16.4.1.15. 🛑 Mutate subscription with incorrect scope check

If the DSS under test allows the mutation of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.617225Z)

16.4.1.16. 🛑 Mutate subscription with valid credentials check

If the DSS does not allow the mutation of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.637294Z)

16.4.1.17. 🛑 Delete subscription with missing credentials check

If the DSS under test allows the deletion of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.644258Z)

16.4.1.18. 🛑 Delete subscription with invalid credentials check

If the DSS under test allows the deletion of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.662454Z)

16.4.1.19. 🛑 Delete subscription with missing scope check

If the DSS under test allows the deletion of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.678940Z)

16.4.1.20. 🛑 Delete subscription with incorrect scope check

If the DSS under test allows the deletion of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.698414Z)

16.4.1.21. 🛑 Delete subscription with valid credentials check

If the DSS does not allow the deletion of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.720302Z)

✅ uss1_dss (2024-12-19T16:17:53.723159Z)

16.4.1.22. 🛑 Search subscriptions with missing credentials check

If the DSS under test allows searching for subscriptions without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.725084Z)

16.4.1.23. 🛑 Search subscriptions with invalid credentials check

If the DSS under test allows searching for subscriptions with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.739038Z)

16.4.1.24. 🛑 Search subscriptions with missing scope check

If the DSS under test allows searching for subscriptions with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.749556Z)

16.4.1.25. 🛑 Search subscriptions with incorrect scope check

If the DSS under test allows searching for subscriptions with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.760461Z)

16.4.1.26. 🛑 Search subscriptions with valid credentials check

If the DSS does not allow searching for subscriptions when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:53.772530Z)

16.4.2. Operational intents endpoints authentication test step

16.4.2.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.785776Z)

✅ uss1_dss (2024-12-19T16:17:53.797670Z)

✅ uss1_dss (2024-12-19T16:17:53.809630Z)

✅ uss1_dss (2024-12-19T16:17:53.821482Z)

✅ uss1_dss (2024-12-19T16:17:53.842718Z)

✅ uss1_dss (2024-12-19T16:17:53.852281Z)

✅ uss1_dss (2024-12-19T16:17:53.861711Z)

✅ uss1_dss (2024-12-19T16:17:53.871290Z)

✅ uss1_dss (2024-12-19T16:17:53.889155Z)

✅ uss1_dss (2024-12-19T16:17:53.902550Z)

✅ uss1_dss (2024-12-19T16:17:53.915514Z)

✅ uss1_dss (2024-12-19T16:17:53.929577Z)

✅ uss1_dss (2024-12-19T16:17:53.952844Z)

✅ uss1_dss (2024-12-19T16:17:53.962819Z)

✅ uss1_dss (2024-12-19T16:17:53.972473Z)

✅ uss1_dss (2024-12-19T16:17:53.982212Z)

✅ uss1_dss (2024-12-19T16:17:54.001101Z)

✅ uss1_dss (2024-12-19T16:17:54.011006Z)

✅ uss1_dss (2024-12-19T16:17:54.022029Z)

✅ uss1_dss (2024-12-19T16:17:54.031668Z)

16.4.2.2. 🛑 Create operational intent reference with missing credentials check

If the DSS under test allows the creation of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.777169Z)

16.4.2.3. 🛑 Create operational intent reference with invalid credentials check

If the DSS under test allows the creation of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.789507Z)

16.4.2.4. 🛑 Create operational intent reference with missing scope check

If the DSS under test allows the creation of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.801371Z)

16.4.2.5. 🛑 Create operational intent reference with incorrect scope check

If the DSS under test allows the creation of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.813438Z)

16.4.2.6. 🛑 Create operational intent reference with valid credentials check

If the DSS does not allow the creation of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.831377Z)

16.4.2.7. Create response format

This test step fragment validates that an operational intent references creation returns a body in the correct format.

16.4.2.7.1. 🛑 Create operational intent reference response format conforms to spec check

The response to a successful operational intent reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format of a creation request.

✅ uss1_dss (2024-12-19T16:17:53.832210Z)

16.4.2.8. 🛑 Get operational intent reference with missing credentials check

If the DSS under test allows the fetching of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.833751Z)

16.4.2.9. 🛑 Get operational intent reference with invalid credentials check

If the DSS under test allows the fetching of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.844097Z)

16.4.2.10. 🛑 Get operational intent reference with missing scope check

If the DSS under test allows the fetching of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.853562Z)

16.4.2.11. 🛑 Get operational intent reference with incorrect scope check

If the DSS under test allows the fetching of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.863024Z)

16.4.2.12. 🛑 Get operational intent reference with valid credentials check

If the DSS does not allow fetching an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.874585Z)

16.4.2.13. 🛑 Mutate operational intent reference with missing credentials check

If the DSS under test allows the mutation of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.879633Z)

16.4.2.14. 🛑 Mutate operational intent reference with invalid credentials check

If the DSS under test allows the mutation of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.894416Z)

16.4.2.15. 🛑 Mutate operational intent reference with missing scope check

If the DSS under test allows the mutation of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.907483Z)

16.4.2.16. 🛑 Mutate operational intent reference with incorrect scope check

If the DSS under test allows the mutation of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.921122Z)

16.4.2.17. 🛑 Mutate operational intent reference with valid credentials check

If the DSS does not allow the mutation of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.941529Z)

16.4.2.18. Mutate response format

This test step fragment validates that updates to operational intent references return a body in the correct format.

16.4.2.18.1. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format of a mutation.

✅ uss1_dss (2024-12-19T16:17:53.942346Z)

16.4.2.19. 🛑 Delete operational intent reference with missing credentials check

If the DSS under test allows the deletion of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.943897Z)

16.4.2.20. 🛑 Delete operational intent reference with invalid credentials check

If the DSS under test allows the deletion of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.954452Z)

16.4.2.21. 🛑 Delete operational intent reference with missing scope check

If the DSS under test allows the deletion of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.964161Z)

16.4.2.22. 🛑 Delete operational intent reference with incorrect scope check

If the DSS under test allows the deletion of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.974094Z)

16.4.2.23. 🛑 Delete operational intent reference with valid credentials check

If the DSS does not allow the deletion of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:53.989705Z)

16.4.2.24. 🛑 Search operational intent references with missing credentials check

If the DSS under test allows searching for operational intents without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:53.992094Z)

16.4.2.25. 🛑 Search operational intent references with invalid credentials check

If the DSS under test allows searching for operational intents with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.002766Z)

16.4.2.26. 🛑 Search operational intent references with missing scope check

If the DSS under test allows searching for operational intents with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.012519Z)

16.4.2.27. 🛑 Search operational intent references with incorrect scope check

If the DSS under test allows searching for operational intents with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.023725Z)

16.4.2.28. 🛑 Search operational intent references with valid credentials check

If the DSS does not allow searching for operational intents when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:54.035092Z)

16.4.3. Availability endpoints authentication test step

16.4.3.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.045954Z)

✅ uss1_dss (2024-12-19T16:17:54.056939Z)

✅ uss1_dss (2024-12-19T16:17:54.066234Z)

✅ uss1_dss (2024-12-19T16:17:54.075841Z)

✅ uss1_dss (2024-12-19T16:17:54.090845Z)

✅ uss1_dss (2024-12-19T16:17:54.103704Z)

✅ uss1_dss (2024-12-19T16:17:54.116401Z)

✅ uss1_dss (2024-12-19T16:17:54.129257Z)

16.4.3.2. 🛑 Read availability with missing credentials check

If the DSS under test allows the fetching of a USS's availability without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.037580Z)

16.4.3.3. 🛑 Read availability with invalid credentials check

If the DSS under test allows the fetching of a USS's availability with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.048819Z)

16.4.3.4. 🛑 Read availability with missing scope check

If the DSS under test allows the fetching of a USS's availability with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.058100Z)

16.4.3.5. 🛑 Read availability with incorrect scope check

If the DSS under test allows the fetching of a USS's availability with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.067575Z)

16.4.3.6. 🛑 Read availability with valid credentials check

If the DSS does not allow fetching a USS's availability when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.078533Z)

✅ uss1_dss (2024-12-19T16:17:54.082436Z)

✅ uss1_dss (2024-12-19T16:17:54.094919Z)

✅ uss1_dss (2024-12-19T16:17:54.108036Z)

✅ uss1_dss (2024-12-19T16:17:54.120526Z)

16.4.3.7. 🛑 USS Availability Get response format conforms to spec check

The response to a successful USS Availability request is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21, otherwise, the DSS is failing to implement astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.078757Z)

16.4.3.8. 🛑 Set availability with missing credentials check

If the DSS under test allows the setting of a USS's availability without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.082472Z)

16.4.3.9. 🛑 Set availability with invalid credentials check

If the DSS under test allows the setting of a USS's availability with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.094954Z)

16.4.3.10. 🛑 Set availability with missing scope check

If the DSS under test allows the setting of a USS's availability with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.108070Z)

16.4.3.11. 🛑 Set availability with incorrect scope check

If the DSS under test allows the setting of a USS's availability with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.120563Z)

16.4.3.12. 🛑 Set availability with valid credentials check

If the DSS does not allow setting a USS's availability when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.133980Z)

16.4.3.13. 🛑 USS Availability Set response format conforms to spec check

The response to a successful USS Availability Set request is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21, otherwise, the DSS is failing to implement astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.134304Z)

16.4.4. Constraint reference endpoints authentication test step

16.4.4.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.150525Z)

✅ uss1_dss (2024-12-19T16:17:54.164976Z)

✅ uss1_dss (2024-12-19T16:17:54.176860Z)

✅ uss1_dss (2024-12-19T16:17:54.189185Z)

✅ uss1_dss (2024-12-19T16:17:54.207990Z)

✅ uss1_dss (2024-12-19T16:17:54.218221Z)

✅ uss1_dss (2024-12-19T16:17:54.227938Z)

✅ uss1_dss (2024-12-19T16:17:54.237517Z)

✅ uss1_dss (2024-12-19T16:17:54.254699Z)

✅ uss1_dss (2024-12-19T16:17:54.268537Z)

✅ uss1_dss (2024-12-19T16:17:54.283882Z)

✅ uss1_dss (2024-12-19T16:17:54.298528Z)

✅ uss1_dss (2024-12-19T16:17:54.317050Z)

✅ uss1_dss (2024-12-19T16:17:54.327494Z)

✅ uss1_dss (2024-12-19T16:17:54.337422Z)

✅ uss1_dss (2024-12-19T16:17:54.347643Z)

✅ uss1_dss (2024-12-19T16:17:54.367107Z)

✅ uss1_dss (2024-12-19T16:17:54.377746Z)

✅ uss1_dss (2024-12-19T16:17:54.387962Z)

✅ uss1_dss (2024-12-19T16:17:54.398497Z)

16.4.4.2. 🛑 Create constraint reference with missing credentials check

If the DSS under test allows the creation of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.140642Z)

16.4.4.3. 🛑 Create constraint reference with invalid credentials check

If the DSS under test allows the creation of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.156563Z)

16.4.4.4. 🛑 Create constraint reference with missing scope check

If the DSS under test allows the creation of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.168680Z)

16.4.4.5. 🛑 Create constraint reference with incorrect scope check

If the DSS under test allows the creation of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.180900Z)

16.4.4.6. 🛑 Create constraint reference with valid credentials check

If the DSS does not allow the creation of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.196408Z)

16.4.4.7. Create response format

This test step fragment validates that a constraint references creation returns a body in the correct format.

16.4.4.7.1. 🛑 Create constraint reference response format conforms to spec check

The response to a successful constraint reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a creation request.

✅ uss1_dss (2024-12-19T16:17:54.197602Z)

16.4.4.8. 🛑 Get constraint reference with missing credentials check

If the DSS under test allows the fetching of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.199210Z)

16.4.4.9. 🛑 Get constraint reference with invalid credentials check

If the DSS under test allows the fetching of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.209645Z)

16.4.4.10. 🛑 Get constraint reference with missing scope check

If the DSS under test allows the fetching of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.219680Z)

16.4.4.11. 🛑 Get constraint reference with incorrect scope check

If the DSS under test allows the fetching of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.229307Z)

16.4.4.12. 🛑 Get constraint reference with valid credentials check

If the DSS does not allow fetching a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.240422Z)

16.4.4.13. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

16.4.4.13.1. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a mutation.

✅ uss1_dss (2024-12-19T16:17:54.241216Z)

16.4.4.14. 🛑 Mutate constraint reference with missing credentials check

If the DSS under test allows the mutation of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.246027Z)

16.4.4.15. 🛑 Mutate constraint reference with invalid credentials check

If the DSS under test allows the mutation of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.260034Z)

16.4.4.16. 🛑 Mutate constraint reference with missing scope check

If the DSS under test allows the mutation of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.273830Z)

16.4.4.17. 🛑 Mutate constraint reference with incorrect scope check

If the DSS under test allows the mutation of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.289639Z)

16.4.4.18. 🛑 Mutate constraint reference with valid credentials check

If the DSS does not allow the mutation of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.305659Z)

16.4.4.19. Mutate response format

This test step fragment validates that updates to constraint references return a body in the correct format.

16.4.4.19.1. 🛑 Mutate constraint reference response format conforms to spec check

The response to a successful constraint reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a mutation.

✅ uss1_dss (2024-12-19T16:17:54.306458Z)

16.4.4.20. 🛑 Delete constraint reference with missing credentials check

If the DSS under test allows the deletion of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.308079Z)

16.4.4.21. 🛑 Delete constraint reference with invalid credentials check

If the DSS under test allows the deletion of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.318794Z)

16.4.4.22. 🛑 Delete constraint reference with missing scope check

If the DSS under test allows the deletion of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.329108Z)

16.4.4.23. 🛑 Delete constraint reference with incorrect scope check

If the DSS under test allows the deletion of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.339211Z)

16.4.4.24. 🛑 Delete constraint reference with valid credentials check

If the DSS does not allow the deletion of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.354725Z)

16.4.4.25. Delete response format

This test step fragment validates that a constraint references deletion returns a body in the correct format.

16.4.4.25.1. 🛑 Delete constraint reference response format conforms to spec check

The response to a successful constraint reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a deletion.

✅ uss1_dss (2024-12-19T16:17:54.355542Z)

16.4.4.26. 🛑 Search constraint references with missing credentials check

If the DSS under test allows searching for constraint references without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.358088Z)

16.4.4.27. 🛑 Search constraint references with invalid credentials check

If the DSS under test allows searching for constraint references with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.369107Z)

16.4.4.28. 🛑 Search constraint references with missing scope check

If the DSS under test allows searching for constraint references with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.379569Z)

16.4.4.29. 🛑 Search constraint references with incorrect scope check

If the DSS under test allows searching for constraint references with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss1_dss (2024-12-19T16:17:54.389954Z)

16.4.4.30. 🛑 Search constraint references with valid credentials check

If the DSS does not allow searching for constraint references when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,4.

✅ uss1_dss (2024-12-19T16:17:54.402499Z)

16.4.4.31. Search response format

This test step fragment validates that constraint references search responses are properly formatted.

16.4.4.31.1. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format of a search.

✅ uss1_dss (2024-12-19T16:17:54.402710Z)

16.5. Cleanup

16.5.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

16.5.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:54.405713Z)

16.5.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

16.5.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

16.5.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

16.5.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

16.5.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:54.407885Z)

16.5.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

16.5.3. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

16.5.3.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss (2024-12-19T16:17:54.410189Z)

16.5.3.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

This check was not applicable to this test run and is therefore not statused.

16.5.3.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This check was not applicable to this test run and is therefore not statused.

16.5.4. Availability can be requested

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

16.5.4.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:54.412666Z)

16.5.5. Availability can be set

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

16.5.5.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

The cleanup phase of this test scenario removes the subscription with the known test ID if it has not been removed before. ∅ This check was not applicable to this test run and is therefore not statused.

17. [S14] ASTM SCD DSS: Subscription Simple

17.1. Overview

Perform basic operations on a single DSS instance to create, update and delete subscriptions.

17.2. Resources

17.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

17.2.2. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

17.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

17.2.4. problematically_big_area

VerticesResource describing an area designed to be too big to be accepted by the DSS.

✅ Provided by problematically_big_area in top-level resource pool.

17.3. Setup test case

17.3.1. Ensure clean workspace test step

17.3.1.1. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

17.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:54.421688Z)

17.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:54.424018Z)

✅ uss1_dss (2024-12-19T16:17:54.426254Z)

✅ uss1_dss (2024-12-19T16:17:54.428525Z)

✅ uss1_dss (2024-12-19T16:17:54.430670Z)

17.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

17.4. Subscription Simple test case

This test case creates multiple subscriptions, goes on to query and search for them, then deletes and searches for them again.

17.4.1. Create subscription validation test step

This test step creates multiple subscriptions with different combinations of the optional end and start time parameters.

All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step.

17.4.1.1. Create subscription

This test step fragment validates that subscriptions can be created.

17.4.1.1.1. Query Success

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

17.4.1.1.2. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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

✅ uss1_dss (2024-12-19T16:17:54.438742Z)

✅ uss1_dss (2024-12-19T16:17:54.462888Z)

✅ uss1_dss (2024-12-19T16:17:54.558095Z)

✅ uss1_dss (2024-12-19T16:17:54.581022Z)

17.4.1.1.3. 🛑 Create subscription response format conforms to spec check

The response to a successful subscription creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.451828Z)

✅ uss1_dss (2024-12-19T16:17:54.547336Z)

✅ uss1_dss (2024-12-19T16:17:54.569347Z)

✅ uss1_dss (2024-12-19T16:17:54.592767Z)

17.4.1.1.4. 🛑 Create subscription response content is correct check

A successful subscription creation query is expected to return a well-defined body, the content of which reflects the created subscription.

If the content of the response does not correspond to the requested content, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Check creation succeeds and response is correct.

✅ uss1_dss (2024-12-19T16:17:54.453678Z)

✅ uss1_dss (2024-12-19T16:17:54.549308Z)

✅ uss1_dss (2024-12-19T16:17:54.571412Z)

✅ uss1_dss (2024-12-19T16:17:54.594799Z)

17.4.1.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

17.4.1.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.452674Z)

✅ uss1_dss (2024-12-19T16:17:54.548237Z)

✅ uss1_dss (2024-12-19T16:17:54.570183Z)

✅ uss1_dss (2024-12-19T16:17:54.593652Z)

17.4.1.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.453646Z)

✅ uss1_dss (2024-12-19T16:17:54.549275Z)

✅ uss1_dss (2024-12-19T16:17:54.571377Z)

✅ uss1_dss (2024-12-19T16:17:54.594765Z)

17.4.1.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

17.4.1.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.452724Z)

✅ uss1_dss (2024-12-19T16:17:54.548289Z)

✅ uss1_dss (2024-12-19T16:17:54.570233Z)

✅ uss1_dss (2024-12-19T16:17:54.593701Z)

17.4.1.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.452766Z)

✅ uss1_dss (2024-12-19T16:17:54.548351Z)

✅ uss1_dss (2024-12-19T16:17:54.570274Z)

✅ uss1_dss (2024-12-19T16:17:54.593743Z)

17.4.1.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.452804Z)

✅ uss1_dss (2024-12-19T16:17:54.548393Z)

✅ uss1_dss (2024-12-19T16:17:54.570328Z)

✅ uss1_dss (2024-12-19T16:17:54.593780Z)

17.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.570431Z)

✅ uss1_dss (2024-12-19T16:17:54.593862Z)

17.4.1.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.452839Z)

✅ uss1_dss (2024-12-19T16:17:54.548430Z)

✅ uss1_dss (2024-12-19T16:17:54.570372Z)

✅ uss1_dss (2024-12-19T16:17:54.593815Z)

17.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.548476Z)

✅ uss1_dss (2024-12-19T16:17:54.593905Z)

17.4.1.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.452876Z)

✅ uss1_dss (2024-12-19T16:17:54.548512Z)

✅ uss1_dss (2024-12-19T16:17:54.570481Z)

✅ uss1_dss (2024-12-19T16:17:54.593939Z)

17.4.1.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.452910Z)

✅ uss1_dss (2024-12-19T16:17:54.548548Z)

✅ uss1_dss (2024-12-19T16:17:54.570533Z)

✅ uss1_dss (2024-12-19T16:17:54.593974Z)

17.4.1.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.452946Z)

✅ uss1_dss (2024-12-19T16:17:54.548584Z)

✅ uss1_dss (2024-12-19T16:17:54.570571Z)

✅ uss1_dss (2024-12-19T16:17:54.594009Z)

17.4.1.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS after its creation is properly formatted and has the right content.

✅ uss1_dss (2024-12-19T16:17:54.452980Z)

✅ uss1_dss (2024-12-19T16:17:54.548619Z)

✅ uss1_dss (2024-12-19T16:17:54.570607Z)

✅ uss1_dss (2024-12-19T16:17:54.594043Z)

17.4.2. Query Existing Subscription test step

Query and search for the created subscription in various ways

17.4.2.1. 🛑 Get subscription query succeeds check

If the query to get an existing subscription fails, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.788847Z)

✅ uss1_dss (2024-12-19T16:17:54.806191Z)

✅ uss1_dss (2024-12-19T16:17:54.824219Z)

✅ uss1_dss (2024-12-19T16:17:54.840966Z)

17.4.2.2. 🛑 Get subscription response is correct check

A successful get subscription query is expected to return a well-defined body, the content of which reflects the created subscription. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.801268Z)

✅ uss1_dss (2024-12-19T16:17:54.819433Z)

✅ uss1_dss (2024-12-19T16:17:54.836158Z)

✅ uss1_dss (2024-12-19T16:17:54.852919Z)

17.4.2.3. ⚠️ Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.799878Z)

✅ uss1_dss (2024-12-19T16:17:54.818079Z)

✅ uss1_dss (2024-12-19T16:17:54.834860Z)

✅ uss1_dss (2024-12-19T16:17:54.851439Z)

17.4.2.4. 🛑 Search for all subscriptions in planning area query succeeds check

If the search query for the area for which the subscription was just created fails, it is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.857890Z)

17.4.2.5. 🛑 Search for all subscriptions in planning area response is correct check

A successful search query is expected to return a well-defined body, the content of which reflects the created subscription as well as any other subscription in the area. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.874142Z)

✅ uss1_dss (2024-12-19T16:17:54.889861Z)

✅ uss1_dss (2024-12-19T16:17:54.906354Z)

✅ uss1_dss (2024-12-19T16:17:54.922542Z)

17.4.2.6. ⚠️ Search subscriptions response format conforms to spec check

The response to a successful subscription search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.873540Z)

✅ uss1_dss (2024-12-19T16:17:54.889217Z)

✅ uss1_dss (2024-12-19T16:17:54.905646Z)

✅ uss1_dss (2024-12-19T16:17:54.921850Z)

17.4.2.7. 🛑 Created Subscription is in search results check

If the created subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.873611Z)

✅ uss1_dss (2024-12-19T16:17:54.889300Z)

✅ uss1_dss (2024-12-19T16:17:54.905741Z)

✅ uss1_dss (2024-12-19T16:17:54.921952Z)

17.4.2.8. 🛑 No huge search area allowed check

In accordance with astm.f3548.v21.DSS0005,5, the DSS should not allow searches for areas that are too big.

✅ uss1_dss (2024-12-19T16:17:54.925356Z)

17.4.2.9. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

17.4.2.9.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.800744Z)

✅ uss1_dss (2024-12-19T16:17:54.818879Z)

✅ uss1_dss (2024-12-19T16:17:54.835646Z)

✅ uss1_dss (2024-12-19T16:17:54.852259Z)

✅ uss1_dss (2024-12-19T16:17:54.873659Z)

✅ uss1_dss (2024-12-19T16:17:54.889365Z)

✅ uss1_dss (2024-12-19T16:17:54.905807Z)

✅ uss1_dss (2024-12-19T16:17:54.922001Z)

17.4.2.9.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

17.4.2.9.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.801246Z)

✅ uss1_dss (2024-12-19T16:17:54.819410Z)

✅ uss1_dss (2024-12-19T16:17:54.836137Z)

✅ uss1_dss (2024-12-19T16:17:54.852896Z)

✅ uss1_dss (2024-12-19T16:17:54.874119Z)

✅ uss1_dss (2024-12-19T16:17:54.889837Z)

✅ uss1_dss (2024-12-19T16:17:54.906310Z)

✅ uss1_dss (2024-12-19T16:17:54.922513Z)

17.4.2.9.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.800798Z)

✅ uss1_dss (2024-12-19T16:17:54.818932Z)

✅ uss1_dss (2024-12-19T16:17:54.835699Z)

✅ uss1_dss (2024-12-19T16:17:54.852339Z)

✅ uss1_dss (2024-12-19T16:17:54.873699Z)

✅ uss1_dss (2024-12-19T16:17:54.889408Z)

✅ uss1_dss (2024-12-19T16:17:54.905869Z)

✅ uss1_dss (2024-12-19T16:17:54.922042Z)

17.4.2.9.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.800843Z)

✅ uss1_dss (2024-12-19T16:17:54.818978Z)

✅ uss1_dss (2024-12-19T16:17:54.835744Z)

✅ uss1_dss (2024-12-19T16:17:54.852404Z)

✅ uss1_dss (2024-12-19T16:17:54.873740Z)

✅ uss1_dss (2024-12-19T16:17:54.889449Z)

✅ uss1_dss (2024-12-19T16:17:54.905918Z)

✅ uss1_dss (2024-12-19T16:17:54.922085Z)

17.4.2.9.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.800883Z)

✅ uss1_dss (2024-12-19T16:17:54.819018Z)

✅ uss1_dss (2024-12-19T16:17:54.835784Z)

✅ uss1_dss (2024-12-19T16:17:54.852453Z)

✅ uss1_dss (2024-12-19T16:17:54.873778Z)

✅ uss1_dss (2024-12-19T16:17:54.889488Z)

✅ uss1_dss (2024-12-19T16:17:54.905958Z)

✅ uss1_dss (2024-12-19T16:17:54.922124Z)

17.4.2.9.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.800978Z)

✅ uss1_dss (2024-12-19T16:17:54.819113Z)

✅ uss1_dss (2024-12-19T16:17:54.835864Z)

✅ uss1_dss (2024-12-19T16:17:54.852564Z)

✅ uss1_dss (2024-12-19T16:17:54.873857Z)

✅ uss1_dss (2024-12-19T16:17:54.889570Z)

✅ uss1_dss (2024-12-19T16:17:54.906041Z)

✅ uss1_dss (2024-12-19T16:17:54.922208Z)

17.4.2.9.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.800934Z)

✅ uss1_dss (2024-12-19T16:17:54.819056Z)

✅ uss1_dss (2024-12-19T16:17:54.835822Z)

✅ uss1_dss (2024-12-19T16:17:54.852506Z)

✅ uss1_dss (2024-12-19T16:17:54.873815Z)

✅ uss1_dss (2024-12-19T16:17:54.889526Z)

✅ uss1_dss (2024-12-19T16:17:54.905996Z)

✅ uss1_dss (2024-12-19T16:17:54.922162Z)

17.4.2.9.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.801019Z)

✅ uss1_dss (2024-12-19T16:17:54.819157Z)

✅ uss1_dss (2024-12-19T16:17:54.835905Z)

✅ uss1_dss (2024-12-19T16:17:54.852612Z)

✅ uss1_dss (2024-12-19T16:17:54.873898Z)

✅ uss1_dss (2024-12-19T16:17:54.889612Z)

✅ uss1_dss (2024-12-19T16:17:54.906083Z)

✅ uss1_dss (2024-12-19T16:17:54.922250Z)

17.4.2.9.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.801056Z)

✅ uss1_dss (2024-12-19T16:17:54.819195Z)

✅ uss1_dss (2024-12-19T16:17:54.835943Z)

✅ uss1_dss (2024-12-19T16:17:54.852665Z)

✅ uss1_dss (2024-12-19T16:17:54.873934Z)

✅ uss1_dss (2024-12-19T16:17:54.889649Z)

✅ uss1_dss (2024-12-19T16:17:54.906121Z)

✅ uss1_dss (2024-12-19T16:17:54.922288Z)

17.4.2.9.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.801131Z)

✅ uss1_dss (2024-12-19T16:17:54.819272Z)

✅ uss1_dss (2024-12-19T16:17:54.836018Z)

✅ uss1_dss (2024-12-19T16:17:54.852774Z)

✅ uss1_dss (2024-12-19T16:17:54.874007Z)

✅ uss1_dss (2024-12-19T16:17:54.889723Z)

✅ uss1_dss (2024-12-19T16:17:54.906196Z)

✅ uss1_dss (2024-12-19T16:17:54.922386Z)

17.4.2.9.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.801169Z)

✅ uss1_dss (2024-12-19T16:17:54.819310Z)

✅ uss1_dss (2024-12-19T16:17:54.836056Z)

✅ uss1_dss (2024-12-19T16:17:54.852813Z)

✅ uss1_dss (2024-12-19T16:17:54.874045Z)

✅ uss1_dss (2024-12-19T16:17:54.889762Z)

✅ uss1_dss (2024-12-19T16:17:54.906235Z)

✅ uss1_dss (2024-12-19T16:17:54.922426Z)

17.4.2.9.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the search is correctly formatted and corresponds to what was created earlier.

✅ uss1_dss (2024-12-19T16:17:54.801206Z)

✅ uss1_dss (2024-12-19T16:17:54.819369Z)

✅ uss1_dss (2024-12-19T16:17:54.836094Z)

✅ uss1_dss (2024-12-19T16:17:54.852851Z)

✅ uss1_dss (2024-12-19T16:17:54.874082Z)

✅ uss1_dss (2024-12-19T16:17:54.889799Z)

✅ uss1_dss (2024-12-19T16:17:54.906273Z)

✅ uss1_dss (2024-12-19T16:17:54.922464Z)

17.4.2.10. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

17.4.2.10.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field is as expected.

✅ uss1_dss (2024-12-19T16:17:54.801095Z)

✅ uss1_dss (2024-12-19T16:17:54.819234Z)

✅ uss1_dss (2024-12-19T16:17:54.835981Z)

✅ uss1_dss (2024-12-19T16:17:54.852728Z)

✅ uss1_dss (2024-12-19T16:17:54.873971Z)

✅ uss1_dss (2024-12-19T16:17:54.889686Z)

✅ uss1_dss (2024-12-19T16:17:54.906158Z)

✅ uss1_dss (2024-12-19T16:17:54.922343Z)

17.4.3. Attempt Subscription mutation with incorrect version test step

This test step attempts to mutate the subscription both with a missing and incorrect OVN, and checks that the DSS reacts properly.

17.4.3.1. 🛑 Mutation with empty version fails check

If a request to mutate a subscription is missing the version and succeeds, the DSS is failing to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.600209Z)

17.4.3.2. 🛑 Mutation with incorrect version fails check

If a request to mutate a subscription providing the wrong version succeeds, the DSS is failing to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.604193Z)

17.4.4. Mutate Subscription test step

This test step mutates the previously created subscription to verify that the DSS reacts properly: notably, it checks that the subscription version is updated, including for changes that are not directly visible, such as changing the subscription's footprint.

17.4.4.1. 🛑 Mutate subscription query succeeds check

If the query to mutate a subscription with valid parameters is not successful, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.612112Z)

✅ uss1_dss (2024-12-19T16:17:54.634293Z)

✅ uss1_dss (2024-12-19T16:17:54.656787Z)

✅ uss1_dss (2024-12-19T16:17:54.680015Z)

✅ uss1_dss (2024-12-19T16:17:54.702003Z)

✅ uss1_dss (2024-12-19T16:17:54.724420Z)

✅ uss1_dss (2024-12-19T16:17:54.747260Z)

✅ uss1_dss (2024-12-19T16:17:54.770064Z)

17.4.4.2. 🛑 Mutate subscription response is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the newly defined subscription. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.625214Z)

✅ uss1_dss (2024-12-19T16:17:54.647305Z)

✅ uss1_dss (2024-12-19T16:17:54.670552Z)

✅ uss1_dss (2024-12-19T16:17:54.692715Z)

✅ uss1_dss (2024-12-19T16:17:54.714944Z)

✅ uss1_dss (2024-12-19T16:17:54.737496Z)

✅ uss1_dss (2024-12-19T16:17:54.760259Z)

✅ uss1_dss (2024-12-19T16:17:54.783198Z)

17.4.4.3. ⚠️ Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.623799Z)

✅ uss1_dss (2024-12-19T16:17:54.645942Z)

✅ uss1_dss (2024-12-19T16:17:54.669137Z)

✅ uss1_dss (2024-12-19T16:17:54.691360Z)

✅ uss1_dss (2024-12-19T16:17:54.713591Z)

✅ uss1_dss (2024-12-19T16:17:54.736037Z)

✅ uss1_dss (2024-12-19T16:17:54.758868Z)

✅ uss1_dss (2024-12-19T16:17:54.781820Z)

17.4.4.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

17.4.4.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.624718Z)

✅ uss1_dss (2024-12-19T16:17:54.646829Z)

✅ uss1_dss (2024-12-19T16:17:54.670047Z)

✅ uss1_dss (2024-12-19T16:17:54.692183Z)

✅ uss1_dss (2024-12-19T16:17:54.714474Z)

✅ uss1_dss (2024-12-19T16:17:54.736945Z)

✅ uss1_dss (2024-12-19T16:17:54.759753Z)

✅ uss1_dss (2024-12-19T16:17:54.782705Z)

17.4.4.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

17.4.4.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.625179Z)

✅ uss1_dss (2024-12-19T16:17:54.647283Z)

✅ uss1_dss (2024-12-19T16:17:54.670529Z)

✅ uss1_dss (2024-12-19T16:17:54.692693Z)

✅ uss1_dss (2024-12-19T16:17:54.714921Z)

✅ uss1_dss (2024-12-19T16:17:54.737471Z)

✅ uss1_dss (2024-12-19T16:17:54.760236Z)

✅ uss1_dss (2024-12-19T16:17:54.783173Z)

17.4.4.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.624768Z)

✅ uss1_dss (2024-12-19T16:17:54.646879Z)

✅ uss1_dss (2024-12-19T16:17:54.670101Z)

✅ uss1_dss (2024-12-19T16:17:54.692232Z)

✅ uss1_dss (2024-12-19T16:17:54.714526Z)

✅ uss1_dss (2024-12-19T16:17:54.736995Z)

✅ uss1_dss (2024-12-19T16:17:54.759804Z)

✅ uss1_dss (2024-12-19T16:17:54.782757Z)

17.4.4.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.624810Z)

✅ uss1_dss (2024-12-19T16:17:54.646921Z)

✅ uss1_dss (2024-12-19T16:17:54.670144Z)

✅ uss1_dss (2024-12-19T16:17:54.692275Z)

✅ uss1_dss (2024-12-19T16:17:54.714568Z)

✅ uss1_dss (2024-12-19T16:17:54.737037Z)

✅ uss1_dss (2024-12-19T16:17:54.759845Z)

✅ uss1_dss (2024-12-19T16:17:54.782799Z)

17.4.4.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.624848Z)

✅ uss1_dss (2024-12-19T16:17:54.646957Z)

✅ uss1_dss (2024-12-19T16:17:54.670180Z)

✅ uss1_dss (2024-12-19T16:17:54.692311Z)

✅ uss1_dss (2024-12-19T16:17:54.714604Z)

✅ uss1_dss (2024-12-19T16:17:54.737074Z)

✅ uss1_dss (2024-12-19T16:17:54.759881Z)

✅ uss1_dss (2024-12-19T16:17:54.782836Z)

17.4.4.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.624925Z)

✅ uss1_dss (2024-12-19T16:17:54.647031Z)

✅ uss1_dss (2024-12-19T16:17:54.670257Z)

✅ uss1_dss (2024-12-19T16:17:54.692441Z)

✅ uss1_dss (2024-12-19T16:17:54.714678Z)

✅ uss1_dss (2024-12-19T16:17:54.737150Z)

✅ uss1_dss (2024-12-19T16:17:54.759958Z)

✅ uss1_dss (2024-12-19T16:17:54.782911Z)

17.4.4.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.624885Z)

✅ uss1_dss (2024-12-19T16:17:54.646992Z)

✅ uss1_dss (2024-12-19T16:17:54.670215Z)

✅ uss1_dss (2024-12-19T16:17:54.692389Z)

✅ uss1_dss (2024-12-19T16:17:54.714639Z)

✅ uss1_dss (2024-12-19T16:17:54.737110Z)

✅ uss1_dss (2024-12-19T16:17:54.759917Z)

✅ uss1_dss (2024-12-19T16:17:54.782871Z)

17.4.4.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.624963Z)

✅ uss1_dss (2024-12-19T16:17:54.647070Z)

✅ uss1_dss (2024-12-19T16:17:54.670295Z)

✅ uss1_dss (2024-12-19T16:17:54.692481Z)

✅ uss1_dss (2024-12-19T16:17:54.714716Z)

✅ uss1_dss (2024-12-19T16:17:54.737189Z)

✅ uss1_dss (2024-12-19T16:17:54.759995Z)

✅ uss1_dss (2024-12-19T16:17:54.782949Z)

17.4.4.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.624998Z)

✅ uss1_dss (2024-12-19T16:17:54.647105Z)

✅ uss1_dss (2024-12-19T16:17:54.670349Z)

✅ uss1_dss (2024-12-19T16:17:54.692517Z)

✅ uss1_dss (2024-12-19T16:17:54.714750Z)

✅ uss1_dss (2024-12-19T16:17:54.737222Z)

✅ uss1_dss (2024-12-19T16:17:54.760029Z)

✅ uss1_dss (2024-12-19T16:17:54.782984Z)

17.4.4.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.625069Z)

✅ uss1_dss (2024-12-19T16:17:54.647176Z)

✅ uss1_dss (2024-12-19T16:17:54.670423Z)

✅ uss1_dss (2024-12-19T16:17:54.692586Z)

✅ uss1_dss (2024-12-19T16:17:54.714817Z)

✅ uss1_dss (2024-12-19T16:17:54.737291Z)

✅ uss1_dss (2024-12-19T16:17:54.760109Z)

✅ uss1_dss (2024-12-19T16:17:54.783053Z)

17.4.4.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.625105Z)

✅ uss1_dss (2024-12-19T16:17:54.647211Z)

✅ uss1_dss (2024-12-19T16:17:54.670457Z)

✅ uss1_dss (2024-12-19T16:17:54.692621Z)

✅ uss1_dss (2024-12-19T16:17:54.714851Z)

✅ uss1_dss (2024-12-19T16:17:54.737362Z)

✅ uss1_dss (2024-12-19T16:17:54.760161Z)

✅ uss1_dss (2024-12-19T16:17:54.783102Z)

17.4.4.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the mutation is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:54.625140Z)

✅ uss1_dss (2024-12-19T16:17:54.647245Z)

✅ uss1_dss (2024-12-19T16:17:54.670492Z)

✅ uss1_dss (2024-12-19T16:17:54.692656Z)

✅ uss1_dss (2024-12-19T16:17:54.714885Z)

✅ uss1_dss (2024-12-19T16:17:54.737428Z)

✅ uss1_dss (2024-12-19T16:17:54.760199Z)

✅ uss1_dss (2024-12-19T16:17:54.783137Z)

17.4.4.5. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

17.4.4.5.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field has been mutated.

✅ uss1_dss (2024-12-19T16:17:54.625034Z)

✅ uss1_dss (2024-12-19T16:17:54.647141Z)

✅ uss1_dss (2024-12-19T16:17:54.670388Z)

✅ uss1_dss (2024-12-19T16:17:54.692551Z)

✅ uss1_dss (2024-12-19T16:17:54.714783Z)

✅ uss1_dss (2024-12-19T16:17:54.737256Z)

✅ uss1_dss (2024-12-19T16:17:54.760063Z)

✅ uss1_dss (2024-12-19T16:17:54.783017Z)

17.4.5. Delete Subscription test step

Attempt to delete the subscription in various ways and ensure that the DSS reacts properly.

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

17.4.5.1. 🛑 Missing version prevents deletion check

An attempt to delete a subscription without providing a version should fail, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.926751Z)

✅ uss1_dss (2024-12-19T16:17:54.931306Z)

✅ uss1_dss (2024-12-19T16:17:54.935425Z)

✅ uss1_dss (2024-12-19T16:17:54.939332Z)

17.4.5.2. 🛑 Incorrect version prevents deletion check

An attempt to delete a subscription while providing an incorrect version should fail, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.930029Z)

✅ uss1_dss (2024-12-19T16:17:54.934122Z)

✅ uss1_dss (2024-12-19T16:17:54.938040Z)

✅ uss1_dss (2024-12-19T16:17:54.942295Z)

17.4.5.3. 🛑 Delete subscription query succeeds check

If the query to delete an existing subscription fails, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.949439Z)

✅ uss1_dss (2024-12-19T16:17:54.969879Z)

✅ uss1_dss (2024-12-19T16:17:54.989303Z)

✅ uss1_dss (2024-12-19T16:17:55.008907Z)

17.4.5.4. 🛑 Delete subscription response is correct check

A successful delete subscription query is expected to return a well-defined body, the content of which reflects the content of the subscription before deletion. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962660Z)

✅ uss1_dss (2024-12-19T16:17:54.981804Z)

✅ uss1_dss (2024-12-19T16:17:55.001503Z)

✅ uss1_dss (2024-12-19T16:17:55.020774Z)

17.4.5.5. ⚠️ Delete subscription response format conforms to spec check

The response to a successful delete subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962062Z)

✅ uss1_dss (2024-12-19T16:17:54.981222Z)

✅ uss1_dss (2024-12-19T16:17:55.000885Z)

✅ uss1_dss (2024-12-19T16:17:55.020172Z)

17.4.5.6. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

17.4.5.7. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

17.4.5.7.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.962155Z)

✅ uss1_dss (2024-12-19T16:17:54.981311Z)

✅ uss1_dss (2024-12-19T16:17:55.000981Z)

✅ uss1_dss (2024-12-19T16:17:55.020266Z)

17.4.5.7.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

17.4.5.7.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962639Z)

✅ uss1_dss (2024-12-19T16:17:54.981783Z)

✅ uss1_dss (2024-12-19T16:17:55.001481Z)

✅ uss1_dss (2024-12-19T16:17:55.020753Z)

17.4.5.7.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.962199Z)

✅ uss1_dss (2024-12-19T16:17:54.981374Z)

✅ uss1_dss (2024-12-19T16:17:55.001025Z)

✅ uss1_dss (2024-12-19T16:17:55.020310Z)

17.4.5.7.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962241Z)

✅ uss1_dss (2024-12-19T16:17:54.981417Z)

✅ uss1_dss (2024-12-19T16:17:55.001068Z)

✅ uss1_dss (2024-12-19T16:17:55.020371Z)

17.4.5.7.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.962279Z)

✅ uss1_dss (2024-12-19T16:17:54.981453Z)

✅ uss1_dss (2024-12-19T16:17:55.001105Z)

✅ uss1_dss (2024-12-19T16:17:55.020409Z)

17.4.5.7.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962380Z)

✅ uss1_dss (2024-12-19T16:17:54.981531Z)

✅ uss1_dss (2024-12-19T16:17:55.001187Z)

✅ uss1_dss (2024-12-19T16:17:55.020489Z)

17.4.5.7.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962331Z)

✅ uss1_dss (2024-12-19T16:17:54.981489Z)

✅ uss1_dss (2024-12-19T16:17:55.001142Z)

✅ uss1_dss (2024-12-19T16:17:55.020446Z)

17.4.5.7.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962421Z)

✅ uss1_dss (2024-12-19T16:17:54.981570Z)

✅ uss1_dss (2024-12-19T16:17:55.001230Z)

✅ uss1_dss (2024-12-19T16:17:55.020529Z)

17.4.5.7.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:54.962458Z)

✅ uss1_dss (2024-12-19T16:17:54.981606Z)

✅ uss1_dss (2024-12-19T16:17:55.001268Z)

✅ uss1_dss (2024-12-19T16:17:55.020566Z)

17.4.5.7.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962530Z)

✅ uss1_dss (2024-12-19T16:17:54.981677Z)

✅ uss1_dss (2024-12-19T16:17:55.001366Z)

✅ uss1_dss (2024-12-19T16:17:55.020645Z)

17.4.5.7.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:54.962566Z)

✅ uss1_dss (2024-12-19T16:17:54.981712Z)

✅ uss1_dss (2024-12-19T16:17:55.001405Z)

✅ uss1_dss (2024-12-19T16:17:55.020681Z)

17.4.5.7.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:54.962602Z)

✅ uss1_dss (2024-12-19T16:17:54.981746Z)

✅ uss1_dss (2024-12-19T16:17:55.001443Z)

✅ uss1_dss (2024-12-19T16:17:55.020717Z)

17.4.5.8. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

17.4.5.8.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field is as expected.

✅ uss1_dss (2024-12-19T16:17:54.962495Z)

✅ uss1_dss (2024-12-19T16:17:54.981642Z)

✅ uss1_dss (2024-12-19T16:17:55.001304Z)

✅ uss1_dss (2024-12-19T16:17:55.020609Z)

17.4.6. Query Deleted Subscription test step

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

17.4.6.1. 🛑 Query by subscription ID should fail check

If the DSS provides a successful reply to a direct query for the deleted subscription, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.023795Z)

✅ uss1_dss (2024-12-19T16:17:55.026049Z)

✅ uss1_dss (2024-12-19T16:17:55.028187Z)

✅ uss1_dss (2024-12-19T16:17:55.030252Z)

17.4.6.2. 🛑 Search for all subscriptions in planning area query succeeds check

If the DSS fails to let us search in the area for which the subscription was just created, it is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.033302Z)

17.4.6.3. 🛑 Deleted subscription should not be present in search results check

If the DSS returns the deleted subscription in a search that covers the area it was originally created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.033451Z)

17.5. Cleanup

17.5.1. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

17.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

17.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:55.035604Z)

✅ uss1_dss (2024-12-19T16:17:55.037671Z)

✅ uss1_dss (2024-12-19T16:17:55.039802Z)

✅ uss1_dss (2024-12-19T16:17:55.041966Z)

17.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

18. [S15] ASTM SCD DSS: Subscription Validation

18.1. Overview

Ensures that a DSS properly enforces limitations on created subscriptions

18.2. Resources

18.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

18.2.2. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

18.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

18.3. Setup test case

18.3.1. Ensure clean workspace test step

18.3.1.1. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

18.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:55.046293Z)

18.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:55.048547Z)

18.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

18.4. Subscription Validation test case

This test attempts to create subscriptions that should be rejected or adapted by the DSS.

18.4.1. Subscription duration limitations test step

This test step attempts to create a subscription that exceeds the maximal subscription duration on the DSS.

It does so directly, by attempting to create a subscription that exceeds the maximal duration of DSSMaxSubscriptionDuration (24 hours), and indirectly, by first creating a valid subscription and then attempting to mutate it to exceed the maximal duration.

18.4.1.1. 🛑 Accept a subscription of maximal duration check

If the DSS under test does not allow the creation of a subscription of the maximal allowed duration of DSSMaxSubscriptionDuration, it is failing to create a subscription using valid parameters, and is thus failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.059365Z)

18.4.1.2. 🛑 Don't create a too long subscription check

If the DSS under test does not reject a subscription that exceeds the maximal allowed duration of DSSMaxSubscriptionDuration, or fails to truncate the duration of the subscription to this duration, it is in violation of astm.f3548.v21.DSS0015.

✅ uss1_dss (2024-12-19T16:17:55.052282Z)

18.4.1.3. 🛑 Don't mutate a subscription to be too long check

If the DSS under test does not reject a mutation that would cause a subscription to exceed the maximal allowed duration of DSSMaxSubscriptionDuration, or fails to truncate the duration of the subscription to this duration, it is in violation of astm.f3548.v21.DSS0015.

✅ uss1_dss (2024-12-19T16:17:55.064560Z)

18.5. Cleanup

18.5.1. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

18.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

18.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:55.068087Z)

18.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:55.075379Z)

19. [S16] ASTM F3548-21 UTM DSS Operational Intent Reference Access Control

19.1. Overview

This scenario ensures that a DSS will only let the owner of an operational intent reference modify it.

19.2. Resources

19.2.1. flight_intents

A resources.flight_planning.FlightIntentsResource containing the flight intents to be used in this scenario:

This scenario expects to find at least two separate flight intents in this resource, as it will use their extent to create two operational intents references.

✅ Provided by non_conflicting_flights in top-level resource pool.

19.2.2. dss

A resources.astm.f3548.v21.DSSInstanceResource pointing to the DSS instance to test for this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

19.2.3. second_utm_auth

A resources.communications.AuthAdapterResource containing a second set of valid credentials for interacting with the DSS.

This second set of credentials is required to validate that the DSS is properly enforcing access control rules, and properly limits the actions of a client against the resources exposed by the DSS.

The participant under test is responsible for providing this second set of credentials along the primary ones used in most other scenarios.

19.2.3.1. Credential requirements

In general, these test credentials may be in all points equal to the ones used by the AuthAdapterResource that is provided to the dss resources above, except for the value contained in the sub claim of the token.

For the purpose of this scenario, these credentials must be allowed to create, modify and delete operational intents on the DSS, as well as querying operational intent references.

19.2.3.1.1. Required scope

For the purpose of this scenario, the second_utm_auth resource must provide access to a token with at least the following scope:

19.2.3.1.2. Separate subscription

Note that the subscription (or 'sub' claim) of the token that will be obtained for this resource MUST be different from the one of the dss resources mentioned above: this will be verified at runtime, and this scenario will fail if the second set of credentials belong to the same subscription as the main one.

✅ Provided by second_utm_auth in top-level resource pool.

19.2.4. id_generator

A resources.interuss.IDGeneratorResource that will be used to generate the IDs of the operational intent references created in this scenario.

✅ Provided by id_generator in top-level resource pool.

19.3. Setup test case

Makes sure that the DSS is in a clean and expected state before running the test, and that the passed resources work as required.

The setup will create two separate operational intent references: one for each set of the available credentials.

19.3.1. Ensure clean workspace test step

19.3.1.1. Clean any existing OIRs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

19.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.086912Z)

✅ uss1_dss (2024-12-19T16:17:55.092580Z)

19.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:55.103530Z)

✅ uss1_dss (2024-12-19T16:17:55.107070Z)

✅ uss1_dss (2024-12-19T16:17:55.111252Z)

19.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

19.3.1.2. ⚠️ Any existing operational intent reference has been removed check

If, after cleanup, one or more operational intent reference are still present at the DSS, this scenario cannot proceed.

This scenario is able to remove any operational intent reference that belongs to the configured credentials, but it cannot remove references that belong to other credentials.

A regular failure of this check indicates that other scenarios might not properly clean up their resources, or that the Prepare Flight Planners scenario should be moved in front of the present one.

If this check fails, the rest of the scenario is entirely skipped.

✅ uss1_dss (2024-12-19T16:17:55.111301Z)

19.3.2. Create operational intent references with different credentials test step

This test step ensures that an operation intent reference created with the main credentials is available for the main test case.

To verify that the second credentials are valid, it will also create an operational intent reference with those credentials.

19.3.2.1. 🛑 Can create an operational intent with valid credentials check

If the DSS does not allow the creation of operation intents when the required parameters and credentials are provided, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.127584Z)

✅ uss1_dss (2024-12-19T16:17:55.145873Z)

19.3.2.2. 🛑 Passed sets of credentials are different check

This scenario requires two sets of credentials that have a different 'sub' claim in order to validate that the DSS properly controls access to operational intents.

✅ uss1_dss (2024-12-19T16:17:55.146063Z)

19.4. Attempt unauthorized operational intent reference modification test case

This test case ensures that the DSS does not allow a caller to modify or delete operational intent references that they did not create.

19.4.1. Attempt unauthorized operational intent reference modification test step

This test step will attempt to modify the operational intent references that was created using the configured dss resource, using the credentials provided in the second_utm_auth resource, and expect all such attempts to fail.

19.4.1.1. 🛑 Operational intent references can be queried directly by their ID check

If an existing operational intent cannot directly be queried by its ID, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.168407Z)

19.4.1.2. 🛑 Non-owning credentials cannot modify operational intent check

If an operational intent reference can be modified by a client which did not create it, the DSS implementation is in violation of astm.f3548.v21.OPIN0035.

✅ uss1_dss, mock_uss (2024-12-19T16:17:55.154652Z)

✅ uss1_dss, mock_uss (2024-12-19T16:17:55.161347Z)

✅ uss1_dss, mock_uss (2024-12-19T16:17:55.168460Z)

19.4.1.3. 🛑 Non-owning credentials cannot delete operational intent check

If an operational intent reference can be deleted by a client which did not create it, the DSS implementation is in violation of astm.f3548.v21.OPIN0035.

✅ uss1_dss, mock_uss (2024-12-19T16:17:55.164882Z)

19.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

19.5.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.171920Z)

✅ uss1_dss (2024-12-19T16:17:55.186691Z)

19.5.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:55.183277Z)

19.5.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.198070Z)

20. [S17] ASTM F3548-21 UTM DSS interoperability

20.1. Overview

TODO: Complete with details once we check more than the prerequisites.

This scenario currently only checks that all specified DSS instances are publicly addressable and reachable.

20.2. Resources

20.2.1. primary_dss_instance

A resources.astm.f3548.v21.DSSInstanceResource containing the "primary" DSS instance for this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

20.2.2. all_dss_instances

A resources.astm.f3548.v21.DSSInstancesResource containing at least two DSS instances complying with ASTM F3548-21.

✅ Provided by dss_instances in top-level resource pool.

20.2.3. planning_area

A resources.astm.f3548.v21.PlanningAreaResource containing a planning area that covers the area of interest for this

✅ Provided by planning_area in top-level resource pool.

20.2.4. test_exclusions

A resources.dev.TestExclusionsResource containing test exclusions parameters like whether private addresses are allowed. This resource is optional.

✅ Provided by test_exclusions in top-level resource pool.

20.3. Prerequisites test case

20.3.1. Test environment requirements test step

20.3.1.1. 🛑 DSS instance is publicly addressable check

As per astm.f3548.v21.DSS0300 the DSS instance should be publicly addressable. As such, this check will fail if the resolved IP of the DSS host is a private IP address. This check is skipped if the test exclusion allow_private_addresses is set to True.

This check was not applicable to this test run and is therefore not statused.

20.3.1.2. 🛑 DSS instance is reachable check

As per astm.f3548.v21.DSS0300 the DSS instance should be publicly addressable. As such, this check will fail if the DSS is not reachable with a dummy query.

✅ uss1_dss (2024-12-19T16:17:55.204466Z)

✅ uss2_dss (2024-12-19T16:17:55.208393Z)

21. [S18] ASTM SCD DSS: Subscription Synchronization

21.1. Overview

Verifies that all subscription CRUD operations performed on a single DSS instance are properly propagated to every other DSS

21.2. Resources

21.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

21.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

21.2.3. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

21.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

21.2.5. second_utm_auth

A resources.communications.AuthAdapterResource containing a second set of valid credentials for interacting with the DSS.

This second set of credentials is required to validate that the DSS properly synchronizes the manager of a subscription to other DSS instances.

The test designer should provide this second set of credentials when full testing of manager synchronization behavior is desired.

21.2.5.1. Credential requirements

In general, these test credentials may be in all points equal to the ones used by the AuthAdapterResource that is provided to the dss resources above, except for the value contained in the sub claim of the token.

Note that most checks in this scenario will work if the second set of credentials is not provided.

21.2.5.1.1. Required scope

For the purpose of this scenario, the second_utm_auth resource must provide access to a token with at least the following scope:

21.2.5.1.2. Separate subject

Note that the subject (or 'sub' claim) of the token that will be obtained for this resource MUST be different from the one of the dss resources mentioned above: this will be verified at runtime, and the depending checks will not be run if this is not the case.

✅ Provided by second_utm_auth in top-level resource pool.

21.3. Setup test case

21.3.1. Ensure clean workspace test step

21.3.1.1. Ensure that no subscriptions with the known test IDs exist in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

21.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss1_dss (2024-12-19T16:17:55.212875Z)

21.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:55.215189Z)

✅ uss1_dss (2024-12-19T16:17:55.217343Z)

✅ uss1_dss (2024-12-19T16:17:55.219515Z)

✅ uss1_dss (2024-12-19T16:17:55.222488Z)

21.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This includes the main test subscription used in this test, as well as the extra subscription used for testing the manager field sync, if the test is configured to test for it.

This check was not applicable to this test run and is therefore not statused.

21.4. Subscription Synchronization test case

This test case create a subscription on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

21.4.1. Create subscription validation test step

This test step creates multiple subscriptions with different combinations of the optional end and start time parameters.

All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step.

21.4.1.1. Create subscription

This test step fragment validates that subscriptions can be created.

21.4.1.1.1. Query Success

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

21.4.1.1.2. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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

✅ uss1_dss (2024-12-19T16:17:55.231122Z)

✅ uss1_dss (2024-12-19T16:17:55.253651Z)

✅ uss1_dss (2024-12-19T16:17:55.275765Z)

21.4.1.1.3. 🛑 Create subscription response format conforms to spec check

The response to a successful subscription creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.242254Z)

✅ uss1_dss (2024-12-19T16:17:55.265008Z)

✅ uss1_dss (2024-12-19T16:17:55.287204Z)

21.4.1.1.4. 🛑 Create subscription response content is correct check

A successful subscription creation query is expected to return a well-defined body, the content of which reflects the created subscription.

If the content of the response does not correspond to the requested content, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Verify that a subscription can be created on the primary DSS.

✅ uss1_dss (2024-12-19T16:17:55.244108Z)

✅ uss1_dss (2024-12-19T16:17:55.266830Z)

✅ uss1_dss (2024-12-19T16:17:55.289109Z)

21.4.1.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.1.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.243026Z)

✅ uss1_dss (2024-12-19T16:17:55.265768Z)

✅ uss1_dss (2024-12-19T16:17:55.288026Z)

21.4.1.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.244076Z)

✅ uss1_dss (2024-12-19T16:17:55.266799Z)

✅ uss1_dss (2024-12-19T16:17:55.289077Z)

21.4.1.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.1.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.243075Z)

✅ uss1_dss (2024-12-19T16:17:55.265817Z)

✅ uss1_dss (2024-12-19T16:17:55.288077Z)

21.4.1.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243117Z)

✅ uss1_dss (2024-12-19T16:17:55.265857Z)

✅ uss1_dss (2024-12-19T16:17:55.288117Z)

21.4.1.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.243153Z)

✅ uss1_dss (2024-12-19T16:17:55.265893Z)

✅ uss1_dss (2024-12-19T16:17:55.288154Z)

21.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243233Z)

✅ uss1_dss (2024-12-19T16:17:55.265967Z)

✅ uss1_dss (2024-12-19T16:17:55.288230Z)

21.4.1.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243187Z)

✅ uss1_dss (2024-12-19T16:17:55.265927Z)

✅ uss1_dss (2024-12-19T16:17:55.288189Z)

21.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243272Z)

✅ uss1_dss (2024-12-19T16:17:55.266006Z)

✅ uss1_dss (2024-12-19T16:17:55.288268Z)

21.4.1.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.243306Z)

✅ uss1_dss (2024-12-19T16:17:55.266040Z)

✅ uss1_dss (2024-12-19T16:17:55.288303Z)

21.4.1.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243361Z)

✅ uss1_dss (2024-12-19T16:17:55.266074Z)

✅ uss1_dss (2024-12-19T16:17:55.288358Z)

21.4.1.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.243398Z)

✅ uss1_dss (2024-12-19T16:17:55.266107Z)

✅ uss1_dss (2024-12-19T16:17:55.288397Z)

21.4.1.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS under test is properly formatted and contains the expected content.

✅ uss1_dss (2024-12-19T16:17:55.243432Z)

✅ uss1_dss (2024-12-19T16:17:55.266140Z)

✅ uss1_dss (2024-12-19T16:17:55.288432Z)

21.4.2. Query newly created subscription test step

Query the created subscription at every DSS provided in dss_instances.

21.4.2.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

21.4.2.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.294687Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.324936Z)

21.4.2.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295454Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325704Z)

21.4.2.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295518Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325768Z)

21.4.2.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295569Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325820Z)

21.4.2.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295615Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325866Z)

21.4.2.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295663Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325914Z)

21.4.2.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295705Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.325957Z)

21.4.2.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.295748Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.326000Z)

21.4.2.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.316397Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.345286Z)

21.4.2.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just created is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:55.320672Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.348801Z)

21.4.2.2. Get subscription

This test step fragment validates that subscriptions can be read.

21.4.2.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

21.4.2.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

21.4.2.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that each DSS provides access to the created subscription,

✅ uss1_dss (2024-12-19T16:17:55.307001Z)

✅ uss2_dss (2024-12-19T16:17:55.336262Z)

21.4.2.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

21.4.2.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

21.4.2.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.312705Z)

✅ uss1_dss (2024-12-19T16:17:55.320596Z)

✅ uss2_dss (2024-12-19T16:17:55.341261Z)

✅ uss2_dss (2024-12-19T16:17:55.348726Z)

21.4.2.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that each DSS returns the created subscription when searched for.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.2.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.2.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by every DSS is correctly formatted and corresponds to what was created earlier.

This check was not applicable to this test run and is therefore not statused.

21.4.2.5. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.2.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

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

This check was not applicable to this test run and is therefore not statused.

21.4.3. Mutate subscription broadcast test step

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

21.4.3.1. Update subscription

This test step fragment validates that subscriptions can be updated.

21.4.3.1.1. Update query succeeds

This test step fragment validates that a query to update a subscription succeeds.

21.4.3.1.2. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.356578Z)

21.4.3.1.3. 🛑 Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.368703Z)

21.4.3.1.4. 🛑 Mutate subscription response content is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the mutated subscription.

If the content of the response does correspond to the requested mutation, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirm that the subscription can be mutated.

✅ uss1_dss (2024-12-19T16:17:55.370027Z)

21.4.3.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.3.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.369511Z)

21.4.3.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.3.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.370002Z)

21.4.3.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.369561Z)

21.4.3.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369603Z)

21.4.3.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.369639Z)

21.4.3.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369726Z)

21.4.3.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369682Z)

21.4.3.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369765Z)

21.4.3.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.369800Z)

21.4.3.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369867Z)

21.4.3.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.369901Z)

21.4.3.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:55.369945Z)

21.4.3.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.3.3.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS has been updated.

✅ uss1_dss (2024-12-19T16:17:55.369834Z)

21.4.4. Query updated subscription test step

Query the updated subscription at every DSS provided in dss_instances.

21.4.4.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

21.4.4.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.374815Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.401696Z)

21.4.4.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375586Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402475Z)

21.4.4.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375649Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402547Z)

21.4.4.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375699Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402599Z)

21.4.4.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375753Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402646Z)

21.4.4.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375802Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402692Z)

21.4.4.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375845Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402734Z)

21.4.4.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.375887Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.402777Z)

21.4.4.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.394771Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.421709Z)

21.4.4.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just mutated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:55.398264Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.425810Z)

21.4.4.2. Get subscription

This test step fragment validates that subscriptions can be read.

21.4.4.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

21.4.4.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

21.4.4.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be retrieved from any DSS.

✅ uss1_dss (2024-12-19T16:17:55.385875Z)

✅ uss2_dss (2024-12-19T16:17:55.413072Z)

21.4.4.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

21.4.4.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

21.4.4.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.391030Z)

✅ uss1_dss (2024-12-19T16:17:55.398190Z)

✅ uss2_dss (2024-12-19T16:17:55.417978Z)

✅ uss2_dss (2024-12-19T16:17:55.425733Z)

21.4.4.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be searched for from any DSS.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.4.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.4.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by every DSS is correctly formatted and corresponds to what was mutated earlier.

This check was not applicable to this test run and is therefore not statused.

21.4.4.5. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.4.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

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

This check was not applicable to this test run and is therefore not statused.

21.4.5. Mutate subscription on secondaries test step

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.

Note that this step is repeated for every secondary DSS instance.

21.4.5.1. 🛑 Subscription can be mutated on secondary DSS check

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:

astm.f3548.v21.DSS0210,1b, 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); astm.f3548.v21.DSS0005,5, if the secondary DSS fails to properly implement the API to mutate subscriptions.

✅ uss1_dss (2024-12-19T16:17:55.448545Z)

21.4.5.2. 🛑 Subscription returned by a secondary DSS is valid and correct check

When queried for a subscription that was created 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.

This check was not applicable to this test run and is therefore not statused.

21.4.5.3. Update subscription

This test step fragment validates that subscriptions can be updated.

21.4.5.3.1. Update query succeeds

This test step fragment validates that a query to update a subscription succeeds.

21.4.5.3.2. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

21.4.5.3.3. 🛑 Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.460291Z)

21.4.5.3.4. 🛑 Mutate subscription response content is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the mutated subscription.

If the content of the response does correspond to the requested mutation, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirm that the secondary DSS handles the update properly.

✅ uss1_dss (2024-12-19T16:17:55.461633Z)

21.4.5.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.5.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.461108Z)

21.4.5.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.5.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461611Z)

21.4.5.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.461160Z)

21.4.5.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461202Z)

21.4.5.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.461240Z)

21.4.5.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461341Z)

21.4.5.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461278Z)

21.4.5.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461388Z)

21.4.5.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.461426Z)

21.4.5.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461498Z)

21.4.5.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.461535Z)

21.4.5.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:55.461574Z)

21.4.5.5. Validate version is updated by mutation

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.5.5.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription is updated after the mutation on the secondary.

✅ uss1_dss (2024-12-19T16:17:55.461463Z)

21.4.6. Verify mutation on all secondaries test step

This step verifies that the mutation of the subscription on a secondary instance, from the previous step, is properly propagated to every other DSS.

Note that this step is repeated for every secondary DSS instance.

21.4.6.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

21.4.6.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.466204Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.494817Z)

21.4.6.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.466967Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495629Z)

21.4.6.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467039Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495693Z)

21.4.6.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467090Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495747Z)

21.4.6.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467137Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495834Z)

21.4.6.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467186Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495924Z)

21.4.6.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467229Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.495981Z)

21.4.6.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.467272Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.496039Z)

21.4.6.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss (2024-12-19T16:17:55.486865Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.517431Z)

21.4.6.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just mutated is properly synchronized across all DSS instances.

✅ uss1_dss (2024-12-19T16:17:55.491109Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.521368Z)

21.4.6.2. Get subscription

This test step fragment validates that subscriptions can be read.

21.4.6.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

21.4.6.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

21.4.6.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be retrieved from any DSS, and that it has the expected content.

✅ uss1_dss (2024-12-19T16:17:55.477310Z)

✅ uss2_dss (2024-12-19T16:17:55.507875Z)

21.4.6.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

21.4.6.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

21.4.6.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.483041Z)

✅ uss1_dss (2024-12-19T16:17:55.491029Z)

✅ uss2_dss (2024-12-19T16:17:55.513723Z)

✅ uss2_dss (2024-12-19T16:17:55.521257Z)

21.4.6.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be searched for from any DSS, and that it has the expected content.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.6.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.6.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

21.4.6.5. Validate version is as expected when read

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.6.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that when we are reading the subscription without mutating it, the version is as expected.

This check was not applicable to this test run and is therefore not statused.

21.4.7. Create subscription with different credentials test step

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.

21.4.7.1. Create subscription

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

21.4.7.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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.

Verify that a subscription can be created on the primary DSS using the separate set of credentials.

✅ uss1_dss (2024-12-19T16:17:55.433576Z)

21.4.8. Verify manager synchronization test step

If the second set of credentials is provided, checks that the manager of a subscription is properly synchronized across all DSS instances.

This is done by verifying that the main credentials are not able to delete the subscription via any of the secondary DSS instances.

21.4.8.1. ⚠️ Subscription deletion with different non-managing credentials on secondary DSS fails check

If the subscription can be deleted by a client which did not create it, via a DSS instance to which the subscription was synced following its creation on the primary DSS, either one of the primary DSS or the DSS that accepted the deletion failed to properly broadcast, respectively take into account, the manage of the subscription, and therefore violates astm.f3548.v21.DSS0210,1b.

✅ uss1_dss (2024-12-19T16:17:55.437606Z)

✅ uss2_dss (2024-12-19T16:17:55.440871Z)

21.4.9. Delete subscription on primary test step

Attempt to delete the subscription that was created on the primary DSS through the primary DSS in various ways, and ensure that the DSS reacts properly.

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

21.4.9.1. Delete subscription

This test step fragment validates that subscriptions can be deleted.

21.4.9.1.1. Delete query succeeds

This test step fragment validates that a query to remove a subscription succeeds.

21.4.9.1.2. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.608466Z)

21.4.9.1.3. 🛑 Delete subscription response format conforms to spec check

The response to a successful subscription deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620043Z)

21.4.9.1.4. 🛑 Delete subscription response content is correct check

A successful subscription deletion query is expected to return a well-defined body, the content of which reflects the deleted subscription.

If the content of the response does not correspond to the subscription at the time of deletion, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that a subscription can be deleted.

✅ uss1_dss (2024-12-19T16:17:55.620630Z)

21.4.9.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.9.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.620138Z)

21.4.9.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.9.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620608Z)

21.4.9.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.620182Z)

21.4.9.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620223Z)

21.4.9.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.620261Z)

21.4.9.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620358Z)

21.4.9.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620296Z)

21.4.9.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620402Z)

21.4.9.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.620438Z)

21.4.9.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620505Z)

21.4.9.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.620539Z)

21.4.9.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:55.620573Z)

21.4.9.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.9.3.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS is as expected

✅ uss1_dss (2024-12-19T16:17:55.620472Z)

21.4.10. Query deleted subscription test step

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

21.4.10.1. 🛑 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 one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, 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.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:55.623694Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:55.626086Z)

21.4.11. Delete subscriptions on secondaries test step

Attempt to delete subscriptions that were created through the primary DSS via the secondary DSS instances.

21.4.11.1. Delete subscription

This test step fragment validates that subscriptions can be deleted.

21.4.11.1.1. Delete query succeeds

This test step fragment validates that a query to remove a subscription succeeds.

21.4.11.1.2. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.633292Z)

✅ uss2_dss (2024-12-19T16:17:55.659219Z)

21.4.11.1.3. 🛑 Delete subscription response format conforms to spec check

The response to a successful subscription deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.644604Z)

✅ uss2_dss (2024-12-19T16:17:55.670728Z)

21.4.11.1.4. 🛑 Delete subscription response content is correct check

A successful subscription deletion query is expected to return a well-defined body, the content of which reflects the deleted subscription.

If the content of the response does not correspond to the subscription at the time of deletion, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that a subscription can be deleted from a secondary DSS

✅ uss1_dss (2024-12-19T16:17:55.645251Z)

✅ uss2_dss (2024-12-19T16:17:55.671307Z)

21.4.11.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

21.4.11.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.644709Z)

✅ uss2_dss (2024-12-19T16:17:55.670827Z)

21.4.11.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

21.4.11.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.645230Z)

✅ uss2_dss (2024-12-19T16:17:55.671286Z)

21.4.11.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.644780Z)

✅ uss2_dss (2024-12-19T16:17:55.670870Z)

21.4.11.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.644855Z)

✅ uss2_dss (2024-12-19T16:17:55.670910Z)

21.4.11.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.644900Z)

✅ uss2_dss (2024-12-19T16:17:55.670946Z)

21.4.11.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.644984Z)

✅ uss2_dss (2024-12-19T16:17:55.671027Z)

21.4.11.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.644939Z)

✅ uss2_dss (2024-12-19T16:17:55.670981Z)

21.4.11.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.645025Z)

✅ uss2_dss (2024-12-19T16:17:55.671069Z)

21.4.11.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:17:55.645060Z)

✅ uss2_dss (2024-12-19T16:17:55.671105Z)

21.4.11.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.645128Z)

✅ uss2_dss (2024-12-19T16:17:55.671174Z)

21.4.11.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:55.645163Z)

✅ uss2_dss (2024-12-19T16:17:55.671209Z)

21.4.11.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:17:55.645196Z)

✅ uss2_dss (2024-12-19T16:17:55.671250Z)

21.4.11.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

21.4.11.3.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS is as expected

✅ uss1_dss (2024-12-19T16:17:55.645095Z)

✅ uss2_dss (2024-12-19T16:17:55.671140Z)

21.4.11.4. 🛑 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 one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, 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.

✅ uss1_dss, uss1_dss (2024-12-19T16:17:55.648017Z)

✅ uss1_dss, uss1_dss (2024-12-19T16:17:55.650239Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:55.652548Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.674293Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:55.676437Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:55.678555Z)

21.5. Cleanup

21.5.1. Ensure that no subscriptions with the known test IDs remain in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

21.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

21.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss1_dss (2024-12-19T16:17:55.680703Z)

✅ uss1_dss (2024-12-19T16:17:55.682765Z)

✅ uss1_dss (2024-12-19T16:17:55.684836Z)

✅ uss1_dss (2024-12-19T16:17:55.688013Z)

21.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This includes the main test subscription used in this test, as well as the extra subscription used for testing the manager field sync, if the test is configured to test for it.

✅ uss1_dss (2024-12-19T16:17:55.696382Z)

22. [skipped] ASTM UTM DSS: Direct CRDB access

This instance of this test scenario was skipped in this test run because: Test suite action to run ActionType.TestScenario scenarios.astm.utm.dss.CRDBAccess could not find required resource ID "dss_crdb_cluster" used to populate child resource ID "crdb_cluster"

23. [S19] OVN Request Optional Extension to ASTM F3548-21

23.1. Description

This test validates that a DSS correctly implements the OVN Request Optional Extension to ASTM F3548-21.

23.2. Resources

23.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

23.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

23.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

23.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

23.3. Setup test case

23.3.1. Ensure clean workspace test step

23.3.1.1. Ensure that no operational intents with the known test IDs exists in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

23.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.704789Z)

23.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss1_dss (2024-12-19T16:17:55.702123Z)

23.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

23.4. Request for OIR OVN with valid suffix test case

This case validates the nominal behavior of the OVN request.

23.4.1. Create OIR with OVN suffix request test step

23.4.1.1. Create OIR with OVN suffix request

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

23.4.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.718476Z)

23.4.1.2. DSS has set the expected OVN using the requested OVN suffix

This test step fragment validates that the DSS has set the expected OVN correctly after an USS requested a suffix.

23.4.1.2.1. 🛑 DSS has set the expected OVN using the requested OVN suffix check

If the DSS has not set the OVN according to the specifications, it will fail this check as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS has set the expected OVN correctly.

✅ uss1_dss (2024-12-19T16:17:55.718533Z)

23.4.2. Activate OIR with OVN suffix request test step

23.4.2.1. Update OIR with OVN suffix request

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

23.4.2.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference. Check that the OIR update query succeeds.

✅ uss1_dss (2024-12-19T16:17:55.738078Z)

23.4.2.2. DSS has set the expected OVN using the requested OVN suffix

This test step fragment validates that the DSS has set the expected OVN correctly after an USS requested a suffix.

23.4.2.2.1. 🛑 DSS has set the expected OVN using the requested OVN suffix check

If the DSS has not set the OVN according to the specifications, it will fail this check as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS has set the expected OVN correctly.

✅ uss1_dss (2024-12-19T16:17:55.738141Z)

23.5. Request for OIR OVN with invalid suffix test case

This case validates the off-nominal behaviors of the OVN request.

23.5.1. Attempt to create OIR with OVN suffix request not being a UUID test step

23.5.1.1. Attempt to create OIR with OVN suffix request not being a UUID rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

23.5.1.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are not UUIDs. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss1_dss (2024-12-19T16:17:55.740111Z)

23.5.2. Attempt to create OIR with OVN suffix request empty test step

23.5.2.1. Attempt to create OIR with OVN suffix request empty rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

23.5.2.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are empty. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss1_dss (2024-12-19T16:17:55.741841Z)

23.5.3. Attempt to create OIR with OVN suffix request being a UUID but not v7 test step

23.5.3.1. Attempt to create OIR with OVN suffix request being a UUID but not v7 rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

23.5.3.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are UUIDs but not v7. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss1_dss (2024-12-19T16:17:55.743911Z)

23.5.4. Attempt to create OIR with OVN suffix request being an outdated UUIDv7 test step

23.5.4.1. Attempt to create OIR with OVN suffix request being an outdated UUIDv7 rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

23.5.4.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are outdated UUIDv7. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss1_dss (2024-12-19T16:17:55.745503Z)

23.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

23.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.749174Z)

23.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

23.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss1_dss (2024-12-19T16:17:55.762128Z)

24. [S20] ASTM SCD DSS: Report

24.1. Overview

This scenario tests the ability of the DSS to receive DSS reports.

24.2. Resources

24.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 1 in dss_instances in top-level resource pool.

24.3. DSS Report test case

This test attempts to submit to the DSS a report about a communication issue with a DSS that might otherwise go unnoticed. A dummy getOperationalIntentReference query is made to a non-existent DSS in order to produce a realistic report, as if a DSS was not reachable when trying to retrieve an operational intent reference.

24.3.1. Make valid DSS report test step

24.3.1.1. Make report to DSS

This step makes a report to the DSS.

See make_dss_report in test_steps.py.

24.3.1.1.1. 🛑 DSS report successfully submitted check

If the submission of the report to the DSS does not succeed, this check will fail per astm.f3548.v21.DSS0100,2.

✅ uss1_dss (2024-12-19T16:17:55.912873Z)

24.3.1.1.2. ⚠️ DSS returned a valid report ID check

If the ID returned by the DSS is not present or is empty, this check will fail per astm.f3548.v21.DSS0100,2.

✅ uss1_dss (2024-12-19T16:17:55.912919Z)

25. [S21] ASTM SCD DSS: Implicit Subscription handling

25.1. Overview

Checks that implicit subscriptions are properly created, mutated and cleaned up.

25.2. Resources

25.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

25.2.2. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

25.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

25.2.4. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

25.3. Setup test case

25.3.1. Ensure clean workspace test step

25.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

25.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.921503Z)

✅ uss2_dss (2024-12-19T16:17:55.923663Z)

✅ uss2_dss (2024-12-19T16:17:55.925786Z)

25.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:55.919190Z)

25.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

25.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

25.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:55.928609Z)

25.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:55.930781Z)

25.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

25.4. Single OIR implicit subscription is removed upon OIR deletion test case

25.4.1. Create an OIR with implicit subscription test step

This step creates an OIR with an implicit subscription and confirms that the subscription can be queried

25.4.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.4.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:55.945125Z)

25.4.1.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

25.4.1.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.952965Z)

25.4.1.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

25.4.1.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.954217Z)

25.4.2. Delete the OIR with implicit subscription test step

25.4.2.1. Delete OIR

This test step fragment validates that operational intent references can be deleted

25.4.2.1.1. 🛑 Delete operational intent reference query succeeds check

A query to delete an operational intent reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.966930Z)

25.4.2.1.2. 🛑 Delete operational intent reference response format conforms to spec check

The response to a successful operational intent reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

25.4.2.1.3. 🛑 Delete operational intent reference response content is correct check

A successful operational intent reference deletion query is expected to return a body, the content of which reflects the operational intent reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

This check was not applicable to this test run and is therefore not statused.

25.4.2.2. 🛑 The implicit subscription was removed check

Upon deletion of an OIR that is associated to an implicit subscription, if the subscription has no other associated OIRs, the DSS is expected to remove it.

If a query attempting to fetch the implicit subscription succeeds, it implies that the implicit subscription has not been removed, and the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.969212Z)

25.4.2.3. 🛑 After removal of the only created OIR, subscriptions should be as before its creation check

If, after the DSS is left in the same state as it was 'found' for an area, the subscriptions currently active do not correspond to the ones that were present when the test case started, the DSS may be failing to properly implement astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:17:55.969263Z)

25.5. Implicit subscriptions always properly cover their OIR test case

This test case verifies that implicit subscriptions belonging to OIRs that are created, updated and deleted are properly managed.

In particular, the scenario verifies that:

25.5.1. Create an OIR with implicit subscription test step

Create an OIR with which interactions will be tested and request an implicit subscription to be created.

25.5.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.5.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:55.982603Z)

25.5.1.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

25.5.1.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.991268Z)

25.5.1.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

25.5.1.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:55.992549Z)

25.5.2. Create an overlapping OIR without any subscription test step

This step creates an OIR in the ACCEPTED state that overlaps with the previously created OIR: it does not request the creation of an implicit subscription and does not attach the OIR to any subscription explicitly.

This step expects that the implicit subscription from the previously created OIR is mentioned in the response's notifications, and that no new implicit subscription is created.

25.5.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.5.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:56.005889Z)

25.5.2.2. 🛑 New OIR creation response contains previous implicit subscription to notify check

If the newly created OIR does not mention the implicit subscription from the previous OIR in its notifications, the DSS is either improperly managing implicit subscriptions, or failing to report the subscriptions relevant to an OIR, and therefore in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5 respectively.

✅ uss2_dss (2024-12-19T16:17:56.008296Z)

25.5.2.3. 🛑 No implicit subscription was attached check

If the DSS attached an implicit subscription, by either creating or re-using an existing one, to the OIR that was created in this step, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.008246Z)

25.5.3. Mutate OIR with implicit subscription to not overlap anymore test step

This step mutates the first OIR, which has an implicit subscription, to no longer overlap with the second OIR.

The mutation request does not specify an existing subscription, and provides the parameters required for the creation of an implicit subscription.

25.5.3.1. Mutate OIR

This test step fragment validates that operational intent references can be updated.

25.5.3.1.1. Update query succeeds

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

25.5.3.1.2. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check query succeeds.

✅ uss2_dss (2024-12-19T16:17:56.024914Z)

25.5.3.1.3. Response Format

This test step fragment validates that updates to operational intent references return a body in the correct format.

25.5.3.1.4. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

This check was not applicable to this test run and is therefore not statused.

25.5.3.1.5. 🛑 Mutate operational intent reference response content is correct check

A successful operational intent reference mutation query is expected to return a well-defined body, the content of which reflects the updated operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

This check was not applicable to this test run and is therefore not statused.

25.5.3.2. 🛑 The implicit subscription can be queried check

The implicit subscription attached to the mutated OIR should be able to be queried.

If it cannot, the DSS is either improperly managing implicit subscriptions for OIRs, or failing to report the subscriptions relevant to an OIR, in which case the DSS is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5, respectively.

✅ uss2_dss (2024-12-19T16:17:56.033639Z)

25.5.3.3. Correct temporal bounds

This test step fragment validates the time-bounds of an implicit subscription

25.5.3.3.1. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.034919Z)

25.5.3.4. 🛑 Non-mutated implicit subscription is deleted check

If the DSS chose to create a new implicit subscription instead of updating the existing one, and the DSS did not remove the previous subscription, the DSS is in violation of either astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:17:56.037750Z)

25.5.4. Create an OIR overlapping with the second OIR but not the first test step

This step creates a new OIR that only overlaps the OIR that has no implicit subscription, and expects to not have to notify any subscription related to the OIRs created in this scenario.

25.5.4.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.5.4.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:56.048300Z)

25.5.4.2. 🛑 Within a temporal frame not overlapping a newly created implicit subscription, subscriptions should be the same as at the start of the test case check

Within a geotemporal area that does not intersect with any of the implicit subscriptions that are left within the DSS, the subscriptions returned for an OIR created within said area should correspond to the ones that were present when the test case started.

Otherwise, the DSS may be failing to properly implement astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:17:56.050421Z)

25.5.4.3. 🛑 No implicit subscription was attached check

If the DSS attached an implicit subscription, by either creating or re-using an existing one, to the OIR that was created in this step, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.050371Z)

25.6. Implicit subscriptions are properly deleted when required by OIR mutation test case

This test case verifies that implicit subscriptions are properly removed if they become unnecessary following the mutation of an OIR.

25.6.1. Ensure clean workspace test step

25.6.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

25.6.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.088654Z)

✅ uss2_dss (2024-12-19T16:17:56.090850Z)

✅ uss2_dss (2024-12-19T16:17:56.093517Z)

25.6.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.086343Z)

25.6.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.065547Z)

✅ uss2_dss (2024-12-19T16:17:56.077638Z)

✅ uss2_dss (2024-12-19T16:17:56.086290Z)

25.6.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

25.6.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:56.096369Z)

25.6.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:56.098482Z)

25.6.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

25.6.2. Create two OIRs with implicit subscription test step

Creates two OIRs with an implicit subscription, which will then be replaced by an explicitly created subscription and deleted by an update that requests no subscription, respectively.

25.6.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.6.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:56.111508Z)

✅ uss2_dss (2024-12-19T16:17:56.139221Z)

25.6.2.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

25.6.2.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.119714Z)

✅ uss2_dss (2024-12-19T16:17:56.147225Z)

25.6.2.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

25.6.2.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.121670Z)

✅ uss2_dss (2024-12-19T16:17:56.148554Z)

25.6.3. Create a subscription test step

This test step creates a subscription that will be used to replace the implicit subscription that was created for an OIR.

25.6.3.1. Create subscription

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

25.6.3.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 creation succeeds and response is correct.

✅ uss2_dss (2024-12-19T16:17:56.158069Z)

25.6.4. Update OIR with implicit subscription to use explicit subscription test step

This step updates the OIR to use the subscription that was created in the previous step, and expects the previous implicit subscription to be removed.

25.6.4.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

25.6.4.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss2_dss (2024-12-19T16:17:56.174276Z)

25.6.4.2. 🛑 Previously attached implicit subscription was deleted check

If the implicit subscription that was attached to the OIR is still present after the OIR is updated to use another subscription, the DSS is failing to properly manage implicit subscriptions for OIRs, and is therefore in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.176704Z)

25.6.5. Update OIR with implicit subscription to use no subscription test step

This step updates the OIR to not use any subscription, and expects the implicit subscription to be removed.

25.6.5.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

25.6.5.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss2_dss (2024-12-19T16:17:56.191977Z)

25.6.5.2. 🛑 Previously attached implicit subscription was deleted check

If the implicit subscription that was attached to the OIR is still present after the OIR is updated to use another subscription, the DSS is failing to properly manage implicit subscriptions for OIRs, and is therefore in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.194430Z)

25.7. Implicit subscriptions are expanded as needed test case

This test case checks that a DSS will properly expand an implicit subscription to cover an OIR that is being attached to it.

25.7.1. Ensure clean workspace test step

25.7.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

25.7.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.221462Z)

✅ uss2_dss (2024-12-19T16:17:56.225488Z)

✅ uss2_dss (2024-12-19T16:17:56.227627Z)

25.7.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.219051Z)

25.7.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.210087Z)

✅ uss2_dss (2024-12-19T16:17:56.219013Z)

25.7.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

25.7.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:56.230973Z)

25.7.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:56.235687Z)

✅ uss2_dss (2024-12-19T16:17:56.245165Z)

25.7.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:56.242817Z)

25.7.2. Create an OIR with implicit subscription test step

Create an OIR with which interactions will be tested and request an implicit subscription to be created.

25.7.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

25.7.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:56.258532Z)

25.7.2.2. Valid Implicit Subscription

This test step fragment validates that implicit subscriptions are created and can be queried, and that they have the correct temporal parameters.

25.7.2.2.1. 🛑 An implicit subscription was created and can be queried check

The creation of an operational intent which:

is expected to trigger the creation of a new implicit subscription.

If the DSS does not create the implicit subscription, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.267303Z)

25.7.2.2.2. Correct temporal parameters

This test step fragment validates the time-bounds of an implicit subscription

25.7.2.2.3. 🛑 Implicit subscription has correct temporal parameters check

If the implicit subscription time boundaries do not cover the OIR's, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.268579Z)

25.7.3. Expand the OIR while keeping the same implicit subscription test step

Expand the previously created OIR's duration while explicitly specifying the implicit subscription that was automatically created for it.

25.7.3.1. Mutate OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

25.7.3.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

✅ uss2_dss (2024-12-19T16:17:56.283785Z)

25.7.3.2. 🛑 The implicit subscription can be queried check

The implicit subscription attached to the mutated OIR should be able to be queried.

If it cannot, the DSS is either improperly managing implicit subscriptions for OIRs, or failing to report the subscriptions relevant to an OIR, in which case the DSS is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,5, respectively.

✅ uss2_dss (2024-12-19T16:17:56.287199Z)

25.7.3.3. Correct temporal bounds

This test step fragment validates the time-bounds of an implicit subscription with respect to the OIRs it needs to cover.

25.7.3.3.1. 🛑 Implicit subscription has wide enough temporal parameters check

If the implicit subscription's time boundaries do not cover every OIR attached to it, the DSS is in violation of astm.f3548.v21.DSS0005,1.

Ensure that the attached implicit subscription has been expanded

✅ uss2_dss (2024-12-19T16:17:56.288595Z)

25.8. Cleanup

25.8.1. Remove OIRs created during this test

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

25.8.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.311995Z)

✅ uss2_dss (2024-12-19T16:17:56.314275Z)

✅ uss2_dss (2024-12-19T16:17:56.316520Z)

25.8.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.305286Z)

25.8.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.305241Z)

25.8.2. Remove subscriptions created during this test

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

25.8.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:56.319492Z)

25.8.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:56.321710Z)

25.8.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

26. [S22] ASTM SCD DSS: Operational Intent Reference Simple

26.1. Overview

Verifies the behavior of a DSS for simple interactions pertaining to operational intent references.

26.2. Resources

26.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

26.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

26.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

26.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

26.3. Setup test case

26.3.1. Ensure clean workspace test step

26.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

26.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.331430Z)

26.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.329113Z)

26.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

26.3.2. Create an operational intent reference test step

26.3.2.1. Create an operational intent reference to be used in this scenario.

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

26.3.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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.

✅ uss2_dss (2024-12-19T16:17:56.345046Z)

26.4. Deletion requires correct OVN test case

Ensures that a DSS will only delete OIRs when the correct OVN is presented.

26.4.1. Attempt deletion with missing OVN test step

This step verifies that an existing OIR cannot be deleted with a missing OVN.

26.4.1.1. 🛑 Request to delete OIR with empty OVN fails check

If the DSS under test allows the qualifier to delete an existing OIR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss2_dss (2024-12-19T16:17:56.346608Z)

26.4.2. Attempt deletion with incorrect OVN test step

This step verifies that an existing OIR cannot be deleted with an incorrect OVN.

26.4.2.1. 🛑 Request to delete OIR with incorrect OVN fails check

If the DSS under test allows the qualifier to delete an existing OIR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss2_dss (2024-12-19T16:17:56.352632Z)

26.5. Mutation requires correct OVN test case

Test DSS behavior when mutation requests are not providing the required OVN.

26.5.1. Attempt mutation with missing OVN test step

This step verifies that an existing OIR cannot be mutated with a missing OVN.

26.5.1.1. 🛑 Request to mutate OIR with empty OVN fails check

If the DSS under test allows the qualifier to mutate an existing OIR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss2_dss (2024-12-19T16:17:56.357690Z)

26.5.2. Attempt mutation with incorrect OVN test step

This step verifies that an existing OIR cannot be mutated with an incorrect OVN.

26.5.2.1. 🛑 Request to mutate OIR with incorrect OVN fails check

If the DSS under test allows the qualifier to mutate an existing OIR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,1

✅ uss2_dss (2024-12-19T16:17:56.363057Z)

26.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

26.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.386160Z)

26.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.379730Z)

26.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.379691Z)

27. [S23] ASTM SCD DSS: Constraint Reference Simple

27.1. Overview

Verifies the behavior of a DSS for simple interactions pertaining to constraint references.

27.2. Resources

27.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

27.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

27.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update constraint references.

✅ Provided by utm_client_identity in top-level resource pool.

27.2.4. planning_area

PlanningAreaResource describes the 3D volume in which constraint references will be created.

✅ Provided by planning_area in top-level resource pool.

27.3. Setup test case

27.3.1. Ensure clean workspace test step

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

27.3.1.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.393940Z)

27.3.1.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss2_dss (2024-12-19T16:17:56.391596Z)

27.3.1.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This step ensures that no entities with the known test IDs exists in the DSS.

This check was not applicable to this test run and is therefore not statused.

27.3.2. Create a constraint reference test step

This test step fragment validates that a query to create a constraint reference with valid parameters succeeds

27.3.2.1. 🛑 Create constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to create a constraint reference with either one or both of the start and end time missing, provided all the required parameters are valid.

This step creates the constraint reference to be used in this scenario.

✅ uss2_dss (2024-12-19T16:17:56.402284Z)

27.4. Deletion requires correct OVN test case

Ensures that an existing CR can only be deleted when the correct OVN is provided.

27.4.1. Attempt deletion with missing OVN test step

This step verifies that an existing CR cannot be deleted with a missing OVN.

27.4.1.1. 🛑 Request to delete CR with empty OVN fails check

If the DSS under test allows the qualifier to delete an existing CR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss2_dss (2024-12-19T16:17:56.403699Z)

27.4.2. Attempt deletion with incorrect OVN test step

This step verifies that an existing CR cannot be deleted with an incorrect OVN.

27.4.2.1. 🛑 Request to delete CR with incorrect OVN fails check

If the DSS under test allows the qualifier to delete an existing CR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss2_dss (2024-12-19T16:17:56.406039Z)

27.5. Mutation requires correct OVN test case

Ensures that an existing CR can only be mutated when the correct OVN is provided.

27.5.1. Attempt mutation with missing OVN test step

This step verifies that an existing CR cannot be mutated with a missing OVN.

27.5.1.1. 🛑 Request to mutate CR with empty OVN fails check

If the DSS under test allows the qualifier to mutate an existing CR with a request that provided an empty OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss2_dss (2024-12-19T16:17:56.409561Z)

27.5.2. Attempt mutation with incorrect OVN test step

This step verifies that an existing CR cannot be mutated with an incorrect OVN.

27.5.2.1. 🛑 Request to mutate CR with incorrect OVN fails check

If the DSS under test allows the qualifier to mutate an existing CR with a request that provided an incorrect OVN, it is in violation of astm.f3548.v21.DSS0005,3

✅ uss2_dss (2024-12-19T16:17:56.412947Z)

27.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

27.6.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.426335Z)

27.6.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss2_dss (2024-12-19T16:17:56.417208Z)

27.6.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.424101Z)

28. [S24] ASTM SCD DSS: Constraint Reference Synchronization

28.1. Overview

Verifies that all CRUD operations on constraint references performed on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

28.2. Resources

28.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

28.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

28.2.3. id_generator

IDGeneratorResource providing the constraint reference ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

28.2.4. planning_area

PlanningAreaResource describes the 3D volume in which constraint reference will be created.

✅ Provided by planning_area in top-level resource pool.

28.2.5. client_identity

ClientIdentityResource to be used for this scenario.

✅ Provided by utm_client_identity in top-level resource pool.

28.3. Setup test case

28.3.1. Ensure clean workspace test step

28.3.1.1. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

28.3.1.1.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.434429Z)

28.3.1.1.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss2_dss (2024-12-19T16:17:56.432207Z)

28.3.1.1.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This check was not applicable to this test run and is therefore not statused.

28.4. CR synchronization test case

This test case creates an constraint reference on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

28.4.1. Create CR validation test step

28.4.1.1. Create CR

This test step fragment validates that:

28.4.1.1.1. Query Success

This test step fragment validates that a query to create a constraint reference with valid parameters succeeds

28.4.1.1.2. 🛑 Create constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to create a constraint reference with either one or both of the start and end time missing, provided all the required parameters are valid.

Check query succeeds

✅ uss2_dss (2024-12-19T16:17:56.441778Z)

28.4.1.1.3. Response Format

This test step fragment validates that a constraint references creation returns a body in the correct format.

28.4.1.1.4. 🛑 Create constraint reference response format conforms to spec check

The response to a successful constraint reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss2_dss (2024-12-19T16:17:56.453056Z)

28.4.1.1.5. 🛑 Create constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects the created constraint reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Verify that an constraint reference can be created on the primary DSS.

✅ uss2_dss (2024-12-19T16:17:56.454127Z)

28.4.1.2. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.1.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.453779Z)

28.4.1.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.453826Z)

28.4.1.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.453862Z)

28.4.1.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.453898Z)

28.4.1.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.453938Z)

28.4.1.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.453972Z)

28.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.454040Z)

28.4.1.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.454005Z)

28.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.454074Z)

28.4.1.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.454106Z)

28.4.1.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS under test is properly formatted and contains the expected content.

This check was not applicable to this test run and is therefore not statused.

28.4.2. Retrieve newly created CR test step

Retrieve and validate synchronization of the created constraint at every DSS provided in dss_instances.

28.4.2.1. Get CR query

This test step fragment validates that constraint references can be read

28.4.2.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

28.4.2.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.458277Z)

✅ uss2_dss (2024-12-19T16:17:56.475522Z)

28.4.2.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

28.4.2.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.469898Z)

✅ uss2_dss (2024-12-19T16:17:56.487385Z)

28.4.2.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds.

✅ uss2_dss (2024-12-19T16:17:56.471094Z)

✅ uss2_dss (2024-12-19T16:17:56.488731Z)

28.4.2.2. Newly created CR can be consistently retrieved from all DSS instances check

If the constraint retrieved from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1f, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.459236Z)

✅ uss2_dss (2024-12-19T16:17:56.476531Z)

28.4.2.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

28.4.2.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.458360Z)

✅ uss2_dss (2024-12-19T16:17:56.475591Z)

28.4.2.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

28.4.2.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.458428Z)

✅ uss2_dss (2024-12-19T16:17:56.475654Z)

28.4.2.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.458477Z)

✅ uss2_dss (2024-12-19T16:17:56.475698Z)

28.4.2.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.459169Z)

✅ uss2_dss (2024-12-19T16:17:56.476462Z)

28.4.2.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the created constraint reference. Confirm that the constraint reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.459215Z)

✅ uss2_dss (2024-12-19T16:17:56.476509Z)

28.4.2.4. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.2.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470624Z)

✅ uss2_dss (2024-12-19T16:17:56.488145Z)

28.4.2.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470677Z)

✅ uss2_dss (2024-12-19T16:17:56.488213Z)

28.4.2.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470720Z)

✅ uss2_dss (2024-12-19T16:17:56.488262Z)

28.4.2.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470760Z)

✅ uss2_dss (2024-12-19T16:17:56.488331Z)

28.4.2.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470801Z)

✅ uss2_dss (2024-12-19T16:17:56.488399Z)

28.4.2.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470845Z)

✅ uss2_dss (2024-12-19T16:17:56.488446Z)

28.4.2.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470924Z)

✅ uss2_dss (2024-12-19T16:17:56.488548Z)

28.4.2.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470884Z)

✅ uss2_dss (2024-12-19T16:17:56.488501Z)

28.4.2.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.470963Z)

✅ uss2_dss (2024-12-19T16:17:56.488589Z)

28.4.2.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.471000Z)

✅ uss2_dss (2024-12-19T16:17:56.488628Z)

28.4.2.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Sanity check on the rest of the content and format of the response.

This check was not applicable to this test run and is therefore not statused.

28.4.2.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

28.4.2.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.471074Z)

✅ uss2_dss (2024-12-19T16:17:56.488703Z)

28.4.2.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

Confirm that version and OIR are as expected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.471037Z)

✅ uss2_dss (2024-12-19T16:17:56.488666Z)

28.4.3. Search for newly created CR test step

Search for and validate synchronization of the created constraint at every DSS provided in dss_instances.

28.4.3.1. Search CR

This test step fragment validates that constraint references can be searched for.

28.4.3.1.1. Search query succeeds

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

28.4.3.1.2. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.493258Z)

✅ uss2_dss (2024-12-19T16:17:56.511129Z)

28.4.3.1.3. Response format

This test step fragment validates that constraint references search responses are properly formatted.

28.4.3.1.4. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.505194Z)

✅ uss2_dss (2024-12-19T16:17:56.522922Z)

28.4.3.1.5. 🛑 Expected constraint reference is in search results check

If the existing constraint reference is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,4.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506117Z)

✅ uss2_dss (2024-12-19T16:17:56.523712Z)

28.4.3.1.6. 🛑 Search constraint reference response content is correct check

A successful constraint reference search query is expected to return a body, the content of which reflects any constraint reference present in the searched area. This includes the previously created constraint reference, which should accurately represent the constraint reference as it was requested. If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that search query succeeds and the response is well-formed.

✅ uss2_dss (2024-12-19T16:17:56.506662Z)

✅ uss2_dss (2024-12-19T16:17:56.524236Z)

28.4.3.2. Newly created CR can be consistently searched for from all DSS instances check

If the constraint searched from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1e, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.494266Z)

✅ uss2_dss (2024-12-19T16:17:56.512143Z)

28.4.3.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

28.4.3.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

28.4.3.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.493349Z)

✅ uss2_dss (2024-12-19T16:17:56.511202Z)

28.4.3.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.493421Z)

✅ uss2_dss (2024-12-19T16:17:56.511267Z)

28.4.3.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.493466Z)

✅ uss2_dss (2024-12-19T16:17:56.511328Z)

28.4.3.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.494198Z)

✅ uss2_dss (2024-12-19T16:17:56.512071Z)

28.4.3.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the constraint in relevant search results. Confirm that the constraint reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.494245Z)

✅ uss2_dss (2024-12-19T16:17:56.512120Z)

28.4.3.4. CR content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.3.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506175Z)

✅ uss2_dss (2024-12-19T16:17:56.523772Z)

28.4.3.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506219Z)

✅ uss2_dss (2024-12-19T16:17:56.523816Z)

28.4.3.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506260Z)

✅ uss2_dss (2024-12-19T16:17:56.523856Z)

28.4.3.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506301Z)

✅ uss2_dss (2024-12-19T16:17:56.523896Z)

28.4.3.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506360Z)

✅ uss2_dss (2024-12-19T16:17:56.523945Z)

28.4.3.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506401Z)

✅ uss2_dss (2024-12-19T16:17:56.523985Z)

28.4.3.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506483Z)

✅ uss2_dss (2024-12-19T16:17:56.524064Z)

28.4.3.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506441Z)

✅ uss2_dss (2024-12-19T16:17:56.524022Z)

28.4.3.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506525Z)

✅ uss2_dss (2024-12-19T16:17:56.524103Z)

28.4.3.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506564Z)

✅ uss2_dss (2024-12-19T16:17:56.524140Z)

28.4.3.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

28.4.3.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

28.4.3.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506640Z)

✅ uss2_dss (2024-12-19T16:17:56.524215Z)

28.4.3.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.506602Z)

✅ uss2_dss (2024-12-19T16:17:56.524178Z)

28.4.4. Mutate CR test step

This test step mutates the previously created constraint reference to verify that the DSS reacts properly: notably, it checks that the constraint reference version is updated, including for changes that are not directly visible, such as changing the constraint reference's footprint.

28.4.4.1. Update CR

This test step fragment validates that constraint references can be updated.

28.4.4.1.1. Update query succeeds

This test step fragment validates that a query to update a constraint reference with valid parameters succeeds.

28.4.4.1.2. 🛑 Mutate constraint reference query succeeds check

As per astm.f3548.v21.DSS0005,3, the DSS API must allow callers to mutate a constraint reference.

Check query succeeds.

✅ uss2_dss (2024-12-19T16:17:56.534028Z)

28.4.4.1.3. Response Format

This test step fragment validates that updates to constraint references return a body in the correct format.

28.4.4.1.4. 🛑 Mutate constraint reference response format conforms to spec check

The response to a successful constraint reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss2_dss (2024-12-19T16:17:56.545268Z)

28.4.4.1.5. 🛑 Mutate constraint reference response content is correct check

A successful constraint reference mutation query is expected to return a well-defined body, the content of which reflects the updated constraint reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that the constraint reference can be mutated.

✅ uss2_dss (2024-12-19T16:17:56.546500Z)

28.4.4.2. Validate CR

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.4.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.546044Z)

28.4.4.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.546092Z)

28.4.4.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546131Z)

28.4.4.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.546169Z)

28.4.4.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546206Z)

28.4.4.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.546240Z)

28.4.4.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546331Z)

28.4.4.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546279Z)

28.4.4.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546372Z)

28.4.4.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.546407Z)

28.4.4.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

28.4.4.3. CR Versions are correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been mutated.

The code for these checks lives in the cr_validator.py class.

28.4.4.3.1. ⚠️ Mutated constraint reference version is updated check

Following a mutation, the DSS needs to update the constraint reference version, otherwise it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.546479Z)

28.4.4.3.2. ⚠️ Mutated constraint reference OVN is updated check

Following a mutation, the DSS needs to update the constraint reference OVN, otherwise it is in violation of astm.f3548.v21.DSS0005,3.

Verify that the constraint reference's version fields have been updated.

✅ uss2_dss (2024-12-19T16:17:56.546443Z)

28.4.5. Retrieve updated CR test step

Retrieve and validate synchronization of the updated constraint at every DSS provided in dss_instances.

28.4.5.1. Get CR query

This test step fragment validates that constraint references can be read

28.4.5.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

28.4.5.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.550274Z)

✅ uss2_dss (2024-12-19T16:17:56.567122Z)

28.4.5.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

28.4.5.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.562011Z)

✅ uss2_dss (2024-12-19T16:17:56.580185Z)

28.4.5.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds and the response is well-formed.

✅ uss2_dss (2024-12-19T16:17:56.563397Z)

✅ uss2_dss (2024-12-19T16:17:56.581477Z)

28.4.5.2. Updated CR can be consistently retrieved from all DSS instances check

If the constraint retrieved from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b, astm.f3548.v21.DSS0210,A2-7-2,1d, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.551245Z)

✅ uss2_dss (2024-12-19T16:17:56.568126Z)

28.4.5.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

28.4.5.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.550357Z)

✅ uss2_dss (2024-12-19T16:17:56.567183Z)

28.4.5.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

28.4.5.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.550423Z)

✅ uss2_dss (2024-12-19T16:17:56.567245Z)

28.4.5.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.550468Z)

✅ uss2_dss (2024-12-19T16:17:56.567287Z)

28.4.5.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.551177Z)

✅ uss2_dss (2024-12-19T16:17:56.568058Z)

28.4.5.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the updated constraint reference. Confirm that the constraint reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.551223Z)

✅ uss2_dss (2024-12-19T16:17:56.568105Z)

28.4.5.4. CR Content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.5.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.562780Z)

✅ uss2_dss (2024-12-19T16:17:56.580942Z)

28.4.5.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.562850Z)

✅ uss2_dss (2024-12-19T16:17:56.580996Z)

28.4.5.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.562910Z)

✅ uss2_dss (2024-12-19T16:17:56.581038Z)

28.4.5.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.562966Z)

✅ uss2_dss (2024-12-19T16:17:56.581077Z)

28.4.5.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563022Z)

✅ uss2_dss (2024-12-19T16:17:56.581119Z)

28.4.5.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563077Z)

✅ uss2_dss (2024-12-19T16:17:56.581157Z)

28.4.5.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563179Z)

✅ uss2_dss (2024-12-19T16:17:56.581237Z)

28.4.5.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563120Z)

✅ uss2_dss (2024-12-19T16:17:56.581196Z)

28.4.5.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563224Z)

✅ uss2_dss (2024-12-19T16:17:56.581276Z)

28.4.5.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563282Z)

✅ uss2_dss (2024-12-19T16:17:56.581334Z)

28.4.5.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

28.4.5.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

28.4.5.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563376Z)

✅ uss2_dss (2024-12-19T16:17:56.581450Z)

28.4.5.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.563335Z)

✅ uss2_dss (2024-12-19T16:17:56.581394Z)

28.4.6. Search for updated CR test step

Search for and validate synchronization of the updated constraint at every DSS provided in dss_instances.

28.4.6.1. Search CR

This test step fragment validates that constraint references can be searched for.

28.4.6.1.1. Search query succeeds

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

28.4.6.1.2. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.585998Z)

✅ uss2_dss (2024-12-19T16:17:56.603662Z)

28.4.6.1.3. Response format

This test step fragment validates that constraint references search responses are properly formatted.

28.4.6.1.4. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.597877Z)

✅ uss2_dss (2024-12-19T16:17:56.615791Z)

28.4.6.1.5. 🛑 Expected constraint reference is in search results check

If the existing constraint reference is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,4.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598673Z)

✅ uss2_dss (2024-12-19T16:17:56.616552Z)

28.4.6.1.6. 🛑 Search constraint reference response content is correct check

A successful constraint reference search query is expected to return a body, the content of which reflects any constraint reference present in the searched area. This includes the previously created constraint reference, which should accurately represent the constraint reference as it was requested. If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that search query succeeds and the response is well-formed.

✅ uss2_dss (2024-12-19T16:17:56.599193Z)

✅ uss2_dss (2024-12-19T16:17:56.617069Z)

28.4.6.2. Updated CR can be consistently searched for from all DSS instances check

If the constraint searched from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b, astm.f3548.v21.DSS0210,A2-7-2,1e, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586994Z)

✅ uss2_dss (2024-12-19T16:17:56.604665Z)

28.4.6.3. CR is synchronized

This test step fragment validates that constraint references are properly synchronized across a set of DSS instances.

28.4.6.3.1. 🛑 Constraint reference can be found at every DSS check

If the previously created or mutated constraint reference cannot be found at a DSS, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

28.4.6.3.2. 🛑 Propagated constraint reference general area is synchronized check

When querying a secondary DSS for constraints in the planning area that contains the propagated constraint, if the propagated constraint is not contained in the response, then the general area in which the propagated constraint is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fail to properly one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586061Z)

✅ uss2_dss (2024-12-19T16:17:56.603732Z)

28.4.6.3.3. ⚠️ Propagated constraint reference contains the correct manager check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct manager, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586125Z)

✅ uss2_dss (2024-12-19T16:17:56.603796Z)

28.4.6.3.4. ⚠️ Propagated constraint reference contains the correct USS base URL check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586169Z)

✅ uss2_dss (2024-12-19T16:17:56.603839Z)

28.4.6.3.5. ⚠️ Propagated constraint reference contains the correct start time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct start time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586924Z)

✅ uss2_dss (2024-12-19T16:17:56.604596Z)

28.4.6.3.6. ⚠️ Propagated constraint reference contains the correct end time check

If the constraint reference returned by a DSS to which the constraint reference was synchronized to does not contain the correct end time, either one of the instances at which the constraint reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the constraint in relevant search results. Confirm that the constraint reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.586972Z)

✅ uss2_dss (2024-12-19T16:17:56.604644Z)

28.4.6.4. CR content is correct

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.6.4.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598730Z)

✅ uss2_dss (2024-12-19T16:17:56.616606Z)

28.4.6.4.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598773Z)

✅ uss2_dss (2024-12-19T16:17:56.616649Z)

28.4.6.4.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598812Z)

✅ uss2_dss (2024-12-19T16:17:56.616689Z)

28.4.6.4.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598857Z)

✅ uss2_dss (2024-12-19T16:17:56.616729Z)

28.4.6.4.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598898Z)

✅ uss2_dss (2024-12-19T16:17:56.616770Z)

28.4.6.4.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598937Z)

✅ uss2_dss (2024-12-19T16:17:56.616808Z)

28.4.6.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.599023Z)

✅ uss2_dss (2024-12-19T16:17:56.616888Z)

28.4.6.4.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.598980Z)

✅ uss2_dss (2024-12-19T16:17:56.616846Z)

28.4.6.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.599063Z)

✅ uss2_dss (2024-12-19T16:17:56.616933Z)

28.4.6.4.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.599100Z)

✅ uss2_dss (2024-12-19T16:17:56.616972Z)

28.4.6.4.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

This check was not applicable to this test run and is therefore not statused.

28.4.6.5. CR version is correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

28.4.6.5.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.599174Z)

✅ uss2_dss (2024-12-19T16:17:56.617048Z)

28.4.6.5.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.599137Z)

✅ uss2_dss (2024-12-19T16:17:56.617010Z)

28.4.7. Delete CR test step

Attempt to delete the constraint reference in various ways and ensure that the DSS reacts properly.

This also checks that the constraint reference data returned by a successful deletion is correct.

28.4.7.1. Delete CR

This test step fragment validates that constraint references can be deleted

28.4.7.1.1. 🛑 Delete constraint reference query succeeds check

A query to delete a constraint reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.624988Z)

28.4.7.1.2. Response format

This test step fragment validates that a constraint references deletion returns a body in the correct format.

28.4.7.1.3. 🛑 Delete constraint reference response format conforms to spec check

The response to a successful constraint reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

✅ uss2_dss (2024-12-19T16:17:56.636291Z)

28.4.7.1.4. 🛑 Delete constraint reference response content is correct check

A successful constraint reference deletion query is expected to return a body, the content of which reflects the constraint reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that an constraint reference can be deleted.

✅ uss2_dss (2024-12-19T16:17:56.637509Z)

28.4.7.2. Validate CR

This test step fragment attempts to validate the content of a single constraint reference returned by the DSS.

The code for these checks lives in the cr_validator.py class.

28.4.7.2.1. ⚠️ Returned constraint reference ID is correct check

If the returned constraint reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.637046Z)

28.4.7.2.2. ⚠️ Returned constraint reference has a manager check

If the returned constraint reference has no manager defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.637098Z)

28.4.7.2.3. ⚠️ Returned constraint reference manager is correct check

The returned manager must correspond to the identity of the client that created the constraint at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637137Z)

28.4.7.2.4. ⚠️ Returned constraint reference has an USS base URL check

If the returned constraint reference has no USS base URL defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.637172Z)

28.4.7.2.5. ⚠️ Returned constraint reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at constraint reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637209Z)

28.4.7.2.6. ⚠️ Returned constraint reference has a start time check

If the returned constraint reference has no start time defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.637243Z)

28.4.7.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637342Z)

28.4.7.2.8. ⚠️ Returned constraint reference has an end time check

Constraint references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637277Z)

28.4.7.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637385Z)

28.4.7.2.10. ⚠️ Returned constraint reference has an OVN check

If the returned constraint reference has no OVN defined, astm.f3548.v21.DSS0005,3 is not respected.

✅ uss2_dss (2024-12-19T16:17:56.637420Z)

28.4.7.2.11. ⚠️ Returned constraint reference has a version check

If the returned constraint reference has no version defined, astm.f3548.v21.DSS0005,3 is not respected.

Verify that the constraint reference returned by the DSS via the deletion is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

28.4.7.3. CR Versions are correct

This test step fragment attempts to validate a single constraint reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the cr_validator.py class.

28.4.7.3.1. ⚠️ Non-mutated constraint reference keeps the same version check

If the version of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.637488Z)

28.4.7.3.2. ⚠️ Non-mutated constraint reference keeps the same OVN check

If the OVN of the constraint reference is updated without there having been any mutation of the constraint reference, the DSS is in violation of astm.f3548.v21.DSS0005,3.

Verify that the constraint reference's version fields are as expected.

✅ uss2_dss (2024-12-19T16:17:56.637454Z)

28.4.8. Query deleted CR test step

Attempt to query and search for the deleted constraint reference in various ways

28.4.8.1. Get CR query

This test step fragment validates that constraint references can be read

28.4.8.1.1. Read query succeeds

This test step fragment validates that a query to retrieve an existing constraint reference with valid parameters succeeds.

28.4.8.1.2. 🛑 Get constraint reference by ID check

If an existing constraint reference cannot successfully be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,3.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.640496Z)

✅ uss2_dss (2024-12-19T16:17:56.646275Z)

28.4.8.1.3. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

28.4.8.1.4. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format

This check was not applicable to this test run and is therefore not statused.

28.4.8.1.5. 🛑 Get constraint reference response content is correct check

A successful constraint reference creation query is expected to return a body, the content of which reflects a constraint reference that was created earlier. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

This check will usually be performing a series of sub-checks from the validate fragments.

Check that read query succeeds.

This check was not applicable to this test run and is therefore not statused.

28.4.8.2. 🛑 Deleted CR cannot be retrieved from all DSS instances check

If a DSS returns an constraint reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the constraint reference is in violation of astm.f3548.v21.DSS0210,2a, astm.f3548.v21.DSS0210,A2-7-2,3b, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss2_dss, uss1_dss (2024-12-19T16:17:56.640543Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:56.646353Z)

28.4.8.3. Search CR

This test step fragment validates that a query to search for constraint references with valid parameters succeeds.

28.4.8.3.1. 🛑 Successful constraint reference search query check

If the DSS fails to let us search in the area for which the CR was created, it is failing to meet astm.f3548.v21.DSS0005,4.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:17:56.643716Z)

✅ uss2_dss (2024-12-19T16:17:56.649371Z)

28.4.8.4. 🛑 Deleted CR cannot be searched for from all DSS instances check

If a DSS returns an constraint reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the constraint reference is in violation of astm.f3548.v21.DSS0210,2a, astm.f3548.v21.DSS0210,A2-7-2,3a, astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss2_dss, uss1_dss (2024-12-19T16:17:56.643764Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:56.649420Z)

28.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

28.5.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:17:56.655685Z)

28.5.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

✅ uss2_dss (2024-12-19T16:17:56.653206Z)

28.5.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3. ∅ This check was not applicable to this test run and is therefore not statused.

29. [S25] ASTM SCD DSS: USS Availability Synchronization

29.1. Overview

Verifies that all CRUD operations for USS availabilities on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

29.2. Resources

29.2.1. dss

DSSInstanceResource the DSS instance through which USS availabilities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

29.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that USS availabilities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

29.2.3. client_identity

ClientIdentityResource to be used for this scenario: it contains the identifier of the USS for which availabilities will be updated.

✅ Provided by utm_client_identity in top-level resource pool.

29.3. Setup test case

For the setup of this test case, the scenario ensures that the availability for the USS specified in the client_identity resource is Unknown, which is the default expected state when nothing else is known.

29.3.1. Ensure test USS has Unknown availability test step

This step ensures that the scenario starts from a state where the USS availability is Unknown.

29.3.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:17:56.661127Z)

✅ uss1_dss (2024-12-19T16:17:56.664089Z)

✅ uss2_dss (2024-12-19T16:17:56.667284Z)

29.3.1.2. 🛑 USS Availability can be set to Unknown check

A valid request to set the availability of a USS to Unknown should be accepted by the DSS, otherwise it is failing to implement the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

29.3.1.3. Consistent availability
29.3.1.3.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.3.1.3.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4. USS Availability synchronization test case

Checks that updates to a USS availability on one DSS instance are properly propagated to every other DSS instance in the deployment.

Ensures that this is true for every possible availability state.

29.4.1. Update USS availability on primary DSS to Normal test step

29.4.1.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.1.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

29.4.2. Check Normal USS availability broadcast test step

29.4.2.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.2.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:56.674078Z)

✅ uss2_dss (2024-12-19T16:17:56.676485Z)

29.4.2.2. Consistent availability
29.4.2.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4.2.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4.3. Update USS Availability on primary DSS to Down test step

29.4.3.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.3.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

29.4.4. Check Down USS availability broadcast test step

29.4.4.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.4.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:56.682722Z)

✅ uss2_dss (2024-12-19T16:17:56.685080Z)

29.4.4.2. Consistent availability
29.4.4.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4.4.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4.5. Update USS availability on primary DSS to Unknown test step

29.4.5.1. Availability can be updated

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.5.1.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

29.4.6. Check Unknown USS availability broadcast test step

29.4.6.1. Availability can be read

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.4.6.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:56.691687Z)

✅ uss2_dss (2024-12-19T16:17:56.694009Z)

29.4.6.2. Consistent availability
29.4.6.2.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.4.6.2.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.5. Unknown USS state is reported as Unknown test case

Checks that if queried for a USS it does not know about, any DSS will return an Unknown availability.

29.5.1. Query all DSS instances with an unknown USS identifier test step

This test step requests the availability for a USS identifier that is not known to any DSS instance, and expects to receive an Unknown availability along with an unset version. This should be true for every DSS that is part of the same deployment.

29.5.1.1. Request availability

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

29.5.1.1.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss1_dss (2024-12-19T16:17:56.698926Z)

✅ uss2_dss (2024-12-19T16:17:56.701301Z)

29.5.1.2. 🛑 Main DSS instance reports Unknown availability check

If the primary DSS instance does not return an Unknown availability for a USS identifier that has not received any updates, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:17:56.696497Z)

29.5.1.3. ⚠️ Availability version for an unknown USS should be empty check

If the primary DSS instance reports a non-empty version for the availability of an USS identifier that should not be known to the DSS, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:17:56.696546Z)

29.5.1.4. Consistent availability
29.5.1.4.1. 🛑USS Availability is consistent across every DSS instance check

If the reported availability for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3a, if the USS identifier is not properly synced; astm.f3548.v21.DSS0210,3b, if the USS availability is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.5.1.4.2. 🛑USS Availability version is consistent across every DSS instance check

If the reported availability version for a USS is not consistent, across a set of DSS instances, with the value that was previously read or set on an arbitrary DSS instance, either the DSS through which the value was set or the one through which the values was retrieved is failing to meet at least one of these requirements:

astm.f3548.v21.DSS0210,3c, if the USS availability version is not properly synced; astm.f3548.v21.DSS0215, if the DSS returns API calls before having committed the changes to the underlying distributed store.

As a consequence, the DSS also fails to meet astm.f3548.v21.DSS0210,A2-7-2,6 and astm.f3548.v21.DSS0020.

This check was not applicable to this test run and is therefore not statused.

29.6. Cleanup

29.6.1. ⚠️ USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:17:56.703962Z)

29.6.2. ⚠️ USS Availability can be set to Unknown check

A valid request to set the availability of a USS to Unknown should be accepted by the DSS, otherwise it is failing to implement the OpenAPI spec referenced by astm.f3548.v21.DSS0100,1. ∅ This check was not applicable to this test run and is therefore not statused.

30. [S26] ASTM F3548-21 UTM DSS Operational Intent Reference State Transitions

30.1. Overview

This scenario ensures that a DSS will only let the owner of an operational intent reference modify it.

30.2. Resources

30.2.1. flight_intents

A resources.flight_planning.FlightIntentsResource containing the flight intents to be used in this scenario:

This scenario expects to find at least one flight intent in this resource. It will use its extents to create and mutate an operational intent reference, but ignore any specified states, as this scenario will iterate over all allowed states.

✅ Provided by non_conflicting_flights in top-level resource pool.

30.2.2. dss

A resources.astm.f3548.v21.DSSInstanceResource pointing to the DSS instance to test for this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

30.2.3. id_generator

A resources.interuss.IDGeneratorResource that will be used to generate the IDs of the operational intent references created in this scenario.

✅ Provided by id_generator in top-level resource pool.

30.3. Setup test case

Makes sure that the DSS is in a clean and expected state before running the test, and that the passed resources work as required.

30.3.1. Ensure clean workspace test step

30.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

30.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.711154Z)

30.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.718388Z)

✅ uss2_dss (2024-12-19T16:17:56.721913Z)

30.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

30.3.1.2. No OIR exists
30.3.1.2.1. ⚠️ Any existing operational intent reference has been removed check

If, after cleanup, one or more operational intent reference are still present at the DSS, this scenario cannot proceed.

This scenario is able to remove any operational intent reference that belongs to the configured credentials, but it cannot remove references that belong to other credentials.

A regular failure of this check indicates that other scenarios might not properly clean up their resources, or that the Prepare Flight Planners scenario should be moved in front of the present one.

If this check fails, the rest of the scenario is entirely skipped.

✅ uss2_dss (2024-12-19T16:17:56.721960Z)

30.4. Attempt unauthorized state creation test case

This test case attempts to create an operational intent reference with a state that would require the utm.conformance_monitoring_sa scope while only using the utm.strategic_coordination scope.

30.4.1. Attempt direct creation with unauthorized state test step

This test step attempts to directly create an operational intent reference with a state that is not allowable.

The creation of such an entity is expected to fail for two reasons:

30.4.1.1. 🛑 Direct Nonconforming state creation is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to create an operational intent reference in the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.727110Z)

30.4.1.2. 🛑 Direct Contingent state creation is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to create an operational intent reference in the Contingent state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.729305Z)

30.5. Attempt unauthorized state transitions test case

This test case attempts to transition an existing operational intent reference to a state that would require the utm.conformance_monitoring_sa scope while only using the utm.strategic_coordination scope.

30.5.1. Create an Accepted OIR test step

This step sets up an operational intent reference in the Accepted state.

30.5.1.1. 🛑 Creation of an Accepted OIR is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to create an operational intent reference in the Accepted state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.745638Z)

30.5.2. Attempt transition of an accepted operational intent reference to an unauthorized state test step

This test step attempts to transition an existing operational intent reference to a state it should not be allowed to when using the ``utm.strategic_coordination` scope.

30.5.2.1. 🛑 Transition from Accepted to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss2_dss (2024-12-19T16:17:56.747705Z)

30.5.2.2. 🛑 Transition from Accepted to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss2_dss (2024-12-19T16:17:56.749271Z)

30.5.3. Transition the OIR to Activated test step

This step transitions the operational intent reference to the Activated state.

30.5.3.1. 🛑 Transition from Accepted to Activated is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to transition an operational intent reference from the Accepted state to the Activated state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.765560Z)

30.5.4. Attempt transition of an activated operational intent reference to an unauthorized state test step

30.5.4.1. 🛑 Transition from Activated to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss2_dss (2024-12-19T16:17:56.767579Z)

30.5.4.2. 🛑 Transition from Activated to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100.

✅ uss2_dss (2024-12-19T16:17:56.769122Z)

30.5.5. Transition the OIR to Ended test step

30.5.5.1. 🛑 Transition from Activated to Ended is allowed check

If the DSS does not allow a client with the utm.strategic_coordination scope to transition an operational intent reference from the Activated state to the Ended state, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.785426Z)

30.5.6. Attempt transition of an ended operational intent reference to an unauthorized state test step

30.5.6.1. 🛑 Transition from Ended to Nonconforming is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Ended state to the Nonconforming state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.787519Z)

30.5.6.2. 🛑 Transition from Ended to Contingent is forbidden check

If the DSS allows a client with the utm.strategic_coordination scope to transition an operational intent reference from the Ended state to the Contingent state, it is in violation of astm.f3548.v21.SCD0100 and astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.789112Z)

30.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

30.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.793487Z)

30.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

30.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.805501Z)

31. [S27] ASTM SCD DSS: Subscription and entity deletion interaction

31.1. Overview

Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly.

31.2. Resources

31.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

31.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

31.2.3. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

31.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

31.2.5. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

31.3. Setup test case

31.3.1. Ensure clean workspace test step

31.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

31.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:56.814197Z)

✅ uss2_dss (2024-12-19T16:17:56.816458Z)

✅ uss2_dss (2024-12-19T16:17:56.818697Z)

31.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:56.811827Z)

31.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

31.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

31.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:56.821553Z)

31.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:56.823719Z)

✅ uss2_dss (2024-12-19T16:17:56.825869Z)

✅ uss2_dss (2024-12-19T16:17:56.828016Z)

31.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

31.4. Subscription deletion is reflected on all DSS instances test case

This test case verifies that after a subscription is deleted from a DSS instance, it cannot be retrieved from any other DSS instance.

31.4.1. Create a subscription at every DSS in sequence test step

This test step will create a new subscription at every DSS, in sequence.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

31.4.1.1. Create subscription on a DSS instance

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

31.4.1.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 that the subscription creation succeeds.

✅ uss2_dss (2024-12-19T16:17:56.836341Z)

✅ uss2_dss (2024-12-19T16:17:56.845236Z)

✅ uss2_dss (2024-12-19T16:17:56.854311Z)

31.4.2. Delete a subscription at every DSS in sequence test step

This test step will delete the freshly created subscription at every DSS, in sequence. It then verifies that the subscription has been deleted from all DSS instances.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

31.4.2.1. Delete subscription on a DSS instance

This test step fragment validates that a query to remove a subscription succeeds.

31.4.2.1.1. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check that the subscription deletion succeeds.

✅ uss2_dss (2024-12-19T16:17:56.862163Z)

✅ uss1_dss (2024-12-19T16:17:56.875407Z)

✅ uss2_dss (2024-12-19T16:17:56.886202Z)

31.4.2.2. Get subscription query from all other DSS instances succeeds

This test step fragment validates that a query to read a subscription succeeds.

31.4.2.2.1. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check that the subscription retrieval from all DSS instance succeeds. It is expected to be not found, but that is validated in the check below.

✅ uss1_dss (2024-12-19T16:17:56.865570Z)

✅ uss2_dss (2024-12-19T16:17:56.868535Z)

✅ uss2_dss (2024-12-19T16:17:56.877709Z)

✅ uss2_dss (2024-12-19T16:17:56.879845Z)

✅ uss2_dss (2024-12-19T16:17:56.888496Z)

✅ uss1_dss (2024-12-19T16:17:56.890677Z)

31.4.2.3. 🛑 Subscription does not exist on all other DSS instances check

The subscription deleted on a DSS instance must have been removed from all other DSS instances.

If the subscription still exists on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,5a.

✅ uss2_dss, uss1_dss (2024-12-19T16:17:56.865631Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:56.868597Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.877752Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:17:56.879887Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:56.888541Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:17:56.890720Z)

31.5. OIR creation and modification does not trigger relevant notifications after subscription deletion test case

This test case verifies that after a subscription is deleted, newly created or modified OIRs will not receive the relevant subscriptions to notify from the DSS instance, regardless of which instance was used to create or modify the entity.

31.5.1. Create an OIR at every DSS in sequence test step

This test step will create an operational intent reference at every DSS, in sequence, each time verifying that the DSS does not require notification for any previously deleted 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)

31.5.1.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

31.5.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds.

✅ uss2_dss (2024-12-19T16:17:56.906906Z)

✅ uss1_dss (2024-12-19T16:17:56.922989Z)

✅ uss2_dss (2024-12-19T16:17:56.938924Z)

31.5.1.2. 🛑 DSS response does not contain the deleted subscriptions 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 does not include subscriptions deleted earlier.

If the DSS includes a deleted subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,5b.

✅ uss2_dss (2024-12-19T16:17:56.906967Z)

✅ uss1_dss (2024-12-19T16:17:56.923050Z)

✅ uss2_dss (2024-12-19T16:17:56.938984Z)

31.5.2. Modify an OIR at every DSS in sequence test step

This test step will modify an operational intent reference at every DSS, in sequence, each time verifying that the DSS does not require notification for any previously deleted subscription that intersects with the modified 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)

31.5.2.1. Modify OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

31.5.2.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check that the OIR modification query succeeds.

✅ uss2_dss (2024-12-19T16:17:56.955852Z)

✅ uss1_dss (2024-12-19T16:17:56.973109Z)

✅ uss2_dss (2024-12-19T16:17:56.989946Z)

31.5.2.2. 🛑 DSS response does not contain the deleted subscriptions check

The response from a DSS to a valid OIR modification request is expected to contain any relevant subscription for the OIR's extents. This does not include subscriptions deleted earlier.

If the DSS includes a deleted subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,5c.

✅ uss2_dss (2024-12-19T16:17:56.955915Z)

✅ uss1_dss (2024-12-19T16:17:56.973173Z)

✅ uss2_dss (2024-12-19T16:17:56.990009Z)

31.6. Cleanup

31.6.1. Clean any straggling OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

31.6.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:57.042823Z)

✅ uss2_dss (2024-12-19T16:17:57.045557Z)

✅ uss2_dss (2024-12-19T16:17:57.047895Z)

31.6.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:57.040347Z)

31.6.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:57.012236Z)

✅ uss2_dss (2024-12-19T16:17:57.027860Z)

✅ uss2_dss (2024-12-19T16:17:57.040288Z)

31.6.2. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

31.6.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:57.050958Z)

31.6.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:57.053252Z)

✅ uss2_dss (2024-12-19T16:17:57.055512Z)

✅ uss2_dss (2024-12-19T16:17:57.057630Z)

31.6.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

32. [S28] ASTM SCD DSS: Subscription and entity interaction

32.1. Overview

Create and mutate subscriptions as well as entities, and verify that the DSS handles notifications and expiry correctly.

32.2. Resources

32.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

32.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

32.2.3. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

32.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

32.2.5. utm_client_identity

ClientIdentityResource provides the identity that will be used to interact with the DSS.

✅ Provided by utm_client_identity in top-level resource pool.

32.3. Setup test case

32.3.1. Ensure clean workspace test step

32.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

32.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:17:57.064689Z)

✅ uss2_dss (2024-12-19T16:17:57.066900Z)

✅ uss2_dss (2024-12-19T16:17:57.069050Z)

32.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:17:57.062277Z)

32.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

32.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

32.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:17:57.071995Z)

32.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:17:57.074211Z)

✅ uss2_dss (2024-12-19T16:17:57.076406Z)

✅ uss2_dss (2024-12-19T16:17:57.078516Z)

✅ uss2_dss (2024-12-19T16:17:57.080630Z)

32.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This step ensures that no subscriptions and OIRs with the known test IDs exists in the DSS deployment.

This check was not applicable to this test run and is therefore not statused.

32.4. OIR creation and modification trigger relevant notifications test case

This test case verifies that newly created or modified OIRs will receive the relevant subscriptions to notify from the DSS instance, regardless of which instance was used to create the entity.

32.4.1. Create background subscription test step

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

32.4.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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.

Sets up the 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.

✅ uss2_dss (2024-12-19T16:17:57.089067Z)

32.4.2. 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)

32.4.2.1. Create OIR

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

32.4.2.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds

✅ uss2_dss (2024-12-19T16:17:57.105655Z)

✅ uss1_dss (2024-12-19T16:17:57.124407Z)

✅ uss2_dss (2024-12-19T16:17:57.145420Z)

32.4.2.2. 🛑 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 the subscription 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.

✅ uss2_dss (2024-12-19T16:17:57.105723Z)

✅ uss1_dss (2024-12-19T16:17:57.124476Z)

✅ uss2_dss (2024-12-19T16:17:57.145488Z)

32.4.2.3. 🛑 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.

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.105760Z)

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.124515Z)

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.145528Z)

32.4.3. Modify an OIR at every DSS in sequence test step

This test step will modify the previously created 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 modified 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)

32.4.3.1. Modify OIR

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

32.4.3.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check that the OIR modification query succeeds

✅ uss2_dss (2024-12-19T16:17:57.162714Z)

✅ uss1_dss (2024-12-19T16:17:57.180918Z)

✅ uss2_dss (2024-12-19T16:17:57.199453Z)

32.4.3.2. 🛑 DSS response contains the expected background subscription check

The response from a DSS to a valid OIR modification request is expected to contain any relevant subscription for the OIR's extents. This includes the subscription created earlier, as it is designed to intersect with the OIRs being modified.

If the DSS omits the intersecting subscription, it fails to implement astm.f3548.v21.DSS0210,A2-7-2,4c.

✅ uss2_dss (2024-12-19T16:17:57.162782Z)

✅ uss1_dss (2024-12-19T16:17:57.180983Z)

✅ uss2_dss (2024-12-19T16:17:57.199525Z)

32.4.3.3. 🛑 DSS returns the implicit subscriptions from intersecting OIRs check

The response from a DSS to a valid OIR modification 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 over time range A 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 modified, are in violation of astm.f3548.v21.DSS0210,A2-7-2,4c.

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.162824Z)

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.181026Z)

✅ uss2_dss, uss1_dss, uss2_dss (2024-12-19T16:17:57.199568Z)

32.5. Subscription creation returns relevant OIRs test case

This test case checks that, when a newly created subscription intersects with an existing OIR and that the subscription is intended for operational intent references, the DSS includes the relevant OIRs in the response to the creation.

32.5.1. Create a subscription at every DSS in sequence test step

This test step will create a new subscription at every DSS, in sequence, each time verifying that the DSS returns any OIRs that intersect with the newly created subscription.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

32.5.1.1. Create subscription on a DSS instance

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

32.5.1.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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 that the subscription creation succeeds.

✅ uss2_dss (2024-12-19T16:17:57.210305Z)

32.5.1.2. 🛑 DSS response contains the expected OIRs check

The response from a DSS to a valid subscription creation request is expected to contain any relevant OIRs for the subscription's extents if the subscription had the notify_for_op_intents flag set to true.

If the DSS omits the intersecting OIR, it fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4a.

✅ uss2_dss (2024-12-19T16:17:57.210382Z)

32.5.1.3. Get subscription query from all other DSS instances succeeds

This test step fragment validates that a query to read a subscription succeeds.

32.5.1.3.1. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:17:57.214908Z)

✅ uss2_dss (2024-12-19T16:17:57.219056Z)

32.5.1.4. 🛑 Subscription may be retrieved from all other DSS instances check

The subscription created on a DSS instance must be retrievable from all other DSS instances.

If the subscription does not exist on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4a.

✅ uss2_dss, uss1_dss (2024-12-19T16:17:57.214960Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:17:57.219129Z)

32.6. Expiration of subscriptions removes them test case

This test case validates that expired subscriptions (created explicitly) are removed from all DSS instances. To validate this requirement, the subscriptions that were previously created at each DSS instance are modified so that they expire shortly after the modification. Then it is checked that all the associated subscriptions were removed from all the DSS instances by searching for them in their planning area. Do note that they are not queried directly, as it is deemed acceptable for expired subscription that were not explicitly deleted to still be retrievable.

32.6.1. Expire explicit subscriptions at every DSS in sequence test step

This test step will modify explicit subscriptions that were previously created at each DSS instance so that they expire shortly after the modification.

Note that this step is run once for each involved DSS (that is, once for the primary DSS and once for every secondary DSS)

32.6.1.1. Modify subscription on a DSS instance so that it expires soon

This test step fragment validates that a query to update a subscription succeeds.

32.6.1.1.1. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check that the subscription modifications succeed and wait for them to expire.

✅ uss2_dss (2024-12-19T16:17:57.272228Z)

✅ uss1_dss (2024-12-19T16:17:57.280338Z)

✅ uss2_dss (2024-12-19T16:17:57.289766Z)

32.6.1.2. Search for subscriptions from all other DSS instances succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

32.6.1.2.1. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check that query succeeds.

✅ uss2_dss (2024-12-19T16:18:04.299345Z)

✅ uss2_dss (2024-12-19T16:18:04.313352Z)

✅ uss1_dss (2024-12-19T16:18:04.326494Z)

✅ uss1_dss (2024-12-19T16:18:04.339486Z)

✅ uss2_dss (2024-12-19T16:18:04.352492Z)

✅ uss2_dss (2024-12-19T16:18:04.365434Z)

32.6.1.3. 🛑 Subscription does not exist on all other DSS instances check

The explicit subscription expired on a DSS instance must have been removed from all other DSS instances.

If the subscription still exists on one of the other DSS instances, one of the instances fails to comply with astm.f3548.v21.DSS0210,A2-7-2,4d.

✅ uss2_dss, uss1_dss (2024-12-19T16:18:04.304286Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:04.318089Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.331095Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.344070Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:18:04.357077Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:04.370075Z)

32.7. Cleanup

32.7.1. Clean any straggling OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

32.7.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.418651Z)

✅ uss2_dss (2024-12-19T16:18:04.421289Z)

✅ uss2_dss (2024-12-19T16:18:04.423547Z)

32.7.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:04.416061Z)

32.7.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.389137Z)

✅ uss2_dss (2024-12-19T16:18:04.402841Z)

✅ uss2_dss (2024-12-19T16:18:04.416020Z)

32.7.2. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

32.7.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:04.427040Z)

32.7.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:04.431830Z)

✅ uss2_dss (2024-12-19T16:18:04.441375Z)

✅ uss2_dss (2024-12-19T16:18:04.444693Z)

✅ uss2_dss (2024-12-19T16:18:04.455650Z)

✅ uss2_dss (2024-12-19T16:18:04.466265Z)

32.7.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:04.439002Z)

✅ uss2_dss (2024-12-19T16:18:04.451920Z)

✅ uss2_dss (2024-12-19T16:18:04.462951Z)

✅ uss2_dss (2024-12-19T16:18:04.474382Z)

33. [S29] ASTM SCD DSS: Operational Intent Reference Key Validation

33.1. Overview

Verifies that a DSS requires from a client creating or updating operational intent references that they provide all OVNs for all currently relevant entities.

33.2. Resources

33.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

33.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

33.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

33.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

33.3. Setup test case

33.3.1. Ensure clean workspace test step

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

33.3.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.483499Z)

✅ uss2_dss (2024-12-19T16:18:04.485777Z)

✅ uss2_dss (2024-12-19T16:18:04.488062Z)

33.3.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:04.480835Z)

33.3.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This step ensures that no operational intent references with the known test IDs exists in the DSS.

This check was not applicable to this test run and is therefore not statused.

33.4. Key validation on creation test case

This test case will create multiple operational intent references and verify that the key field of the parameters to create or update an operational intent reference is properly validated.

That is: the DSS should require that the client provides the OVNs for each entity that is in the vicinity, both geographically and temporally, of the client's operational intent reference.

33.4.1. Create first OIR test step

This step creates one operational intent references. As no other operational intent reference is present, the key field may remain empty.

33.4.1.1. 🛑 First operational intent reference in area creation query succeeds check

With no potentially conflicting entity present, the DSS is expected to allow the creation of an operational intent without the client specifying any OVN in the key field.

If the DSS rejects a well-formed request to create the operational intent reference, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.503378Z)

33.4.2. Create second non-overlapping OIR test step

This step creates a second operational intent references that does not overlap in time with the first, and should therefore not require any entry in the key field.

33.4.2.1. 🛑 Second, non-overlapping operational intent reference creation succeeds check

With a single existing OIR in the area that is not overlapping in time, the DSS is expected to allow the creation of an operational intent without the client specifying any OVN in the key field.

If the DSS rejects a well-formed request to create the operational intent reference, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.517550Z)

33.4.3. Attempt OIR creation overlapping with first OIR test step

This test step will attempt to create an operational intent reference that intersects with the first of the previously created OIR, and expect the DSS to require its OVN to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

33.4.3.1. Non de-conflicted request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

33.4.3.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss2_dss (2024-12-19T16:18:04.527883Z)

33.4.3.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.542551Z)

33.4.3.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVN of the already existing and overlapping OIR fails.

✅ uss2_dss (2024-12-19T16:18:04.543830Z)

33.4.4. Attempt OIR creation overlapping with second OIR test step

This test step will attempt to create an operational intent reference that intersects with the second of the previously created OIR, and expect the DSS to require its OVN to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

33.4.4.1. Non de-conflicted request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

33.4.4.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss2_dss (2024-12-19T16:18:04.555963Z)

33.4.4.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.572751Z)

33.4.4.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVN of the already existing and overlapping OIR fails.

✅ uss2_dss (2024-12-19T16:18:04.574136Z)

33.4.5. Attempt OIR creation overlapping with both OIRs test step

This test step will attempt to create an operational intent reference that intersects with both of the previously created OIRs, and expect the DSS to require their OVNs to be provided in the key field.

This step will validate the response body for the HTTP 409 error response from the DSS when it contains the optional missing_operational_intents field.

33.4.5.1. Non de-conflicted creation request fails

This test step fragment validates that requests for operational intent reference creation that don't show that they have been de-conflicted are rejected with the proper error.

33.4.5.1.1. 🛑 Create operational intent reference with missing OVN fails check

If the DSS allows the creation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2a

✅ uss2_dss (2024-12-19T16:18:04.589701Z)

33.4.5.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.609797Z)

33.4.5.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

Checks that an attempt to create an OIR without specifying the OVNs of the already existing and overlapping OIRs fails.

✅ uss2_dss (2024-12-19T16:18:04.611538Z)

33.4.6. Attempt valid OIR creation overlapping with both OIRs test step

This test step will attempt to create an operational intent reference that intersects with both of the previously created OIRs, while providing the required OVNs in the key field.

After this test step succeeds, three OIRs are expected to exist in the DSS, with one intersecting with the two others.

33.4.6.1. 🛑 Create operational intent reference with proper OVNs succeeds check

If the DSS prevents the creation of an operational intent reference that is providing all required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.630844Z)

33.5. Key validation on mutation test case

This test case will update multiple operational intent references and verify that the key field of the parameters to create or update an operational intent reference is properly validated.

That is: the DSS should require that the client provides the OVNs for each entity that is in the vicinity, both geographically and temporally, of the client's operational intent reference.

33.5.1. Attempt mutation with both OVNs missing test step

This test step will attempt to mutate the third previously created operational intent reference so that it keeps overlapping with the others, while omitting their OVNs in the key field.

The expectation is that the DSS will require the two missing OVNs.

33.5.1.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

33.5.1.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss2_dss (2024-12-19T16:18:04.646785Z)

33.5.1.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.661254Z)

33.5.1.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.662752Z)

33.5.2. Attempt mutation with first OVN missing test step

This test step will attempt to mutate the third previously created operational intent reference so that it keeps overlapping with the others, while omitting the first OVN in the key field.

The expectation is that the DSS will require the missing OVN.

33.5.2.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

33.5.2.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss2_dss (2024-12-19T16:18:04.673615Z)

33.5.2.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.684615Z)

33.5.2.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.685530Z)

33.5.3. Attempt mutation to overlap with the first OIR test step

This test step will attempt to mutate the third previously created operational intent reference so that it overlaps with the first one, while omitting the first OVN in the key field.

The expectation is that the DSS will require the missing OVN.

33.5.3.1. Non de-conflicted mutation request fails

This test step fragment validates that requests for operational intent references updates that don't show that they have been de-conflicted are rejected with the proper error.

33.5.3.1.1. 🛑 Mutate operational intent reference with missing OVN fails check

If the DSS allows the mutation of an operational intent reference that is missing the required OVNs for other entities that exist in its geo-temporal vicinity, it is in violation of astm.f3548.v21.DSS0005,1 and astm.f3548.v21.DSS0210,A2-7-2,2b

✅ uss2_dss (2024-12-19T16:18:04.697242Z)

33.5.3.1.2. 🛑 Failure response due to conflict has proper format check

The DSS is expected to return a HTTP 409 error response when the creation of an operational intent reference fails due to a conflict. This response is expected to conform to the OpenAPI spec that is part of astm.f3548.v21.DSS0005,1.

Should this not be the case, then the DSS is in violation of the aforementioned requirement.

✅ uss2_dss (2024-12-19T16:18:04.708545Z)

33.5.3.1.3. 🛑 Failure response due to conflict contains conflicting OIRs check

If the DSS returns a HTTP 409 error response due to a conflict, and the response body contains a missing_operational_intents field, this field is expected to contain the conflicting OVNs.

If the field exists but does not contain the conflicting OVNs, then the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.709458Z)

33.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

33.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.763476Z)

✅ uss2_dss (2024-12-19T16:18:04.767065Z)

✅ uss2_dss (2024-12-19T16:18:04.769901Z)

33.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:04.760470Z)

33.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.729957Z)

✅ uss2_dss (2024-12-19T16:18:04.744528Z)

✅ uss2_dss (2024-12-19T16:18:04.760428Z)

34. [S30] ASTM SCD DSS: Operational Intent Reference Synchronization

34.1. Overview

Verifies that all CRUD operations on operational intent references performed on a given DSS instance are properly propagated to every other DSS instance participating in the deployment.

34.2. Resources

34.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

34.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

34.2.3. id_generator

IDGeneratorResource providing the operational intent reference ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

34.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent reference will be created.

✅ Provided by planning_area in top-level resource pool.

34.2.5. client_identity

ClientIdentityResource to be used for this scenario.

✅ Provided by utm_client_identity in top-level resource pool.

34.3. Setup test case

34.3.1. Ensure clean workspace test step

34.3.1.1. Clean any existing operational intents references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

34.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.791804Z)

34.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:04.788694Z)

34.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

34.4. OIR synchronization test case

This test case creates an operational intent reference on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

34.4.1. Create OIR validation test step

34.4.1.1. Create OIR

This test step fragment validates that:

34.4.1.1.1. Query Success

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

34.4.1.1.2. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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

✅ uss2_dss (2024-12-19T16:18:04.807274Z)

34.4.1.1.3. Response Format

This test step fragment validates that an operational intent references creation returns a body in the correct format.

34.4.1.1.4. 🛑 Create operational intent reference response format conforms to spec check

The response to a successful operational intent reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

✅ uss2_dss (2024-12-19T16:18:04.820608Z)

34.4.1.1.5. 🛑 Create operational intent reference response content is correct check

A successful operational intent reference creation query is expected to return a body, the content of which reflects the created operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Verify that an operational intent reference can be created on the primary DSS.

✅ uss2_dss (2024-12-19T16:18:04.821914Z)

34.4.1.2. OIR Content is correct

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

34.4.1.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.821592Z)

34.4.1.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.821641Z)

34.4.1.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.821680Z)

34.4.1.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

34.4.1.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.821716Z)

34.4.1.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.821753Z)

34.4.1.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.821786Z)

34.4.1.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.821857Z)

34.4.1.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.821820Z)

34.4.1.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.821892Z)

34.4.1.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS under test is properly formatted and contains the expected content.

This check was not applicable to this test run and is therefore not statused.

34.4.2. Retrieve newly created OIR test step

Retrieve and validate synchronization of the created operational intent at every DSS provided in dss_instances.

34.4.2.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

34.4.2.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.827132Z)

✅ uss2_dss (2024-12-19T16:18:04.832426Z)

34.4.2.2. Newly created OIR can be consistently retrieved from all DSS instances check

If the operational intent retrieved from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1d, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.828094Z)

✅ uss2_dss (2024-12-19T16:18:04.833401Z)

34.4.2.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

34.4.2.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.827191Z)

✅ uss2_dss (2024-12-19T16:18:04.832484Z)

34.4.2.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

34.4.2.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.827239Z)

✅ uss2_dss (2024-12-19T16:18:04.832532Z)

34.4.2.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.827276Z)

✅ uss2_dss (2024-12-19T16:18:04.832568Z)

34.4.2.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.827309Z)

✅ uss2_dss (2024-12-19T16:18:04.832601Z)

34.4.2.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.828033Z)

✅ uss2_dss (2024-12-19T16:18:04.833309Z)

34.4.2.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the created operational intent reference. Confirm that the operational intent reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.828072Z)

✅ uss2_dss (2024-12-19T16:18:04.833373Z)

34.4.3. Search for newly created OIR test step

Search for and validate synchronization of the created operational intent at every DSS provided in dss_instances.

34.4.3.1. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

34.4.3.1.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.838090Z)

✅ uss2_dss (2024-12-19T16:18:04.843667Z)

34.4.3.2. Newly created OIR can be consistently searched for from all DSS instances check

If the operational intent searched from a secondary DSS instance is not consistent with the newly created one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1a, astm.f3548.v21.DSS0210,A2-7-2,1c, , astm.f3548.v21.DSS0215 and astm.f3548.v21.DSS0020.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.839055Z)

✅ uss2_dss (2024-12-19T16:18:04.844631Z)

34.4.3.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

34.4.3.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

34.4.3.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.838143Z)

✅ uss2_dss (2024-12-19T16:18:04.843724Z)

34.4.3.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.838189Z)

✅ uss2_dss (2024-12-19T16:18:04.843772Z)

34.4.3.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.838225Z)

✅ uss2_dss (2024-12-19T16:18:04.843807Z)

34.4.3.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.838257Z)

✅ uss2_dss (2024-12-19T16:18:04.843840Z)

34.4.3.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.838995Z)

✅ uss2_dss (2024-12-19T16:18:04.844571Z)

34.4.3.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the operational intent in relevant search results. Confirm that the operational intent reference that was just created is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.839034Z)

✅ uss2_dss (2024-12-19T16:18:04.844610Z)

34.4.4. Mutate OIR test step

This test step mutates the previously created operational intent reference to verify that the DSS reacts properly: notably, it checks that the operational intent reference version is updated, including for changes that are not directly visible, such as changing the operational intent reference's footprint.

34.4.4.1. Update OIR

This test step fragment validates that operational intent references can be updated.

34.4.4.1.1. Update query succeeds

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

34.4.4.1.2. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference.

Check query succeeds.

✅ uss2_dss (2024-12-19T16:18:04.863051Z)

34.4.4.1.3. Response Format

This test step fragment validates that updates to operational intent references return a body in the correct format.

34.4.4.1.4. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format

✅ uss2_dss (2024-12-19T16:18:04.876010Z)

34.4.4.1.5. 🛑 Mutate operational intent reference response content is correct check

A successful operational intent reference mutation query is expected to return a well-defined body, the content of which reflects the updated operational intent reference. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that the operational intent reference can be mutated.

✅ uss2_dss (2024-12-19T16:18:04.877524Z)

34.4.4.2. Validate OIR

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

34.4.4.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.877040Z)

34.4.4.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.877090Z)

34.4.4.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877128Z)

34.4.4.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

34.4.4.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.877165Z)

34.4.4.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877201Z)

34.4.4.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.877235Z)

34.4.4.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877306Z)

34.4.4.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877268Z)

34.4.4.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877422Z)

34.4.4.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

34.4.4.3. OIR Versions are correct

This test step fragment attempts to validate a single operational intent reference returned by the DSS, usually after it has been mutated.

The code for these checks lives in the oir_validator.py class.

34.4.4.3.1. ⚠️ Mutated operational intent reference version is updated check

Following a mutation, the DSS needs to update the operational intent reference version, otherwise it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.877501Z)

34.4.4.3.2. ⚠️ Mutated operational intent reference OVN is updated check

Following a mutation, the DSS needs to update the operational intent reference OVN, otherwise it is in violation of astm.f3548.v21.DSS0005,1.

Verify that the operational intent reference's version fields have been updated.

✅ uss2_dss (2024-12-19T16:18:04.877464Z)

34.4.5. Retrieve updated OIR test step

Retrieve and validate synchronization of the updated operational intent at every DSS provided in dss_instances.

34.4.5.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

34.4.5.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.881978Z)

✅ uss2_dss (2024-12-19T16:18:04.886763Z)

34.4.5.2. Updated OIR can be consistently retrieved from all DSS instances check

If the operational intent retrieved from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b and astm.f3548.v21.DSS0210,A2-7-2,1d.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882931Z)

✅ uss2_dss (2024-12-19T16:18:04.887730Z)

34.4.5.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

34.4.5.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882034Z)

✅ uss2_dss (2024-12-19T16:18:04.886821Z)

34.4.5.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

34.4.5.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882081Z)

✅ uss2_dss (2024-12-19T16:18:04.886868Z)

34.4.5.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882117Z)

✅ uss2_dss (2024-12-19T16:18:04.886903Z)

34.4.5.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882148Z)

✅ uss2_dss (2024-12-19T16:18:04.886946Z)

34.4.5.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882871Z)

✅ uss2_dss (2024-12-19T16:18:04.887664Z)

34.4.5.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS provides direct access to the updated operational intent reference. Confirm that the operational intent reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.882910Z)

✅ uss2_dss (2024-12-19T16:18:04.887703Z)

34.4.6. Search for updated OIR test step

Search for and validate synchronization of the updated operational intent at every DSS provided in dss_instances.

34.4.6.1. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

34.4.6.1.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.892734Z)

✅ uss2_dss (2024-12-19T16:18:04.900099Z)

34.4.6.2. Updated OIR can be consistently searched for from all DSS instances check

If the operational intent searched from a secondary DSS instance is not consistent with the updated one on the primary DSS instance, this check will fail per astm.f3548.v21.DSS0210,A2-7-2,1b and astm.f3548.v21.DSS0210,A2-7-2,1c.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.894311Z)

✅ uss2_dss (2024-12-19T16:18:04.901699Z)

34.4.6.3. OIR is synchronized

This test step fragment validates that operational intent references are properly synchronized across a set of DSS instances.

34.4.6.3.1. 🛑 Operational intent reference can be found at every DSS check

If the previously created or mutated operational intent reference cannot be found at a DSS, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

This check was not applicable to this test run and is therefore not statused.

34.4.6.3.2. 🛑 Propagated operational intent reference general area is synchronized check

When querying a secondary DSS for operational intents in the planning area that contains the propagated operational intent, if the propagated operational intent is not contained in the response, then the general area in which the propagated operational intent is located is not synchronized across DSS instances. As such, either the primary or the secondary DSS fails to properly implement one of the following requirements:

astm.f3548.v21.DSS0210,2e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.892825Z)

✅ uss2_dss (2024-12-19T16:18:04.900185Z)

34.4.6.3.3. ⚠️ Propagated operational intent reference contains the correct manager check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct manager, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2b, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.892918Z)

✅ uss2_dss (2024-12-19T16:18:04.900262Z)

34.4.6.3.4. ⚠️ Propagated operational intent reference contains the correct USS base URL check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct USS base URL, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.892996Z)

✅ uss2_dss (2024-12-19T16:18:04.900341Z)

34.4.6.3.5. ⚠️ Propagated operational intent reference contains the correct state check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct state, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.893066Z)

✅ uss2_dss (2024-12-19T16:18:04.900400Z)

34.4.6.3.6. ⚠️ Propagated operational intent reference contains the correct start time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct start time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.894212Z)

✅ uss2_dss (2024-12-19T16:18:04.901588Z)

34.4.6.3.7. ⚠️ Propagated operational intent reference contains the correct end time check

If the operational intent reference returned by a DSS to which the operational intent reference was synchronized to does not contain the correct end time, either one of the instances at which the operational intent reference was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,2f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that each DSS returns the operational intent in relevant search results. Confirm that the operational intent reference that was just updated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:04.894264Z)

✅ uss2_dss (2024-12-19T16:18:04.901661Z)

34.4.7. Delete OIR test step

Attempt to delete the operational intent reference in various ways and ensure that the DSS reacts properly.

This also checks that the operational intent reference data returned by a successful deletion is correct.

34.4.7.1. Delete OIR

This test step fragment validates that operational intent references can be deleted

34.4.7.1.1. 🛑 Delete operational intent reference query succeeds check

A query to delete an operational intent reference, by its owner and when the correct OVN is provided, should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.917046Z)

34.4.7.1.2. 🛑 Delete operational intent reference response format conforms to spec check

The response to a successful operational intent reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.930646Z)

34.4.7.1.3. 🛑 Delete operational intent reference response content is correct check

A successful operational intent reference deletion query is expected to return a body, the content of which reflects the operational intent reference at the moment of deletion. If the content of the response does not correspond to what was requested, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

This check will usually be performing a series of sub-checks from the validate fragments.

Confirm that an operational intent reference can be deleted.

✅ uss2_dss (2024-12-19T16:18:04.932068Z)

34.4.7.2. Validate OIR

This test step fragment attempts to validate the content of a single operational intent reference returned by the DSS.

Fields that require different handling based on if the operational intent reference was mutated or not are covered

The code for these checks lives in the oir_validator.py class.

34.4.7.2.1. ⚠️ Returned operational intent reference ID is correct check

If the returned operational intent reference ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.931672Z)

34.4.7.2.2. ⚠️ Returned operational intent reference has a manager check

If the returned operational intent reference has no manager defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.931723Z)

34.4.7.2.3. ⚠️ Returned operational intent reference manager is correct check

The returned manager must correspond to the identity of the client that created the operational intent at the DSS, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.931760Z)

34.4.7.2.4. ⚠️ Returned operational intent reference state is correct check

The returned state must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

34.4.7.2.5. ⚠️ Returned operational intent reference has an USS base URL check

If the returned operational intent reference has no USS base URL defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.931796Z)

34.4.7.2.6. ⚠️ Returned operational intent reference base URL is correct check

The returned USS base URL must be prefixed with the USS base URL that was provided at operational intent reference creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.931834Z)

34.4.7.2.7. ⚠️ Returned operational intent reference has a start time check

If the returned operational intent reference has no start time defined, astm.f3548.v21.DSS0005,1 is not respected.

✅ uss2_dss (2024-12-19T16:18:04.931868Z)

34.4.7.2.8. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.931940Z)

34.4.7.2.9. ⚠️ Returned operational intent reference has an end time check

Operational intent references need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.931902Z)

34.4.7.2.10. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.931976Z)

34.4.7.2.11. ⚠️ Returned operational intent reference has a version check

If the returned operational intent reference has no version defined, astm.f3548.v21.DSS0005,1 is not respected.

Verify that the operational intent reference returned by the DSS via the deletion is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

34.4.7.3. OIR Versions are correct

This test step fragment attempts to validate a single operational intent reference returned by the DSS, usually after it has been created or to confirm it has not been mutated by an action.

The code for these checks lives in the oir_validator.py class.

34.4.7.3.1. ⚠️ Non-mutated operational intent reference keeps the same version check

If the version of the operational intent reference is updated without there having been any mutation of the operational intent reference, the DSS is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.932046Z)

34.4.7.3.2. ⚠️ Non-mutated operational intent reference keeps the same OVN check

If the OVN of the operational intent reference is updated without there having been any mutation of the operational intent reference, the DSS is in violation of astm.f3548.v21.DSS0005,1.

Verify that the operational intent reference's version fields are as expected.

✅ uss2_dss (2024-12-19T16:18:04.932012Z)

34.4.8. Query deleted OIR test step

Attempt to query and search for the deleted operational intent reference in various ways

34.4.8.1. Get OIR query

This test step fragment validates that a query to retrieve an operational intent reference with valid parameters succeeds.

34.4.8.1.1. 🛑 Get operational intent reference by ID check

If an operational intent reference cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,1.

Check that read query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.935210Z)

✅ uss2_dss (2024-12-19T16:18:04.941187Z)

34.4.8.2. 🛑 Deleted OIR cannot be retrieved from all DSS instances check

If a DSS returns an operational intent reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the operational intent reference is in violation of astm.f3548.v21.DSS0210,2a and astm.f3548.v21.DSS0210,A2-7-2,3b.

✅ uss2_dss, uss1_dss (2024-12-19T16:18:04.935258Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:04.941233Z)

34.4.8.3. Search OIR

This test step fragment validates that a query to search for operational intent references with valid parameters succeeds.

34.4.8.3.1. 🛑 Successful operational intent reference search query check

If the DSS fails to let us search in the area for which the OIR was created, it is failing to meet astm.f3548.v21.DSS0005,1.

Check that search query succeeds.

✅ uss1_dss (2024-12-19T16:18:04.938675Z)

✅ uss2_dss (2024-12-19T16:18:04.944495Z)

34.4.8.4. 🛑 Deleted OIR cannot be searched for from all DSS instances check

If a DSS returns an operational intent reference that was previously successfully deleted from the primary DSS, either one of the primary DSS or the DSS that returned the operational intent reference is in violation of astm.f3548.v21.DSS0210,2a and astm.f3548.v21.DSS0210,A2-7-2,3a.

✅ uss2_dss, uss1_dss (2024-12-19T16:18:04.938722Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:04.944546Z)

34.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

34.5.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.951154Z)

34.5.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:04.948704Z)

34.5.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1. ∅ This check was not applicable to this test run and is therefore not statused.

35. [S31] ASTM SCD DSS: Interfaces authentication

35.1. Overview

Ensures that a DSS properly authenticates requests to all its endpoints.

Note that this does not cover authorization.

35.2. Resources

35.2.1. dss

DSSInstanceResource to be tested in this scenario.

Note that to benefit from the maximum coverage, the DSS' AuthAdapterResource must be able to obtain credentials for multiple scopes (so that a wrong scope may be used in place of the correct one) as well as an empty scope (that is, provide credentials where the scope is an empty string).

This scenario will check for the scope's availability and transparently ignore checks that can't be conducted.

At least one of the following scopes needs to be available for this scenario to at least partially run:

In order to verify each endpoint group, all scopes above must be available.

Optional scopes that will allow the scenario to provide additional coverage:

✅ Provided by instance 2 in dss_instances in top-level resource pool.

35.2.2. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

35.2.3. planning_area

PlanningAreaResource describes the 3D volume in which entities will be created.

✅ Provided by planning_area in top-level resource pool.

35.3. Setup test case

To perform this scenario, the area must be clear of test entities with the IDs we intend to use.

35.3.1. Ensure clean workspace test step

35.3.1.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

35.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:04.955305Z)

35.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

35.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

35.3.1.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

35.3.1.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:04.971928Z)

35.3.1.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:04.957771Z)

35.3.1.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

35.3.1.3. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

35.3.1.3.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:04.960701Z)

35.3.1.3.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

This check was not applicable to this test run and is therefore not statused.

35.3.1.3.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This step ensures that the availability for the test identifier is set to Unknown.

This check was not applicable to this test run and is therefore not statused.

35.3.1.4. Availability can be requested

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

35.3.1.4.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:04.964114Z)

35.3.1.5. Availability can be set

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

35.3.1.5.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

This check was not applicable to this test run and is therefore not statused.

35.4. Endpoint authorization test case

This test case ensures that the DSS properly authenticates requests to all its endpoints.

35.4.1. Subscription endpoints authentication test step

35.4.1.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:04.987822Z)

✅ uss2_dss (2024-12-19T16:18:04.996543Z)

✅ uss2_dss (2024-12-19T16:18:05.012553Z)

✅ uss2_dss (2024-12-19T16:18:05.021090Z)

✅ uss2_dss (2024-12-19T16:18:05.034589Z)

✅ uss2_dss (2024-12-19T16:18:05.043075Z)

✅ uss2_dss (2024-12-19T16:18:05.057909Z)

✅ uss2_dss (2024-12-19T16:18:05.066677Z)

✅ uss2_dss (2024-12-19T16:18:05.087719Z)

✅ uss2_dss (2024-12-19T16:18:05.097862Z)

✅ uss2_dss (2024-12-19T16:18:05.107999Z)

✅ uss2_dss (2024-12-19T16:18:05.118383Z)

✅ uss2_dss (2024-12-19T16:18:05.139727Z)

✅ uss2_dss (2024-12-19T16:18:05.156451Z)

✅ uss2_dss (2024-12-19T16:18:05.172092Z)

✅ uss2_dss (2024-12-19T16:18:05.187825Z)

✅ uss2_dss (2024-12-19T16:18:05.210715Z)

✅ uss2_dss (2024-12-19T16:18:05.226372Z)

✅ uss2_dss (2024-12-19T16:18:05.242289Z)

✅ uss2_dss (2024-12-19T16:18:05.257347Z)

✅ uss2_dss (2024-12-19T16:18:05.281002Z)

✅ uss2_dss (2024-12-19T16:18:05.295442Z)

✅ uss2_dss (2024-12-19T16:18:05.306796Z)

✅ uss2_dss (2024-12-19T16:18:05.319828Z)

35.4.1.2. 🛑 Create subscription with missing credentials check

If the DSS under test allows the creation of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:04.987890Z)

35.4.1.3. 🛑 Create subscription with invalid credentials check

If the DSS under test allows the creation of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.012617Z)

35.4.1.4. 🛑 Create subscription with missing scope check

If the DSS under test allows the creation of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.034648Z)

35.4.1.5. 🛑 Create subscription with incorrect scope check

If the DSS under test allows the creation of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.057974Z)

35.4.1.6. 🛑 Create subscription with valid credentials check

If the DSS does not allow the creation of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:05.075123Z)

35.4.1.7. 🛑 Get subscription with missing credentials check

If the DSS under test allows the fetching of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.077432Z)

35.4.1.8. 🛑 Get subscription with invalid credentials check

If the DSS under test allows the fetching of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.089522Z)

35.4.1.9. 🛑 Get subscription with missing scope check

If the DSS under test allows the fetching of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.099444Z)

35.4.1.10. 🛑 Get subscription with incorrect scope check

If the DSS under test allows the fetching of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.109865Z)

35.4.1.11. 🛑 Get subscription with valid credentials check

If the DSS does not allow fetching a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:05.123380Z)

35.4.1.12. 🛑 Mutate subscription with missing credentials check

If the DSS under test allows the mutation of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.130699Z)

35.4.1.13. 🛑 Mutate subscription with invalid credentials check

If the DSS under test allows the mutation of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.146969Z)

35.4.1.14. 🛑 Mutate subscription with missing scope check

If the DSS under test allows the mutation of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.163178Z)

35.4.1.15. 🛑 Mutate subscription with incorrect scope check

If the DSS under test allows the mutation of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.179112Z)

35.4.1.16. 🛑 Mutate subscription with valid credentials check

If the DSS does not allow the mutation of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:05.195480Z)

35.4.1.17. 🛑 Delete subscription with missing credentials check

If the DSS under test allows the deletion of a subscription without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.201734Z)

35.4.1.18. 🛑 Delete subscription with invalid credentials check

If the DSS under test allows the deletion of a subscription with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.217492Z)

35.4.1.19. 🛑 Delete subscription with missing scope check

If the DSS under test allows the deletion of a subscription with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.232446Z)

35.4.1.20. 🛑 Delete subscription with incorrect scope check

If the DSS under test allows the deletion of a subscription with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.248499Z)

35.4.1.21. 🛑 Delete subscription with valid credentials check

If the DSS does not allow the deletion of a subscription when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:05.265114Z)

✅ uss2_dss (2024-12-19T16:18:05.268444Z)

35.4.1.22. 🛑 Search subscriptions with missing credentials check

If the DSS under test allows searching for subscriptions without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.270420Z)

35.4.1.23. 🛑 Search subscriptions with invalid credentials check

If the DSS under test allows searching for subscriptions with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.283259Z)

35.4.1.24. 🛑 Search subscriptions with missing scope check

If the DSS under test allows searching for subscriptions with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.297850Z)

35.4.1.25. 🛑 Search subscriptions with incorrect scope check

If the DSS under test allows searching for subscriptions with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.309496Z)

35.4.1.26. 🛑 Search subscriptions with valid credentials check

If the DSS does not allow searching for subscriptions when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:05.324450Z)

35.4.2. Operational intents endpoints authentication test step

35.4.2.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.339879Z)

✅ uss2_dss (2024-12-19T16:18:05.353331Z)

✅ uss2_dss (2024-12-19T16:18:05.366483Z)

✅ uss2_dss (2024-12-19T16:18:05.380532Z)

✅ uss2_dss (2024-12-19T16:18:05.405369Z)

✅ uss2_dss (2024-12-19T16:18:05.415384Z)

✅ uss2_dss (2024-12-19T16:18:05.425238Z)

✅ uss2_dss (2024-12-19T16:18:05.435727Z)

✅ uss2_dss (2024-12-19T16:18:05.456287Z)

✅ uss2_dss (2024-12-19T16:18:05.473158Z)

✅ uss2_dss (2024-12-19T16:18:05.489256Z)

✅ uss2_dss (2024-12-19T16:18:05.510618Z)

✅ uss2_dss (2024-12-19T16:18:05.535262Z)

✅ uss2_dss (2024-12-19T16:18:05.546211Z)

✅ uss2_dss (2024-12-19T16:18:05.557993Z)

✅ uss2_dss (2024-12-19T16:18:05.572419Z)

✅ uss2_dss (2024-12-19T16:18:05.598559Z)

✅ uss2_dss (2024-12-19T16:18:05.611693Z)

✅ uss2_dss (2024-12-19T16:18:05.623132Z)

✅ uss2_dss (2024-12-19T16:18:05.634181Z)

35.4.2.2. 🛑 Create operational intent reference with missing credentials check

If the DSS under test allows the creation of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.330857Z)

35.4.2.3. 🛑 Create operational intent reference with invalid credentials check

If the DSS under test allows the creation of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.344545Z)

35.4.2.4. 🛑 Create operational intent reference with missing scope check

If the DSS under test allows the creation of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.357762Z)

35.4.2.5. 🛑 Create operational intent reference with incorrect scope check

If the DSS under test allows the creation of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.371447Z)

35.4.2.6. 🛑 Create operational intent reference with valid credentials check

If the DSS does not allow the creation of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.391687Z)

35.4.2.7. Create response format

This test step fragment validates that an operational intent references creation returns a body in the correct format.

35.4.2.7.1. 🛑 Create operational intent reference response format conforms to spec check

The response to a successful operational intent reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format of a creation request.

✅ uss2_dss (2024-12-19T16:18:05.392548Z)

35.4.2.8. 🛑 Get operational intent reference with missing credentials check

If the DSS under test allows the fetching of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.394022Z)

35.4.2.9. 🛑 Get operational intent reference with invalid credentials check

If the DSS under test allows the fetching of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.407117Z)

35.4.2.10. 🛑 Get operational intent reference with missing scope check

If the DSS under test allows the fetching of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.416870Z)

35.4.2.11. 🛑 Get operational intent reference with incorrect scope check

If the DSS under test allows the fetching of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.427052Z)

35.4.2.12. 🛑 Get operational intent reference with valid credentials check

If the DSS does not allow fetching an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.439737Z)

35.4.2.13. 🛑 Mutate operational intent reference with missing credentials check

If the DSS under test allows the mutation of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.445560Z)

35.4.2.14. 🛑 Mutate operational intent reference with invalid credentials check

If the DSS under test allows the mutation of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.463689Z)

35.4.2.15. 🛑 Mutate operational intent reference with missing scope check

If the DSS under test allows the mutation of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.479534Z)

35.4.2.16. 🛑 Mutate operational intent reference with incorrect scope check

If the DSS under test allows the mutation of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.496171Z)

35.4.2.17. 🛑 Mutate operational intent reference with valid credentials check

If the DSS does not allow the mutation of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.523530Z)

35.4.2.18. Mutate response format

This test step fragment validates that updates to operational intent references return a body in the correct format.

35.4.2.18.1. 🛑 Mutate operational intent reference response format conforms to spec check

The response to a successful operational intent reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,1.

Check response format of a mutation.

✅ uss2_dss (2024-12-19T16:18:05.524396Z)

35.4.2.19. 🛑 Delete operational intent reference with missing credentials check

If the DSS under test allows the deletion of an operational intent without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.526053Z)

35.4.2.20. 🛑 Delete operational intent reference with invalid credentials check

If the DSS under test allows the deletion of an operational intent with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.537275Z)

35.4.2.21. 🛑 Delete operational intent reference with missing scope check

If the DSS under test allows the deletion of an operational intent with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.548034Z)

35.4.2.22. 🛑 Delete operational intent reference with incorrect scope check

If the DSS under test allows the deletion of an operational intent with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.560473Z)

35.4.2.23. 🛑 Delete operational intent reference with valid credentials check

If the DSS does not allow the deletion of an operational intent when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.581888Z)

35.4.2.24. 🛑 Search operational intent references with missing credentials check

If the DSS under test allows searching for operational intents without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.585169Z)

35.4.2.25. 🛑 Search operational intent references with invalid credentials check

If the DSS under test allows searching for operational intents with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.601045Z)

35.4.2.26. 🛑 Search operational intent references with missing scope check

If the DSS under test allows searching for operational intents with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.613710Z)

35.4.2.27. 🛑 Search operational intent references with incorrect scope check

If the DSS under test allows searching for operational intents with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.625750Z)

35.4.2.28. 🛑 Search operational intent references with valid credentials check

If the DSS does not allow searching for operational intents when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:05.638244Z)

35.4.3. Availability endpoints authentication test step

35.4.3.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:05.649887Z)

✅ uss2_dss (2024-12-19T16:18:05.663115Z)

✅ uss2_dss (2024-12-19T16:18:05.674595Z)

✅ uss2_dss (2024-12-19T16:18:05.684650Z)

✅ uss2_dss (2024-12-19T16:18:05.706597Z)

✅ uss2_dss (2024-12-19T16:18:05.720993Z)

✅ uss2_dss (2024-12-19T16:18:05.734385Z)

✅ uss2_dss (2024-12-19T16:18:05.748344Z)

35.4.3.2. 🛑 Read availability with missing credentials check

If the DSS under test allows the fetching of a USS's availability without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.641032Z)

35.4.3.3. 🛑 Read availability with invalid credentials check

If the DSS under test allows the fetching of a USS's availability with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.652913Z)

35.4.3.4. 🛑 Read availability with missing scope check

If the DSS under test allows the fetching of a USS's availability with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.664708Z)

35.4.3.5. 🛑 Read availability with incorrect scope check

If the DSS under test allows the fetching of a USS's availability with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.676294Z)

35.4.3.6. 🛑 Read availability with valid credentials check

If the DSS does not allow fetching a USS's availability when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:05.687649Z)

✅ uss2_dss (2024-12-19T16:18:05.691852Z)

✅ uss2_dss (2024-12-19T16:18:05.711816Z)

✅ uss2_dss (2024-12-19T16:18:05.725680Z)

✅ uss2_dss (2024-12-19T16:18:05.739246Z)

35.4.3.7. 🛑 USS Availability Get response format conforms to spec check

The response to a successful USS Availability request is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21, otherwise, the DSS is failing to implement astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:05.687885Z)

35.4.3.8. 🛑 Set availability with missing credentials check

If the DSS under test allows the setting of a USS's availability without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.691903Z)

35.4.3.9. 🛑 Set availability with invalid credentials check

If the DSS under test allows the setting of a USS's availability with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.711866Z)

35.4.3.10. 🛑 Set availability with missing scope check

If the DSS under test allows the setting of a USS's availability with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.725718Z)

35.4.3.11. 🛑 Set availability with incorrect scope check

If the DSS under test allows the setting of a USS's availability with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.739285Z)

35.4.3.12. 🛑 Set availability with valid credentials check

If the DSS does not allow setting a USS's availability when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:05.753076Z)

35.4.3.13. 🛑 USS Availability Set response format conforms to spec check

The response to a successful USS Availability Set request is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21, otherwise, the DSS is failing to implement astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:05.753343Z)

35.4.4. Constraint reference endpoints authentication test step

35.4.4.1. 🛑 Unauthorized requests return the proper error message body check

If the DSS under test does not return a proper error message body when an unauthorized request is received, it fails to properly implement the OpenAPI specification that is part of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:05.769119Z)

✅ uss2_dss (2024-12-19T16:18:05.784427Z)

✅ uss2_dss (2024-12-19T16:18:05.798102Z)

✅ uss2_dss (2024-12-19T16:18:05.812110Z)

✅ uss2_dss (2024-12-19T16:18:05.831534Z)

✅ uss2_dss (2024-12-19T16:18:05.841917Z)

✅ uss2_dss (2024-12-19T16:18:05.853759Z)

✅ uss2_dss (2024-12-19T16:18:05.864068Z)

✅ uss2_dss (2024-12-19T16:18:05.881536Z)

✅ uss2_dss (2024-12-19T16:18:05.895721Z)

✅ uss2_dss (2024-12-19T16:18:05.909118Z)

✅ uss2_dss (2024-12-19T16:18:05.923334Z)

✅ uss2_dss (2024-12-19T16:18:05.941878Z)

✅ uss2_dss (2024-12-19T16:18:05.952043Z)

✅ uss2_dss (2024-12-19T16:18:05.961979Z)

✅ uss2_dss (2024-12-19T16:18:05.971901Z)

✅ uss2_dss (2024-12-19T16:18:05.992763Z)

✅ uss2_dss (2024-12-19T16:18:06.002751Z)

✅ uss2_dss (2024-12-19T16:18:06.012824Z)

✅ uss2_dss (2024-12-19T16:18:06.022963Z)

35.4.4.2. 🛑 Create constraint reference with missing credentials check

If the DSS under test allows the creation of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.760011Z)

35.4.4.3. 🛑 Create constraint reference with invalid credentials check

If the DSS under test allows the creation of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.775492Z)

35.4.4.4. 🛑 Create constraint reference with missing scope check

If the DSS under test allows the creation of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.789275Z)

35.4.4.5. 🛑 Create constraint reference with incorrect scope check

If the DSS under test allows the creation of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.803001Z)

35.4.4.6. 🛑 Create constraint reference with valid credentials check

If the DSS does not allow the creation of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:05.820228Z)

35.4.4.7. Create response format

This test step fragment validates that a constraint references creation returns a body in the correct format.

35.4.4.7.1. 🛑 Create constraint reference response format conforms to spec check

The response to a successful constraint reference creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a creation request.

✅ uss2_dss (2024-12-19T16:18:05.821102Z)

35.4.4.8. 🛑 Get constraint reference with missing credentials check

If the DSS under test allows the fetching of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.822628Z)

35.4.4.9. 🛑 Get constraint reference with invalid credentials check

If the DSS under test allows the fetching of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.833270Z)

35.4.4.10. 🛑 Get constraint reference with missing scope check

If the DSS under test allows the fetching of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.843589Z)

35.4.4.11. 🛑 Get constraint reference with incorrect scope check

If the DSS under test allows the fetching of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.855706Z)

35.4.4.12. 🛑 Get constraint reference with valid credentials check

If the DSS does not allow fetching a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:05.867108Z)

35.4.4.13. Read response format

This test step fragment validates that a request for a constraint reference returns a properly formatted body.

35.4.4.13.1. 🛑 Get constraint reference response format conforms to spec check

The response to a successful get constraint reference query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a mutation.

✅ uss2_dss (2024-12-19T16:18:05.867874Z)

35.4.4.14. 🛑 Mutate constraint reference with missing credentials check

If the DSS under test allows the mutation of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.872764Z)

35.4.4.15. 🛑 Mutate constraint reference with invalid credentials check

If the DSS under test allows the mutation of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.887093Z)

35.4.4.16. 🛑 Mutate constraint reference with missing scope check

If the DSS under test allows the mutation of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.900724Z)

35.4.4.17. 🛑 Mutate constraint reference with incorrect scope check

If the DSS under test allows the mutation of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.914684Z)

35.4.4.18. 🛑 Mutate constraint reference with valid credentials check

If the DSS does not allow the mutation of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:05.930685Z)

35.4.4.19. Mutate response format

This test step fragment validates that updates to constraint references return a body in the correct format.

35.4.4.19.1. 🛑 Mutate constraint reference response format conforms to spec check

The response to a successful constraint reference mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a mutation.

✅ uss2_dss (2024-12-19T16:18:05.931495Z)

35.4.4.20. 🛑 Delete constraint reference with missing credentials check

If the DSS under test allows the deletion of a constraint reference without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.933056Z)

35.4.4.21. 🛑 Delete constraint reference with invalid credentials check

If the DSS under test allows the deletion of a constraint reference with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.943649Z)

35.4.4.22. 🛑 Delete constraint reference with missing scope check

If the DSS under test allows the deletion of a constraint reference with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.953556Z)

35.4.4.23. 🛑 Delete constraint reference with incorrect scope check

If the DSS under test allows the deletion of a constraint reference with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.963671Z)

35.4.4.24. 🛑 Delete constraint reference with valid credentials check

If the DSS does not allow the deletion of a constraint reference when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:05.979285Z)

35.4.4.25. Delete response format

This test step fragment validates that a constraint references deletion returns a body in the correct format.

35.4.4.25.1. 🛑 Delete constraint reference response format conforms to spec check

The response to a successful constraint reference deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,3.

Check response format of a deletion.

✅ uss2_dss (2024-12-19T16:18:05.980111Z)

35.4.4.26. 🛑 Search constraint references with missing credentials check

If the DSS under test allows searching for constraint references without any credentials being presented, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.982478Z)

35.4.4.27. 🛑 Search constraint references with invalid credentials check

If the DSS under test allows searching for constraint references with credentials that are well-formed but invalid, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:05.994617Z)

35.4.4.28. 🛑 Search constraint references with missing scope check

If the DSS under test allows searching for constraint references with valid credentials but a missing scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:06.004348Z)

35.4.4.29. 🛑 Search constraint references with incorrect scope check

If the DSS under test allows searching for constraint references with valid credentials but an incorrect scope, it is in violation of astm.f3548.v21.DSS0210,A2-7-2,7.

✅ uss2_dss (2024-12-19T16:18:06.014738Z)

35.4.4.30. 🛑 Search constraint references with valid credentials check

If the DSS does not allow searching for constraint references when valid credentials are presented, it is in violation of astm.f3548.v21.DSS0005,4.

✅ uss2_dss (2024-12-19T16:18:06.026863Z)

35.4.4.31. Search response format

This test step fragment validates that constraint references search responses are properly formatted.

35.4.4.31.1. 🛑 Search constraint reference response format conforms to spec check

The response to a successful constraint reference search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,4.

Check response format of a search.

✅ uss2_dss (2024-12-19T16:18:06.027033Z)

35.5. Cleanup

35.5.1. Clean any existing OIRs with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

35.5.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.030126Z)

35.5.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

35.5.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

35.5.2. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

35.5.2.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

35.5.2.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.032459Z)

35.5.2.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

35.5.3. Clean any existing constraint references with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any constraint references from the DSS that may have been left behind from testing efforts.

35.5.3.1. 🛑 Constraint references can be queried by ID check

If an existing constraint reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

✅ uss2_dss (2024-12-19T16:18:06.034883Z)

35.5.3.2. 🛑 Constraint references can be searched for check

A client with valid credentials should be allowed to search for constraint references in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,4.

This check was not applicable to this test run and is therefore not statused.

35.5.3.3. 🛑 Constraint reference removed check

If an existing constraint cannot be deleted by its manager when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,3.

This check was not applicable to this test run and is therefore not statused.

35.5.4. Availability can be requested

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

35.5.4.1. 🛑 USS Availability can be requested check

If, when queried for the availability of a USS using valid credentials, the DSS does not return a valid 200 response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

✅ uss2_dss (2024-12-19T16:18:06.037521Z)

35.5.5. Availability can be set

This fragment contains the steps for the USS Availability synchronization scenario where we confirm that a USS availability can be correctly read from a DSS instance

35.5.5.1. 🛑USS Availability can be updated check

If, when presented with a valid query to update the availability state of a USS, a DSS responds with anything else than a 200 OK response, it is in violation of the OpenAPI specification referenced by astm.f3548.v21.DSS0100,1.

The cleanup phase of this test scenario removes the subscription with the known test ID if it has not been removed before. ∅ This check was not applicable to this test run and is therefore not statused.

36. [S32] ASTM SCD DSS: Subscription Simple

36.1. Overview

Perform basic operations on a single DSS instance to create, update and delete subscriptions.

36.2. Resources

36.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

36.2.2. id_generator

IDGeneratorResource providing the Subscription IDs for this scenario.

✅ Provided by id_generator in top-level resource pool.

36.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

36.2.4. problematically_big_area

VerticesResource describing an area designed to be too big to be accepted by the DSS.

✅ Provided by problematically_big_area in top-level resource pool.

36.3. Setup test case

36.3.1. Ensure clean workspace test step

36.3.1.1. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

36.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:06.046900Z)

36.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.049405Z)

✅ uss2_dss (2024-12-19T16:18:06.051624Z)

✅ uss2_dss (2024-12-19T16:18:06.053918Z)

✅ uss2_dss (2024-12-19T16:18:06.056387Z)

36.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

36.4. Subscription Simple test case

This test case creates multiple subscriptions, goes on to query and search for them, then deletes and searches for them again.

36.4.1. Create subscription validation test step

This test step creates multiple subscriptions with different combinations of the optional end and start time parameters.

All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step.

36.4.1.1. Create subscription

This test step fragment validates that subscriptions can be created.

36.4.1.1.1. Query Success

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

36.4.1.1.2. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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

✅ uss2_dss (2024-12-19T16:18:06.065115Z)

✅ uss2_dss (2024-12-19T16:18:06.087735Z)

✅ uss2_dss (2024-12-19T16:18:06.110233Z)

✅ uss2_dss (2024-12-19T16:18:06.133492Z)

36.4.1.1.3. 🛑 Create subscription response format conforms to spec check

The response to a successful subscription creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.076842Z)

✅ uss2_dss (2024-12-19T16:18:06.098847Z)

✅ uss2_dss (2024-12-19T16:18:06.121689Z)

✅ uss2_dss (2024-12-19T16:18:06.145400Z)

36.4.1.1.4. 🛑 Create subscription response content is correct check

A successful subscription creation query is expected to return a well-defined body, the content of which reflects the created subscription.

If the content of the response does not correspond to the requested content, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Check creation succeeds and response is correct.

✅ uss2_dss (2024-12-19T16:18:06.078597Z)

✅ uss2_dss (2024-12-19T16:18:06.100671Z)

✅ uss2_dss (2024-12-19T16:18:06.123622Z)

✅ uss2_dss (2024-12-19T16:18:06.147349Z)

36.4.1.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

36.4.1.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.077592Z)

✅ uss2_dss (2024-12-19T16:18:06.099617Z)

✅ uss2_dss (2024-12-19T16:18:06.122568Z)

✅ uss2_dss (2024-12-19T16:18:06.146248Z)

36.4.1.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.078564Z)

✅ uss2_dss (2024-12-19T16:18:06.100638Z)

✅ uss2_dss (2024-12-19T16:18:06.123588Z)

✅ uss2_dss (2024-12-19T16:18:06.147297Z)

36.4.1.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

36.4.1.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.077641Z)

✅ uss2_dss (2024-12-19T16:18:06.099667Z)

✅ uss2_dss (2024-12-19T16:18:06.122617Z)

✅ uss2_dss (2024-12-19T16:18:06.146297Z)

36.4.1.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.077682Z)

✅ uss2_dss (2024-12-19T16:18:06.099708Z)

✅ uss2_dss (2024-12-19T16:18:06.122660Z)

✅ uss2_dss (2024-12-19T16:18:06.146358Z)

36.4.1.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.077719Z)

✅ uss2_dss (2024-12-19T16:18:06.099750Z)

✅ uss2_dss (2024-12-19T16:18:06.122696Z)

✅ uss2_dss (2024-12-19T16:18:06.146398Z)

36.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.122776Z)

✅ uss2_dss (2024-12-19T16:18:06.146475Z)

36.4.1.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.077755Z)

✅ uss2_dss (2024-12-19T16:18:06.099788Z)

✅ uss2_dss (2024-12-19T16:18:06.122732Z)

✅ uss2_dss (2024-12-19T16:18:06.146433Z)

36.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.099831Z)

✅ uss2_dss (2024-12-19T16:18:06.146514Z)

36.4.1.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.077792Z)

✅ uss2_dss (2024-12-19T16:18:06.099866Z)

✅ uss2_dss (2024-12-19T16:18:06.122813Z)

✅ uss2_dss (2024-12-19T16:18:06.146547Z)

36.4.1.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.077826Z)

✅ uss2_dss (2024-12-19T16:18:06.099901Z)

✅ uss2_dss (2024-12-19T16:18:06.122848Z)

✅ uss2_dss (2024-12-19T16:18:06.146582Z)

36.4.1.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.077861Z)

✅ uss2_dss (2024-12-19T16:18:06.099936Z)

✅ uss2_dss (2024-12-19T16:18:06.122883Z)

✅ uss2_dss (2024-12-19T16:18:06.146616Z)

36.4.1.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS after its creation is properly formatted and has the right content.

✅ uss2_dss (2024-12-19T16:18:06.077895Z)

✅ uss2_dss (2024-12-19T16:18:06.099970Z)

✅ uss2_dss (2024-12-19T16:18:06.122918Z)

✅ uss2_dss (2024-12-19T16:18:06.146650Z)

36.4.2. Query Existing Subscription test step

Query and search for the created subscription in various ways

36.4.2.1. 🛑 Get subscription query succeeds check

If the query to get an existing subscription fails, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.426735Z)

✅ uss2_dss (2024-12-19T16:18:06.442528Z)

✅ uss2_dss (2024-12-19T16:18:06.458204Z)

✅ uss2_dss (2024-12-19T16:18:06.474211Z)

36.4.2.2. 🛑 Get subscription response is correct check

A successful get subscription query is expected to return a well-defined body, the content of which reflects the created subscription. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438457Z)

✅ uss2_dss (2024-12-19T16:18:06.453938Z)

✅ uss2_dss (2024-12-19T16:18:06.469679Z)

✅ uss2_dss (2024-12-19T16:18:06.486605Z)

36.4.2.3. ⚠️ Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.437187Z)

✅ uss2_dss (2024-12-19T16:18:06.452659Z)

✅ uss2_dss (2024-12-19T16:18:06.468401Z)

✅ uss2_dss (2024-12-19T16:18:06.485064Z)

36.4.2.4. 🛑 Search for all subscriptions in planning area query succeeds check

If the search query for the area for which the subscription was just created fails, it is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.492427Z)

36.4.2.5. 🛑 Search for all subscriptions in planning area response is correct check

A successful search query is expected to return a well-defined body, the content of which reflects the created subscription as well as any other subscription in the area. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.509264Z)

✅ uss2_dss (2024-12-19T16:18:06.525277Z)

✅ uss2_dss (2024-12-19T16:18:06.542021Z)

✅ uss2_dss (2024-12-19T16:18:06.558116Z)

36.4.2.6. ⚠️ Search subscriptions response format conforms to spec check

The response to a successful subscription search query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.508629Z)

✅ uss2_dss (2024-12-19T16:18:06.524661Z)

✅ uss2_dss (2024-12-19T16:18:06.541397Z)

✅ uss2_dss (2024-12-19T16:18:06.557498Z)

36.4.2.7. 🛑 Created Subscription is in search results check

If the created subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.508718Z)

✅ uss2_dss (2024-12-19T16:18:06.524743Z)

✅ uss2_dss (2024-12-19T16:18:06.541483Z)

✅ uss2_dss (2024-12-19T16:18:06.557583Z)

36.4.2.8. 🛑 No huge search area allowed check

In accordance with astm.f3548.v21.DSS0005,5, the DSS should not allow searches for areas that are too big.

✅ uss2_dss (2024-12-19T16:18:06.560750Z)

36.4.2.9. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

36.4.2.9.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.437923Z)

✅ uss2_dss (2024-12-19T16:18:06.453432Z)

✅ uss2_dss (2024-12-19T16:18:06.469153Z)

✅ uss2_dss (2024-12-19T16:18:06.486020Z)

✅ uss2_dss (2024-12-19T16:18:06.508767Z)

✅ uss2_dss (2024-12-19T16:18:06.524791Z)

✅ uss2_dss (2024-12-19T16:18:06.541530Z)

✅ uss2_dss (2024-12-19T16:18:06.557631Z)

36.4.2.9.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

36.4.2.9.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438435Z)

✅ uss2_dss (2024-12-19T16:18:06.453917Z)

✅ uss2_dss (2024-12-19T16:18:06.469657Z)

✅ uss2_dss (2024-12-19T16:18:06.486583Z)

✅ uss2_dss (2024-12-19T16:18:06.509240Z)

✅ uss2_dss (2024-12-19T16:18:06.525253Z)

✅ uss2_dss (2024-12-19T16:18:06.541996Z)

✅ uss2_dss (2024-12-19T16:18:06.558092Z)

36.4.2.9.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.437975Z)

✅ uss2_dss (2024-12-19T16:18:06.453490Z)

✅ uss2_dss (2024-12-19T16:18:06.469205Z)

✅ uss2_dss (2024-12-19T16:18:06.486088Z)

✅ uss2_dss (2024-12-19T16:18:06.508807Z)

✅ uss2_dss (2024-12-19T16:18:06.524830Z)

✅ uss2_dss (2024-12-19T16:18:06.541571Z)

✅ uss2_dss (2024-12-19T16:18:06.557672Z)

36.4.2.9.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438019Z)

✅ uss2_dss (2024-12-19T16:18:06.453535Z)

✅ uss2_dss (2024-12-19T16:18:06.469250Z)

✅ uss2_dss (2024-12-19T16:18:06.486152Z)

✅ uss2_dss (2024-12-19T16:18:06.508849Z)

✅ uss2_dss (2024-12-19T16:18:06.524871Z)

✅ uss2_dss (2024-12-19T16:18:06.541612Z)

✅ uss2_dss (2024-12-19T16:18:06.557714Z)

36.4.2.9.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.438059Z)

✅ uss2_dss (2024-12-19T16:18:06.453575Z)

✅ uss2_dss (2024-12-19T16:18:06.469289Z)

✅ uss2_dss (2024-12-19T16:18:06.486199Z)

✅ uss2_dss (2024-12-19T16:18:06.508887Z)

✅ uss2_dss (2024-12-19T16:18:06.524908Z)

✅ uss2_dss (2024-12-19T16:18:06.541649Z)

✅ uss2_dss (2024-12-19T16:18:06.557751Z)

36.4.2.9.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438142Z)

✅ uss2_dss (2024-12-19T16:18:06.453653Z)

✅ uss2_dss (2024-12-19T16:18:06.469392Z)

✅ uss2_dss (2024-12-19T16:18:06.486285Z)

✅ uss2_dss (2024-12-19T16:18:06.508976Z)

✅ uss2_dss (2024-12-19T16:18:06.524988Z)

✅ uss2_dss (2024-12-19T16:18:06.541729Z)

✅ uss2_dss (2024-12-19T16:18:06.557831Z)

36.4.2.9.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438097Z)

✅ uss2_dss (2024-12-19T16:18:06.453612Z)

✅ uss2_dss (2024-12-19T16:18:06.469344Z)

✅ uss2_dss (2024-12-19T16:18:06.486238Z)

✅ uss2_dss (2024-12-19T16:18:06.508924Z)

✅ uss2_dss (2024-12-19T16:18:06.524944Z)

✅ uss2_dss (2024-12-19T16:18:06.541686Z)

✅ uss2_dss (2024-12-19T16:18:06.557788Z)

36.4.2.9.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438184Z)

✅ uss2_dss (2024-12-19T16:18:06.453694Z)

✅ uss2_dss (2024-12-19T16:18:06.469434Z)

✅ uss2_dss (2024-12-19T16:18:06.486345Z)

✅ uss2_dss (2024-12-19T16:18:06.509017Z)

✅ uss2_dss (2024-12-19T16:18:06.525029Z)

✅ uss2_dss (2024-12-19T16:18:06.541770Z)

✅ uss2_dss (2024-12-19T16:18:06.557871Z)

36.4.2.9.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.438222Z)

✅ uss2_dss (2024-12-19T16:18:06.453732Z)

✅ uss2_dss (2024-12-19T16:18:06.469471Z)

✅ uss2_dss (2024-12-19T16:18:06.486388Z)

✅ uss2_dss (2024-12-19T16:18:06.509054Z)

✅ uss2_dss (2024-12-19T16:18:06.525066Z)

✅ uss2_dss (2024-12-19T16:18:06.541807Z)

✅ uss2_dss (2024-12-19T16:18:06.557908Z)

36.4.2.9.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438298Z)

✅ uss2_dss (2024-12-19T16:18:06.453805Z)

✅ uss2_dss (2024-12-19T16:18:06.469545Z)

✅ uss2_dss (2024-12-19T16:18:06.486467Z)

✅ uss2_dss (2024-12-19T16:18:06.509127Z)

✅ uss2_dss (2024-12-19T16:18:06.525140Z)

✅ uss2_dss (2024-12-19T16:18:06.541883Z)

✅ uss2_dss (2024-12-19T16:18:06.557981Z)

36.4.2.9.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.438354Z)

✅ uss2_dss (2024-12-19T16:18:06.453842Z)

✅ uss2_dss (2024-12-19T16:18:06.469582Z)

✅ uss2_dss (2024-12-19T16:18:06.486506Z)

✅ uss2_dss (2024-12-19T16:18:06.509166Z)

✅ uss2_dss (2024-12-19T16:18:06.525179Z)

✅ uss2_dss (2024-12-19T16:18:06.541921Z)

✅ uss2_dss (2024-12-19T16:18:06.558018Z)

36.4.2.9.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the search is correctly formatted and corresponds to what was created earlier.

✅ uss2_dss (2024-12-19T16:18:06.438395Z)

✅ uss2_dss (2024-12-19T16:18:06.453879Z)

✅ uss2_dss (2024-12-19T16:18:06.469619Z)

✅ uss2_dss (2024-12-19T16:18:06.486544Z)

✅ uss2_dss (2024-12-19T16:18:06.509204Z)

✅ uss2_dss (2024-12-19T16:18:06.525216Z)

✅ uss2_dss (2024-12-19T16:18:06.541959Z)

✅ uss2_dss (2024-12-19T16:18:06.558055Z)

36.4.2.10. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

36.4.2.10.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field is as expected.

✅ uss2_dss (2024-12-19T16:18:06.438260Z)

✅ uss2_dss (2024-12-19T16:18:06.453769Z)

✅ uss2_dss (2024-12-19T16:18:06.469508Z)

✅ uss2_dss (2024-12-19T16:18:06.486428Z)

✅ uss2_dss (2024-12-19T16:18:06.509091Z)

✅ uss2_dss (2024-12-19T16:18:06.525103Z)

✅ uss2_dss (2024-12-19T16:18:06.541846Z)

✅ uss2_dss (2024-12-19T16:18:06.557944Z)

36.4.3. Attempt Subscription mutation with incorrect version test step

This test step attempts to mutate the subscription both with a missing and incorrect OVN, and checks that the DSS reacts properly.

36.4.3.1. 🛑 Mutation with empty version fails check

If a request to mutate a subscription is missing the version and succeeds, the DSS is failing to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.152810Z)

36.4.3.2. 🛑 Mutation with incorrect version fails check

If a request to mutate a subscription providing the wrong version succeeds, the DSS is failing to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.156908Z)

36.4.4. Mutate Subscription test step

This test step mutates the previously created subscription to verify that the DSS reacts properly: notably, it checks that the subscription version is updated, including for changes that are not directly visible, such as changing the subscription's footprint.

36.4.4.1. 🛑 Mutate subscription query succeeds check

If the query to mutate a subscription with valid parameters is not successful, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.164490Z)

✅ uss2_dss (2024-12-19T16:18:06.187195Z)

✅ uss2_dss (2024-12-19T16:18:06.289210Z)

✅ uss2_dss (2024-12-19T16:18:06.311099Z)

✅ uss2_dss (2024-12-19T16:18:06.331874Z)

✅ uss2_dss (2024-12-19T16:18:06.352878Z)

✅ uss2_dss (2024-12-19T16:18:06.374045Z)

✅ uss2_dss (2024-12-19T16:18:06.405430Z)

36.4.4.2. 🛑 Mutate subscription response is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the newly defined subscription. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177854Z)

✅ uss2_dss (2024-12-19T16:18:06.279973Z)

✅ uss2_dss (2024-12-19T16:18:06.302053Z)

✅ uss2_dss (2024-12-19T16:18:06.323220Z)

✅ uss2_dss (2024-12-19T16:18:06.344272Z)

✅ uss2_dss (2024-12-19T16:18:06.365191Z)

✅ uss2_dss (2024-12-19T16:18:06.386498Z)

✅ uss2_dss (2024-12-19T16:18:06.421196Z)

36.4.4.3. ⚠️ Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.176600Z)

✅ uss2_dss (2024-12-19T16:18:06.278633Z)

✅ uss2_dss (2024-12-19T16:18:06.300781Z)

✅ uss2_dss (2024-12-19T16:18:06.321999Z)

✅ uss2_dss (2024-12-19T16:18:06.342792Z)

✅ uss2_dss (2024-12-19T16:18:06.363976Z)

✅ uss2_dss (2024-12-19T16:18:06.385261Z)

✅ uss2_dss (2024-12-19T16:18:06.419882Z)

36.4.4.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

36.4.4.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.177385Z)

✅ uss2_dss (2024-12-19T16:18:06.279492Z)

✅ uss2_dss (2024-12-19T16:18:06.301585Z)

✅ uss2_dss (2024-12-19T16:18:06.322751Z)

✅ uss2_dss (2024-12-19T16:18:06.343680Z)

✅ uss2_dss (2024-12-19T16:18:06.364725Z)

✅ uss2_dss (2024-12-19T16:18:06.386006Z)

✅ uss2_dss (2024-12-19T16:18:06.420720Z)

36.4.4.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

36.4.4.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177833Z)

✅ uss2_dss (2024-12-19T16:18:06.279951Z)

✅ uss2_dss (2024-12-19T16:18:06.302030Z)

✅ uss2_dss (2024-12-19T16:18:06.323199Z)

✅ uss2_dss (2024-12-19T16:18:06.344250Z)

✅ uss2_dss (2024-12-19T16:18:06.365169Z)

✅ uss2_dss (2024-12-19T16:18:06.386477Z)

✅ uss2_dss (2024-12-19T16:18:06.421173Z)

36.4.4.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.177436Z)

✅ uss2_dss (2024-12-19T16:18:06.279544Z)

✅ uss2_dss (2024-12-19T16:18:06.301635Z)

✅ uss2_dss (2024-12-19T16:18:06.322801Z)

✅ uss2_dss (2024-12-19T16:18:06.343744Z)

✅ uss2_dss (2024-12-19T16:18:06.364774Z)

✅ uss2_dss (2024-12-19T16:18:06.386055Z)

✅ uss2_dss (2024-12-19T16:18:06.420769Z)

36.4.4.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177477Z)

✅ uss2_dss (2024-12-19T16:18:06.279587Z)

✅ uss2_dss (2024-12-19T16:18:06.301676Z)

✅ uss2_dss (2024-12-19T16:18:06.322841Z)

✅ uss2_dss (2024-12-19T16:18:06.343796Z)

✅ uss2_dss (2024-12-19T16:18:06.364814Z)

✅ uss2_dss (2024-12-19T16:18:06.386096Z)

✅ uss2_dss (2024-12-19T16:18:06.420811Z)

36.4.4.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.177513Z)

✅ uss2_dss (2024-12-19T16:18:06.279623Z)

✅ uss2_dss (2024-12-19T16:18:06.301713Z)

✅ uss2_dss (2024-12-19T16:18:06.322877Z)

✅ uss2_dss (2024-12-19T16:18:06.343845Z)

✅ uss2_dss (2024-12-19T16:18:06.364850Z)

✅ uss2_dss (2024-12-19T16:18:06.386133Z)

✅ uss2_dss (2024-12-19T16:18:06.420848Z)

36.4.4.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177587Z)

✅ uss2_dss (2024-12-19T16:18:06.279700Z)

✅ uss2_dss (2024-12-19T16:18:06.301787Z)

✅ uss2_dss (2024-12-19T16:18:06.322951Z)

✅ uss2_dss (2024-12-19T16:18:06.343942Z)

✅ uss2_dss (2024-12-19T16:18:06.364923Z)

✅ uss2_dss (2024-12-19T16:18:06.386208Z)

✅ uss2_dss (2024-12-19T16:18:06.420925Z)

36.4.4.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177547Z)

✅ uss2_dss (2024-12-19T16:18:06.279659Z)

✅ uss2_dss (2024-12-19T16:18:06.301748Z)

✅ uss2_dss (2024-12-19T16:18:06.322913Z)

✅ uss2_dss (2024-12-19T16:18:06.343893Z)

✅ uss2_dss (2024-12-19T16:18:06.364884Z)

✅ uss2_dss (2024-12-19T16:18:06.386168Z)

✅ uss2_dss (2024-12-19T16:18:06.420884Z)

36.4.4.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177625Z)

✅ uss2_dss (2024-12-19T16:18:06.279739Z)

✅ uss2_dss (2024-12-19T16:18:06.301825Z)

✅ uss2_dss (2024-12-19T16:18:06.322990Z)

✅ uss2_dss (2024-12-19T16:18:06.344006Z)

✅ uss2_dss (2024-12-19T16:18:06.364961Z)

✅ uss2_dss (2024-12-19T16:18:06.386246Z)

✅ uss2_dss (2024-12-19T16:18:06.420963Z)

36.4.4.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.177660Z)

✅ uss2_dss (2024-12-19T16:18:06.279775Z)

✅ uss2_dss (2024-12-19T16:18:06.301859Z)

✅ uss2_dss (2024-12-19T16:18:06.323024Z)

✅ uss2_dss (2024-12-19T16:18:06.344051Z)

✅ uss2_dss (2024-12-19T16:18:06.364994Z)

✅ uss2_dss (2024-12-19T16:18:06.386280Z)

✅ uss2_dss (2024-12-19T16:18:06.420997Z)

36.4.4.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177729Z)

✅ uss2_dss (2024-12-19T16:18:06.279844Z)

✅ uss2_dss (2024-12-19T16:18:06.301926Z)

✅ uss2_dss (2024-12-19T16:18:06.323094Z)

✅ uss2_dss (2024-12-19T16:18:06.344141Z)

✅ uss2_dss (2024-12-19T16:18:06.365063Z)

✅ uss2_dss (2024-12-19T16:18:06.386369Z)

✅ uss2_dss (2024-12-19T16:18:06.421066Z)

36.4.4.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.177763Z)

✅ uss2_dss (2024-12-19T16:18:06.279879Z)

✅ uss2_dss (2024-12-19T16:18:06.301961Z)

✅ uss2_dss (2024-12-19T16:18:06.323129Z)

✅ uss2_dss (2024-12-19T16:18:06.344176Z)

✅ uss2_dss (2024-12-19T16:18:06.365099Z)

✅ uss2_dss (2024-12-19T16:18:06.386405Z)

✅ uss2_dss (2024-12-19T16:18:06.421101Z)

36.4.4.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the mutation is properly formatted and contains the correct content.

✅ uss2_dss (2024-12-19T16:18:06.177797Z)

✅ uss2_dss (2024-12-19T16:18:06.279914Z)

✅ uss2_dss (2024-12-19T16:18:06.301995Z)

✅ uss2_dss (2024-12-19T16:18:06.323163Z)

✅ uss2_dss (2024-12-19T16:18:06.344212Z)

✅ uss2_dss (2024-12-19T16:18:06.365134Z)

✅ uss2_dss (2024-12-19T16:18:06.386440Z)

✅ uss2_dss (2024-12-19T16:18:06.421136Z)

36.4.4.5. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

36.4.4.5.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field has been mutated.

✅ uss2_dss (2024-12-19T16:18:06.177695Z)

✅ uss2_dss (2024-12-19T16:18:06.279809Z)

✅ uss2_dss (2024-12-19T16:18:06.301892Z)

✅ uss2_dss (2024-12-19T16:18:06.323058Z)

✅ uss2_dss (2024-12-19T16:18:06.344104Z)

✅ uss2_dss (2024-12-19T16:18:06.365028Z)

✅ uss2_dss (2024-12-19T16:18:06.386329Z)

✅ uss2_dss (2024-12-19T16:18:06.421032Z)

36.4.5. Delete Subscription test step

Attempt to delete the subscription in various ways and ensure that the DSS reacts properly.

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

36.4.5.1. 🛑 Missing version prevents deletion check

An attempt to delete a subscription without providing a version should fail, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.562097Z)

✅ uss2_dss (2024-12-19T16:18:06.567054Z)

✅ uss2_dss (2024-12-19T16:18:06.571069Z)

✅ uss2_dss (2024-12-19T16:18:06.575198Z)

36.4.5.2. 🛑 Incorrect version prevents deletion check

An attempt to delete a subscription while providing an incorrect version should fail, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.565792Z)

✅ uss2_dss (2024-12-19T16:18:06.569812Z)

✅ uss2_dss (2024-12-19T16:18:06.573890Z)

✅ uss2_dss (2024-12-19T16:18:06.577952Z)

36.4.5.3. 🛑 Delete subscription query succeeds check

If the query to delete an existing subscription fails, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.584520Z)

✅ uss2_dss (2024-12-19T16:18:06.603695Z)

✅ uss2_dss (2024-12-19T16:18:06.622962Z)

✅ uss2_dss (2024-12-19T16:18:06.642359Z)

36.4.5.4. 🛑 Delete subscription response is correct check

A successful delete subscription query is expected to return a well-defined body, the content of which reflects the content of the subscription before deletion. If the format and content of the response are not conforming, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596495Z)

✅ uss2_dss (2024-12-19T16:18:06.615731Z)

✅ uss2_dss (2024-12-19T16:18:06.634711Z)

✅ uss2_dss (2024-12-19T16:18:06.657532Z)

36.4.5.5. ⚠️ Delete subscription response format conforms to spec check

The response to a successful delete subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.595902Z)

✅ uss2_dss (2024-12-19T16:18:06.615147Z)

✅ uss2_dss (2024-12-19T16:18:06.634118Z)

✅ uss2_dss (2024-12-19T16:18:06.656430Z)

36.4.5.6. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

36.4.5.7. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

36.4.5.7.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.595990Z)

✅ uss2_dss (2024-12-19T16:18:06.615228Z)

✅ uss2_dss (2024-12-19T16:18:06.634205Z)

✅ uss2_dss (2024-12-19T16:18:06.656578Z)

36.4.5.7.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

36.4.5.7.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596474Z)

✅ uss2_dss (2024-12-19T16:18:06.615711Z)

✅ uss2_dss (2024-12-19T16:18:06.634690Z)

✅ uss2_dss (2024-12-19T16:18:06.657489Z)

36.4.5.7.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.596034Z)

✅ uss2_dss (2024-12-19T16:18:06.615273Z)

✅ uss2_dss (2024-12-19T16:18:06.634252Z)

✅ uss2_dss (2024-12-19T16:18:06.656658Z)

36.4.5.7.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596076Z)

✅ uss2_dss (2024-12-19T16:18:06.615330Z)

✅ uss2_dss (2024-12-19T16:18:06.634295Z)

✅ uss2_dss (2024-12-19T16:18:06.656736Z)

36.4.5.7.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.596114Z)

✅ uss2_dss (2024-12-19T16:18:06.615372Z)

✅ uss2_dss (2024-12-19T16:18:06.634349Z)

✅ uss2_dss (2024-12-19T16:18:06.656803Z)

36.4.5.7.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596196Z)

✅ uss2_dss (2024-12-19T16:18:06.615453Z)

✅ uss2_dss (2024-12-19T16:18:06.634434Z)

✅ uss2_dss (2024-12-19T16:18:06.656957Z)

36.4.5.7.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596152Z)

✅ uss2_dss (2024-12-19T16:18:06.615409Z)

✅ uss2_dss (2024-12-19T16:18:06.634389Z)

✅ uss2_dss (2024-12-19T16:18:06.656872Z)

36.4.5.7.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596235Z)

✅ uss2_dss (2024-12-19T16:18:06.615493Z)

✅ uss2_dss (2024-12-19T16:18:06.634475Z)

✅ uss2_dss (2024-12-19T16:18:06.657040Z)

36.4.5.7.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.596272Z)

✅ uss2_dss (2024-12-19T16:18:06.615531Z)

✅ uss2_dss (2024-12-19T16:18:06.634511Z)

✅ uss2_dss (2024-12-19T16:18:06.657115Z)

36.4.5.7.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596363Z)

✅ uss2_dss (2024-12-19T16:18:06.615602Z)

✅ uss2_dss (2024-12-19T16:18:06.634582Z)

✅ uss2_dss (2024-12-19T16:18:06.657245Z)

36.4.5.7.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.596402Z)

✅ uss2_dss (2024-12-19T16:18:06.615639Z)

✅ uss2_dss (2024-12-19T16:18:06.634619Z)

✅ uss2_dss (2024-12-19T16:18:06.657311Z)

36.4.5.7.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss2_dss (2024-12-19T16:18:06.596438Z)

✅ uss2_dss (2024-12-19T16:18:06.615674Z)

✅ uss2_dss (2024-12-19T16:18:06.634654Z)

✅ uss2_dss (2024-12-19T16:18:06.657410Z)

36.4.5.8. Validate version field

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

36.4.5.8.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version field is as expected.

✅ uss2_dss (2024-12-19T16:18:06.596307Z)

✅ uss2_dss (2024-12-19T16:18:06.615567Z)

✅ uss2_dss (2024-12-19T16:18:06.634547Z)

✅ uss2_dss (2024-12-19T16:18:06.657181Z)

36.4.6. Query Deleted Subscription test step

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

36.4.6.1. 🛑 Query by subscription ID should fail check

If the DSS provides a successful reply to a direct query for the deleted subscription, it is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.660579Z)

✅ uss2_dss (2024-12-19T16:18:06.662789Z)

✅ uss2_dss (2024-12-19T16:18:06.664980Z)

✅ uss2_dss (2024-12-19T16:18:06.667459Z)

36.4.6.2. 🛑 Search for all subscriptions in planning area query succeeds check

If the DSS fails to let us search in the area for which the subscription was just created, it is failing to meet astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.670865Z)

36.4.6.3. 🛑 Deleted subscription should not be present in search results check

If the DSS returns the deleted subscription in a search that covers the area it was originally created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.670980Z)

36.5. Cleanup

36.5.1. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

36.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

36.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.673336Z)

✅ uss2_dss (2024-12-19T16:18:06.675721Z)

✅ uss2_dss (2024-12-19T16:18:06.677862Z)

✅ uss2_dss (2024-12-19T16:18:06.680024Z)

36.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created. ∅ This check was not applicable to this test run and is therefore not statused.

37. [S33] ASTM SCD DSS: Subscription Validation

37.1. Overview

Ensures that a DSS properly enforces limitations on created subscriptions

37.2. Resources

37.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

37.2.2. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

37.2.3. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

37.3. Setup test case

37.3.1. Ensure clean workspace test step

37.3.1.1. Clean any existing subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

37.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:06.685672Z)

37.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.688629Z)

37.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

37.4. Subscription Validation test case

This test attempts to create subscriptions that should be rejected or adapted by the DSS.

37.4.1. Subscription duration limitations test step

This test step attempts to create a subscription that exceeds the maximal subscription duration on the DSS.

It does so directly, by attempting to create a subscription that exceeds the maximal duration of DSSMaxSubscriptionDuration (24 hours), and indirectly, by first creating a valid subscription and then attempting to mutate it to exceed the maximal duration.

37.4.1.1. 🛑 Accept a subscription of maximal duration check

If the DSS under test does not allow the creation of a subscription of the maximal allowed duration of DSSMaxSubscriptionDuration, it is failing to create a subscription using valid parameters, and is thus failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.699443Z)

37.4.1.2. 🛑 Don't create a too long subscription check

If the DSS under test does not reject a subscription that exceeds the maximal allowed duration of DSSMaxSubscriptionDuration, or fails to truncate the duration of the subscription to this duration, it is in violation of astm.f3548.v21.DSS0015.

✅ uss2_dss (2024-12-19T16:18:06.692215Z)

37.4.1.3. 🛑 Don't mutate a subscription to be too long check

If the DSS under test does not reject a mutation that would cause a subscription to exceed the maximal allowed duration of DSSMaxSubscriptionDuration, or fails to truncate the duration of the subscription to this duration, it is in violation of astm.f3548.v21.DSS0015.

✅ uss2_dss (2024-12-19T16:18:06.704184Z)

37.5. Cleanup

37.5.1. Clean any straggling subscriptions with known test IDs

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

37.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

37.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.707639Z)

37.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:06.714812Z)

38. [S34] ASTM F3548-21 UTM DSS Operational Intent Reference Access Control

38.1. Overview

This scenario ensures that a DSS will only let the owner of an operational intent reference modify it.

38.2. Resources

38.2.1. flight_intents

A resources.flight_planning.FlightIntentsResource containing the flight intents to be used in this scenario:

This scenario expects to find at least two separate flight intents in this resource, as it will use their extent to create two operational intents references.

✅ Provided by non_conflicting_flights in top-level resource pool.

38.2.2. dss

A resources.astm.f3548.v21.DSSInstanceResource pointing to the DSS instance to test for this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

38.2.3. second_utm_auth

A resources.communications.AuthAdapterResource containing a second set of valid credentials for interacting with the DSS.

This second set of credentials is required to validate that the DSS is properly enforcing access control rules, and properly limits the actions of a client against the resources exposed by the DSS.

The participant under test is responsible for providing this second set of credentials along the primary ones used in most other scenarios.

38.2.3.1. Credential requirements

In general, these test credentials may be in all points equal to the ones used by the AuthAdapterResource that is provided to the dss resources above, except for the value contained in the sub claim of the token.

For the purpose of this scenario, these credentials must be allowed to create, modify and delete operational intents on the DSS, as well as querying operational intent references.

38.2.3.1.1. Required scope

For the purpose of this scenario, the second_utm_auth resource must provide access to a token with at least the following scope:

38.2.3.1.2. Separate subscription

Note that the subscription (or 'sub' claim) of the token that will be obtained for this resource MUST be different from the one of the dss resources mentioned above: this will be verified at runtime, and this scenario will fail if the second set of credentials belong to the same subscription as the main one.

✅ Provided by second_utm_auth in top-level resource pool.

38.2.4. id_generator

A resources.interuss.IDGeneratorResource that will be used to generate the IDs of the operational intent references created in this scenario.

✅ Provided by id_generator in top-level resource pool.

38.3. Setup test case

Makes sure that the DSS is in a clean and expected state before running the test, and that the passed resources work as required.

The setup will create two separate operational intent references: one for each set of the available credentials.

38.3.1. Ensure clean workspace test step

38.3.1.1. Clean any existing OIRs

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

38.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.725688Z)

✅ uss2_dss (2024-12-19T16:18:06.730595Z)

38.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:06.740971Z)

✅ uss2_dss (2024-12-19T16:18:06.744689Z)

✅ uss2_dss (2024-12-19T16:18:06.748310Z)

38.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

38.3.1.2. ⚠️ Any existing operational intent reference has been removed check

If, after cleanup, one or more operational intent reference are still present at the DSS, this scenario cannot proceed.

This scenario is able to remove any operational intent reference that belongs to the configured credentials, but it cannot remove references that belong to other credentials.

A regular failure of this check indicates that other scenarios might not properly clean up their resources, or that the Prepare Flight Planners scenario should be moved in front of the present one.

If this check fails, the rest of the scenario is entirely skipped.

✅ uss2_dss (2024-12-19T16:18:06.748389Z)

38.3.2. Create operational intent references with different credentials test step

This test step ensures that an operation intent reference created with the main credentials is available for the main test case.

To verify that the second credentials are valid, it will also create an operational intent reference with those credentials.

38.3.2.1. 🛑 Can create an operational intent with valid credentials check

If the DSS does not allow the creation of operation intents when the required parameters and credentials are provided, it is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.764035Z)

✅ uss2_dss (2024-12-19T16:18:06.780442Z)

38.3.2.2. 🛑 Passed sets of credentials are different check

This scenario requires two sets of credentials that have a different 'sub' claim in order to validate that the DSS properly controls access to operational intents.

✅ uss2_dss (2024-12-19T16:18:06.780629Z)

38.4. Attempt unauthorized operational intent reference modification test case

This test case ensures that the DSS does not allow a caller to modify or delete operational intent references that they did not create.

38.4.1. Attempt unauthorized operational intent reference modification test step

This test step will attempt to modify the operational intent references that was created using the configured dss resource, using the credentials provided in the second_utm_auth resource, and expect all such attempts to fail.

38.4.1.1. 🛑 Operational intent references can be queried directly by their ID check

If an existing operational intent cannot directly be queried by its ID, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.800451Z)

38.4.1.2. 🛑 Non-owning credentials cannot modify operational intent check

If an operational intent reference can be modified by a client which did not create it, the DSS implementation is in violation of astm.f3548.v21.OPIN0035.

✅ uss2_dss (2024-12-19T16:18:06.788664Z)

✅ uss2_dss (2024-12-19T16:18:06.794348Z)

✅ uss2_dss (2024-12-19T16:18:06.800498Z)

38.4.1.3. 🛑 Non-owning credentials cannot delete operational intent check

If an operational intent reference can be deleted by a client which did not create it, the DSS implementation is in violation of astm.f3548.v21.OPIN0035.

✅ uss2_dss (2024-12-19T16:18:06.797060Z)

38.5. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

38.5.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.803925Z)

✅ uss2_dss (2024-12-19T16:18:06.820288Z)

38.5.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:06.816547Z)

38.5.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:06.831957Z)

39. [S35] ASTM F3548-21 UTM DSS interoperability

39.1. Overview

TODO: Complete with details once we check more than the prerequisites.

This scenario currently only checks that all specified DSS instances are publicly addressable and reachable.

39.2. Resources

39.2.1. primary_dss_instance

A resources.astm.f3548.v21.DSSInstanceResource containing the "primary" DSS instance for this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

39.2.2. all_dss_instances

A resources.astm.f3548.v21.DSSInstancesResource containing at least two DSS instances complying with ASTM F3548-21.

✅ Provided by dss_instances in top-level resource pool.

39.2.3. planning_area

A resources.astm.f3548.v21.PlanningAreaResource containing a planning area that covers the area of interest for this

✅ Provided by planning_area in top-level resource pool.

39.2.4. test_exclusions

A resources.dev.TestExclusionsResource containing test exclusions parameters like whether private addresses are allowed. This resource is optional.

✅ Provided by test_exclusions in top-level resource pool.

39.3. Prerequisites test case

39.3.1. Test environment requirements test step

39.3.1.1. 🛑 DSS instance is publicly addressable check

As per astm.f3548.v21.DSS0300 the DSS instance should be publicly addressable. As such, this check will fail if the resolved IP of the DSS host is a private IP address. This check is skipped if the test exclusion allow_private_addresses is set to True.

This check was not applicable to this test run and is therefore not statused.

39.3.1.2. 🛑 DSS instance is reachable check

As per astm.f3548.v21.DSS0300 the DSS instance should be publicly addressable. As such, this check will fail if the DSS is not reachable with a dummy query.

✅ uss2_dss (2024-12-19T16:18:06.838889Z)

✅ uss1_dss (2024-12-19T16:18:06.843338Z)

40. [S36] ASTM SCD DSS: Subscription Synchronization

40.1. Overview

Verifies that all subscription CRUD operations performed on a single DSS instance are properly propagated to every other DSS

40.2. Resources

40.2.1. dss

DSSInstanceResource the DSS instance through which entities are created, modified and deleted.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

40.2.2. other_instances

DSSInstancesResource pointing to the DSS instances used to confirm that entities are properly propagated.

✅ Provided by dss_instances in top-level resource pool.

40.2.3. id_generator

IDGeneratorResource providing the Subscription ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

40.2.4. planning_area

PlanningAreaResource describes the 3D volume in which subscriptions will be created.

✅ Provided by planning_area in top-level resource pool.

40.2.5. second_utm_auth

A resources.communications.AuthAdapterResource containing a second set of valid credentials for interacting with the DSS.

This second set of credentials is required to validate that the DSS properly synchronizes the manager of a subscription to other DSS instances.

The test designer should provide this second set of credentials when full testing of manager synchronization behavior is desired.

40.2.5.1. Credential requirements

In general, these test credentials may be in all points equal to the ones used by the AuthAdapterResource that is provided to the dss resources above, except for the value contained in the sub claim of the token.

Note that most checks in this scenario will work if the second set of credentials is not provided.

40.2.5.1.1. Required scope

For the purpose of this scenario, the second_utm_auth resource must provide access to a token with at least the following scope:

40.2.5.1.2. Separate subject

Note that the subject (or 'sub' claim) of the token that will be obtained for this resource MUST be different from the one of the dss resources mentioned above: this will be verified at runtime, and the depending checks will not be run if this is not the case.

✅ Provided by second_utm_auth in top-level resource pool.

40.3. Setup test case

40.3.1. Ensure clean workspace test step

40.3.1.1. Ensure that no subscriptions with the known test IDs exist in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

40.3.1.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

✅ uss2_dss (2024-12-19T16:18:06.848025Z)

40.3.1.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:06.850416Z)

✅ uss2_dss (2024-12-19T16:18:06.852562Z)

✅ uss2_dss (2024-12-19T16:18:06.854646Z)

✅ uss2_dss (2024-12-19T16:18:06.857583Z)

40.3.1.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This includes the main test subscription used in this test, as well as the extra subscription used for testing the manager field sync, if the test is configured to test for it.

This check was not applicable to this test run and is therefore not statused.

40.4. Subscription Synchronization test case

This test case create a subscription on the main DSS, and verifies that it is properly synchronized to the other DSS instances.

It then goes on to mutate and delete it, each time confirming that all other DSSes return the expected results.

40.4.1. Create subscription validation test step

This test step creates multiple subscriptions with different combinations of the optional end and start time parameters.

All subscriptions are left on the DSS when this step ends, as they are expected to be present for the subsequent step.

40.4.1.1. Create subscription

This test step fragment validates that subscriptions can be created.

40.4.1.1.1. Query Success

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

40.4.1.1.2. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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

✅ uss2_dss (2024-12-19T16:18:06.866188Z)

✅ uss2_dss (2024-12-19T16:18:06.889462Z)

✅ uss2_dss (2024-12-19T16:18:06.912607Z)

40.4.1.1.3. 🛑 Create subscription response format conforms to spec check

The response to a successful subscription creation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.877572Z)

✅ uss2_dss (2024-12-19T16:18:06.901868Z)

✅ uss2_dss (2024-12-19T16:18:06.923588Z)

40.4.1.1.4. 🛑 Create subscription response content is correct check

A successful subscription creation query is expected to return a well-defined body, the content of which reflects the created subscription.

If the content of the response does not correspond to the requested content, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Verify that a subscription can be created on the primary DSS.

✅ uss2_dss (2024-12-19T16:18:06.879560Z)

✅ uss2_dss (2024-12-19T16:18:06.903834Z)

✅ uss2_dss (2024-12-19T16:18:06.925418Z)

40.4.1.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.1.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.878455Z)

✅ uss2_dss (2024-12-19T16:18:06.902672Z)

✅ uss2_dss (2024-12-19T16:18:06.924338Z)

40.4.1.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.879526Z)

✅ uss2_dss (2024-12-19T16:18:06.903802Z)

✅ uss2_dss (2024-12-19T16:18:06.925385Z)

40.4.1.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.1.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.878504Z)

✅ uss2_dss (2024-12-19T16:18:06.902721Z)

✅ uss2_dss (2024-12-19T16:18:06.924390Z)

40.4.1.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878547Z)

✅ uss2_dss (2024-12-19T16:18:06.902762Z)

✅ uss2_dss (2024-12-19T16:18:06.924431Z)

40.4.1.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.878584Z)

✅ uss2_dss (2024-12-19T16:18:06.902799Z)

✅ uss2_dss (2024-12-19T16:18:06.924467Z)

40.4.1.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878663Z)

✅ uss2_dss (2024-12-19T16:18:06.902875Z)

✅ uss2_dss (2024-12-19T16:18:06.924542Z)

40.4.1.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878621Z)

✅ uss2_dss (2024-12-19T16:18:06.902834Z)

✅ uss2_dss (2024-12-19T16:18:06.924502Z)

40.4.1.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878703Z)

✅ uss2_dss (2024-12-19T16:18:06.902914Z)

✅ uss2_dss (2024-12-19T16:18:06.924581Z)

40.4.1.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:06.878737Z)

✅ uss2_dss (2024-12-19T16:18:06.902949Z)

✅ uss2_dss (2024-12-19T16:18:06.924616Z)

40.4.1.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878772Z)

✅ uss2_dss (2024-12-19T16:18:06.902989Z)

✅ uss2_dss (2024-12-19T16:18:06.924650Z)

40.4.1.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:06.878816Z)

✅ uss2_dss (2024-12-19T16:18:06.903028Z)

✅ uss2_dss (2024-12-19T16:18:06.924684Z)

40.4.1.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS under test is properly formatted and contains the expected content.

✅ uss2_dss (2024-12-19T16:18:06.878851Z)

✅ uss2_dss (2024-12-19T16:18:06.903104Z)

✅ uss2_dss (2024-12-19T16:18:06.924718Z)

40.4.2. Query newly created subscription test step

Query the created subscription at every DSS provided in dss_instances.

40.4.2.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

40.4.2.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.930848Z)

✅ uss2_dss (2024-12-19T16:18:06.958481Z)

40.4.2.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931613Z)

✅ uss2_dss (2024-12-19T16:18:06.959267Z)

40.4.2.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931675Z)

✅ uss2_dss (2024-12-19T16:18:06.959352Z)

40.4.2.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931725Z)

✅ uss2_dss (2024-12-19T16:18:06.959410Z)

40.4.2.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931771Z)

✅ uss2_dss (2024-12-19T16:18:06.959457Z)

40.4.2.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931818Z)

✅ uss2_dss (2024-12-19T16:18:06.959505Z)

40.4.2.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931862Z)

✅ uss2_dss (2024-12-19T16:18:06.959548Z)

40.4.2.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.931906Z)

✅ uss2_dss (2024-12-19T16:18:06.959591Z)

40.4.2.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.951021Z)

✅ uss2_dss (2024-12-19T16:18:06.978144Z)

40.4.2.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just created is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:06.954372Z)

✅ uss2_dss (2024-12-19T16:18:06.981572Z)

40.4.2.2. Get subscription

This test step fragment validates that subscriptions can be read.

40.4.2.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

40.4.2.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

40.4.2.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that each DSS provides access to the created subscription,

✅ uss1_dss (2024-12-19T16:18:06.942219Z)

✅ uss2_dss (2024-12-19T16:18:06.969526Z)

40.4.2.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

40.4.2.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

40.4.2.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:18:06.947354Z)

✅ uss1_dss (2024-12-19T16:18:06.954271Z)

✅ uss2_dss (2024-12-19T16:18:06.974224Z)

✅ uss2_dss (2024-12-19T16:18:06.981496Z)

40.4.2.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that each DSS returns the created subscription when searched for.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.2.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.2.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by every DSS is correctly formatted and corresponds to what was created earlier.

This check was not applicable to this test run and is therefore not statused.

40.4.2.5. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.2.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

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

This check was not applicable to this test run and is therefore not statused.

40.4.3. Mutate subscription broadcast test step

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

40.4.3.1. Update subscription

This test step fragment validates that subscriptions can be updated.

40.4.3.1.1. Update query succeeds

This test step fragment validates that a query to update a subscription succeeds.

40.4.3.1.2. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss2_dss (2024-12-19T16:18:06.988980Z)

40.4.3.1.3. 🛑 Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.000696Z)

40.4.3.1.4. 🛑 Mutate subscription response content is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the mutated subscription.

If the content of the response does correspond to the requested mutation, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirm that the subscription can be mutated.

✅ uss2_dss (2024-12-19T16:18:07.001962Z)

40.4.3.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.3.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.001448Z)

40.4.3.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.3.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001941Z)

40.4.3.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.001521Z)

40.4.3.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001570Z)

40.4.3.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.001609Z)

40.4.3.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001685Z)

40.4.3.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001645Z)

40.4.3.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001724Z)

40.4.3.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.001768Z)

40.4.3.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001838Z)

40.4.3.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.001872Z)

40.4.3.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

✅ uss2_dss (2024-12-19T16:18:07.001906Z)

40.4.3.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.3.3.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS has been updated.

✅ uss2_dss (2024-12-19T16:18:07.001804Z)

40.4.4. Query updated subscription test step

Query the updated subscription at every DSS provided in dss_instances.

40.4.4.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

40.4.4.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.006359Z)

✅ uss2_dss (2024-12-19T16:18:07.032279Z)

40.4.4.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007102Z)

✅ uss2_dss (2024-12-19T16:18:07.033058Z)

40.4.4.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007165Z)

✅ uss2_dss (2024-12-19T16:18:07.033121Z)

40.4.4.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007216Z)

✅ uss2_dss (2024-12-19T16:18:07.033172Z)

40.4.4.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007260Z)

✅ uss2_dss (2024-12-19T16:18:07.033217Z)

40.4.4.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007307Z)

✅ uss2_dss (2024-12-19T16:18:07.033265Z)

40.4.4.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007379Z)

✅ uss2_dss (2024-12-19T16:18:07.033309Z)

40.4.4.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.007425Z)

✅ uss2_dss (2024-12-19T16:18:07.033372Z)

40.4.4.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.025793Z)

✅ uss2_dss (2024-12-19T16:18:07.052181Z)

40.4.4.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just mutated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.029120Z)

✅ uss2_dss (2024-12-19T16:18:07.055527Z)

40.4.4.2. Get subscription

This test step fragment validates that subscriptions can be read.

40.4.4.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

40.4.4.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

40.4.4.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be retrieved from any DSS.

✅ uss1_dss (2024-12-19T16:18:07.017132Z)

✅ uss2_dss (2024-12-19T16:18:07.043512Z)

40.4.4.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

40.4.4.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

40.4.4.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:18:07.022074Z)

✅ uss1_dss (2024-12-19T16:18:07.029043Z)

✅ uss2_dss (2024-12-19T16:18:07.048231Z)

✅ uss2_dss (2024-12-19T16:18:07.055451Z)

40.4.4.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be searched for from any DSS.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.4.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.4.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by every DSS is correctly formatted and corresponds to what was mutated earlier.

This check was not applicable to this test run and is therefore not statused.

40.4.4.5. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.4.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

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

This check was not applicable to this test run and is therefore not statused.

40.4.5. Mutate subscription on secondaries test step

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.

Note that this step is repeated for every secondary DSS instance.

40.4.5.1. 🛑 Subscription can be mutated on secondary DSS check

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:

astm.f3548.v21.DSS0210,1b, 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); astm.f3548.v21.DSS0005,5, if the secondary DSS fails to properly implement the API to mutate subscriptions.

✅ uss2_dss (2024-12-19T16:18:07.077446Z)

40.4.5.2. 🛑 Subscription returned by a secondary DSS is valid and correct check

When queried for a subscription that was created 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.

This check was not applicable to this test run and is therefore not statused.

40.4.5.3. Update subscription

This test step fragment validates that subscriptions can be updated.

40.4.5.3.1. Update query succeeds

This test step fragment validates that a query to update a subscription succeeds.

40.4.5.3.2. 🛑 Subscription can be mutated check

If a subscription cannot be updated with a valid set of parameters, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

40.4.5.3.3. 🛑 Mutate subscription response format conforms to spec check

The response to a successful subscription mutation query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.090555Z)

40.4.5.3.4. 🛑 Mutate subscription response content is correct check

A successful subscription mutation query is expected to return a well-defined body, the content of which reflects the mutated subscription.

If the content of the response does correspond to the requested mutation, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirm that the secondary DSS handles the update properly.

✅ uss2_dss (2024-12-19T16:18:07.091906Z)

40.4.5.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.5.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.091422Z)

40.4.5.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.5.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091885Z)

40.4.5.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.091474Z)

40.4.5.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091518Z)

40.4.5.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.091556Z)

40.4.5.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091634Z)

40.4.5.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091592Z)

40.4.5.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091674Z)

40.4.5.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.091709Z)

40.4.5.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091778Z)

40.4.5.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.091813Z)

40.4.5.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

✅ uss2_dss (2024-12-19T16:18:07.091848Z)

40.4.5.5. Validate version is updated by mutation

This test step fragment attempts to validate a single subscription returned by the DSS after its mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.5.5.1. ⚠️ Mutated subscription version is updated check

Following a mutation, the DSS needs to update the subscription version, otherwise it is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription is updated after the mutation on the secondary.

✅ uss2_dss (2024-12-19T16:18:07.091743Z)

40.4.6. Verify mutation on all secondaries test step

This step verifies that the mutation of the subscription on a secondary instance, from the previous step, is properly propagated to every other DSS.

Note that this step is repeated for every secondary DSS instance.

40.4.6.1. Subscription is synchronized

This test step fragment validates that subscriptions are properly synchronized across a set of DSS instances.

40.4.6.1.1. 🛑 Subscription can be found at every DSS check

If the previously created or mutated subscription cannot be found at a DSS, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.096082Z)

✅ uss2_dss (2024-12-19T16:18:07.122568Z)

40.4.6.1.2. ⚠️ Propagated subscription contains the correct USS base URL check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct USS base URL, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1c, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.096865Z)

✅ uss2_dss (2024-12-19T16:18:07.123343Z)

40.4.6.1.3. ⚠️ Propagated subscription contains the correct start time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct start time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.096928Z)

✅ uss2_dss (2024-12-19T16:18:07.123408Z)

40.4.6.1.4. ⚠️ Propagated subscription contains the correct end time check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct end time, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1e, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.096981Z)

✅ uss2_dss (2024-12-19T16:18:07.123459Z)

40.4.6.1.5. ⚠️ Propagated subscription contains the correct version check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct version, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1f, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.097026Z)

✅ uss2_dss (2024-12-19T16:18:07.123506Z)

40.4.6.1.6. ⚠️ Propagated subscription contains the correct notification flags check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct notification flags, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1g, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.097073Z)

✅ uss2_dss (2024-12-19T16:18:07.123553Z)

40.4.6.1.7. ⚠️ Propagated subscription contains the correct implicit flag check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the correct implicit flag, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1h, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.097115Z)

✅ uss2_dss (2024-12-19T16:18:07.123595Z)

40.4.6.1.8. ⚠️ Propagated subscription contains expected notification count check

If the subscription returned by a DSS to which the subscription was synchronized to does not contain the expected notification count, either one of the instances at which the subscription was created or the one that was queried, is failing to implement one of the following requirements:

astm.f3548.v21.DSS0210,1i, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.097160Z)

✅ uss2_dss (2024-12-19T16:18:07.123638Z)

40.4.6.1.9. ⚠️ Secondary DSS returns the subscription in searches for area that contains it check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area that encompasses the created subscription, the secondary DSS should return the subscription in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.115656Z)

✅ uss2_dss (2024-12-19T16:18:07.143512Z)

40.4.6.1.10. ⚠️ Secondary DSS does not return the subscription in searches not encompassing the general area of the subscription check

The secondary DSS should be aware of the subscription's area: when a search query is issued for an area not in the vicinity of the created subscription, the secondary DSS should not return it in its search results.

Otherwise, it is in violation of one of the following requirements:

astm.f3548.v21.DSS0210,1d, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, if the DSS 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.

Confirm that the subscription that was just mutated is properly synchronized across all DSS instances.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.119197Z)

✅ uss2_dss (2024-12-19T16:18:07.147141Z)

40.4.6.2. Get subscription

This test step fragment validates that subscriptions can be read.

40.4.6.2.1. Read query succeeds

This test step fragment validates that a query to read a subscription succeeds.

40.4.6.2.2. 🛑 Get Subscription by ID check

If a subscription cannot be queried using its ID, the DSS is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

This check was not applicable to this test run and is therefore not statused.

40.4.6.2.3. 🛑 Get subscription response format conforms to spec check

The response to a successful get subscription query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be retrieved from any DSS, and that it has the expected content.

✅ uss1_dss (2024-12-19T16:18:07.106902Z)

✅ uss2_dss (2024-12-19T16:18:07.133923Z)

40.4.6.3. Search subscription

This test step fragment validates that subscriptions can be searched for.

40.4.6.3.1. Search query succeeds

This test step fragment validates that a query to search for subscriptions succeeds.

40.4.6.3.2. 🛑 Successful subscription search query check

If the DSS fails to let us search in the area for which the subscription was created, it is failing to meet astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:18:07.111903Z)

✅ uss1_dss (2024-12-19T16:18:07.119122Z)

✅ uss2_dss (2024-12-19T16:18:07.139690Z)

✅ uss2_dss (2024-12-19T16:18:07.147063Z)

40.4.6.3.3. 🛑 Created Subscription is in search results check

If the existing subscription is not returned in a search that covers the area it was created for, the DSS is not properly implementing astm.f3548.v21.DSS0005,5.

Confirms that the subscription that was just mutated can be searched for from any DSS, and that it has the expected content.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.6.4.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.6.4.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS is properly formatted and contains the correct content.

This check was not applicable to this test run and is therefore not statused.

40.4.6.5. Validate version is as expected when read

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.6.5.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that when we are reading the subscription without mutating it, the version is as expected.

This check was not applicable to this test run and is therefore not statused.

40.4.7. Create subscription with different credentials test step

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.

40.4.7.1. Create subscription

This test step fragment validates that a query to create a subscription with valid parameters succeeds.

40.4.7.1.1. 🛑 Create subscription query succeeds check

As per astm.f3548.v21.DSS0005,5, 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.

Verify that a subscription can be created on the primary DSS using the separate set of credentials.

✅ uss2_dss (2024-12-19T16:18:07.063446Z)

40.4.8. Verify manager synchronization test step

If the second set of credentials is provided, checks that the manager of a subscription is properly synchronized across all DSS instances.

This is done by verifying that the main credentials are not able to delete the subscription via any of the secondary DSS instances.

40.4.8.1. ⚠️ Subscription deletion with different non-managing credentials on secondary DSS fails check

If the subscription can be deleted by a client which did not create it, via a DSS instance to which the subscription was synced following its creation on the primary DSS, either one of the primary DSS or the DSS that accepted the deletion failed to properly broadcast, respectively take into account, the manage of the subscription, and therefore violates astm.f3548.v21.DSS0210,1b.

✅ uss1_dss (2024-12-19T16:18:07.067113Z)

✅ uss2_dss (2024-12-19T16:18:07.070025Z)

40.4.9. Delete subscription on primary test step

Attempt to delete the subscription that was created on the primary DSS through the primary DSS in various ways, and ensure that the DSS reacts properly.

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

40.4.9.1. Delete subscription

This test step fragment validates that subscriptions can be deleted.

40.4.9.1.1. Delete query succeeds

This test step fragment validates that a query to remove a subscription succeeds.

40.4.9.1.2. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss2_dss (2024-12-19T16:18:07.231879Z)

40.4.9.1.3. 🛑 Delete subscription response format conforms to spec check

The response to a successful subscription deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.247672Z)

40.4.9.1.4. 🛑 Delete subscription response content is correct check

A successful subscription deletion query is expected to return a well-defined body, the content of which reflects the deleted subscription.

If the content of the response does not correspond to the subscription at the time of deletion, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that a subscription can be deleted.

✅ uss2_dss (2024-12-19T16:18:07.248231Z)

40.4.9.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.9.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.247762Z)

40.4.9.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.9.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.248210Z)

40.4.9.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.247805Z)

40.4.9.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.247846Z)

40.4.9.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.247881Z)

40.4.9.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.247961Z)

40.4.9.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.247915Z)

40.4.9.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.248001Z)

40.4.9.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss2_dss (2024-12-19T16:18:07.248037Z)

40.4.9.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.248106Z)

40.4.9.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss2_dss (2024-12-19T16:18:07.248141Z)

40.4.9.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss2_dss (2024-12-19T16:18:07.248176Z)

40.4.9.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.9.3.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS is as expected

✅ uss2_dss (2024-12-19T16:18:07.248072Z)

40.4.10. Query deleted subscription test step

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

40.4.10.1. 🛑 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 one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, 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.

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.251079Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:07.253284Z)

40.4.11. Delete subscriptions on secondaries test step

Attempt to delete subscriptions that were created through the primary DSS via the secondary DSS instances.

40.4.11.1. Delete subscription

This test step fragment validates that subscriptions can be deleted.

40.4.11.1.1. Delete query succeeds

This test step fragment validates that a query to remove a subscription succeeds.

40.4.11.1.2. 🛑 Subscription can be deleted check

An attempt to delete a subscription when the correct version is provided should succeed, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Check query succeeds.

✅ uss1_dss (2024-12-19T16:18:07.260291Z)

✅ uss2_dss (2024-12-19T16:18:07.285343Z)

40.4.11.1.3. 🛑 Delete subscription response format conforms to spec check

The response to a successful subscription deletion query is expected to conform to the format defined by the OpenAPI specification under the A3.1 Annex of ASTM F3548−21.

If it does not, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.271703Z)

✅ uss2_dss (2024-12-19T16:18:07.297742Z)

40.4.11.1.4. 🛑 Delete subscription response content is correct check

A successful subscription deletion query is expected to return a well-defined body, the content of which reflects the deleted subscription.

If the content of the response does not correspond to the subscription at the time of deletion, the DSS is failing to implement astm.f3548.v21.DSS0005,5.

Confirms that a subscription can be deleted from a secondary DSS

✅ uss1_dss (2024-12-19T16:18:07.272255Z)

✅ uss2_dss (2024-12-19T16:18:07.298291Z)

40.4.11.2. Validate subscription

This test step fragment attempts to validate the content of a single subscription returned by the DSS.

The code for these checks lives in the subscription_validator.py class.

40.4.11.2.1. ⚠️ Returned subscription ID is correct check

If the returned subscription ID does not correspond to the one specified in the creation parameters, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:18:07.271770Z)

✅ uss2_dss (2024-12-19T16:18:07.297817Z)

40.4.11.2.2. ⚠️ New subscription has a notification index of 0 check

The notification index of a newly created subscription must be 0, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

This check was not applicable to this test run and is therefore not statused.

40.4.11.2.3. ⚠️ Returned notification index is equal to or greater than 0 check

If the notification index of the subscription is less than 0, the DSS fails to properly implement astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.272234Z)

✅ uss2_dss (2024-12-19T16:18:07.298271Z)

40.4.11.2.4. ⚠️ Returned subscription has an USS base URL check

If the returned subscription has no USS base URL defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:18:07.271814Z)

✅ uss2_dss (2024-12-19T16:18:07.297860Z)

40.4.11.2.5. ⚠️ Returned USS base URL has correct base URL check

The returned USS base URL must be prefixed with the USS base URL that was provided at subscription creation, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.271855Z)

✅ uss2_dss (2024-12-19T16:18:07.297901Z)

40.4.11.2.6. ⚠️ Returned subscription has a start time check

If the returned subscription has no start time defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:18:07.271891Z)

✅ uss2_dss (2024-12-19T16:18:07.297938Z)

40.4.11.2.7. ⚠️ Returned start time is correct check

The returned start time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.271970Z)

✅ uss2_dss (2024-12-19T16:18:07.298017Z)

40.4.11.2.8. ⚠️ Returned subscription has an end time check

Subscriptions need a defined end time in order to limit their duration: if the DSS omits to set the end time, it will be in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.271928Z)

✅ uss2_dss (2024-12-19T16:18:07.297973Z)

40.4.11.2.9. ⚠️ Returned end time is correct check

The returned end time must be the same as the provided one, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.272019Z)

✅ uss2_dss (2024-12-19T16:18:07.298060Z)

40.4.11.2.10. ⚠️ Returned subscription has a version check

If the returned subscription has no version defined, astm.f3548.v21.DSS0005,5 is not respected.

✅ uss1_dss (2024-12-19T16:18:07.272056Z)

✅ uss2_dss (2024-12-19T16:18:07.298096Z)

40.4.11.2.11. ⚠️ Non-implicit subscription has implicit flag set to false check

A subscription that was explicitly created by a client should always have its implicit_subscription flag set to false, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.272127Z)

✅ uss2_dss (2024-12-19T16:18:07.298167Z)

40.4.11.2.12. ⚠️ Operational intents notification flag is as requested check

If the subscription was created with the include_operational_intents flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

✅ uss1_dss (2024-12-19T16:18:07.272162Z)

✅ uss2_dss (2024-12-19T16:18:07.298201Z)

40.4.11.2.13. ⚠️ Constraints notification flag is as requested check

If the subscription was created with the include_constraints flag set to true, the returned subscription must have the same flag set to true, otherwise the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the subscription returned by the DSS via the deletion is properly formatted and contains the correct content.

✅ uss1_dss (2024-12-19T16:18:07.272198Z)

✅ uss2_dss (2024-12-19T16:18:07.298236Z)

40.4.11.3. Validate version

This test step fragment attempts to validate a single subscription returned by the DSS after its creation or mutation.

The code for these checks lives in the subscription_validator.py class.

40.4.11.3.1. ⚠️ Non-mutated subscription keeps the same version check

If the version of the subscription is updated without there having been any mutation of the subscription, the DSS is in violation of astm.f3548.v21.DSS0005,5.

Verify that the version of the subscription returned by the DSS is as expected

✅ uss1_dss (2024-12-19T16:18:07.272092Z)

✅ uss2_dss (2024-12-19T16:18:07.298132Z)

40.4.11.4. 🛑 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 one of the following requirements:

astm.f3548.v21.DSS0210,1a, if the API is not working as described by the OpenAPI specification; astm.f3548.v21.DSS0215, 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.

✅ uss2_dss, uss1_dss (2024-12-19T16:18:07.274754Z)

✅ uss1_dss, uss1_dss (2024-12-19T16:18:07.276954Z)

✅ uss2_dss, uss1_dss (2024-12-19T16:18:07.279104Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:07.300783Z)

✅ uss1_dss, uss2_dss (2024-12-19T16:18:07.302947Z)

✅ uss2_dss, uss2_dss (2024-12-19T16:18:07.305050Z)

40.5. Cleanup

40.5.1. Ensure that no subscriptions with the known test IDs remain in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any subscriptions from the DSS that may have been left behind from testing efforts.

40.5.1.1. 🛑 Successful subscription search query check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to retrieve the subscriptions they created.

This check was not applicable to this test run and is therefore not statused.

40.5.1.2. 🛑 Subscription can be queried by ID check

If the DSS cannot be queried for the existing test ID, the DSS is likely not implementing astm.f3548.v21.DSS0005,5 correctly.

✅ uss2_dss (2024-12-19T16:18:07.307390Z)

✅ uss2_dss (2024-12-19T16:18:07.309555Z)

✅ uss2_dss (2024-12-19T16:18:07.311587Z)

✅ uss2_dss (2024-12-19T16:18:07.314891Z)

40.5.1.3. 🛑 Subscription can be deleted check

astm.f3548.v21.DSS0005,5 requires the implementation of the DSS endpoint to allow callers to delete subscriptions they created.

This includes the main test subscription used in this test, as well as the extra subscription used for testing the manager field sync, if the test is configured to test for it.

✅ uss2_dss (2024-12-19T16:18:07.321786Z)

41. [skipped] ASTM UTM DSS: Direct CRDB access

This instance of this test scenario was skipped in this test run because: Test suite action to run ActionType.TestScenario scenarios.astm.utm.dss.CRDBAccess could not find required resource ID "dss_crdb_cluster" used to populate child resource ID "crdb_cluster"

42. [S37] OVN Request Optional Extension to ASTM F3548-21

42.1. Description

This test validates that a DSS correctly implements the OVN Request Optional Extension to ASTM F3548-21.

42.2. Resources

42.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

42.2.2. id_generator

IDGeneratorResource providing the base entity ID for this scenario.

✅ Provided by id_generator in top-level resource pool.

42.2.3. client_identity

ClientIdentityResource the client identity that will be used to create and update operational intent references.

✅ Provided by utm_client_identity in top-level resource pool.

42.2.4. planning_area

PlanningAreaResource describes the 3D volume in which operational intent references will be created.

✅ Provided by planning_area in top-level resource pool.

42.3. Setup test case

42.3.1. Ensure clean workspace test step

42.3.1.1. Ensure that no operational intents with the known test IDs exists in the DSS

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

42.3.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:07.329764Z)

42.3.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

✅ uss2_dss (2024-12-19T16:18:07.327246Z)

42.3.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

This check was not applicable to this test run and is therefore not statused.

42.4. Request for OIR OVN with valid suffix test case

This case validates the nominal behavior of the OVN request.

42.4.1. Create OIR with OVN suffix request test step

42.4.1.1. Create OIR with OVN suffix request

This test step fragment validates that a query to create an operational intent reference with valid parameters succeeds

42.4.1.1.1. 🛑 Create operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, 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 that the OIR creation query succeeds.

✅ uss2_dss (2024-12-19T16:18:07.343178Z)

42.4.1.2. DSS has set the expected OVN using the requested OVN suffix

This test step fragment validates that the DSS has set the expected OVN correctly after an USS requested a suffix.

42.4.1.2.1. 🛑 DSS has set the expected OVN using the requested OVN suffix check

If the DSS has not set the OVN according to the specifications, it will fail this check as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS has set the expected OVN correctly.

✅ uss2_dss (2024-12-19T16:18:07.343228Z)

42.4.2. Activate OIR with OVN suffix request test step

42.4.2.1. Update OIR with OVN suffix request

This test step fragment validates that a query to update an operational intent reference with valid parameters succeeds.

42.4.2.1.1. 🛑 Mutate operational intent reference query succeeds check

As per astm.f3548.v21.DSS0005,1, the DSS API must allow callers to mutate an operational intent reference. Check that the OIR update query succeeds.

✅ uss2_dss (2024-12-19T16:18:07.362233Z)

42.4.2.2. DSS has set the expected OVN using the requested OVN suffix

This test step fragment validates that the DSS has set the expected OVN correctly after an USS requested a suffix.

42.4.2.2.1. 🛑 DSS has set the expected OVN using the requested OVN suffix check

If the DSS has not set the OVN according to the specifications, it will fail this check as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS has set the expected OVN correctly.

✅ uss2_dss (2024-12-19T16:18:07.362292Z)

42.5. Request for OIR OVN with invalid suffix test case

This case validates the off-nominal behaviors of the OVN request.

42.5.1. Attempt to create OIR with OVN suffix request not being a UUID test step

42.5.1.1. Attempt to create OIR with OVN suffix request not being a UUID rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

42.5.1.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are not UUIDs. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss2_dss (2024-12-19T16:18:07.364166Z)

42.5.2. Attempt to create OIR with OVN suffix request empty test step

42.5.2.1. Attempt to create OIR with OVN suffix request empty rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

42.5.2.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are empty. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss2_dss (2024-12-19T16:18:07.365794Z)

42.5.3. Attempt to create OIR with OVN suffix request being a UUID but not v7 test step

42.5.3.1. Attempt to create OIR with OVN suffix request being a UUID but not v7 rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

42.5.3.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are UUIDs but not v7. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss2_dss (2024-12-19T16:18:07.367760Z)

42.5.4. Attempt to create OIR with OVN suffix request being an outdated UUIDv7 test step

42.5.4.1. Attempt to create OIR with OVN suffix request being an outdated UUIDv7 rejected

This test step fragment validates that the DSS rejects invalid attempts to request an OVN suffix.

42.5.4.1.1. 🛑 Attempt to create OIR with invalid requested OVN suffix query rejected check

If the DSS accepts the OVN suffix, or fails with an error other than an HTTP code 400, this check will fail as per interuss.f3548.ovn_request.ImplementAPI. Check that the DSS rejects OVN suffix that are outdated UUIDv7. If the DSS accepts the OVN suffix, or fails with an unexpected error, this check will fail.

✅ uss2_dss (2024-12-19T16:18:07.369590Z)

42.6. Cleanup

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

42.6.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:07.373118Z)

42.6.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

This check was not applicable to this test run and is therefore not statused.

42.6.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

✅ uss2_dss (2024-12-19T16:18:07.384723Z)

43. [S38] ASTM SCD DSS: Report

43.1. Overview

This scenario tests the ability of the DSS to receive DSS reports.

43.2. Resources

43.2.1. dss

DSSInstanceResource to be tested in this scenario.

✅ Provided by instance 2 in dss_instances in top-level resource pool.

43.3. DSS Report test case

This test attempts to submit to the DSS a report about a communication issue with a DSS that might otherwise go unnoticed. A dummy getOperationalIntentReference query is made to a non-existent DSS in order to produce a realistic report, as if a DSS was not reachable when trying to retrieve an operational intent reference.

43.3.1. Make valid DSS report test step

43.3.1.1. Make report to DSS

This step makes a report to the DSS.

See make_dss_report in test_steps.py.

43.3.1.1.1. 🛑 DSS report successfully submitted check

If the submission of the report to the DSS does not succeed, this check will fail per astm.f3548.v21.DSS0100,2.

✅ uss2_dss (2024-12-19T16:18:07.598890Z)

43.3.1.1.2. ⚠️ DSS returned a valid report ID check

If the ID returned by the DSS is not present or is empty, this check will fail per astm.f3548.v21.DSS0100,2.

✅ uss2_dss (2024-12-19T16:18:07.598947Z)

44. [S39] Solo happy path

44.1. Description

This scenario performs a simple flight planning sequence with a single USS and no interactions with other USSs. It verifies that basic planning functionality for the USS works properly.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

44.2. Resources

44.2.1. flight_intents

The FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority Airspace usage state UAS state
flight1_planned Flight 1 Any (but all the same) Planned Nominal
flight1_activated InUse

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

44.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

44.2.3. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

44.3. Prerequisites check test case

This test case was not applicable to this test run and is therefore not statused.

44.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

44.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

44.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

44.4. Solo happy path test case

This test case was not applicable to this test run and is therefore not statused.

44.4.1. Plan Flight 1 test step

44.4.1.1. Plan Flight 1

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

44.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

44.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should be successfully planned by the tested USS.

44.4.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

44.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

44.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

44.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

44.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

44.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

44.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

44.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

44.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

44.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

44.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

44.4.2. Activate Flight 1 test step

44.4.2.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

44.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

44.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should be successfully activated by the tested USS.

44.4.2.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

44.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

44.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

44.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

44.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

44.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

44.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

44.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

44.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

44.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

44.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

44.4.3. Delete Flight 1 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

44.4.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. Flight 1 should be sucessfully removed from the system by the tested USS.

44.5. Cleanup

44.5.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccessThis check was not applicable to this test run and is therefore not statused.

45. [S40] Solo happy path

45.1. Description

This scenario performs a simple flight planning sequence with a single USS and no interactions with other USSs. It verifies that basic planning functionality for the USS works properly.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

45.2. Resources

45.2.1. flight_intents

The FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority Airspace usage state UAS state
flight1_planned Flight 1 Any (but all the same) Planned Nominal
flight1_activated InUse

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

45.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

45.2.3. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

45.3. Prerequisites check test case

This test case was not applicable to this test run and is therefore not statused.

45.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

45.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

45.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

45.4. Solo happy path test case

This test case was not applicable to this test run and is therefore not statused.

45.4.1. Plan Flight 1 test step

45.4.1.1. Plan Flight 1

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

45.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

45.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should be successfully planned by the tested USS.

45.4.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

45.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

45.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

45.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

45.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

45.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

45.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

45.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

45.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

45.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

45.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

45.4.2. Activate Flight 1 test step

45.4.2.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

45.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

45.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should be successfully activated by the tested USS.

45.4.2.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

45.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

45.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

45.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

45.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

45.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

45.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

45.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

45.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

45.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

45.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

45.4.3. Delete Flight 1 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

45.4.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. Flight 1 should be sucessfully removed from the system by the tested USS.

45.5. Cleanup

45.5.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccessThis check was not applicable to this test run and is therefore not statused.

46. [S41] Validation of operational intents

46.1. Description

This test checks that the USS validates correctly the operational intents it creates. Notably the following requirements:

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

46.2. Resources

46.2.1. flight_intents

FlightIntentsResource that provides the following flight intents:

Flight intent ID Flight name Usage State UAS State Invalid details
valid_flight Valid Flight Planned Nominal N/A
valid_activated InUse
valid_conflict_tiny_overlap Tiny Overlap Conflict Flight Planned Nominal Conflicts with Flight 1 such that their 3D volumes have an overlap just above IntersectionMinimumPrecision = 1cm
invalid_too_far_away Too Far Away Flight Has a start time that is more than OiMaxPlanHorizon = 30 days ahead of time
invalid_recently_ended Recently Ended Flight Has an end time that is within 5 to 10 seconds in the past.

Because the scenario involves activation of intents, all activated intents must be active during the execution of the test scenario. Additionally, their end time must leave sufficient time for the execution of the test scenario. For the sake of simplicity, it is recommended to set the start and end times of all the intents to the same range.

✅ Provided by invalid_flight_intents in top-level resource pool.

46.2.2. tested_uss

FlightPlannerResource that will be tested for its validation of operational intents.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

46.2.3. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

46.3. Attempt to plan invalid flights test case

46.3.1. Attempt to plan Too Far Away Flight test step

The user flight intent that the test driver attempts to plan has a start time that is more than OiMaxPlanHorizon = 30 days ahead of time. As such, the attempt should be rejected.

46.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate the intent provided. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.OPIN0030.

✅ uss1_core (2024-12-19T16:18:07.643817Z)

46.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.643770Z)

46.3.1.3. Validate Too Far Away Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

46.3.1.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.611431Z)

✅ uss1_dss (2024-12-19T16:18:07.647813Z)

46.3.1.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.647872Z)

46.3.2. Attempt to plan Recently Ended Flight test step

The user flight intent that the test driver attempts to plan has recently ended by just slightly more than TimeSyncMaxDifferentialSeconds = 5 seconds. As such, if the USS synchronizes its time correctly, the attempt should be rejected.

46.3.2.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate that the intent provided was in the past. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per one of the following requirements:

✅ uss1_core (2024-12-19T16:18:07.670756Z)

46.3.2.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.670710Z)

46.3.2.3. Validate Recently Ended Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

46.3.2.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.654945Z)

✅ uss1_dss (2024-12-19T16:18:07.674854Z)

46.3.2.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.674913Z)

46.4. Validate transition to Ended state after cancellation test case

46.4.1. Plan Valid Flight test step

46.4.1.1. Plan Valid Flight

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

46.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:07.735231Z)

46.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The valid flight should be successfully planned by the flight planner.

✅ uss1_core (2024-12-19T16:18:07.735188Z)

46.4.1.2. Validate Valid Flight shared correctly

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

46.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.681920Z)

✅ uss1_dss (2024-12-19T16:18:07.740428Z)

46.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:07.740497Z)

46.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

46.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.740550Z)

46.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:07.756704Z)

46.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:07.771117Z)

46.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:07.772795Z)

46.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:07.772844Z)

46.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:07.772880Z)

46.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Validate that the flight was shared correctly and is discoverable.

This check was not applicable to this test run and is therefore not statused.

46.4.2. Remove Valid Flight test step

46.4.2.1. Cancel Valid Flight

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

46.4.2.1.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. The flight should be successfully transitioned to Ended state by the flight planner.

✅ uss1_core (2024-12-19T16:18:07.802991Z)

46.4.2.2. Validate Valid Flight is non-discoverable

This step verifies that ending/removal/cancellation of a flight resulted in the operational intent reference being removed from the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted removal. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_removed() in test_steps.py.

46.4.2.2.1. 🛑 DSS responses check

astm.f3548.v21.DSS0005,2

✅ uss1_dss (2024-12-19T16:18:07.778665Z)

✅ uss1_dss (2024-12-19T16:18:07.806886Z)

46.4.2.2.2. 🛑 Operational intent not shared check

If the operational intent reference for the flight is still found in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.806948Z)

46.4.2.3. 🛑 Operational intent not shared check

If the operational intent is still discoverable after it was transitioned to Ended, this check will fail per astm.f3548.v21.OPIN0040.

✅ uss1_core (2024-12-19T16:18:07.806948Z)

46.5. Validate precision of intersection computations test case

46.5.1. Plan Valid Flight test step

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

46.5.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:07.848933Z)

46.5.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The valid flight intent should be successfully planned by the flight planner.

✅ uss1_core (2024-12-19T16:18:07.848890Z)

46.5.2. Attempt to plan Tiny Overlap Conflict Flight test step

The tested USS is instructed to plan a flight that is constructed in a way that it intersects with Valid Flight by just over IntersectionMinimumPrecision = 1 cm.

46.5.2.1. 🛑 Incorrectly planned check

If the tested USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to correctly compute the conflicting intersection. Therefore, this check will fail if the USS indicates success in planning the flight from the user flight intent, per astm.f3548.v21.GEN0500.

✅ uss1_core (2024-12-19T16:18:07.894560Z)

46.5.2.2. Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.894519Z)

46.5.2.3. Validate Tiny Overlap Conflict Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

46.5.2.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.857130Z)

✅ uss1_dss (2024-12-19T16:18:07.899806Z)

46.5.2.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:07.899862Z)

46.6. Cleanup

46.6.1. Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss1_core (2024-12-19T16:18:07.911040Z)

✅ uss1_core (2024-12-19T16:18:07.935508Z)

✅ uss1_core (2024-12-19T16:18:07.943890Z)

✅ uss1_core (2024-12-19T16:18:07.951167Z)

47. [S42] Validation of operational intents

47.1. Description

This test checks that the USS validates correctly the operational intents it creates. Notably the following requirements:

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

47.2. Resources

47.2.1. flight_intents

FlightIntentsResource that provides the following flight intents:

Flight intent ID Flight name Usage State UAS State Invalid details
valid_flight Valid Flight Planned Nominal N/A
valid_activated InUse
valid_conflict_tiny_overlap Tiny Overlap Conflict Flight Planned Nominal Conflicts with Flight 1 such that their 3D volumes have an overlap just above IntersectionMinimumPrecision = 1cm
invalid_too_far_away Too Far Away Flight Has a start time that is more than OiMaxPlanHorizon = 30 days ahead of time
invalid_recently_ended Recently Ended Flight Has an end time that is within 5 to 10 seconds in the past.

Because the scenario involves activation of intents, all activated intents must be active during the execution of the test scenario. Additionally, their end time must leave sufficient time for the execution of the test scenario. For the sake of simplicity, it is recommended to set the start and end times of all the intents to the same range.

✅ Provided by invalid_flight_intents in top-level resource pool.

47.2.2. tested_uss

FlightPlannerResource that will be tested for its validation of operational intents.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

47.2.3. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

47.3. Attempt to plan invalid flights test case

47.3.1. Attempt to plan Too Far Away Flight test step

The user flight intent that the test driver attempts to plan has a start time that is more than OiMaxPlanHorizon = 30 days ahead of time. As such, the attempt should be rejected.

47.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate the intent provided. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.OPIN0030.

✅ uss2_core (2024-12-19T16:18:07.979474Z)

47.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:07.979432Z)

47.3.1.3. Validate Too Far Away Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

47.3.1.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.960336Z)

✅ uss1_dss (2024-12-19T16:18:07.983162Z)

47.3.1.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:07.983215Z)

47.3.2. Attempt to plan Recently Ended Flight test step

The user flight intent that the test driver attempts to plan has recently ended by just slightly more than TimeSyncMaxDifferentialSeconds = 5 seconds. As such, if the USS synchronizes its time correctly, the attempt should be rejected.

47.3.2.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to validate that the intent provided was in the past. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per one of the following requirements:

✅ uss2_core (2024-12-19T16:18:08.004502Z)

47.3.2.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.004464Z)

47.3.2.3. Validate Recently Ended Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

47.3.2.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:07.990309Z)

✅ uss1_dss (2024-12-19T16:18:08.007984Z)

47.3.2.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.008033Z)

47.4. Validate transition to Ended state after cancellation test case

47.4.1. Plan Valid Flight test step

47.4.1.1. Plan Valid Flight

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

47.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:08.054268Z)

47.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The valid flight should be successfully planned by the flight planner.

✅ uss2_core (2024-12-19T16:18:08.054227Z)

47.4.1.2. Validate Valid Flight shared correctly

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

47.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.014796Z)

✅ uss1_dss (2024-12-19T16:18:08.059145Z)

47.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:08.059232Z)

47.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

47.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.059288Z)

47.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:08.073628Z)

47.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:08.086910Z)

47.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:08.088387Z)

47.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:08.088431Z)

47.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:08.088467Z)

47.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Validate that the flight was shared correctly and is discoverable.

This check was not applicable to this test run and is therefore not statused.

47.4.2. Remove Valid Flight test step

47.4.2.1. Cancel Valid Flight

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

47.4.2.1.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. The flight should be successfully transitioned to Ended state by the flight planner.

✅ uss2_core (2024-12-19T16:18:08.119357Z)

47.4.2.2. Validate Valid Flight is non-discoverable

This step verifies that ending/removal/cancellation of a flight resulted in the operational intent reference being removed from the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted removal. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_removed() in test_steps.py.

47.4.2.2.1. 🛑 DSS responses check

astm.f3548.v21.DSS0005,2

✅ uss1_dss (2024-12-19T16:18:08.094562Z)

✅ uss1_dss (2024-12-19T16:18:08.123687Z)

47.4.2.2.2. 🛑 Operational intent not shared check

If the operational intent reference for the flight is still found in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.123755Z)

47.4.2.3. 🛑 Operational intent not shared check

If the operational intent is still discoverable after it was transitioned to Ended, this check will fail per astm.f3548.v21.OPIN0040.

✅ uss2_core (2024-12-19T16:18:08.123755Z)

47.5. Validate precision of intersection computations test case

47.5.1. Plan Valid Flight test step

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

47.5.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:08.165455Z)

47.5.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The valid flight intent should be successfully planned by the flight planner.

✅ uss2_core (2024-12-19T16:18:08.165412Z)

47.5.2. Attempt to plan Tiny Overlap Conflict Flight test step

The tested USS is instructed to plan a flight that is constructed in a way that it intersects with Valid Flight by just over IntersectionMinimumPrecision = 1 cm.

47.5.2.1. 🛑 Incorrectly planned check

If the tested USS successfully plans the flight or otherwise fails to indicate a rejection, it means that it failed to correctly compute the conflicting intersection. Therefore, this check will fail if the USS indicates success in planning the flight from the user flight intent, per astm.f3548.v21.GEN0500.

✅ uss2_core (2024-12-19T16:18:08.211618Z)

47.5.2.2. Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.211575Z)

47.5.2.3. Validate Tiny Overlap Conflict Flight not planned

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

47.5.2.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.173945Z)

✅ uss1_dss (2024-12-19T16:18:08.216780Z)

47.5.2.3.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:08.216836Z)

47.6. Cleanup

47.6.1. Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss2_core (2024-12-19T16:18:08.240210Z)

✅ uss2_core (2024-12-19T16:18:08.248421Z)

✅ uss2_core (2024-12-19T16:18:08.258445Z)

✅ uss2_core (2024-12-19T16:18:08.265461Z)

48. [skipped] All actions from action generator

This instance of this test scenario was skipped in this test run because: Test suite action to run ActionType.ActionGenerator action_generators.flight_planning.FlightPlannerCombinations could not find required resource ID "priority_preemption_flights" used to populate child resource ID "priority_preemption_flights"

49. [S43] Nominal planning: not permitted conflict with equal priority

49.1. Description

This test aims at testing the strategic coordination requirements that relate to the prioritization scenarios where there exists a conflict with an equal priority flight that is not permitted by regulation:

It involves a tested USS and a control USS through which conflicting flights are injected.

This scenario skips execution and completes successfully at the setup case if a resource containing equal priority flight intents where conflicts are not allow is not provided, such as if a jurisdiction does not have any priority levels at which conflicts are not allowed.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

49.2. Resources

49.2.1. flight_intents

If the jurisdiction in which these tests are being conducted does not have a priority level at which conflicts are not allowed, the FlightIntentsResource must be None to prevent the execution of this test.

Otherwise, the FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority State Must conflict with Must not conflict with
flight1_planned Flight 1 Any (but all the same) Accepted Flight 2 N/A
flight1_activated Activated
flight1m_activated Flight 1m Activated Flight 2 N/A
flight1c_planned Flight 1c Planned N/A Flight 2
flight1c_activated Activated
equal_prio_flight2m_planned Flight 2m Planned N/A Flight 1
equal_prio_flight2_planned Flight 2 Flight 1, Flight 1m Flight 1c
equal_prio_flight2_activated Activated
equal_prio_flight2_nonconforming Nonconforming

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

49.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

49.2.3. control_uss

FlightPlannerResource that will be used to inject conflicting Flight 2. Note that this control USS needs to support the CMSA role in order to transition to the Nonconforming state in order to create a pre-existing conflict among equal-priority operational intents.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

49.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

49.3. Prerequisites check test case

49.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

49.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.271993Z)

49.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

✅ (2024-12-19T16:18:08.272105Z)

49.4. Attempt to plan flight into conflict test case

Test case summary illustration

49.4.1. Plan Flight 2 test step

49.4.1.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

49.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:08.318087Z)

49.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully planned by the control USS.

✅ uss1_core (2024-12-19T16:18:08.318045Z)

49.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.279219Z)

✅ uss1_dss (2024-12-19T16:18:08.323117Z)

49.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.323177Z)

49.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

49.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.323227Z)

49.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.337028Z)

49.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.350045Z)

49.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.351608Z)

49.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.351650Z)

49.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.351686Z)

49.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.4.2. Activate Flight 2 test step

49.4.2.1. Activate Flight 2

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

49.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:08.417719Z)

49.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully activated by the control USS.

✅ uss1_core (2024-12-19T16:18:08.417677Z)

49.4.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.359913Z)

✅ uss1_dss (2024-12-19T16:18:08.422443Z)

49.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.422556Z)

49.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:08.422531Z)

49.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.422602Z)

49.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.435762Z)

49.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.450342Z)

49.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.451837Z)

49.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.451879Z)

49.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.451914Z)

49.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.4.3. Attempt to plan Flight 1 test step

49.4.3.1. Attempt to plan Flight 1

This page describes the content of a common test step where a user flight intent should be denied planning because of a non-permitted conflict with an equal priority flight intent. See plan_conflict_flight in prioritization_test_steps.py.

49.4.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0035.

✅ uss1_core (2024-12-19T16:18:08.499155Z)

49.4.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to plan the Flight 1 via the tested USS. However, it conflicts with Flight 2 which is of equal priority but came first. As such it should be rejected per astm.f3548.v21.SCD0035.

✅ uss1_core (2024-12-19T16:18:08.499114Z)

49.4.3.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

49.4.3.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.460615Z)

✅ uss1_dss (2024-12-19T16:18:08.504345Z)

49.4.3.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss1_core (2024-12-19T16:18:08.504403Z)

49.5. Attempt to activate flight into conflict test case

Test case summary illustration

49.5.1. Attempt to directly activate conflicting Flight 1 test step

49.5.1.1. Attempt to activate Flight 1

This page describes the content of a common test step where a user flight intent should be denied activation because of a non-permitted conflict with an equal priority flight intent. See activate_conflict_flight in prioritization_test_steps.py.

49.5.1.1.1. 🛑 Incorrectly activated check

If the USS successfully activates the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0045.

✅ uss1_core (2024-12-19T16:18:08.553546Z)

49.5.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to activate directly Flight 1, i.e. without the flight being planned before. However, this conflicts with activated Flight 2, which is of equal priority. As such it should be rejected per astm.f3548.v21.SCD0045.

✅ uss1_core (2024-12-19T16:18:08.553503Z)

49.5.1.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

49.5.1.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.514274Z)

✅ uss1_dss (2024-12-19T16:18:08.558737Z)

49.5.1.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss1_core (2024-12-19T16:18:08.558793Z)

49.6. Attempt to modify planned flight into conflict test case

Test case summary illustration

49.6.1. Plan Flight 1c test step

49.6.1.1. Plan Flight 1c

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

49.6.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:08.627025Z)

49.6.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 1c form (which doesn't conflict with Flight 2) should be successfully planned by the tested USS.

✅ uss1_core (2024-12-19T16:18:08.626983Z)

49.6.1.2. ℹ️ Validate tested USS intersection algorithm check

Because Flight 2 is nearby Flight 1c, successful planning of Flight 1c indicates the tested USS is complying with the portion of astm.f3548.v21.GEN0500 that requires a USS to indicate two 4D volumes are non-intersecting when they are separated by more than 1 cm.

This check does not fail if the planning is rejected.

✅ uss1_core (2024-12-19T16:18:08.627070Z)

49.6.1.3. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.6.1.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.567430Z)

✅ uss1_dss (2024-12-19T16:18:08.632822Z)

49.6.1.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.632892Z)

49.6.1.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

49.6.1.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.632945Z)

49.6.1.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.649741Z)

49.6.1.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.663693Z)

49.6.1.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.665203Z)

49.6.1.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.665245Z)

49.6.1.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.665281Z)

49.6.1.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.6.2. Attempt to modify planned Flight 1c into conflict test step

49.6.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_planned_conflict_flight in prioritization_test_steps.py.

49.6.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0040.

✅ uss1_core (2024-12-19T16:18:08.729159Z)

49.6.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. However, Flight 2 is of equal priority but was planned first. As such the change to Flight 1c should be rejected per astm.f3548.v21.SCD0040.

✅ uss1_core (2024-12-19T16:18:08.729119Z)

49.6.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.6.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.677362Z)

✅ uss1_dss (2024-12-19T16:18:08.734953Z)

49.6.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.735036Z)

49.6.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

49.6.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.735083Z)

49.6.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.752055Z)

49.6.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.765504Z)

49.6.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.766989Z)

49.6.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.767031Z)

49.6.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.767066Z)

49.6.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

49.7. Attempt to modify activated flight into conflict test case

Test case summary illustration

49.7.1. Activate Flight 1c test step

49.7.1.1. Activate Flight 1c

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

49.7.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:08.855116Z)

49.7.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the smaller Flight 1c form, which should be done successfully. Note that Flight 1c could be either planned or non-existent before this step. In the latter case, the "user" will directly activate the flight without planning it beforehand.

✅ uss1_core (2024-12-19T16:18:08.855074Z)

49.7.1.2. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.7.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.776900Z)

✅ uss1_dss (2024-12-19T16:18:08.860926Z)

49.7.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.861044Z)

49.7.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:08.861019Z)

49.7.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.861087Z)

49.7.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.877959Z)

49.7.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.891488Z)

49.7.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.892987Z)

49.7.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.893029Z)

49.7.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.893064Z)

49.7.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.7.2. Attempt to modify activated Flight 1c into conflict test step

49.7.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_activated_conflict_flight in prioritization_test_steps.py.

49.7.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0050.

✅ uss1_core (2024-12-19T16:18:08.959388Z)

49.7.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. Both flights are activated at the point where that change is requested. However, because the conflict did not exist when the modification was initiated, it should be rejected per astm.f3548.v21.SCD0050.

✅ uss1_core (2024-12-19T16:18:08.959344Z)

49.7.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.7.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:08.905299Z)

✅ uss1_dss (2024-12-19T16:18:08.965198Z)

49.7.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.965309Z)

49.7.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:08.965284Z)

49.7.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:08.965385Z)

49.7.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.981602Z)

49.7.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:08.995058Z)

49.7.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:08.996626Z)

49.7.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:08.996667Z)

49.7.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:08.996702Z)

49.7.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

49.7.3. Delete Flight 2 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

49.7.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. To prepare for the next test case, Flight 2 must be removed from the system.

✅ uss1_core (2024-12-19T16:18:09.024834Z)

49.8. Modify activated flight with pre-existing conflict test case

Test case summary illustration

49.8.1. Activate Flight 1 test step

49.8.1.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

49.8.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:09.093249Z)

49.8.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the normal form of Flight 1, which should be done successfully since Flight 2 was removed at the end of the previous step. Note that Flight 1 could be either already activated in the smaller Flight 1c form or non-existent before this step. In the former case, Flight 1c is enlarged to its normal size. In the latter case, the flight will be directly activated without being planned beforehand.

✅ uss1_core (2024-12-19T16:18:09.093207Z)

49.8.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.8.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.034024Z)

✅ uss1_dss (2024-12-19T16:18:09.098340Z)

49.8.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.098455Z)

49.8.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:09.098430Z)

49.8.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.098497Z)

49.8.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.112110Z)

49.8.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:09.125682Z)

49.8.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.127215Z)

49.8.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:09.127275Z)

49.8.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:09.127335Z)

49.8.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.8.2. Plan Flight 2m test step

49.8.2.1. Plan Flight 2m

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

49.8.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:09.193659Z)

49.8.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 2 form should be successfully planned by the control USS because it does not conflict with Flight 1.

✅ uss1_core (2024-12-19T16:18:09.193616Z)

49.8.2.2. Validate Flight 2m sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.8.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.134914Z)

✅ uss1_dss (2024-12-19T16:18:09.198907Z)

49.8.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.198974Z)

49.8.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

49.8.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.199026Z)

49.8.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.215938Z)

49.8.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:09.233361Z)

49.8.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.234798Z)

49.8.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:09.234839Z)

49.8.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:09.234875Z)

49.8.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.8.3. Declare Flight 2 non-conforming test step

The test driver instructs the control USS to declare Flight 2 as non-conforming. This makes non-conforming Flight 2 conflict with activated Flight 1 -- this same-priority conflict would not be allowed if Flight 2 were in a nominal state.

Do note that executing this test step requires the control USS to support the CMSA role. As such, if the USS rejects the transition to non-conforming state, it will be assumed that the control USS does not support this role and the test execution will stop without failing.

49.8.3.1. 🛑 Successful transition to non-conforming state check

All flight intent data provided is correct, therefore it should have been transitioned to non-conforming state by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS rejects the transition, this check will fail. If the USS indicates that the operation is not supported, the USS does not support the CMSA role, and as such the scenario execution will stop without failing.

✅ uss1_core (2024-12-19T16:18:09.301798Z)

49.8.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.301754Z)

49.8.3.3. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.8.3.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.246701Z)

✅ uss1_dss (2024-12-19T16:18:09.307541Z)

49.8.3.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.307616Z)

49.8.3.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

49.8.3.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.307664Z)

49.8.3.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.324336Z)

49.8.3.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:09.337842Z)

49.8.3.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.339400Z)

49.8.3.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:09.339443Z)

49.8.3.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:09.339478Z)

49.8.3.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

49.8.4. Attempt to modify activated Flight 1 in conflict with nonconforming Flight 2 test step

Before execution of this step, Flight 1 is activated (onto time range A) and Flight 2 is non-conforming (onto time range A), and both are in conflict. The test driver modifies Flight 1 in a way that still conflicts with Flight 2 by extending its time range A. This modification results in a conflict between the two equal priority flight that already existed before the modification was initiated. While this modification is expected to be accepted by the tested USS in general, the rejection of the modification does not constitute a violation of a requirement. However, the modification request must not result in a failure per interuss.automated_testing.flight_planning.ExpectedBehavior.

49.8.4.1. 🛑 Successful modification or rejection check

All flight intent data provided is correct and the USS should have either successfully modified the flight or rejected properly the modification per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:09.403998Z)

49.8.4.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.403955Z)

49.8.4.3. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

49.8.4.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.351535Z)

✅ uss1_dss (2024-12-19T16:18:09.409706Z)

49.8.4.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.409818Z)

49.8.4.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:09.409793Z)

49.8.4.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.409875Z)

49.8.4.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.426616Z)

49.8.4.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:09.440359Z)

49.8.4.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.441931Z)

49.8.4.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:09.441974Z)

49.8.4.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:09.442008Z)

49.8.4.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. This step validates that the response of the USS is consistent with the flight shared, i.e. either it was properly modified, or the USS considered the attempt invalid. In the latter case, because the modification attempt was invalid, either Flight 1 should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

49.9. Cleanup

49.9.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss1_core (2024-12-19T16:18:09.457121Z)

✅ uss1_core (2024-12-19T16:18:09.484879Z)

✅ uss1_core (2024-12-19T16:18:09.497012Z)

✅ uss1_core (2024-12-19T16:18:09.521090Z)

50. [S44] Nominal planning: not permitted conflict with equal priority

50.1. Description

This test aims at testing the strategic coordination requirements that relate to the prioritization scenarios where there exists a conflict with an equal priority flight that is not permitted by regulation:

It involves a tested USS and a control USS through which conflicting flights are injected.

This scenario skips execution and completes successfully at the setup case if a resource containing equal priority flight intents where conflicts are not allow is not provided, such as if a jurisdiction does not have any priority levels at which conflicts are not allowed.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

50.2. Resources

50.2.1. flight_intents

If the jurisdiction in which these tests are being conducted does not have a priority level at which conflicts are not allowed, the FlightIntentsResource must be None to prevent the execution of this test.

Otherwise, the FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority State Must conflict with Must not conflict with
flight1_planned Flight 1 Any (but all the same) Accepted Flight 2 N/A
flight1_activated Activated
flight1m_activated Flight 1m Activated Flight 2 N/A
flight1c_planned Flight 1c Planned N/A Flight 2
flight1c_activated Activated
equal_prio_flight2m_planned Flight 2m Planned N/A Flight 1
equal_prio_flight2_planned Flight 2 Flight 1, Flight 1m Flight 1c
equal_prio_flight2_activated Activated
equal_prio_flight2_nonconforming Nonconforming

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

50.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

50.2.3. control_uss

FlightPlannerResource that will be used to inject conflicting Flight 2. Note that this control USS needs to support the CMSA role in order to transition to the Nonconforming state in order to create a pre-existing conflict among equal-priority operational intents.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

50.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

50.3. Prerequisites check test case

50.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

50.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.527657Z)

50.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

✅ (2024-12-19T16:18:09.527774Z)

50.4. Attempt to plan flight into conflict test case

Test case summary illustration

50.4.1. Plan Flight 2 test step

50.4.1.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

50.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:09.572684Z)

50.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully planned by the control USS.

✅ uss2_core (2024-12-19T16:18:09.572640Z)

50.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.534851Z)

✅ uss1_dss (2024-12-19T16:18:09.577221Z)

50.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.577279Z)

50.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

50.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:09.577349Z)

50.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.591067Z)

50.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:09.604590Z)

50.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.606227Z)

50.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:09.606272Z)

50.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:09.606308Z)

50.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.4.2. Activate Flight 2 test step

50.4.2.1. Activate Flight 2

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

50.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:09.672298Z)

50.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully activated by the control USS.

✅ uss2_core (2024-12-19T16:18:09.672256Z)

50.4.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.614865Z)

✅ uss1_dss (2024-12-19T16:18:09.677362Z)

50.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.677469Z)

50.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:09.677444Z)

50.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:09.677511Z)

50.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.689926Z)

50.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:09.703383Z)

50.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:09.704972Z)

50.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:09.705015Z)

50.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:09.705050Z)

50.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.4.3. Attempt to plan Flight 1 test step

50.4.3.1. Attempt to plan Flight 1

This page describes the content of a common test step where a user flight intent should be denied planning because of a non-permitted conflict with an equal priority flight intent. See plan_conflict_flight in prioritization_test_steps.py.

50.4.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0035.

✅ uss1_core (2024-12-19T16:18:09.757951Z)

50.4.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to plan the Flight 1 via the tested USS. However, it conflicts with Flight 2 which is of equal priority but came first. As such it should be rejected per astm.f3548.v21.SCD0035.

✅ uss1_core (2024-12-19T16:18:09.757910Z)

50.4.3.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

50.4.3.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.713659Z)

✅ uss1_dss (2024-12-19T16:18:09.762986Z)

50.4.3.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss1_core (2024-12-19T16:18:09.763039Z)

50.5. Attempt to activate flight into conflict test case

Test case summary illustration

50.5.1. Attempt to directly activate conflicting Flight 1 test step

50.5.1.1. Attempt to activate Flight 1

This page describes the content of a common test step where a user flight intent should be denied activation because of a non-permitted conflict with an equal priority flight intent. See activate_conflict_flight in prioritization_test_steps.py.

50.5.1.1.1. 🛑 Incorrectly activated check

If the USS successfully activates the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0045.

✅ uss1_core (2024-12-19T16:18:09.802796Z)

50.5.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to activate directly Flight 1, i.e. without the flight being planned before. However, this conflicts with activated Flight 2, which is of equal priority. As such it should be rejected per astm.f3548.v21.SCD0045.

✅ uss1_core (2024-12-19T16:18:09.802755Z)

50.5.1.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

50.5.1.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.771033Z)

✅ uss1_dss (2024-12-19T16:18:09.807290Z)

50.5.1.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss1_core (2024-12-19T16:18:09.807366Z)

50.6. Attempt to modify planned flight into conflict test case

Test case summary illustration

50.6.1. Plan Flight 1c test step

50.6.1.1. Plan Flight 1c

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

50.6.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:09.874112Z)

50.6.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 1c form (which doesn't conflict with Flight 2) should be successfully planned by the tested USS.

✅ uss1_core (2024-12-19T16:18:09.874071Z)

50.6.1.2. ℹ️ Validate tested USS intersection algorithm check

Because Flight 2 is nearby Flight 1c, successful planning of Flight 1c indicates the tested USS is complying with the portion of astm.f3548.v21.GEN0500 that requires a USS to indicate two 4D volumes are non-intersecting when they are separated by more than 1 cm.

This check does not fail if the planning is rejected.

✅ uss1_core (2024-12-19T16:18:09.874157Z)

50.6.1.3. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.6.1.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.815378Z)

✅ uss1_dss (2024-12-19T16:18:09.880183Z)

50.6.1.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.880245Z)

50.6.1.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

50.6.1.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.880297Z)

50.6.1.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.896049Z)

50.6.1.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:09.909371Z)

50.6.1.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.910866Z)

50.6.1.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:09.910908Z)

50.6.1.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:09.910944Z)

50.6.1.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.6.2. Attempt to modify planned Flight 1c into conflict test step

50.6.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_planned_conflict_flight in prioritization_test_steps.py.

50.6.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0040.

✅ uss1_core (2024-12-19T16:18:09.969131Z)

50.6.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. However, Flight 2 is of equal priority but was planned first. As such the change to Flight 1c should be rejected per astm.f3548.v21.SCD0040.

✅ uss1_core (2024-12-19T16:18:09.969089Z)

50.6.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.6.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:09.922990Z)

✅ uss1_dss (2024-12-19T16:18:09.975372Z)

50.6.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.975453Z)

50.6.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

50.6.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:09.975500Z)

50.6.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:09.990233Z)

50.6.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.004730Z)

50.6.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.006307Z)

50.6.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.006379Z)

50.6.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.006416Z)

50.6.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

50.7. Attempt to modify activated flight into conflict test case

Test case summary illustration

50.7.1. Activate Flight 1c test step

50.7.1.1. Activate Flight 1c

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

50.7.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:10.095673Z)

50.7.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the smaller Flight 1c form, which should be done successfully. Note that Flight 1c could be either planned or non-existent before this step. In the latter case, the "user" will directly activate the flight without planning it beforehand.

✅ uss1_core (2024-12-19T16:18:10.095630Z)

50.7.1.2. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.7.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.016463Z)

✅ uss1_dss (2024-12-19T16:18:10.101723Z)

50.7.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.101835Z)

50.7.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:10.101810Z)

50.7.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.101882Z)

50.7.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.116696Z)

50.7.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.130145Z)

50.7.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.131704Z)

50.7.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.131750Z)

50.7.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.131785Z)

50.7.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.7.2. Attempt to modify activated Flight 1c into conflict test step

50.7.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_activated_conflict_flight in prioritization_test_steps.py.

50.7.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0050.

✅ uss1_core (2024-12-19T16:18:10.192199Z)

50.7.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. Both flights are activated at the point where that change is requested. However, because the conflict did not exist when the modification was initiated, it should be rejected per astm.f3548.v21.SCD0050.

✅ uss1_core (2024-12-19T16:18:10.192159Z)

50.7.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.7.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.144206Z)

✅ uss1_dss (2024-12-19T16:18:10.198297Z)

50.7.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.198436Z)

50.7.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:10.198409Z)

50.7.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.198479Z)

50.7.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.213482Z)

50.7.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.226637Z)

50.7.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.228143Z)

50.7.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.228186Z)

50.7.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.228221Z)

50.7.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

50.7.3. Delete Flight 2 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

50.7.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. To prepare for the next test case, Flight 2 must be removed from the system.

✅ uss2_core (2024-12-19T16:18:10.264542Z)

50.8. Modify activated flight with pre-existing conflict test case

Test case summary illustration

50.8.1. Activate Flight 1 test step

50.8.1.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

50.8.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:10.342863Z)

50.8.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the normal form of Flight 1, which should be done successfully since Flight 2 was removed at the end of the previous step. Note that Flight 1 could be either already activated in the smaller Flight 1c form or non-existent before this step. In the former case, Flight 1c is enlarged to its normal size. In the latter case, the flight will be directly activated without being planned beforehand.

✅ uss1_core (2024-12-19T16:18:10.342820Z)

50.8.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.8.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.274090Z)

✅ uss1_dss (2024-12-19T16:18:10.347805Z)

50.8.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.347917Z)

50.8.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:10.347892Z)

50.8.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.347960Z)

50.8.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.362361Z)

50.8.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.375367Z)

50.8.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.376861Z)

50.8.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.376904Z)

50.8.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.376940Z)

50.8.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.8.2. Plan Flight 2m test step

50.8.2.1. Plan Flight 2m

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

50.8.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:10.431475Z)

50.8.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 2 form should be successfully planned by the control USS because it does not conflict with Flight 1.

✅ uss2_core (2024-12-19T16:18:10.431433Z)

50.8.2.2. Validate Flight 2m sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.8.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.384254Z)

✅ uss1_dss (2024-12-19T16:18:10.436206Z)

50.8.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.436264Z)

50.8.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

50.8.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:10.436330Z)

50.8.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.448096Z)

50.8.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:10.461065Z)

50.8.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.462496Z)

50.8.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:10.462536Z)

50.8.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:10.462571Z)

50.8.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.8.3. Declare Flight 2 non-conforming test step

The test driver instructs the control USS to declare Flight 2 as non-conforming. This makes non-conforming Flight 2 conflict with activated Flight 1 -- this same-priority conflict would not be allowed if Flight 2 were in a nominal state.

Do note that executing this test step requires the control USS to support the CMSA role. As such, if the USS rejects the transition to non-conforming state, it will be assumed that the control USS does not support this role and the test execution will stop without failing.

50.8.3.1. 🛑 Successful transition to non-conforming state check

All flight intent data provided is correct, therefore it should have been transitioned to non-conforming state by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS rejects the transition, this check will fail. If the USS indicates that the operation is not supported, the USS does not support the CMSA role, and as such the scenario execution will stop without failing.

✅ uss2_core (2024-12-19T16:18:10.528776Z)

50.8.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:10.528735Z)

50.8.3.3. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.8.3.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.474865Z)

✅ uss1_dss (2024-12-19T16:18:10.535647Z)

50.8.3.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.535725Z)

50.8.3.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

50.8.3.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:10.535774Z)

50.8.3.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.548717Z)

50.8.3.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:10.562033Z)

50.8.3.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:10.563529Z)

50.8.3.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:10.563571Z)

50.8.3.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:10.563606Z)

50.8.3.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

50.8.4. Attempt to modify activated Flight 1 in conflict with nonconforming Flight 2 test step

Before execution of this step, Flight 1 is activated (onto time range A) and Flight 2 is non-conforming (onto time range A), and both are in conflict. The test driver modifies Flight 1 in a way that still conflicts with Flight 2 by extending its time range A. This modification results in a conflict between the two equal priority flight that already existed before the modification was initiated. While this modification is expected to be accepted by the tested USS in general, the rejection of the modification does not constitute a violation of a requirement. However, the modification request must not result in a failure per interuss.automated_testing.flight_planning.ExpectedBehavior.

50.8.4.1. 🛑 Successful modification or rejection check

All flight intent data provided is correct and the USS should have either successfully modified the flight or rejected properly the modification per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:10.637918Z)

50.8.4.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.637878Z)

50.8.4.3. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

50.8.4.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.576048Z)

✅ uss1_dss (2024-12-19T16:18:10.644072Z)

50.8.4.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.644187Z)

50.8.4.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:10.644162Z)

50.8.4.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.644228Z)

50.8.4.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.660902Z)

50.8.4.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.675050Z)

50.8.4.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.676565Z)

50.8.4.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.676608Z)

50.8.4.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.676644Z)

50.8.4.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. This step validates that the response of the USS is consistent with the flight shared, i.e. either it was properly modified, or the USS considered the attempt invalid. In the latter case, because the modification attempt was invalid, either Flight 1 should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

50.9. Cleanup

50.9.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss2_core (2024-12-19T16:18:10.710555Z)

✅ uss1_core (2024-12-19T16:18:10.739130Z)

✅ uss1_core (2024-12-19T16:18:10.751169Z)

✅ uss1_core (2024-12-19T16:18:10.762596Z)

51. [S45] Nominal planning: not permitted conflict with equal priority

51.1. Description

This test aims at testing the strategic coordination requirements that relate to the prioritization scenarios where there exists a conflict with an equal priority flight that is not permitted by regulation:

It involves a tested USS and a control USS through which conflicting flights are injected.

This scenario skips execution and completes successfully at the setup case if a resource containing equal priority flight intents where conflicts are not allow is not provided, such as if a jurisdiction does not have any priority levels at which conflicts are not allowed.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

51.2. Resources

51.2.1. flight_intents

If the jurisdiction in which these tests are being conducted does not have a priority level at which conflicts are not allowed, the FlightIntentsResource must be None to prevent the execution of this test.

Otherwise, the FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority State Must conflict with Must not conflict with
flight1_planned Flight 1 Any (but all the same) Accepted Flight 2 N/A
flight1_activated Activated
flight1m_activated Flight 1m Activated Flight 2 N/A
flight1c_planned Flight 1c Planned N/A Flight 2
flight1c_activated Activated
equal_prio_flight2m_planned Flight 2m Planned N/A Flight 1
equal_prio_flight2_planned Flight 2 Flight 1, Flight 1m Flight 1c
equal_prio_flight2_activated Activated
equal_prio_flight2_nonconforming Nonconforming

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

51.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

51.2.3. control_uss

FlightPlannerResource that will be used to inject conflicting Flight 2. Note that this control USS needs to support the CMSA role in order to transition to the Nonconforming state in order to create a pre-existing conflict among equal-priority operational intents.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

51.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

51.3. Prerequisites check test case

51.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

51.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.769395Z)

51.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

✅ (2024-12-19T16:18:10.769526Z)

51.4. Attempt to plan flight into conflict test case

Test case summary illustration

51.4.1. Plan Flight 2 test step

51.4.1.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

51.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:10.834415Z)

51.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully planned by the control USS.

✅ uss1_core (2024-12-19T16:18:10.834372Z)

51.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.777030Z)

✅ uss1_dss (2024-12-19T16:18:10.839469Z)

51.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.839533Z)

51.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

51.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.839584Z)

51.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.857311Z)

51.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.871090Z)

51.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.872568Z)

51.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.872609Z)

51.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.872645Z)

51.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.4.2. Activate Flight 2 test step

51.4.2.1. Activate Flight 2

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

51.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:10.957798Z)

51.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully activated by the control USS.

✅ uss1_core (2024-12-19T16:18:10.957756Z)

51.4.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:10.881251Z)

✅ uss1_dss (2024-12-19T16:18:10.962976Z)

51.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.963085Z)

51.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:10.963060Z)

51.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:10.963127Z)

51.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.979727Z)

51.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:10.993061Z)

51.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:10.994581Z)

51.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:10.994624Z)

51.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:10.994660Z)

51.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.4.3. Attempt to plan Flight 1 test step

51.4.3.1. Attempt to plan Flight 1

This page describes the content of a common test step where a user flight intent should be denied planning because of a non-permitted conflict with an equal priority flight intent. See plan_conflict_flight in prioritization_test_steps.py.

51.4.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0035.

✅ uss2_core (2024-12-19T16:18:11.047702Z)

51.4.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to plan the Flight 1 via the tested USS. However, it conflicts with Flight 2 which is of equal priority but came first. As such it should be rejected per astm.f3548.v21.SCD0035.

✅ uss2_core (2024-12-19T16:18:11.047660Z)

51.4.3.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

51.4.3.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.003454Z)

✅ uss1_dss (2024-12-19T16:18:11.052643Z)

51.4.3.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss2_core (2024-12-19T16:18:11.052695Z)

51.5. Attempt to activate flight into conflict test case

Test case summary illustration

51.5.1. Attempt to directly activate conflicting Flight 1 test step

51.5.1.1. Attempt to activate Flight 1

This page describes the content of a common test step where a user flight intent should be denied activation because of a non-permitted conflict with an equal priority flight intent. See activate_conflict_flight in prioritization_test_steps.py.

51.5.1.1.1. 🛑 Incorrectly activated check

If the USS successfully activates the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0045.

✅ uss2_core (2024-12-19T16:18:11.092215Z)

51.5.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to activate directly Flight 1, i.e. without the flight being planned before. However, this conflicts with activated Flight 2, which is of equal priority. As such it should be rejected per astm.f3548.v21.SCD0045.

✅ uss2_core (2024-12-19T16:18:11.092176Z)

51.5.1.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

51.5.1.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.060671Z)

✅ uss1_dss (2024-12-19T16:18:11.096820Z)

51.5.1.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss2_core (2024-12-19T16:18:11.096873Z)

51.6. Attempt to modify planned flight into conflict test case

Test case summary illustration

51.6.1. Plan Flight 1c test step

51.6.1.1. Plan Flight 1c

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

51.6.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:11.165675Z)

51.6.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 1c form (which doesn't conflict with Flight 2) should be successfully planned by the tested USS.

✅ uss2_core (2024-12-19T16:18:11.165634Z)

51.6.1.2. ℹ️ Validate tested USS intersection algorithm check

Because Flight 2 is nearby Flight 1c, successful planning of Flight 1c indicates the tested USS is complying with the portion of astm.f3548.v21.GEN0500 that requires a USS to indicate two 4D volumes are non-intersecting when they are separated by more than 1 cm.

This check does not fail if the planning is rejected.

✅ uss2_core (2024-12-19T16:18:11.165716Z)

51.6.1.3. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.6.1.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.104615Z)

✅ uss1_dss (2024-12-19T16:18:11.171832Z)

51.6.1.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.171910Z)

51.6.1.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

51.6.1.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.171974Z)

51.6.1.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.186714Z)

51.6.1.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.199834Z)

51.6.1.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.201295Z)

51.6.1.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.201354Z)

51.6.1.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.201392Z)

51.6.1.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.6.2. Attempt to modify planned Flight 1c into conflict test step

51.6.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_planned_conflict_flight in prioritization_test_steps.py.

51.6.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0040.

✅ uss2_core (2024-12-19T16:18:11.258514Z)

51.6.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. However, Flight 2 is of equal priority but was planned first. As such the change to Flight 1c should be rejected per astm.f3548.v21.SCD0040.

✅ uss2_core (2024-12-19T16:18:11.258473Z)

51.6.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.6.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.213670Z)

✅ uss1_dss (2024-12-19T16:18:11.264174Z)

51.6.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.264247Z)

51.6.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

51.6.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.264294Z)

51.6.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.277876Z)

51.6.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.291771Z)

51.6.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.293363Z)

51.6.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.293406Z)

51.6.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.293441Z)

51.6.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

51.7. Attempt to modify activated flight into conflict test case

Test case summary illustration

51.7.1. Activate Flight 1c test step

51.7.1.1. Activate Flight 1c

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

51.7.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:11.377988Z)

51.7.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the smaller Flight 1c form, which should be done successfully. Note that Flight 1c could be either planned or non-existent before this step. In the latter case, the "user" will directly activate the flight without planning it beforehand.

✅ uss2_core (2024-12-19T16:18:11.377947Z)

51.7.1.2. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.7.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.302905Z)

✅ uss1_dss (2024-12-19T16:18:11.383754Z)

51.7.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.383863Z)

51.7.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:11.383838Z)

51.7.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.383905Z)

51.7.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.397561Z)

51.7.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.410676Z)

51.7.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.412135Z)

51.7.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.412177Z)

51.7.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.412212Z)

51.7.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.7.2. Attempt to modify activated Flight 1c into conflict test step

51.7.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_activated_conflict_flight in prioritization_test_steps.py.

51.7.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0050.

✅ uss2_core (2024-12-19T16:18:11.470622Z)

51.7.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. Both flights are activated at the point where that change is requested. However, because the conflict did not exist when the modification was initiated, it should be rejected per astm.f3548.v21.SCD0050.

✅ uss2_core (2024-12-19T16:18:11.470579Z)

51.7.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.7.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.423925Z)

✅ uss1_dss (2024-12-19T16:18:11.477013Z)

51.7.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.477134Z)

51.7.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:11.477108Z)

51.7.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.477177Z)

51.7.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.491871Z)

51.7.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.506335Z)

51.7.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.507869Z)

51.7.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.507915Z)

51.7.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.507952Z)

51.7.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

51.7.3. Delete Flight 2 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

51.7.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. To prepare for the next test case, Flight 2 must be removed from the system.

✅ uss1_core (2024-12-19T16:18:11.545711Z)

51.8. Modify activated flight with pre-existing conflict test case

Test case summary illustration

51.8.1. Activate Flight 1 test step

51.8.1.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

51.8.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:11.622047Z)

51.8.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the normal form of Flight 1, which should be done successfully since Flight 2 was removed at the end of the previous step. Note that Flight 1 could be either already activated in the smaller Flight 1c form or non-existent before this step. In the former case, Flight 1c is enlarged to its normal size. In the latter case, the flight will be directly activated without being planned beforehand.

✅ uss2_core (2024-12-19T16:18:11.622005Z)

51.8.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.8.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.554739Z)

✅ uss1_dss (2024-12-19T16:18:11.626997Z)

51.8.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.627103Z)

51.8.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:11.627078Z)

51.8.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.627145Z)

51.8.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.640662Z)

51.8.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.653750Z)

51.8.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.655283Z)

51.8.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.655362Z)

51.8.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.655405Z)

51.8.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.8.2. Plan Flight 2m test step

51.8.2.1. Plan Flight 2m

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

51.8.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:11.726993Z)

51.8.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 2 form should be successfully planned by the control USS because it does not conflict with Flight 1.

✅ uss1_core (2024-12-19T16:18:11.726951Z)

51.8.2.2. Validate Flight 2m sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.8.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.662713Z)

✅ uss1_dss (2024-12-19T16:18:11.732051Z)

51.8.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.732113Z)

51.8.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

51.8.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:11.732163Z)

51.8.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.748032Z)

51.8.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:11.761072Z)

51.8.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.762511Z)

51.8.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:11.762552Z)

51.8.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:11.762588Z)

51.8.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.8.3. Declare Flight 2 non-conforming test step

The test driver instructs the control USS to declare Flight 2 as non-conforming. This makes non-conforming Flight 2 conflict with activated Flight 1 -- this same-priority conflict would not be allowed if Flight 2 were in a nominal state.

Do note that executing this test step requires the control USS to support the CMSA role. As such, if the USS rejects the transition to non-conforming state, it will be assumed that the control USS does not support this role and the test execution will stop without failing.

51.8.3.1. 🛑 Successful transition to non-conforming state check

All flight intent data provided is correct, therefore it should have been transitioned to non-conforming state by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS rejects the transition, this check will fail. If the USS indicates that the operation is not supported, the USS does not support the CMSA role, and as such the scenario execution will stop without failing.

✅ uss1_core (2024-12-19T16:18:11.834368Z)

51.8.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:11.834297Z)

51.8.3.3. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.8.3.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.774526Z)

✅ uss1_dss (2024-12-19T16:18:11.840413Z)

51.8.3.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.840481Z)

51.8.3.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

51.8.3.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:11.840527Z)

51.8.3.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.856374Z)

51.8.3.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:11.869219Z)

51.8.3.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:11.870705Z)

51.8.3.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:11.870746Z)

51.8.3.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:11.870782Z)

51.8.3.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

51.8.4. Attempt to modify activated Flight 1 in conflict with nonconforming Flight 2 test step

Before execution of this step, Flight 1 is activated (onto time range A) and Flight 2 is non-conforming (onto time range A), and both are in conflict. The test driver modifies Flight 1 in a way that still conflicts with Flight 2 by extending its time range A. This modification results in a conflict between the two equal priority flight that already existed before the modification was initiated. While this modification is expected to be accepted by the tested USS in general, the rejection of the modification does not constitute a violation of a requirement. However, the modification request must not result in a failure per interuss.automated_testing.flight_planning.ExpectedBehavior.

51.8.4.1. 🛑 Successful modification or rejection check

All flight intent data provided is correct and the USS should have either successfully modified the flight or rejected properly the modification per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:11.945629Z)

51.8.4.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.945587Z)

51.8.4.3. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

51.8.4.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:11.882596Z)

✅ uss1_dss (2024-12-19T16:18:11.951691Z)

51.8.4.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.951802Z)

51.8.4.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:11.951778Z)

51.8.4.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:11.951844Z)

51.8.4.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.967606Z)

51.8.4.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:11.980688Z)

51.8.4.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:11.982161Z)

51.8.4.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:11.982204Z)

51.8.4.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:11.982239Z)

51.8.4.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. This step validates that the response of the USS is consistent with the flight shared, i.e. either it was properly modified, or the USS considered the attempt invalid. In the latter case, because the modification attempt was invalid, either Flight 1 should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

51.9. Cleanup

51.9.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss1_core (2024-12-19T16:18:12.018560Z)

✅ uss2_core (2024-12-19T16:18:12.032866Z)

✅ uss2_core (2024-12-19T16:18:12.047345Z)

✅ uss2_core (2024-12-19T16:18:12.074281Z)

52. [S46] Nominal planning: not permitted conflict with equal priority

52.1. Description

This test aims at testing the strategic coordination requirements that relate to the prioritization scenarios where there exists a conflict with an equal priority flight that is not permitted by regulation:

It involves a tested USS and a control USS through which conflicting flights are injected.

This scenario skips execution and completes successfully at the setup case if a resource containing equal priority flight intents where conflicts are not allow is not provided, such as if a jurisdiction does not have any priority levels at which conflicts are not allowed.

It assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

52.2. Resources

52.2.1. flight_intents

If the jurisdiction in which these tests are being conducted does not have a priority level at which conflicts are not allowed, the FlightIntentsResource must be None to prevent the execution of this test.

Otherwise, the FlightIntentsResource must provide the following flight intents:

Flight intent ID Flight name Priority State Must conflict with Must not conflict with
flight1_planned Flight 1 Any (but all the same) Accepted Flight 2 N/A
flight1_activated Activated
flight1m_activated Flight 1m Activated Flight 2 N/A
flight1c_planned Flight 1c Planned N/A Flight 2
flight1c_activated Activated
equal_prio_flight2m_planned Flight 2m Planned N/A Flight 1
equal_prio_flight2_planned Flight 2 Flight 1, Flight 1m Flight 1c
equal_prio_flight2_activated Activated
equal_prio_flight2_nonconforming Nonconforming

Because the scenario involves activation of intents, the start times of all activated intents must be during the time the test scenario is executed (not before). Additionally, their end times must leave sufficient time for the execution of the test scenario.

✅ Provided by conflicting_flights in top-level resource pool.

52.2.2. tested_uss

FlightPlannerResource that is under test and will manage Flight 1 and its variants.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

52.2.3. control_uss

FlightPlannerResource that will be used to inject conflicting Flight 2. Note that this control USS needs to support the CMSA role in order to transition to the Nonconforming state in order to create a pre-existing conflict among equal-priority operational intents.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

52.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

52.3. Prerequisites check test case

52.3.1. Verify area is clear test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

52.3.1.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.080439Z)

52.3.1.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

While this scenario assumes that the area used is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario) in order to avoid a large number of area-clearing operations, the scenario will not proceed correctly if the area was left in a dirty state following a previous scenario that was supposed to leave the area clear. This test step verifies that the area is clear.

✅ (2024-12-19T16:18:12.080547Z)

52.4. Attempt to plan flight into conflict test case

Test case summary illustration

52.4.1. Plan Flight 2 test step

52.4.1.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

52.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:12.143116Z)

52.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully planned by the control USS.

✅ uss2_core (2024-12-19T16:18:12.143047Z)

52.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.087179Z)

✅ uss1_dss (2024-12-19T16:18:12.148038Z)

52.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.148096Z)

52.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

52.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.148147Z)

52.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.164542Z)

52.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.177563Z)

52.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.179059Z)

52.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.179103Z)

52.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.179140Z)

52.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.4.2. Activate Flight 2 test step

52.4.2.1. Activate Flight 2

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

52.4.2.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:12.264080Z)

52.4.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 2 should be successfully activated by the control USS.

✅ uss2_core (2024-12-19T16:18:12.264037Z)

52.4.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.4.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.187812Z)

✅ uss1_dss (2024-12-19T16:18:12.269149Z)

52.4.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.269261Z)

52.4.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:12.269235Z)

52.4.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.269305Z)

52.4.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.285088Z)

52.4.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.300004Z)

52.4.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.301545Z)

52.4.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.301587Z)

52.4.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.301622Z)

52.4.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.4.3. Attempt to plan Flight 1 test step

52.4.3.1. Attempt to plan Flight 1

This page describes the content of a common test step where a user flight intent should be denied planning because of a non-permitted conflict with an equal priority flight intent. See plan_conflict_flight in prioritization_test_steps.py.

52.4.3.1.1. 🛑 Incorrectly planned check

If the USS successfully plans the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0035.

✅ uss2_core (2024-12-19T16:18:12.362514Z)

52.4.3.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to plan the Flight 1 via the tested USS. However, it conflicts with Flight 2 which is of equal priority but came first. As such it should be rejected per astm.f3548.v21.SCD0035.

✅ uss2_core (2024-12-19T16:18:12.362472Z)

52.4.3.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

52.4.3.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.310616Z)

✅ uss1_dss (2024-12-19T16:18:12.367574Z)

52.4.3.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss2_core (2024-12-19T16:18:12.367628Z)

52.5. Attempt to activate flight into conflict test case

Test case summary illustration

52.5.1. Attempt to directly activate conflicting Flight 1 test step

52.5.1.1. Attempt to activate Flight 1

This page describes the content of a common test step where a user flight intent should be denied activation because of a non-permitted conflict with an equal priority flight intent. See activate_conflict_flight in prioritization_test_steps.py.

52.5.1.1.1. 🛑 Incorrectly activated check

If the USS successfully activates the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in creating the flight from the user flight intent, per astm.f3548.v21.SCD0045.

✅ uss2_core (2024-12-19T16:18:12.428108Z)

52.5.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to activate directly Flight 1, i.e. without the flight being planned before. However, this conflicts with activated Flight 2, which is of equal priority. As such it should be rejected per astm.f3548.v21.SCD0045.

✅ uss2_core (2024-12-19T16:18:12.428066Z)

52.5.1.2. Validate Flight 1 not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

52.5.1.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.376061Z)

✅ uss1_dss (2024-12-19T16:18:12.433575Z)

52.5.1.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. Flight 1 should not have been shared with the interoperability ecosystem since it was rejected.

✅ uss2_core (2024-12-19T16:18:12.433632Z)

52.6. Attempt to modify planned flight into conflict test case

Test case summary illustration

52.6.1. Plan Flight 1c test step

52.6.1.1. Plan Flight 1c

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

52.6.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:12.517724Z)

52.6.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 1c form (which doesn't conflict with Flight 2) should be successfully planned by the tested USS.

✅ uss2_core (2024-12-19T16:18:12.517674Z)

52.6.1.2. ℹ️ Validate tested USS intersection algorithm check

Because Flight 2 is nearby Flight 1c, successful planning of Flight 1c indicates the tested USS is complying with the portion of astm.f3548.v21.GEN0500 that requires a USS to indicate two 4D volumes are non-intersecting when they are separated by more than 1 cm.

This check does not fail if the planning is rejected.

✅ uss2_core (2024-12-19T16:18:12.517775Z)

52.6.1.3. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.6.1.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.441914Z)

✅ uss1_dss (2024-12-19T16:18:12.523588Z)

52.6.1.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.523655Z)

52.6.1.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

52.6.1.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.523707Z)

52.6.1.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.542547Z)

52.6.1.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.556549Z)

52.6.1.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.558082Z)

52.6.1.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.558136Z)

52.6.1.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.558172Z)

52.6.1.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.6.2. Attempt to modify planned Flight 1c into conflict test step

52.6.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_planned_conflict_flight in prioritization_test_steps.py.

52.6.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0040.

✅ uss2_core (2024-12-19T16:18:12.636188Z)

52.6.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. However, Flight 2 is of equal priority but was planned first. As such the change to Flight 1c should be rejected per astm.f3548.v21.SCD0040.

✅ uss2_core (2024-12-19T16:18:12.636147Z)

52.6.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.6.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.570263Z)

✅ uss1_dss (2024-12-19T16:18:12.642226Z)

52.6.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.642307Z)

52.6.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

52.6.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.642387Z)

52.6.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.662172Z)

52.6.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.675686Z)

52.6.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.677198Z)

52.6.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.677247Z)

52.6.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.677282Z)

52.6.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

52.7. Attempt to modify activated flight into conflict test case

Test case summary illustration

52.7.1. Activate Flight 1c test step

52.7.1.1. Activate Flight 1c

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

52.7.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:12.782508Z)

52.7.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the smaller Flight 1c form, which should be done successfully. Note that Flight 1c could be either planned or non-existent before this step. In the latter case, the "user" will directly activate the flight without planning it beforehand.

✅ uss2_core (2024-12-19T16:18:12.782464Z)

52.7.1.2. Validate Flight 1c sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.7.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.686903Z)

✅ uss1_dss (2024-12-19T16:18:12.788537Z)

52.7.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.788658Z)

52.7.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:12.788631Z)

52.7.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.788701Z)

52.7.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.808081Z)

52.7.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.821370Z)

52.7.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.822869Z)

52.7.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.822911Z)

52.7.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.822947Z)

52.7.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.7.2. Attempt to modify activated Flight 1c into conflict test step

52.7.2.1. Attempt to modify Flight 1c

This page describes the content of a common test step where a user flight intent should be denied modification because of a non-permitted conflict with an equal priority flight intent. See modify_activated_conflict_flight in prioritization_test_steps.py.

52.7.2.1.1. 🛑 Incorrectly modified check

If the USS successfully modifies the flight or otherwise fails to indicate a conflict, it means they failed to detect the conflict with the pre-existing flight. Therefore, this check will fail if the USS indicates success in modifying the flight from the user flight intent, per astm.f3548.v21.SCD0050.

✅ uss2_core (2024-12-19T16:18:12.902646Z)

52.7.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver attempts to enlarge Flight 1c so that it conflicts with Flight 2. Both flights are activated at the point where that change is requested. However, because the conflict did not exist when the modification was initiated, it should be rejected per astm.f3548.v21.SCD0050.

✅ uss2_core (2024-12-19T16:18:12.902598Z)

52.7.2.2. Validate Flight 1c not modified

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.7.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.835044Z)

✅ uss1_dss (2024-12-19T16:18:12.908947Z)

52.7.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.909067Z)

52.7.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:12.909041Z)

52.7.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:12.909109Z)

52.7.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.928346Z)

52.7.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:12.941877Z)

52.7.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:12.943521Z)

52.7.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:12.943570Z)

52.7.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:12.943606Z)

52.7.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. Because the modification attempt was invalid, either Flight 1c should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

52.7.3. Delete Flight 2 test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

52.7.3.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. To prepare for the next test case, Flight 2 must be removed from the system.

✅ uss2_core (2024-12-19T16:18:12.975739Z)

52.8. Modify activated flight with pre-existing conflict test case

Test case summary illustration

52.8.1. Activate Flight 1 test step

52.8.1.1. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

52.8.1.1.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:13.062479Z)

52.8.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The test driver activates the normal form of Flight 1, which should be done successfully since Flight 2 was removed at the end of the previous step. Note that Flight 1 could be either already activated in the smaller Flight 1c form or non-existent before this step. In the former case, Flight 1c is enlarged to its normal size. In the latter case, the flight will be directly activated without being planned beforehand.

✅ uss2_core (2024-12-19T16:18:13.062437Z)

52.8.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.8.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:12.985389Z)

✅ uss1_dss (2024-12-19T16:18:13.067566Z)

52.8.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.067678Z)

52.8.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:13.067652Z)

52.8.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.067719Z)

52.8.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.083264Z)

52.8.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:13.096496Z)

52.8.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.097966Z)

52.8.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:13.098008Z)

52.8.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:13.098043Z)

52.8.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.8.2. Plan Flight 2m test step

52.8.2.1. Plan Flight 2m

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

52.8.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:13.179114Z)

52.8.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior. The smaller Flight 2 form should be successfully planned by the control USS because it does not conflict with Flight 1.

✅ uss2_core (2024-12-19T16:18:13.179073Z)

52.8.2.2. Validate Flight 2m sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.8.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:13.105263Z)

✅ uss1_dss (2024-12-19T16:18:13.183986Z)

52.8.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.184046Z)

52.8.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

52.8.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.184097Z)

52.8.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.207306Z)

52.8.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:13.228081Z)

52.8.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.229557Z)

52.8.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:13.229600Z)

52.8.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:13.229636Z)

52.8.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.8.3. Declare Flight 2 non-conforming test step

The test driver instructs the control USS to declare Flight 2 as non-conforming. This makes non-conforming Flight 2 conflict with activated Flight 1 -- this same-priority conflict would not be allowed if Flight 2 were in a nominal state.

Do note that executing this test step requires the control USS to support the CMSA role. As such, if the USS rejects the transition to non-conforming state, it will be assumed that the control USS does not support this role and the test execution will stop without failing.

52.8.3.1. 🛑 Successful transition to non-conforming state check

All flight intent data provided is correct, therefore it should have been transitioned to non-conforming state by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS rejects the transition, this check will fail. If the USS indicates that the operation is not supported, the USS does not support the CMSA role, and as such the scenario execution will stop without failing.

✅ uss2_core (2024-12-19T16:18:13.304184Z)

52.8.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.304131Z)

52.8.3.3. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.8.3.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:13.241714Z)

✅ uss1_dss (2024-12-19T16:18:13.310120Z)

52.8.3.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.310192Z)

52.8.3.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

52.8.3.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.310247Z)

52.8.3.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.328996Z)

52.8.3.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:13.342067Z)

52.8.3.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.343597Z)

52.8.3.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:13.343640Z)

52.8.3.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:13.343676Z)

52.8.3.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

52.8.4. Attempt to modify activated Flight 1 in conflict with nonconforming Flight 2 test step

Before execution of this step, Flight 1 is activated (onto time range A) and Flight 2 is non-conforming (onto time range A), and both are in conflict. The test driver modifies Flight 1 in a way that still conflicts with Flight 2 by extending its time range A. This modification results in a conflict between the two equal priority flight that already existed before the modification was initiated. While this modification is expected to be accepted by the tested USS in general, the rejection of the modification does not constitute a violation of a requirement. However, the modification request must not result in a failure per interuss.automated_testing.flight_planning.ExpectedBehavior.

52.8.4.1. 🛑 Successful modification or rejection check

All flight intent data provided is correct and the USS should have either successfully modified the flight or rejected properly the modification per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:13.421017Z)

52.8.4.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.420974Z)

52.8.4.3. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

52.8.4.3.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:13.355692Z)

✅ uss1_dss (2024-12-19T16:18:13.426766Z)

52.8.4.3.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.426878Z)

52.8.4.3.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:13.426853Z)

52.8.4.3.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:13.426920Z)

52.8.4.3.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.445566Z)

52.8.4.3.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:13.459013Z)

52.8.4.3.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:13.460585Z)

52.8.4.3.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:13.460635Z)

52.8.4.3.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:13.460670Z)

52.8.4.3.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105. This step validates that the response of the USS is consistent with the flight shared, i.e. either it was properly modified, or the USS considered the attempt invalid. In the latter case, because the modification attempt was invalid, either Flight 1 should not have been modified (because the USS kept the original accepted request), or it should have been removed (because the USS rejected the replacement plan provided).

This check was not applicable to this test run and is therefore not statused.

52.9. Cleanup

52.9.1. ⚠️ Successful flight deletion check

interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss2_core (2024-12-19T16:18:13.479236Z)

✅ uss2_core (2024-12-19T16:18:13.511255Z)

✅ uss2_core (2024-12-19T16:18:13.526089Z)

✅ uss2_core (2024-12-19T16:18:13.553698Z)

53. [S47] Data Validation of GET operational intents by USS

53.1. Description

This test checks that the USS being tested validates the operational intents received as response to its GET request from another USS. mock_uss plans an operation designed to be relevant to (but not intersect) the operation tested_uss will plan, and provides the data that tested_uss GETs. tested_uss validates the GET response from mock_uss and accordingly plan its operation.

The primary requirement tested by this scenario is astm.f3548.v21.SCD0035 because a USS cannot verify its operational intent does not conflict when it cannot obtain valid details for that operational intent.

This scenario assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

53.2. Resources

53.2.1. flight_intents

FlightIntentsResource provides the two flight intents which must be relevant to each other, but must not intersect. This can generally be accomplished when the convex hulls of the 2D footprints of the two flights intersect, but the polygons do not intersect. There is an overlap in time and altitude of the two flights.

✅ Provided by non_conflicting_flights in top-level resource pool.

53.2.2. mock_uss

MockUSSResource that will be used for planning flights, controlling data shared for validation testing, and gathering interuss interactions from mock_uss.

✅ Provided by mock_uss in top-level resource pool.

53.2.3. tested_uss

FlightPlannerResource that will be used for the USS being tested for its data validation of operational intent.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

53.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

53.3. Successfully plan flight near an existing flight test case

53.3.1. mock_uss plans flight 2 test step

53.3.1.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

53.3.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:13.611594Z)

53.3.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 2 should be successfully planned by mock_uss.

✅ mock_uss (2024-12-19T16:18:13.611551Z)

53.3.1.2. Validate operational intent is shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

53.3.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:13.564028Z)

✅ uss1_dss (2024-12-19T16:18:13.616995Z)

53.3.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:13.617057Z)

53.3.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

53.3.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:13.617108Z)

53.3.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:13.632920Z)

53.3.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:13.646660Z)

53.3.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:13.648215Z)

53.3.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:13.648257Z)

53.3.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:13.648292Z)

53.3.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

53.3.2. tested_uss plans flight 1 test step

53.3.2.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

53.3.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:13.746571Z)

53.3.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver instructs tested_uss to attempt to plan flight 1. tested_uss checks if any conflicts with flight 2 which is of equal priority and came first.

✅ uss1_core (2024-12-19T16:18:13.746530Z)

53.3.2.2. Validate operational intent is shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

53.3.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:13.657069Z)

✅ uss1_dss (2024-12-19T16:18:13.752657Z)

53.3.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:13.752721Z)

53.3.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

53.3.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:13.752772Z)

53.3.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:13.771344Z)

53.3.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:13.785568Z)

53.3.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:13.787062Z)

53.3.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:13.787104Z)

53.3.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:13.787139Z)

53.3.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

53.3.3. Validate that tested_uss obtained flight2 details test step

This step verifies that a USS obtained operational intent details from a Mock USS by means of either a notification from the Mock USS (push), or a GET request (operation getOperationalIntentDetails) to the Mock USS.

53.3.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

53.3.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:20.808512Z)

53.3.3.2. 🛑 USS obtained operational intent details by means of either notification or GET request check

SCD0035 requires a USS to verify before transitioning to Accepted that it does not conflict with another operational intent, and the only way to have verified this is by knowing all operational intent details. As such, if the USS was neither notified of the details by the Mock USS, nor did it retrieve them directly from the Mock USS, this check will fail per astm.f3548.v21.SCD0035 Validate that tested_uss obtained flight2 details from mock_uss, by means of either a notification pushed by mock_uss to tested_uss due to the pre-existing subscription, or direct retrieval by tested_uss from mock_uss.

✅ uss1_core (2024-12-19T16:18:20.808815Z)

53.3.4. Validate flight1 Notification sent to mock_uss test step

This step verifies that, when creating or modifying an operational intent, a USS sent the required notification for a relevant subscription owned by a mock_uss instance by checking the interactions of that mock_uss instance.

53.3.4.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

53.3.4.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:20.818862Z)

53.3.4.2. ⚠️ Expect Notification sent check

As per astm.f3548.v21.SCD0085, the notification should be sent by a USS about its operational intent to the subscribing USS in no more than MaxRespondToSubscriptionNotification (5) seconds, 95 percent of the time. To verify that notification was indeed sent for this check, waiting up to MaxRespondToSubscriptionNotificationSeconds gets us 95 percent confidence in declaring the USS non-compliant if notification is not received. To ensure the notifications sent are not missed for a test case, we can pick a threshold that gives a very high (e.g., 99 percent per test) confidence of non-compliance. We can make conservative assumptions about the distribution of the delays. If we assume that the notification delays have a normal distribution with 95 percentile at 5 seconds, then with the standard deviation of 3.04, we get the 99 percentile at 7.07 seconds. Hence, for test cases that check notification sent for an operational intent, we will wait for notifications till threshold MaxTimeToWaitForSubscriptionNotificationSeconds (rounding to 7 seconds).

53.3.4.2.1. Note

As per astm.f3548.v21.SCD0085, MaxRespondToSubscriptionNotification is measured from time_start - Receipt of subscription notification from DSS - till time_end - Entity details sent to subscribing USS. To make sure the test driver gives enough time for notifications to be received by mock_uss, it marks the time to get interactions from mock_uss as - the time test driver initiates the plan. The sequence of events is -

  1. Test driver initiates plan to tested_uss. t0
  2. tested_uss shares the plan with DSS and receives DSS response. t_time_start.
  3. tested_uss responds to test driver with Completed.
  4. Test driver checks for shared operational_intent in DSS and checks its retrievable. t1
  5. Test driver waits for MaxTimeToWaitForSubscriptionNotificationSeconds.
  6. Test driver retrieves interactions from mock_uss. t1 + MaxTimeToWaitForSubscriptionNotificationSeconds
  7. Test driver should find the notification in these interactions to declare that USS sent notifications.

We know from above that waiting from t_time_start for MaxTimeToWaitForSubscriptionNotificationSeconds would give us 99% confidence that we receive the notifications. But, test_driver doesn't have access to t_time_start. So, it starts waiting from a point of time after the t_time_start that is t1. This ensures that test driver waits for a long enough duration before getting the interactions. Hence, we get a high confidence that the test driver correctly verifies if a notification was sent by tested_uss.

✅ uss1_core (2024-12-19T16:18:20.818947Z)

53.3.4.3. 🛑 Notification data is valid check

astm.f3548.v21.SCD0085 tested_uss notifies mock_uss of flight 1, due to mock_uss's subscription covering flight 2 (which is necessarily relevant to flight 1 per test design).

This check was not applicable to this test run and is therefore not statused.

53.3.5. Delete tested_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

53.3.5.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail.

To prepare for the next test case, tested_uss's flight 1 is closed.

✅ uss1_core (2024-12-19T16:18:20.880939Z)

53.3.6. Delete mock_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

53.3.6.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail.

To prepare for the next test case, mock_uss's flight 2 is closed.

✅ mock_uss (2024-12-19T16:18:20.906853Z)

53.4. Flight planning prevented due to invalid data sharing test case

In this test case, mock_uss is manipulated to share invalid operational intent details which should prevent tested_uss from planning since it cannot verify the absence of a conflict.

53.4.1. mock_uss plans flight 2, sharing invalid operational intent data test step

53.4.1.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

53.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:20.959154Z)

53.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 2 should be successfully planned by the mock_uss.

✅ mock_uss (2024-12-19T16:18:20.959113Z)

53.4.1.2. Validate invalid operational intent details shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See expect_shared_with_invalid_data in invalid_op_test_steps.py.

53.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intent references in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:20.915727Z)

✅ uss1_dss (2024-12-19T16:18:20.963969Z)

53.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:20.964028Z)

53.4.1.2.3. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:20.981636Z)

53.4.1.2.4. 🛑 Invalid data in Operational intent details shared by Mock USS for negative test check

interuss.mock_uss.hosted_instance.ExposeInterface.

Mock USS shares operational intent details with specified invalid data in response for the negative test case as per the GetOperationalIntentDetailsResponse schema of the OpenAPI specification. If the operational intent details from mock_uss does not contain the specified invalid data, this check will fail. It would mean mock_uss is not behaving correctly.

The mock_uss is instructed to share invalid data with other USS, for negative test.

✅ mock_uss (2024-12-19T16:18:20.993092Z)

53.4.2. tested_uss attempts to plan flight 1, expect failure test step

53.4.2.1. Plan unsuccessfully

This page describes the content of a common test case where a valid user flight intent fails in a flight planner, because of invalid data shared for a nearby flight shared by another USS. See plan_flight_intent_expect_failed in invalid_op_test_steps.py.

53.4.2.1.1. 🛑 Plan should fail check

A USS shouldn't go ahead and plan if it doesn't have accurate information. As per SCD0035 a USS needs to verify a particular conflict status. If flight intent data shared for a nearby flight shared is invalid, the USS can't successfully perform that verification. It couldn't have obtained valid information about the other operational intents it's supposed to verify that conflict status against. Therefore, the USS should fail an attempt to plan. If the plan succeeds, we know they've violated SCD0035 because they failed to verify that particular conflict status.

astm.f3548.v21.SCD0035

The test driver instructs tested_uss to plan flight 1. tested_uss should (per SCD0035) check if any conflicts with flight 2 which is of equal priority and came first. The planning attempt should fail because tested_uss will be unable to obtain valid operational intent details for flight 2.

✅ uss1_core (2024-12-19T16:18:21.063205Z)

53.4.2.2. Validate operational intent not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

53.4.2.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:21.001856Z)

✅ uss1_dss (2024-12-19T16:18:21.068295Z)

53.4.2.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Validate flight 1 is not shared with DSS, as plan failed.

✅ uss1_core (2024-12-19T16:18:21.068369Z)

53.4.3. Validate that tested_uss obtained flight2 details test step

This step verifies that a USS obtained operational intent details from a Mock USS by means of either a notification from the Mock USS (push), or a GET request (operation getOperationalIntentDetails) to the Mock USS.

53.4.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

53.4.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:28.087536Z)

53.4.3.2. 🛑 USS obtained operational intent details by means of either notification or GET request check

SCD0035 requires a USS to verify before transitioning to Accepted that it does not conflict with another operational intent, and the only way to have verified this is by knowing all operational intent details. As such, if the USS was neither notified of the details by the Mock USS, nor did it retrieve them directly from the Mock USS, this check will fail per astm.f3548.v21.SCD0035 Validate that tested_uss obtained flight2 details from mock_uss, by means of either a notification pushed by mock_uss to tested_uss due to the pre-existing subscription, or direct retrieval by tested_uss from mock_uss.

✅ uss1_core (2024-12-19T16:18:28.087764Z)

53.4.4. Validate flight 1 Notification not sent to mock_uss test step

This step verifies when a flight is not created, it is also not notified by checking the interuss interactions of mock_uss instance.

53.4.4.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

53.4.4.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:28.097080Z)

53.4.4.2. ℹ️ Mock USS interaction can be parsed check

interuss.mock_uss.hosted_instance.ExposeInterface.

This check was not applicable to this test run and is therefore not statused.

53.4.4.3. 🛑 Expect Notification not sent check

interuss.f3548.notification_requirements.NoDssEntityNoNotification

As per the above requirement, the notification should not be sent by a USS about an entity that could not be created in DSS to any USS. To verify that notification was indeed not sent, we need to wait and check up to a threshold to get confidence that USS did not send notification. The max duration for sending a notification in SCD0085 is MaxRespondToSubscriptionNotification(5) seconds. However, this duration is from time start - Receipt of subscription notification from DSS, which does not exist for this check. In this check we use time start when the test driver asked the USS to plan the failed flight. When checking notification not sent, we should wait for the same duration that is used for when checking notification sent. Expect Notification sent. So, we plan to use MaxTimeToWaitForSubscriptionNotificationSeconds (7 seconds).

✅ uss1_core (2024-12-19T16:18:28.097153Z)

53.4.5. Delete mock_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

53.4.5.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. Teardown

✅ mock_uss (2024-12-19T16:18:28.140220Z)

53.5. Cleanup

53.5.1. Successful flight deletion check

This cleanup is for both - after testcase ends and after test scenario ends interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss1_core (2024-12-19T16:18:28.155250Z)

54. [S48] Data Validation of GET operational intents by USS

54.1. Description

This test checks that the USS being tested validates the operational intents received as response to its GET request from another USS. mock_uss plans an operation designed to be relevant to (but not intersect) the operation tested_uss will plan, and provides the data that tested_uss GETs. tested_uss validates the GET response from mock_uss and accordingly plan its operation.

The primary requirement tested by this scenario is astm.f3548.v21.SCD0035 because a USS cannot verify its operational intent does not conflict when it cannot obtain valid details for that operational intent.

This scenario assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

54.2. Resources

54.2.1. flight_intents

FlightIntentsResource provides the two flight intents which must be relevant to each other, but must not intersect. This can generally be accomplished when the convex hulls of the 2D footprints of the two flights intersect, but the polygons do not intersect. There is an overlap in time and altitude of the two flights.

✅ Provided by non_conflicting_flights in top-level resource pool.

54.2.2. mock_uss

MockUSSResource that will be used for planning flights, controlling data shared for validation testing, and gathering interuss interactions from mock_uss.

✅ Provided by mock_uss in top-level resource pool.

54.2.3. tested_uss

FlightPlannerResource that will be used for the USS being tested for its data validation of operational intent.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

54.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

54.3. Successfully plan flight near an existing flight test case

54.3.1. mock_uss plans flight 2 test step

54.3.1.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

54.3.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:28.213824Z)

54.3.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 2 should be successfully planned by mock_uss.

✅ mock_uss (2024-12-19T16:18:28.213783Z)

54.3.1.2. Validate operational intent is shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

54.3.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:28.165872Z)

✅ uss1_dss (2024-12-19T16:18:28.219497Z)

54.3.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:28.219573Z)

54.3.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

54.3.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:28.219626Z)

54.3.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:28.234292Z)

54.3.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:28.248387Z)

54.3.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:28.249934Z)

54.3.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:28.249977Z)

54.3.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:28.250012Z)

54.3.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

54.3.2. tested_uss plans flight 1 test step

54.3.2.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

54.3.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:28.388531Z)

54.3.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver instructs tested_uss to attempt to plan flight 1. tested_uss checks if any conflicts with flight 2 which is of equal priority and came first.

✅ uss2_core (2024-12-19T16:18:28.388480Z)

54.3.2.2. Validate operational intent is shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

54.3.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:28.259388Z)

✅ uss1_dss (2024-12-19T16:18:28.395118Z)

54.3.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:28.395191Z)

54.3.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

54.3.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:28.395243Z)

54.3.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:28.424694Z)

54.3.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:28.437885Z)

54.3.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:28.439436Z)

54.3.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:28.439491Z)

54.3.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:28.439528Z)

54.3.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

54.3.3. Validate that tested_uss obtained flight2 details test step

This step verifies that a USS obtained operational intent details from a Mock USS by means of either a notification from the Mock USS (push), or a GET request (operation getOperationalIntentDetails) to the Mock USS.

54.3.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

54.3.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:35.451989Z)

54.3.3.2. 🛑 USS obtained operational intent details by means of either notification or GET request check

SCD0035 requires a USS to verify before transitioning to Accepted that it does not conflict with another operational intent, and the only way to have verified this is by knowing all operational intent details. As such, if the USS was neither notified of the details by the Mock USS, nor did it retrieve them directly from the Mock USS, this check will fail per astm.f3548.v21.SCD0035 Validate that tested_uss obtained flight2 details from mock_uss, by means of either a notification pushed by mock_uss to tested_uss due to the pre-existing subscription, or direct retrieval by tested_uss from mock_uss.

✅ uss2_core (2024-12-19T16:18:35.452217Z)

54.3.4. Validate flight1 Notification sent to mock_uss test step

This step verifies that, when creating or modifying an operational intent, a USS sent the required notification for a relevant subscription owned by a mock_uss instance by checking the interactions of that mock_uss instance.

54.3.4.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

54.3.4.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:35.461395Z)

54.3.4.2. ⚠️ Expect Notification sent check

As per astm.f3548.v21.SCD0085, the notification should be sent by a USS about its operational intent to the subscribing USS in no more than MaxRespondToSubscriptionNotification (5) seconds, 95 percent of the time. To verify that notification was indeed sent for this check, waiting up to MaxRespondToSubscriptionNotificationSeconds gets us 95 percent confidence in declaring the USS non-compliant if notification is not received. To ensure the notifications sent are not missed for a test case, we can pick a threshold that gives a very high (e.g., 99 percent per test) confidence of non-compliance. We can make conservative assumptions about the distribution of the delays. If we assume that the notification delays have a normal distribution with 95 percentile at 5 seconds, then with the standard deviation of 3.04, we get the 99 percentile at 7.07 seconds. Hence, for test cases that check notification sent for an operational intent, we will wait for notifications till threshold MaxTimeToWaitForSubscriptionNotificationSeconds (rounding to 7 seconds).

54.3.4.2.1. Note

As per astm.f3548.v21.SCD0085, MaxRespondToSubscriptionNotification is measured from time_start - Receipt of subscription notification from DSS - till time_end - Entity details sent to subscribing USS. To make sure the test driver gives enough time for notifications to be received by mock_uss, it marks the time to get interactions from mock_uss as - the time test driver initiates the plan. The sequence of events is -

  1. Test driver initiates plan to tested_uss. t0
  2. tested_uss shares the plan with DSS and receives DSS response. t_time_start.
  3. tested_uss responds to test driver with Completed.
  4. Test driver checks for shared operational_intent in DSS and checks its retrievable. t1
  5. Test driver waits for MaxTimeToWaitForSubscriptionNotificationSeconds.
  6. Test driver retrieves interactions from mock_uss. t1 + MaxTimeToWaitForSubscriptionNotificationSeconds
  7. Test driver should find the notification in these interactions to declare that USS sent notifications.

We know from above that waiting from t_time_start for MaxTimeToWaitForSubscriptionNotificationSeconds would give us 99% confidence that we receive the notifications. But, test_driver doesn't have access to t_time_start. So, it starts waiting from a point of time after the t_time_start that is t1. This ensures that test driver waits for a long enough duration before getting the interactions. Hence, we get a high confidence that the test driver correctly verifies if a notification was sent by tested_uss.

✅ uss2_core (2024-12-19T16:18:35.461471Z)

54.3.4.3. 🛑 Notification data is valid check

astm.f3548.v21.SCD0085 tested_uss notifies mock_uss of flight 1, due to mock_uss's subscription covering flight 2 (which is necessarily relevant to flight 1 per test design).

This check was not applicable to this test run and is therefore not statused.

54.3.5. Delete tested_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

54.3.5.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail.

To prepare for the next test case, tested_uss's flight 1 is closed.

✅ uss2_core (2024-12-19T16:18:35.519605Z)

54.3.6. Delete mock_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

54.3.6.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail.

To prepare for the next test case, mock_uss's flight 2 is closed.

✅ mock_uss (2024-12-19T16:18:35.548893Z)

54.4. Flight planning prevented due to invalid data sharing test case

In this test case, mock_uss is manipulated to share invalid operational intent details which should prevent tested_uss from planning since it cannot verify the absence of a conflict.

54.4.1. mock_uss plans flight 2, sharing invalid operational intent data test step

54.4.1.1. Plan successfully

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

54.4.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:35.606424Z)

54.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 2 should be successfully planned by the mock_uss.

✅ mock_uss (2024-12-19T16:18:35.606381Z)

54.4.1.2. Validate invalid operational intent details shared

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See expect_shared_with_invalid_data in invalid_op_test_steps.py.

54.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intent references in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:35.559416Z)

✅ uss1_dss (2024-12-19T16:18:35.611539Z)

54.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:35.611603Z)

54.4.1.2.3. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:35.630309Z)

54.4.1.2.4. 🛑 Invalid data in Operational intent details shared by Mock USS for negative test check

interuss.mock_uss.hosted_instance.ExposeInterface.

Mock USS shares operational intent details with specified invalid data in response for the negative test case as per the GetOperationalIntentDetailsResponse schema of the OpenAPI specification. If the operational intent details from mock_uss does not contain the specified invalid data, this check will fail. It would mean mock_uss is not behaving correctly.

The mock_uss is instructed to share invalid data with other USS, for negative test.

✅ mock_uss (2024-12-19T16:18:35.644283Z)

54.4.2. tested_uss attempts to plan flight 1, expect failure test step

54.4.2.1. Plan unsuccessfully

This page describes the content of a common test case where a valid user flight intent fails in a flight planner, because of invalid data shared for a nearby flight shared by another USS. See plan_flight_intent_expect_failed in invalid_op_test_steps.py.

54.4.2.1.1. 🛑 Plan should fail check

A USS shouldn't go ahead and plan if it doesn't have accurate information. As per SCD0035 a USS needs to verify a particular conflict status. If flight intent data shared for a nearby flight shared is invalid, the USS can't successfully perform that verification. It couldn't have obtained valid information about the other operational intents it's supposed to verify that conflict status against. Therefore, the USS should fail an attempt to plan. If the plan succeeds, we know they've violated SCD0035 because they failed to verify that particular conflict status.

astm.f3548.v21.SCD0035

The test driver instructs tested_uss to plan flight 1. tested_uss should (per SCD0035) check if any conflicts with flight 2 which is of equal priority and came first. The planning attempt should fail because tested_uss will be unable to obtain valid operational intent details for flight 2.

✅ uss2_core (2024-12-19T16:18:35.724559Z)

54.4.2.2. Validate operational intent not shared

This step verifies that a previous attempt to create a flight did not result in a flight being shared with the DSS. It does so by querying the DSS for operational intents in the area of the flight before and after an attempted creation. This assumes an area lock on the extent of the flight intent.

See OpIntentValidator.expect_not_shared() in test_steps.py.

54.4.2.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:35.654224Z)

✅ uss1_dss (2024-12-19T16:18:35.730917Z)

54.4.2.2.2. 🛑 Operational intent not shared check

If there are new operational intent references in the area of the flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Validate flight 1 is not shared with DSS, as plan failed.

✅ uss2_core (2024-12-19T16:18:35.730977Z)

54.4.3. Validate that tested_uss obtained flight2 details test step

This step verifies that a USS obtained operational intent details from a Mock USS by means of either a notification from the Mock USS (push), or a GET request (operation getOperationalIntentDetails) to the Mock USS.

54.4.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

54.4.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:42.743067Z)

54.4.3.2. 🛑 USS obtained operational intent details by means of either notification or GET request check

SCD0035 requires a USS to verify before transitioning to Accepted that it does not conflict with another operational intent, and the only way to have verified this is by knowing all operational intent details. As such, if the USS was neither notified of the details by the Mock USS, nor did it retrieve them directly from the Mock USS, this check will fail per astm.f3548.v21.SCD0035 Validate that tested_uss obtained flight2 details from mock_uss, by means of either a notification pushed by mock_uss to tested_uss due to the pre-existing subscription, or direct retrieval by tested_uss from mock_uss.

✅ uss2_core (2024-12-19T16:18:42.743295Z)

54.4.4. Validate flight 1 Notification not sent to mock_uss test step

This step verifies when a flight is not created, it is also not notified by checking the interuss interactions of mock_uss instance.

54.4.4.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

54.4.4.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface.

✅ mock_uss (2024-12-19T16:18:42.751685Z)

54.4.4.2. ℹ️ Mock USS interaction can be parsed check

interuss.mock_uss.hosted_instance.ExposeInterface.

This check was not applicable to this test run and is therefore not statused.

54.4.4.3. 🛑 Expect Notification not sent check

interuss.f3548.notification_requirements.NoDssEntityNoNotification

As per the above requirement, the notification should not be sent by a USS about an entity that could not be created in DSS to any USS. To verify that notification was indeed not sent, we need to wait and check up to a threshold to get confidence that USS did not send notification. The max duration for sending a notification in SCD0085 is MaxRespondToSubscriptionNotification(5) seconds. However, this duration is from time start - Receipt of subscription notification from DSS, which does not exist for this check. In this check we use time start when the test driver asked the USS to plan the failed flight. When checking notification not sent, we should wait for the same duration that is used for when checking notification sent. Expect Notification sent. So, we plan to use MaxTimeToWaitForSubscriptionNotificationSeconds (7 seconds).

✅ uss2_core (2024-12-19T16:18:42.751745Z)

54.4.5. Delete mock_uss flight test step

This page describes the content of a common test case where a flight intent should be successfully deleted by a flight planner. See delete_flight in test_steps.py.

54.4.5.1. 🛑 Successful deletion check

The flight ID provided is correct and corresponds to an existing flight intent, therefore it should have been deleted by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a failure, this check will fail. Teardown

✅ mock_uss (2024-12-19T16:18:42.792391Z)

54.5. Cleanup

54.5.1. Successful flight deletion check

This cleanup is for both - after testcase ends and after test scenario ends interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ uss2_core (2024-12-19T16:18:42.807173Z)

55. [S49] Awareness of relevant operational intents

55.1. Description

When a USS submits an operational intent to DSS, a subscription is associated with that operational intent in DSS. This subscription can be either an implicit or explicit subscription that covers the area of the operational intent. The subscription helps the USS to be notified of new or modified operations in the area, when its operational intent is in Activated, NonConforming and Contingent states. In this scenario, we will verify that USS under test has a subscription to cover the operational intent area, and receives relevant notifications from other USSes.

This scenario assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

55.2. Resources

55.2.1. flight_intents

FlightIntentsResource that provides the following flight intents:

Flight intent ID Flight name State Must be relevant, but not intersecting
flight_1_planned Flight 1 Accepted Flight 2
flight_1_activated Activated
flight_2_planned Flight 2 Accepted Flight 1
flight_2_planned_modified

To reach a situation where Flight 1 and Flight 2 do not intersect but are relevant to each other:

Because the scenario involves activation of intents, all activated intents must be active during the execution of the test scenario. Additionally, their end time must leave sufficient time for the execution of the test scenario. For the sake of simplicity, it is recommended to set the start and end times of all the intents to the same range.

✅ Provided by non_conflicting_flights in top-level resource pool.

55.2.2. mock_uss

MockUSSResource will be used for planning flights in order to send notifications to tested_uss, and gathering interuss interactions from mock_uss.

✅ Provided by mock_uss in top-level resource pool.

55.2.3. tested_uss

FlightPlannerResource that will be used for the USS being tested for its ability to maintain awareness of operational intent.

✅ Provided by instance 1 in flight_planners in top-level resource pool.

55.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

55.3. Activated operational intent receives notification of relevant intent test case

Test case summary illustration

This test case verifies that relevant notifications for new operational intents are received through subscription of an operational intent in Activated state.

55.3.1. Tested_uss plans and activates Flight 1 test step

55.3.1.1. Plan Flight 1

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

55.3.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:42.895272Z)

55.3.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 1 should be successfully planned by tested_uss.

✅ uss1_core (2024-12-19T16:18:42.895231Z)

✅ uss1_core (2024-12-19T16:18:43.024091Z)

55.3.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

55.3.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:42.822155Z)

✅ uss1_dss (2024-12-19T16:18:42.900049Z)

✅ uss1_dss (2024-12-19T16:18:42.938972Z)

✅ uss1_dss (2024-12-19T16:18:43.029444Z)

55.3.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.900114Z)

✅ uss1_core (2024-12-19T16:18:43.029567Z)

55.3.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:43.029542Z)

55.3.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:42.900178Z)

✅ uss1_core (2024-12-19T16:18:43.029615Z)

55.3.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.919944Z)

✅ uss1_core (2024-12-19T16:18:43.048072Z)

55.3.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:42.932654Z)

✅ uss1_core (2024-12-19T16:18:43.061104Z)

55.3.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.934131Z)

✅ uss1_core (2024-12-19T16:18:43.062606Z)

55.3.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:42.934180Z)

✅ uss1_core (2024-12-19T16:18:43.062654Z)

55.3.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:42.934222Z)

✅ uss1_core (2024-12-19T16:18:43.062696Z)

55.3.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

55.3.1.3. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

55.3.1.3.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss1_core (2024-12-19T16:18:43.024141Z)

55.3.1.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 1 should be successfully activated by the tested USS.

✅ uss1_core (2024-12-19T16:18:42.895231Z)

✅ uss1_core (2024-12-19T16:18:43.024091Z)

55.3.1.4. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

55.3.1.4.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:42.822155Z)

✅ uss1_dss (2024-12-19T16:18:42.900049Z)

✅ uss1_dss (2024-12-19T16:18:42.938972Z)

✅ uss1_dss (2024-12-19T16:18:43.029444Z)

55.3.1.4.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.900114Z)

✅ uss1_core (2024-12-19T16:18:43.029567Z)

55.3.1.4.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss1_core (2024-12-19T16:18:43.029542Z)

55.3.1.4.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss1_core (2024-12-19T16:18:42.900178Z)

✅ uss1_core (2024-12-19T16:18:43.029615Z)

55.3.1.4.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.919944Z)

✅ uss1_core (2024-12-19T16:18:43.048072Z)

55.3.1.4.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss1_core (2024-12-19T16:18:42.932654Z)

✅ uss1_core (2024-12-19T16:18:43.061104Z)

55.3.1.4.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss1_core (2024-12-19T16:18:42.934131Z)

✅ uss1_core (2024-12-19T16:18:43.062606Z)

55.3.1.4.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss1_core (2024-12-19T16:18:42.934180Z)

✅ uss1_core (2024-12-19T16:18:43.062654Z)

55.3.1.4.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss1_core (2024-12-19T16:18:42.934222Z)

✅ uss1_core (2024-12-19T16:18:43.062696Z)

55.3.1.4.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

While validating that Flight 1 has been shared, we will be able to find the subscription id associated with Flight 1 in DSS. Notifications of relevant flights will be sent to tested_uss using this subscription id.

This check was not applicable to this test run and is therefore not statused.

55.3.2. Mock_uss plans Flight 2 test step

55.3.2.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

55.3.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:43.155043Z)

55.3.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver successfully plans Flight 2 via the mock uss, as there is no conflict with Flight 1. However, because they are relevant to each other mock_uss will send Flight 2 notification to tested_uss.

✅ mock_uss (2024-12-19T16:18:43.155001Z)

55.3.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

55.3.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.068020Z)

✅ uss1_dss (2024-12-19T16:18:43.161344Z)

55.3.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.161415Z)

55.3.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

55.3.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:43.161466Z)

55.3.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.177756Z)

55.3.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:43.190824Z)

55.3.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.192361Z)

55.3.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:43.192404Z)

55.3.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:43.192440Z)

55.3.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

55.3.3. Validate Flight 2 notification received by tested_uss test step

This step verifies that a Tested USS successfully received a notification about a relevant operational intent from a Mock USS instance. This is done by checking the interactions of that Mock USS instance.

55.3.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

55.3.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface. Mock USS provides a GET endpoint to retrieve all the interactions that took place between Mock USS and other USSes after a particular time. These interactions also include the notifications sent and received by Mock USS.

✅ mock_uss (2024-12-19T16:18:43.203307Z)

55.3.3.2. ⚠️ Mock USS sends valid notification check

There is an assumption here that DSS shared the correct subscriber information with Mock USS in response to planning or modifying its operational intent.

As per astm.f3548.v21.USS0005, Mock USS should send valid notification to USSes subscribed in the area. The validation of notification involves checking that Mock USS included the correct subscription_id in the notification. The check will fail if the notification to tested USS does not include the expected subscription_id.

✅ mock_uss (2024-12-19T16:18:43.205554Z)

55.3.3.3. ⚠️ Tested USS receives valid notification check

As per astm.f3548.v21.SCD0080, USSes shall maintain awareness of operational intents relevant to their own ones when they are in the Activated, NonConforming or Contingent states. In DSS, there is a subscription associated with an operational intent managed by a USS. A tested USS should successfully receive a notification of relevant intent from Mock USS based on this subscription. The check will be done if valid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 204 to a valid notification attempt by Mock USS.

✅ uss1_core (2024-12-19T16:18:43.205606Z)

55.3.3.4. ⚠️ Tested USS rejects invalid notification check

As per astm.f3548.v21.USS0105, Tested USS should validate that the notification received includes the subscription_id associated with its managed operation. The check will be done if invalid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 400 for an invalid notification attempt by Mock USS.

Check a notification was received by tested_uss for Flight 2, with Flight 1's subscription_id.

This check was not applicable to this test run and is therefore not statused.

55.4. Modify Activated operational intent area and receive notification of relevant intent test case

This test case verifies that relevant notifications for modified operational intents are received through subscription of an operational intent in Activated state.

55.4.1. Mock_uss modifies planned Flight 2 test step

55.4.1.1. Modify Flight 2

This page describes the content of a common test case where a valid user flight intent in planned state should be successfully modified by a flight planner. See modify_planned_flight in test_steps.py.

55.4.1.1.1. 🛑 Successful modification check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been modified by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS fails to modify the flight, wrongly indicates a conflict, or wrongly indicates the planned state of the flight, this check will fail.

✅ mock_uss (2024-12-19T16:18:43.309036Z)

55.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver successfully modifies planned Flight 2 via the mock uss, as there is still no conflict with Flight 1. However, because they are relevant to each other mock_uss will send Flight 2 notification to tested_uss.

✅ mock_uss (2024-12-19T16:18:43.308994Z)

55.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

55.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.215507Z)

✅ uss1_dss (2024-12-19T16:18:43.316001Z)

55.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.316080Z)

55.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

55.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:43.316126Z)

55.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.331106Z)

55.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:43.345871Z)

55.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.347415Z)

55.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:43.347459Z)

55.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:43.347494Z)

55.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

55.4.2. Validate Flight 2 notification received by tested_uss test step

This step verifies that a Tested USS successfully received a notification about a relevant operational intent from a Mock USS instance. This is done by checking the interactions of that Mock USS instance.

55.4.2.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

55.4.2.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface. Mock USS provides a GET endpoint to retrieve all the interactions that took place between Mock USS and other USSes after a particular time. These interactions also include the notifications sent and received by Mock USS.

✅ mock_uss (2024-12-19T16:18:43.357647Z)

55.4.2.2. ⚠️ Mock USS sends valid notification check

There is an assumption here that DSS shared the correct subscriber information with Mock USS in response to planning or modifying its operational intent.

As per astm.f3548.v21.USS0005, Mock USS should send valid notification to USSes subscribed in the area. The validation of notification involves checking that Mock USS included the correct subscription_id in the notification. The check will fail if the notification to tested USS does not include the expected subscription_id.

✅ mock_uss (2024-12-19T16:18:43.359755Z)

55.4.2.3. ⚠️ Tested USS receives valid notification check

As per astm.f3548.v21.SCD0080, USSes shall maintain awareness of operational intents relevant to their own ones when they are in the Activated, NonConforming or Contingent states. In DSS, there is a subscription associated with an operational intent managed by a USS. A tested USS should successfully receive a notification of relevant intent from Mock USS based on this subscription. The check will be done if valid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 204 to a valid notification attempt by Mock USS.

✅ uss1_core (2024-12-19T16:18:43.359804Z)

55.4.2.4. ⚠️ Tested USS rejects invalid notification check

As per astm.f3548.v21.USS0105, Tested USS should validate that the notification received includes the subscription_id associated with its managed operation. The check will be done if invalid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 400 for an invalid notification attempt by Mock USS.

Check a notification was received by tested_uss for Flight 2, with Flight 1's subscription_id, after modification of the flight.

This check was not applicable to this test run and is therefore not statused.

55.5. Declare Operational intent non-conforming and receive notification of relevant intent test case

This test case was not applicable to this test run and is therefore not statused.

55.5.1. ToDo

55.6. Declare Operational intent contingent and receive notification of relevant intent test case

This test case was not applicable to this test run and is therefore not statused.

55.6.1. ToDo

55.7. Cleanup

55.7.1. Successful flight deletion check

The flights are cleaned up at the end of the test scenario. interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ mock_uss (2024-12-19T16:18:43.394913Z)

✅ uss1_core (2024-12-19T16:18:43.425309Z)

56. [S50] Awareness of relevant operational intents

56.1. Description

When a USS submits an operational intent to DSS, a subscription is associated with that operational intent in DSS. This subscription can be either an implicit or explicit subscription that covers the area of the operational intent. The subscription helps the USS to be notified of new or modified operations in the area, when its operational intent is in Activated, NonConforming and Contingent states. In this scenario, we will verify that USS under test has a subscription to cover the operational intent area, and receives relevant notifications from other USSes.

This scenario assumes that the area used in the scenario is already clear of any pre-existing flights (using, for instance, PrepareFlightPlanners scenario).

56.2. Resources

56.2.1. flight_intents

FlightIntentsResource that provides the following flight intents:

Flight intent ID Flight name State Must be relevant, but not intersecting
flight_1_planned Flight 1 Accepted Flight 2
flight_1_activated Activated
flight_2_planned Flight 2 Accepted Flight 1
flight_2_planned_modified

To reach a situation where Flight 1 and Flight 2 do not intersect but are relevant to each other:

Because the scenario involves activation of intents, all activated intents must be active during the execution of the test scenario. Additionally, their end time must leave sufficient time for the execution of the test scenario. For the sake of simplicity, it is recommended to set the start and end times of all the intents to the same range.

✅ Provided by non_conflicting_flights in top-level resource pool.

56.2.2. mock_uss

MockUSSResource will be used for planning flights in order to send notifications to tested_uss, and gathering interuss interactions from mock_uss.

✅ Provided by mock_uss in top-level resource pool.

56.2.3. tested_uss

FlightPlannerResource that will be used for the USS being tested for its ability to maintain awareness of operational intent.

✅ Provided by instance 2 in flight_planners in top-level resource pool.

56.2.4. dss

DSSInstanceResource that provides access to a DSS instance where flight creation/sharing can be verified.

✅ Provided by dss in top-level resource pool.

56.3. Activated operational intent receives notification of relevant intent test case

Test case summary illustration

This test case verifies that relevant notifications for new operational intents are received through subscription of an operational intent in Activated state.

56.3.1. Tested_uss plans and activates Flight 1 test step

56.3.1.1. Plan Flight 1

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

56.3.1.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:43.507482Z)

56.3.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 1 should be successfully planned by tested_uss.

✅ uss2_core (2024-12-19T16:18:43.507437Z)

✅ uss2_core (2024-12-19T16:18:43.728159Z)

56.3.1.2. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

56.3.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.440571Z)

✅ uss1_dss (2024-12-19T16:18:43.512641Z)

✅ uss1_dss (2024-12-19T16:18:43.639938Z)

✅ uss1_dss (2024-12-19T16:18:43.733281Z)

56.3.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.512713Z)

✅ uss2_core (2024-12-19T16:18:43.733427Z)

56.3.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:43.733399Z)

56.3.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:43.512769Z)

✅ uss2_core (2024-12-19T16:18:43.733479Z)

56.3.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.532071Z)

✅ uss2_core (2024-12-19T16:18:43.751624Z)

56.3.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:43.632891Z)

✅ uss2_core (2024-12-19T16:18:43.765091Z)

56.3.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.634432Z)

✅ uss2_core (2024-12-19T16:18:43.766665Z)

56.3.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:43.634483Z)

✅ uss2_core (2024-12-19T16:18:43.766715Z)

56.3.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:43.634527Z)

✅ uss2_core (2024-12-19T16:18:43.766759Z)

56.3.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

56.3.1.3. Activate Flight 1

This page describes the content of a common test step where a valid user flight intent should be successfully activated by a flight planner. See activate_flight_intent in test_steps.py.

56.3.1.3.1. 🛑 Successful activation check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been activated by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ uss2_core (2024-12-19T16:18:43.728202Z)

56.3.1.3.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

Flight 1 should be successfully activated by the tested USS.

✅ uss2_core (2024-12-19T16:18:43.507437Z)

✅ uss2_core (2024-12-19T16:18:43.728159Z)

56.3.1.4. Validate Flight 1 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

56.3.1.4.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.440571Z)

✅ uss1_dss (2024-12-19T16:18:43.512641Z)

✅ uss1_dss (2024-12-19T16:18:43.639938Z)

✅ uss1_dss (2024-12-19T16:18:43.733281Z)

56.3.1.4.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.512713Z)

✅ uss2_core (2024-12-19T16:18:43.733427Z)

56.3.1.4.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

✅ uss2_core (2024-12-19T16:18:43.733399Z)

56.3.1.4.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ uss2_core (2024-12-19T16:18:43.512769Z)

✅ uss2_core (2024-12-19T16:18:43.733479Z)

56.3.1.4.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.532071Z)

✅ uss2_core (2024-12-19T16:18:43.751624Z)

56.3.1.4.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ uss2_core (2024-12-19T16:18:43.632891Z)

✅ uss2_core (2024-12-19T16:18:43.765091Z)

56.3.1.4.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ uss2_core (2024-12-19T16:18:43.634432Z)

✅ uss2_core (2024-12-19T16:18:43.766665Z)

56.3.1.4.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ uss2_core (2024-12-19T16:18:43.634483Z)

✅ uss2_core (2024-12-19T16:18:43.766715Z)

56.3.1.4.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ uss2_core (2024-12-19T16:18:43.634527Z)

✅ uss2_core (2024-12-19T16:18:43.766759Z)

56.3.1.4.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

While validating that Flight 1 has been shared, we will be able to find the subscription id associated with Flight 1 in DSS. Notifications of relevant flights will be sent to tested_uss using this subscription id.

This check was not applicable to this test run and is therefore not statused.

56.3.2. Mock_uss plans Flight 2 test step

56.3.2.1. Plan Flight 2

This page describes the content of a common test case where a valid user flight intent should be successfully planned by a flight planner. See plan_flight_intent in test_steps.py.

56.3.2.1.1. 🛑 Successful planning check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been planned by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS indicates a conflict, this check will fail. If the USS indicates that the flight was rejected, this check will fail. If the USS indicates that the injection attempt failed, this check will fail.

✅ mock_uss (2024-12-19T16:18:43.860546Z)

56.3.2.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver successfully plans Flight 2 via the mock uss, as there is no conflict with Flight 1. However, because they are relevant to each other mock_uss will send Flight 2 notification to tested_uss.

✅ mock_uss (2024-12-19T16:18:43.860500Z)

56.3.2.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

56.3.2.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.772350Z)

✅ uss1_dss (2024-12-19T16:18:43.866686Z)

56.3.2.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.866754Z)

56.3.2.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

56.3.2.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:43.866805Z)

56.3.2.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.884713Z)

56.3.2.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:43.897918Z)

56.3.2.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:43.899514Z)

56.3.2.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:43.899557Z)

56.3.2.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:43.899594Z)

56.3.2.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

56.3.3. Validate Flight 2 notification received by tested_uss test step

This step verifies that a Tested USS successfully received a notification about a relevant operational intent from a Mock USS instance. This is done by checking the interactions of that Mock USS instance.

56.3.3.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

56.3.3.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface. Mock USS provides a GET endpoint to retrieve all the interactions that took place between Mock USS and other USSes after a particular time. These interactions also include the notifications sent and received by Mock USS.

✅ mock_uss (2024-12-19T16:18:43.910750Z)

56.3.3.2. ⚠️ Mock USS sends valid notification check

There is an assumption here that DSS shared the correct subscriber information with Mock USS in response to planning or modifying its operational intent.

As per astm.f3548.v21.USS0005, Mock USS should send valid notification to USSes subscribed in the area. The validation of notification involves checking that Mock USS included the correct subscription_id in the notification. The check will fail if the notification to tested USS does not include the expected subscription_id.

✅ mock_uss (2024-12-19T16:18:43.912731Z)

56.3.3.3. ⚠️ Tested USS receives valid notification check

As per astm.f3548.v21.SCD0080, USSes shall maintain awareness of operational intents relevant to their own ones when they are in the Activated, NonConforming or Contingent states. In DSS, there is a subscription associated with an operational intent managed by a USS. A tested USS should successfully receive a notification of relevant intent from Mock USS based on this subscription. The check will be done if valid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 204 to a valid notification attempt by Mock USS.

✅ uss2_core (2024-12-19T16:18:43.912776Z)

56.3.3.4. ⚠️ Tested USS rejects invalid notification check

As per astm.f3548.v21.USS0105, Tested USS should validate that the notification received includes the subscription_id associated with its managed operation. The check will be done if invalid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 400 for an invalid notification attempt by Mock USS.

Check a notification was received by tested_uss for Flight 2, with Flight 1's subscription_id.

This check was not applicable to this test run and is therefore not statused.

56.4. Modify Activated operational intent area and receive notification of relevant intent test case

This test case verifies that relevant notifications for modified operational intents are received through subscription of an operational intent in Activated state.

56.4.1. Mock_uss modifies planned Flight 2 test step

56.4.1.1. Modify Flight 2

This page describes the content of a common test case where a valid user flight intent in planned state should be successfully modified by a flight planner. See modify_planned_flight in test_steps.py.

56.4.1.1.1. 🛑 Successful modification check

All flight intent data provided is correct and valid and free of conflict in space and time, therefore it should have been modified by the USS per interuss.automated_testing.flight_planning.ExpectedBehavior. If the USS fails to modify the flight, wrongly indicates a conflict, or wrongly indicates the planned state of the flight, this check will fail.

✅ mock_uss (2024-12-19T16:18:44.009297Z)

56.4.1.1.2. 🛑 Failure check

All flight intent data provided was complete and correct. It should have been processed successfully, allowing the USS to reject or accept the flight. If the USS indicates that the injection attempt failed, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

The test driver successfully modifies planned Flight 2 via the mock uss, as there is still no conflict with Flight 1. However, because they are relevant to each other mock_uss will send Flight 2 notification to tested_uss.

✅ mock_uss (2024-12-19T16:18:44.009256Z)

56.4.1.2. Validate Flight 2 sharing

This step verifies that a created flight is shared properly per ASTM F3548-21 by querying the DSS for flights in the area of the flight intent, and then retrieving the details from the USS if the operational intent reference is found. See OpIntentValidator.expect_shared() in test_steps.py.

56.4.1.2.1. 🛑 DSS responses check

If the DSS fails to properly respond to a valid search query for operational intents in an area, it is in violation of astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:43.922493Z)

✅ uss1_dss (2024-12-19T16:18:44.015600Z)

56.4.1.2.2. 🛑 Operational intent shared correctly check

If a reference to the operational intent for the flight is not found in the DSS, this check will fail per astm.f3548.v21.USS0005 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:44.015671Z)

56.4.1.2.3. 🛑 Operational intent for active flight not deleted check

If an activated operational intent is expected to exist after it has been modified or activated and that it is not found in the DSS, this means that there is an active flight without a corresponding operational intent, then this check will fail per interuss.automated_testing.flight_planning.FlightCoveredByOperationalIntent.

This check was not applicable to this test run and is therefore not statused.

56.4.1.2.4. 🛑 Operational intent state is correct check

If the state of the operational intent found in the DSS does not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior.

✅ mock_uss (2024-12-19T16:18:44.015717Z)

56.4.1.2.5. 🛑 Operational intent details retrievable check

If the operational intent details for the flight cannot be retrieved from the USS, this check will fail per astm.f3548.v21.USS0105 and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:44.032023Z)

56.4.1.2.6. ⚠️ Operational intent details data format check

If the operational intent details response does not validate against the GetOperationalIntentDetailsResponse schema of the OpenAPI specification, this check fill fail per astm.f3548.v21.USS0105.

✅ mock_uss (2024-12-19T16:18:44.045347Z)

56.4.1.2.7. 🛑 Correct operational intent details check

If the operational intent details reported by the USS do not match the user's flight intent, this check will fail per interuss.automated_testing.flight_planning.ExpectedBehavior and astm.f3548.v21.OPIN0025.

✅ mock_uss (2024-12-19T16:18:44.047043Z)

56.4.1.2.8. ⚠️ Off-nominal volumes check

astm.f3548.v21.OPIN0015 specifies that nominal operational intents (Accepted and Activated) must not include any off-nominal 4D volumes, so this check will fail if an Accepted or Activated operational intent includes off-nominal volumes.

✅ mock_uss (2024-12-19T16:18:44.047088Z)

56.4.1.2.9. ⚠️ Vertices check

astm.f3548.v21.OPIN0020

✅ mock_uss (2024-12-19T16:18:44.047124Z)

56.4.1.2.10. 🛑 Operational intent telemetry retrievable check

If:

this check will fail per astm.f3548.v21.USS0105.

This check was not applicable to this test run and is therefore not statused.

56.4.2. Validate Flight 2 notification received by tested_uss test step

This step verifies that a Tested USS successfully received a notification about a relevant operational intent from a Mock USS instance. This is done by checking the interactions of that Mock USS instance.

56.4.2.1. Get Mock USS interactions logs

This step obtains interactions of interest from mock_uss.

56.4.2.1.1. 🛑 Mock USS interactions logs retrievable check

The Mock USSes provide a GET endpoint to retrieve all the interactions that took place between them and other USSes after a particular time. If there is any error retrieving these interactions, this check will fail as per interuss.mock_uss.hosted_instance.ExposeInterface. Mock USS provides a GET endpoint to retrieve all the interactions that took place between Mock USS and other USSes after a particular time. These interactions also include the notifications sent and received by Mock USS.

✅ mock_uss (2024-12-19T16:18:44.057389Z)

56.4.2.2. ⚠️ Mock USS sends valid notification check

There is an assumption here that DSS shared the correct subscriber information with Mock USS in response to planning or modifying its operational intent.

As per astm.f3548.v21.USS0005, Mock USS should send valid notification to USSes subscribed in the area. The validation of notification involves checking that Mock USS included the correct subscription_id in the notification. The check will fail if the notification to tested USS does not include the expected subscription_id.

✅ mock_uss (2024-12-19T16:18:44.059411Z)

56.4.2.3. ⚠️ Tested USS receives valid notification check

As per astm.f3548.v21.SCD0080, USSes shall maintain awareness of operational intents relevant to their own ones when they are in the Activated, NonConforming or Contingent states. In DSS, there is a subscription associated with an operational intent managed by a USS. A tested USS should successfully receive a notification of relevant intent from Mock USS based on this subscription. The check will be done if valid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 204 to a valid notification attempt by Mock USS.

✅ uss2_core (2024-12-19T16:18:44.059459Z)

56.4.2.4. ⚠️ Tested USS rejects invalid notification check

As per astm.f3548.v21.USS0105, Tested USS should validate that the notification received includes the subscription_id associated with its managed operation. The check will be done if invalid notification is sent by Mock USS, which is determined in Mock USS sends valid notification check above. This check will fail if tested USS does not respond with http status 400 for an invalid notification attempt by Mock USS.

Check a notification was received by tested_uss for Flight 2, with Flight 1's subscription_id, after modification of the flight.

This check was not applicable to this test run and is therefore not statused.

56.5. Declare Operational intent non-conforming and receive notification of relevant intent test case

This test case was not applicable to this test run and is therefore not statused.

56.5.1. ToDo

56.6. Declare Operational intent contingent and receive notification of relevant intent test case

This test case was not applicable to this test run and is therefore not statused.

56.6.1. ToDo

56.7. Cleanup

56.7.1. Successful flight deletion check

The flights are cleaned up at the end of the test scenario. interuss.automated_testing.flight_planning.DeleteFlightSuccess

✅ mock_uss (2024-12-19T16:18:44.095934Z)

✅ uss2_core (2024-12-19T16:18:44.125400Z)

57. [skipped] All actions from action generator

This instance of this test scenario was skipped in this test run because: AuthAdapterResource provided to monitoring.uss_qualifier.resources.astm.f3548.v21.dss.DSSInstanceResource is not declared (in its resource specification) as authorized to obtain scope utm.conformance_monitoring_sa which it requires to create operational intent references in an off-nominal state. Update scopes_authorized to include utm.conformance_monitoring_sa to provide this authorization. 7 scopes currently declared as authorized for AuthAdapterResource: , utm.availability_arbitration, interuss.flight_planning.plan, interuss.versioning.read_system_versions, interuss.flight_planning.direct_automated_test, utm.constraint_management, utm.strategic_coordination

58. [skipped] All actions from action generator

This instance of this test scenario was skipped in this test run because: AuthAdapterResource provided to monitoring.uss_qualifier.resources.astm.f3548.v21.dss.DSSInstanceResource is not declared (in its resource specification) as authorized to obtain scope utm.conformance_monitoring_sa which it requires to create operational intent references in an off-nominal state. Update scopes_authorized to include utm.conformance_monitoring_sa to provide this authorization. 7 scopes currently declared as authorized for AuthAdapterResource: , utm.availability_arbitration, interuss.flight_planning.plan, interuss.versioning.read_system_versions, interuss.flight_planning.direct_automated_test, utm.constraint_management, utm.strategic_coordination

59. [S51] ASTM F3548 flight planners preparation

59.1. Description

This scenario prepares flight planner systems for execution of controlled test scenarios by checking planner systems' readiness and having them remove any existing flights that may already be in the test area.

59.2. Resources

59.2.1. flight_planners

FlightPlannersResource listing all USSs undergoing planning tests so that they can be checked for readiness and instructed to remove any existing flights from the area in this scenario.

✅ Provided by flight_planners in top-level resource pool.

59.2.2. mock_uss

(Optional) MockUSSResource is checked for readiness and instructed to remove any existing flights from the area in this scenario.

✅ Provided by mock_uss in top-level resource pool.

59.2.3. dss

DSSInstanceResource to check for lingering operational intents after the area has been cleared.

✅ Provided by dss in top-level resource pool.

59.2.4. flight_intents

FlightIntentsResource containing flight intents that will be used in subsequent tests, so all planners should be instructed to clear any area involved with any of these intents of flights it manages.

✅ Provided by invalid_flight_intents in top-level resource pool.

59.2.5. flight_intents2

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

This resource was not applicable to this test run and was therefore not provided.

59.2.6. flight_intents3

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

✅ Provided by conflicting_flights in top-level resource pool.

59.2.7. flight_intents4

(Optional) If more than one FlightIntentsResource will be used in subsequent tests, additional intents may be specified with this resource.

✅ Provided by non_conflicting_flights in top-level resource pool.

59.3. Flight planners preparation test case

59.3.1. Check for flight planning readiness test step

All USSs are queried for their readiness to ensure later tests can proceed.

59.3.1.1. ⚠️ Valid response to readiness query check

interuss.automated_testing.flight_planning.ImplementAPI

✅ uss1_core (2024-12-19T16:18:44.134104Z)

✅ uss2_core (2024-12-19T16:18:44.141758Z)

✅ mock_uss (2024-12-19T16:18:44.149204Z)

59.3.1.2. ⚠️ Flight planning USS ready check

This readiness indicates the USS's ability to inject test data, so if this check fails, not only has the USS not met interuss.automated_testing.flight_planning.Readiness, but it also does not meet astm.f3548.v21.GEN0310.

✅ uss1_core (2024-12-19T16:18:44.134188Z)

✅ uss2_core (2024-12-19T16:18:44.141845Z)

✅ mock_uss (2024-12-19T16:18:44.149285Z)

59.3.2. Area clearing test step

All USSs are requested to remove all flights from the area under test.

59.3.2.1. ⚠️ Valid response to clearing query check

interuss.automated_testing.flight_planning.ImplementAPI

✅ uss1_core (2024-12-19T16:18:44.176741Z)

✅ uss2_core (2024-12-19T16:18:44.204561Z)

✅ mock_uss (2024-12-19T16:18:44.229011Z)

✅ uss1_core (2024-12-19T16:18:44.256647Z)

✅ uss2_core (2024-12-19T16:18:44.283899Z)

✅ mock_uss (2024-12-19T16:18:44.307310Z)

✅ uss1_core (2024-12-19T16:18:44.335172Z)

✅ uss2_core (2024-12-19T16:18:44.362687Z)

✅ mock_uss (2024-12-19T16:18:44.385921Z)

59.3.2.2. ⚠️ Area cleared successfully check

interuss.automated_testing.flight_planning.ClearArea

✅ uss1_core (2024-12-19T16:18:44.176809Z)

✅ uss2_core (2024-12-19T16:18:44.204644Z)

✅ mock_uss (2024-12-19T16:18:44.229111Z)

✅ uss1_core (2024-12-19T16:18:44.256736Z)

✅ uss2_core (2024-12-19T16:18:44.284000Z)

✅ mock_uss (2024-12-19T16:18:44.307447Z)

✅ uss1_core (2024-12-19T16:18:44.335281Z)

✅ uss2_core (2024-12-19T16:18:44.362805Z)

✅ mock_uss (2024-12-19T16:18:44.386038Z)

59.3.3. Clear area validation test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

59.3.3.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

✅ uss1_dss (2024-12-19T16:18:44.390889Z)

✅ uss1_dss (2024-12-19T16:18:44.394560Z)

✅ uss1_dss (2024-12-19T16:18:44.398257Z)

59.3.3.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

This step examines whether any operational intents remain. If any foreign (other than uss_qualifier-owned) operational intents remain, then this step's checks will fail. If any uss_qualifier-owned operational intents remain, the checks for this step do not fail but instead we proceed to the next test case. If the area is clear, we skip the next test case.

✅ (2024-12-19T16:18:44.390998Z)

✅ (2024-12-19T16:18:44.394655Z)

✅ (2024-12-19T16:18:44.398380Z)

59.4. uss_qualifier preparation test case

This test case was not applicable to this test run and is therefore not statused.

In addition to foreign flight planners, uss_qualifier may have left operational intents in the DSS from an incomplete previous run. This test case attempts to clean them up if they exist. If there are no operational intents from uss_qualifier in the flight intent areas, this test case will be skipped.

59.4.1. Remove uss_qualifier op intents test step

59.4.1.1. Remove op intents

Ensure a clean workspace for testing interactions with a DSS by removing any operational intent references from the DSS that may have been left behind from testing efforts.

59.4.1.1.1. 🛑 Operational intent references can be queried by ID check

If an existing operational intent reference cannot directly be queried by its ID, or if for a non-existing one the DSS replies with a status code different than 404, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

59.4.1.1.2. 🛑 Operational intent references can be searched for check

A client with valid credentials should be allowed to search for operational intents in a given area. Otherwise, the DSS is not in compliance with astm.f3548.v21.DSS0005,2.

59.4.1.1.3. 🛑 Operational intent reference removed check

If an existing operational intent cannot be deleted when providing the proper ID and OVN, the DSS implementation is in violation of astm.f3548.v21.DSS0005,1.

The operational intent references managed by uss_qualifier discovered in the previous test case are removed.

59.4.2. Clear area validation test step

uss_qualifier verifies with the DSS that there are no operational intents remaining in the area.

59.4.2.1. 🛑 DSS responses check

If the DSS fails to reply to a query concerning operational intent references in a given area, or fails to allow the deletion of an operational intent from its own creator, it is in violation of astm.f3548.v21.DSS0005,1 or astm.f3548.v21.DSS0005,2, and this check will fail.

59.4.2.2. 🛑 Area is clear of op intents check

If operational intents exist in the 4D area(s) that should be clear, then the current state of the test environment is not suitable to conduct tests so this check will fail.

After removing the operational intents of all flight planning participants previously, and just having attempted to remove uss_qualifier-owned operational intents, the area should now be fully clear.

60. [S52] ASTM F3548-21 evaluate system versions

60.1. Overview

ASTM F3548-21 GEN0305 requires that the USS's test system (provided per GEN0300) uses the currently deployed software version except when testing an update. This scenario checks the test and production versions of all participants' systems and ensures that no more than one participant's test system (presumably the participant who is testing an update) has a different version than their production system.

60.2. Resources

60.2.1. test_env_version_providers

A VersionProvidersResource containing the means by which to query test-environment system versions for each applicable participant.

✅ Provided by test_env_version_providers in top-level resource pool.

60.2.2. prod_env_version_providers

A VersionProvidersResource containing the means by which to query production-environment system versions for each applicable participant.

✅ Provided by prod_env_version_providers in top-level resource pool.

60.2.3. system_identity

A SystemIdentityResource indicating the identity of the system for which to query the version from all providers.

✅ Provided by system_identity in suites.astm.utm.f3548_21.

60.3. Evaluate versions test case

60.3.1. Get test environment test versions test step

Each version provider is queried for the version of its system (identified by system_identity) in the test environment.

60.3.1.1. ⚠️ Valid response check

If a valid response is not received from a version provider, they will have failed to meet versioning.ReportSystemVersion.

✅ uss1_core (2024-12-19T16:18:44.406811Z)

✅ uss2_core (2024-12-19T16:18:44.414410Z)

60.3.2. Get production environment versions test step

Each version provider is queried for the version of its system (identified by system_identity) in the production environment.

60.3.2.1. ⚠️ Valid response check

If a valid response is not received from a version provider, they will have failed to meet versioning.ReportSystemVersion.

✅ uss1_core (2024-12-19T16:18:44.421712Z)

✅ uss2_core (2024-12-19T16:18:44.428816Z)

60.3.3. Evaluate current system versions test step

60.3.3.1. ⚠️ At most one participant is testing a new software version check

Per GEN0305, a participant may temporarily have a different software version in the test environment than in production in order to test that new software version. But, as the purpose of testing is to ensure continued compliance and interoperation with other participants' systems that have already been demonstrated functional, if two or more participants have differing software versions between the test and production environments, at least one of these participants will have failed to meet astm.f3548.v21.GEN0305.

✅ uss1_core, uss2_core (2024-12-19T16:18:44.428976Z)

60.3.3.2. ⚠️ Test software version matches production check

For participants not testing a new software version, their test-environment software version must match their production-environment software version or that participant does not meet astm.f3548.v21.GEN0305.

✅ uss1_core (2024-12-19T16:18:44.428914Z)

✅ uss2_core (2024-12-19T16:18:44.428946Z)

60.3.4. Evaluate system version consistency test step

60.3.4.1. ⚠️ Software versions are consistent throughout test run check

If the system version reported by a participant at one point during the test run is different from the system version reported by that participant at a different point during the test run, that participant cannot meet astm.f3548.v21.GEN0305 because the test environment and production environment system versions cannot be compared because the version in at least one of those environments does not have a consistent value.

✅ uss1_core (2024-12-19T16:18:44.429197Z)

✅ uss2_core (2024-12-19T16:18:44.429371Z)

61. [S53] ASTM F3548 UTM aggregate checks

61.1. Overview

In this special scenario, the report of previously executed ASTM F3548 UTM scenario(s) are evaluated for the performances of the queries made during their execution.

61.2. Resources

61.2.1. flight_planners

The flight planners subject to evaluation.

✅ Provided by flight_planners in top-level resource pool.

61.3. Performance of SCD requests to USS test case

61.3.1. Performance of successful operational intent details requests test step

In this step, all successful requests for operational intent details made to the USSs that are part of the flight planners provided as resource are used to determine and evaluate the 95th percentile of the requests durations.

61.3.1.1. ⚠️ Operational intent details requests take no more than [MaxRespondToOIDetailsRequest] second 95% of the time check

If the 95th percentile of the requests durations is higher than the threshold MaxRespondToOIDetailsRequest (1 second), this check will fail per astm.f3548.v21.SCD0075.

✅ uss1_core (2024-12-19T16:18:44.439053Z)

✅ uss2_core (2024-12-19T16:18:44.439514Z)

61.4. Interoperability test instance is available test case

61.4.1. Interoperability test instance is available test step

This step verifies that interactions with the interoperability test instances happened and where at least partly successful.

61.4.1.1. ⚠️ Interoperability test instance is available check

This check ensures that interactions with the interoperability test instance that each USS must provide are possible.

If all interactions fail, or if no test instance can be reached, the USS is failing to meet astm.f3548.v21.GEN0300.

If no interaction with a test instance was found, this check is skipped.

✅ uss1_core (2024-12-19T16:18:44.440077Z)

✅ uss2_core (2024-12-19T16:18:44.440347Z)