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
Empty file.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from implicitdict import ImplicitDict

from monitoring.benchmarker.configurations.actions.f3411 import F3411ActionSpecification
from monitoring.benchmarker.configurations.artifacts.artifact import (
ArtifactSpecification,
)
Expand Down Expand Up @@ -49,4 +50,6 @@ class BenchmarkActionSpecification(ImplicitDict):

run_command: Optional[RunCommandActionSpecification]

f3411: Optional[F3411ActionSpecification]

generate_artifacts: Optional[GenerateArtifactsActionSpecification]
11 changes: 11 additions & 0 deletions monitoring/benchmarker/configurations/actions/astm.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from enum import StrEnum


class SubscriptionCreationMode(StrEnum):
GetDeleteCreate = "GetDeleteCreate"
"""First, attempt to get an existing subscription with this ID. If the subscription exists, delete it. Then, create the new subscription as specified."""


class SubscriptionDeletionMode(StrEnum):
GetDeleteIfExist = "GetDeleteIfExist"
"""First, attempt to get an existing subscription with this ID. If the subscription exists, delete it. If the subscription doesn't exist, do nothing."""
54 changes: 54 additions & 0 deletions monitoring/benchmarker/configurations/actions/f3411.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from typing import Optional

from implicitdict import ImplicitDict, StringBasedTimeDelta

from monitoring.benchmarker.configurations.actions.astm import (
SubscriptionCreationMode,
SubscriptionDeletionMode,
)
from monitoring.monitorlib.geo import Altitude, LatLngBoundingBox
from monitoring.monitorlib.rid import RIDVersion


class Subscription(ImplicitDict):
subscription_id: str
"""ID of the single subscription to create."""

rid_version: RIDVersion

duration: StringBasedTimeDelta
"""Duration of the subscription, from the time it is created."""

area: LatLngBoundingBox
"""Horizontal area this subscription should cover."""

min_alt: Altitude
"""Altitude below which this subscription should not apply."""

max_alt: Altitude
"""Altitude above which this subscription should not apply."""


class CreateSubscription(ImplicitDict):
"""Create a subscription."""

subscription: Subscription
"""Characteristics of subscription to create."""

mode: SubscriptionCreationMode
"""Desired creation behavior."""


class DeleteSubscription(ImplicitDict):
subscription_id: str
"""ID of the subscription to delete."""

mode: SubscriptionDeletionMode
"""Desired deletion behavior."""


class F3411ActionSpecification(ImplicitDict):
"""Actions pertaining to ASTM F3411 NetRID."""

create_subscription: Optional[CreateSubscription]
delete_subscription: Optional[DeleteSubscription]
9 changes: 8 additions & 1 deletion monitoring/benchmarker/configurations/configuration.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

from implicitdict import ImplicitDict

from monitoring.benchmarker.configurations.actions import (
from monitoring.benchmarker.configurations.actions.action import (
BenchmarkActionName,
BenchmarkActionSpecification,
)
from monitoring.benchmarker.configurations.artifacts.artifact import (
Expand Down Expand Up @@ -34,3 +35,9 @@ class BenchmarkConfiguration(ImplicitDict):

artifacts: Optional[list[ArtifactSpecification]]
"""Artifacts to produce from the data collected during the benchmarker run."""

setup_actions: Optional[list[BenchmarkActionName]]
"""Actions to perform before beginning scenarios."""

teardown_actions: Optional[list[BenchmarkActionName]]
"""Actions to perform after completing all scenarios."""
Loading
Loading