Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions monitoring/uss_qualifier/configurations/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,19 @@ execution:
types: [suites.astm.netrid.f3411_22a]
```

### Skip action generators that may generate particular actions

```yaml
execution:
skip_action_when:
- is_action_generator:
potentially_generates_any_of:
- test_scenario:
scenario_type: scenarios.interuss.mock_uss.configure_locality.ConfigureLocality
- test_suite:
suite_type: suites.astm.netrid.f3411_22a
```

### Only run two kinds of scenarios

```yaml
Expand Down
9 changes: 9 additions & 0 deletions monitoring/uss_qualifier/configurations/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@

from monitoring.monitorlib.dicts import JSONAddress
from monitoring.uss_qualifier.action_generators.definitions import GeneratorTypeName
from monitoring.uss_qualifier.action_generators.documentation.definitions import (
PotentialGeneratedAction,
)
from monitoring.uss_qualifier.reports.validation.definitions import (
ValidationConfiguration,
)
Expand Down Expand Up @@ -47,6 +50,12 @@ class ActionGeneratorSelectionCondition(ImplicitDict):
types: Optional[list[GeneratorTypeName]]
"""Only select action generators of the specified types."""

potentially_generates_all_of: Optional[list[PotentialGeneratedAction]]
"""Only select action generators whose list_potential_actions result contains every listed action (using exact equality). An empty list imposes no restriction."""

potentially_generates_any_of: Optional[list[PotentialGeneratedAction]]
"""Only select action generators whose list_potential_actions result contains at least one listed action (using exact equality). An empty list selects no action generators."""


class TestSuiteSelectionCondition(ImplicitDict):
"""By default, select all test suites. When specified, limit selection to specified conditions."""
Expand Down
28 changes: 28 additions & 0 deletions monitoring/uss_qualifier/suites/suite.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@
ActionGenerator,
action_generator_type_from_name,
)
from monitoring.uss_qualifier.action_generators.documentation.documentation import (
list_potential_actions_for_action_generator_definition,
)
from monitoring.uss_qualifier.configurations.configuration import (
ExecutionConfiguration,
FullyQualifiedCheck,
Expand Down Expand Up @@ -634,6 +637,31 @@ def _is_selected_by(
for t in f.is_action_generator.types
):
return False
if (
f.is_action_generator.potentially_generates_all_of is not None
or f.is_action_generator.potentially_generates_any_of is not None
):
potential_actions = (
list_potential_actions_for_action_generator_definition(
action.action_generator.definition
)
)
if (
f.is_action_generator.potentially_generates_all_of is not None
and not all(
a in potential_actions
for a in f.is_action_generator.potentially_generates_all_of
)
):
return False
if (
f.is_action_generator.potentially_generates_any_of is not None
and not any(
a in potential_actions
for a in f.is_action_generator.potentially_generates_any_of
)
):
return False
result = True
else:
return False
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"$id": "https://github.com/interuss/monitoring/blob/main/schemas/monitoring/uss_qualifier/action_generators/documentation/definitions/PotentialActionGeneratorAction.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "monitoring.uss_qualifier.action_generators.documentation.definitions.PotentialActionGeneratorAction, as defined in monitoring/uss_qualifier/action_generators/documentation/definitions.py",
"properties": {
"$ref": {
"description": "Path to content that replaces the $ref",
"type": "string"
},
"generator_type": {
"description": "Type of action generator.",
"type": "string"
},
"specification": {
"description": "Specification of action generator; format is the ActionGeneratorSpecificationType that corresponds to the `generator_type`",
"type": "object"
}
},
"required": [
"generator_type",
"specification"
],
"type": "object"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
{
"$id": "https://github.com/interuss/monitoring/blob/main/schemas/monitoring/uss_qualifier/action_generators/documentation/definitions/PotentialGeneratedAction.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "monitoring.uss_qualifier.action_generators.documentation.definitions.PotentialGeneratedAction, as defined in monitoring/uss_qualifier/action_generators/documentation/definitions.py",
"properties": {
"$ref": {
"description": "Path to content that replaces the $ref",
"type": "string"
},
"action_generator": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "PotentialActionGeneratorAction.json"
}
]
},
"test_scenario": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "PotentialTestScenarioAction.json"
}
]
},
"test_suite": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "PotentialTestSuiteAction.json"
}
]
}
},
"type": "object"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"$id": "https://github.com/interuss/monitoring/blob/main/schemas/monitoring/uss_qualifier/action_generators/documentation/definitions/PotentialTestScenarioAction.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "monitoring.uss_qualifier.action_generators.documentation.definitions.PotentialTestScenarioAction, as defined in monitoring/uss_qualifier/action_generators/documentation/definitions.py",
"properties": {
"$ref": {
"description": "Path to content that replaces the $ref",
"type": "string"
},
"scenario_type": {
"description": "Type of test scenario.",
"type": "string"
}
},
"required": [
"scenario_type"
],
"type": "object"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
{
"$id": "https://github.com/interuss/monitoring/blob/main/schemas/monitoring/uss_qualifier/action_generators/documentation/definitions/PotentialTestSuiteAction.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "monitoring.uss_qualifier.action_generators.documentation.definitions.PotentialTestSuiteAction, as defined in monitoring/uss_qualifier/action_generators/documentation/definitions.py",
"properties": {
"$ref": {
"description": "Path to content that replaces the $ref",
"type": "string"
},
"suite_definition": {
"description": "Definition of test suite internal to the configuration -- specified instead of `suite_type`.",
"oneOf": [
{
"type": "null"
},
{
"$ref": "../../../suites/definitions/TestSuiteDefinition.json"
}
]
},
"suite_type": {
"description": "Type/location of test suite. Usually expressed as the file name of the suite definition (without extension) qualified relative to the `uss_qualifier` folder",
"type": [
"string",
"null"
]
}
},
"type": "object"
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,26 @@
"description": "Path to content that replaces the $ref",
"type": "string"
},
"potentially_generates_all_of": {
"description": "Only select action generators whose list_potential_actions result contains every listed action (using exact equality). An empty list imposes no restriction.",
"items": {
"$ref": "../../action_generators/documentation/definitions/PotentialGeneratedAction.json"
},
"type": [
"array",
"null"
]
},
"potentially_generates_any_of": {
"description": "Only select action generators whose list_potential_actions result contains at least one listed action (using exact equality). An empty list selects no action generators.",
"items": {
"$ref": "../../action_generators/documentation/definitions/PotentialGeneratedAction.json"
},
"type": [
"array",
"null"
]
},
"types": {
"description": "Only select action generators of the specified types.",
"items": {
Expand Down
Loading