Commit f8604eca authored by Paris Stentoumis's avatar Paris Stentoumis
Browse files

fix: after rebase

parent f65945f4
Loading
Loading
Loading
Loading
+2 −2
Changes for src/srm/api/dependencies.py: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ from srm.adapters.database.repos.catalog import (
    SqlServiceCapabilityRequirementRepository,
    SqlServiceSpecificationRepository,
)
from srm.adapters.database.repos.topology import SqlDomainRepository, SqlZoneRepository
from srm.adapters.database.repos.topology import SqlZoneRepository
from srm.adapters.databus.nats_publisher import NatsPublisher
from srm.app_state import AppState
from srm.application.services.capability_placement import CapabilityPlacementPlanner
@@ -104,7 +104,7 @@ def get_location_query_use_case(
        SqlServiceSpecificationRepository(session),
        SqlServiceCapabilityRequirementRepository(session),
        DeviceTargetedControlPathResolver(
            CapabilityPlacementPlanner(SqlZoneRepository(session), SqlDomainRepository(session)),
            CapabilityPlacementPlanner(SqlZoneRepository(session)),
            registry,
        ),
        registry,
+3 −4
Changes for src/srm/api/rest/router.py: 3 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ from srm.api.rest.schemas import (
    GetServiceSpecificationResponse,
    LocationQueryRequest,
    LocationQueryResponse,
    ProblemDetail,
    ServiceCapabilityRequirementResponseSchema,
    ServiceDeploymentUnitResponseSchema,
    ServiceSpecificationCreateSchema,
@@ -357,9 +356,9 @@ def _problem(outcome: LocationQueryOutcome, correlator: str) -> JSONResponse:
    response_model=None,
    responses={
        status.HTTP_200_OK: {"model": LocationQueryResponse},
        status.HTTP_404_NOT_FOUND: {"model": ProblemDetail},
        status.HTTP_422_UNPROCESSABLE_CONTENT: {"model": ProblemDetail},
        status.HTTP_503_SERVICE_UNAVAILABLE: {"model": ProblemDetail},
        status.HTTP_404_NOT_FOUND: {"model": ProblemDetails},
        status.HTTP_422_UNPROCESSABLE_CONTENT: {"model": ProblemDetails},
        status.HTTP_503_SERVICE_UNAVAILABLE: {"model": ProblemDetails},
    },
)
async def query_device_location(
+0 −7
Changes for src/srm/api/rest/schemas.py: 0 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -140,10 +140,3 @@ class LocationQueryResponse(DomainModel):
    last_location_time: datetime
    area: dict[str, Any]
    srm_resolved_identifier: str | None = None


class ProblemDetail(DomainModel):
    type: str
    title: str
    status: int
    detail: str | None = None
+6 −6
Changes for src/srm/application/command_handlers/network_capability_activate.py: 6 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ from uuid import UUID
from pydantic import ValidationError
from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker

from srm.api.databus.schemas import SrmNetworkCapabilityActivateV1, ValidatedEnvelopeV1
from srm.api.databus.schemas import AnswerableCommandV1, SrmNetworkCapabilityActivateV1
from srm.application.use_cases.network_capability_activate import (
    NetworkCapabilityActivateCommand,
    NetworkCapabilityActivateResult,
@@ -39,7 +39,7 @@ class NetworkCapabilityActivateCommandCoordinator:
        self._use_case_factory = use_case_factory
        self._publisher = publisher

    async def handle(self, envelope: ValidatedEnvelopeV1) -> None:
    async def handle(self, envelope: AnswerableCommandV1) -> None:
        command = await self._parse_command(envelope)
        if command is None:
            return
@@ -65,7 +65,7 @@ class NetworkCapabilityActivateCommandCoordinator:

    async def _parse_command(
        self,
        envelope: ValidatedEnvelopeV1,
        envelope: AnswerableCommandV1,
    ) -> NetworkCapabilityActivateCommand | None:
        try:
            activate_message = SrmNetworkCapabilityActivateV1.model_validate(
@@ -163,7 +163,7 @@ class NetworkCapabilityActivateCommandCoordinator:

    async def _publish_failed_before_start_for_invalid_command(
        self,
        envelope: ValidatedEnvelopeV1,
        envelope: AnswerableCommandV1,
    ) -> None:
        now = datetime.now(UTC)
        status_event = SrmOperationStatusV1(
@@ -199,7 +199,7 @@ class NetworkCapabilityActivateCommandCoordinator:
            completed_event.model_dump(mode="json"),
        )

    def _capability_from_envelope(self, envelope: ValidatedEnvelopeV1) -> str | None:
    def _capability_from_envelope(self, envelope: AnswerableCommandV1) -> str | None:
        if envelope.model_extra is None:
            return None

@@ -212,7 +212,7 @@ class NetworkCapabilityActivateCommandCoordinator:
            return capability_type
        return None

    def _service_instance_id_from_envelope(self, envelope: ValidatedEnvelopeV1) -> UUID | None:
    def _service_instance_id_from_envelope(self, envelope: AnswerableCommandV1) -> UUID | None:
        if envelope.model_extra is None:
            return None

+0 −19
Changes for src/srm/application/services/capability_placement.py: 0 added lines, 19 removed lines.
Original line number Diff line number Diff line
@@ -93,25 +93,6 @@ class CapabilityPlacementPlanner:
        ranked.sort(key=lambda item: item[:3])
        return [placement for *_, placement in ranked]

    async def _place_pinned_domain(
        self,
        request: CapabilityPlacementRequest,
    ) -> CapabilityPlacement | None:
        assert request.pin.zone_id is not None
        assert request.pin.domain_id is not None

        zone = await self._zones.get_by_id(request.pin.zone_id)
        if zone is None or zone.state != ZoneState.ACTIVE:
            return None

        domain = await self._domains.get_by_id(request.pin.domain_id)
        if domain is None:
            return None
        if domain.zone_id != zone.id or domain.kind != request.domain_kind:
            return None

        return self._select_from_domain(zone, domain, request)

    async def _place_pinned_zone(
        self,
        request: CapabilityPlacementRequest,
Loading