Commit 1bb82d74 authored by George Papathanail's avatar George Papathanail
Browse files

feat: add SRM deactivate command mapper

parent a705b4a6
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -2,12 +2,14 @@ from uuid import UUID

from open_exposure_gateway.api.camara.quality_on_demand.v0_10_1.schemas import CreateSession
from open_exposure_gateway.domain.quality_on_demand import (
    NetworkCapabilityDeactivateTarget,
    NetworkCapabilityParameters,
    NetworkCapabilityPayload,
    NetworkCapabilityTarget,
    NetworkCapabilityTargetApplicationServer,
    NetworkCapabilityTargetDevice,
    SRMNetworkCapabilityActivateCommand,
    SRMNetworkCapabilityDeactivateCommand,
)


@@ -47,3 +49,23 @@ def build_activate_command(
            parameters=NetworkCapabilityParameters(duration_seconds=request.duration),
        ),
    )


def build_deactivate_command(
    external_ref: str,
    operation_id: UUID,
    correlation_id: str,
    requested_at: str,
    app_provider_id: str,
    grace_period_seconds: int = 0,
) -> SRMNetworkCapabilityDeactivateCommand:
    return SRMNetworkCapabilityDeactivateCommand(
        operation_id=str(operation_id),
        correlation_id=correlation_id,
        requested_at=requested_at,
        app_provider_id=app_provider_id,
        network_capability=NetworkCapabilityDeactivateTarget(
            external_ref=external_ref,
            grace_period_seconds=grace_period_seconds,
        ),
    )
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ class OperationType(StrEnum):
    SCALE = "scale"
    TERMINATE = "terminate"
    NETWORK_CAPABILITY = "network_capability"
    NETWORK_CAPABILITY_DEACTIVATE = "network_capability_deactivate"


class OperationStatus(StrEnum):
+17 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ from pydantic import BaseModel, Field

class Subject(StrEnum):
    TASK_ACTIVATE = "command.srm.network.capability.activate"
    TASK_DEACTIVATE = "command.srm.network.capability.deactivate"
    OPERATION_COMPLETED = "event.srm.operation.completed"


@@ -52,3 +53,19 @@ class SRMNetworkCapabilityActivateCommand(BaseModel):
    resource_zone_id: str | None = None
    network_domain_id: str | None = None
    network_capability: NetworkCapabilityPayload


class NetworkCapabilityDeactivateTarget(BaseModel):
    capability_type: str = "qod_session"
    external_ref: str
    grace_period_seconds: int = 0


class SRMNetworkCapabilityDeactivateCommand(BaseModel):
    schema_version: str = "1.0"
    operation_id: str
    correlation_id: str
    requested_at: str
    app_provider_id: str
    source: str = "nbi_camara"
    network_capability: NetworkCapabilityDeactivateTarget