Loading src/srm/api/databus/dependencies.py +0 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,6 @@ def build_network_capability_activate_use_case( service_instances=SqlServiceInstanceRepository(session), capability_instances=SqlCapabilityInstanceRepository(session), zones=SqlZoneRepository(session), domains=SqlDomainRepository(session), publisher=publisher, ) Loading src/srm/api/dependencies.py +2 −2 Original line number Diff line number Diff line Loading @@ -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.app_state import AppState from srm.application.services.capability_placement import CapabilityPlacementPlanner from srm.application.services.device_targeted_control_path import ( Loading Loading @@ -94,7 +94,7 @@ def get_location_query_use_case( SqlServiceSpecificationRepository(session), SqlServiceCapabilityRequirementRepository(session), DeviceTargetedControlPathResolver( CapabilityPlacementPlanner(SqlZoneRepository(session), SqlDomainRepository(session)), CapabilityPlacementPlanner(SqlZoneRepository(session)), registry, ), registry, Loading src/srm/api/rest/router.py +2 −2 Original line number Diff line number Diff line Loading @@ -306,11 +306,11 @@ async def list_zones( status_code=status.HTTP_204_NO_CONTENT, responses={ status.HTTP_404_NOT_FOUND: { "model": ErrorResponse, "model": ProblemDetail, "description": "Service specification not found.", }, status.HTTP_409_CONFLICT: { "model": ErrorResponse, "model": ProblemDetail, "description": "Service specification has live service instances.", }, }, Loading src/srm/application/command_handlers/network_capability_activate.py +6 −6 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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 Loading @@ -65,7 +65,7 @@ class NetworkCapabilityActivateCommandCoordinator: async def _parse_command( self, envelope: ValidatedEnvelopeV1, envelope: AnswerableCommandV1, ) -> NetworkCapabilityActivateCommand | None: try: activate_message = SrmNetworkCapabilityActivateV1.model_validate( Loading Loading @@ -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( Loading Loading @@ -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 Loading @@ -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 Loading src/srm/application/services/capability_placement.py +0 −19 Original line number Diff line number Diff line Loading @@ -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 Loading
src/srm/api/databus/dependencies.py +0 −1 Original line number Diff line number Diff line Loading @@ -69,7 +69,6 @@ def build_network_capability_activate_use_case( service_instances=SqlServiceInstanceRepository(session), capability_instances=SqlCapabilityInstanceRepository(session), zones=SqlZoneRepository(session), domains=SqlDomainRepository(session), publisher=publisher, ) Loading
src/srm/api/dependencies.py +2 −2 Original line number Diff line number Diff line Loading @@ -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.app_state import AppState from srm.application.services.capability_placement import CapabilityPlacementPlanner from srm.application.services.device_targeted_control_path import ( Loading Loading @@ -94,7 +94,7 @@ def get_location_query_use_case( SqlServiceSpecificationRepository(session), SqlServiceCapabilityRequirementRepository(session), DeviceTargetedControlPathResolver( CapabilityPlacementPlanner(SqlZoneRepository(session), SqlDomainRepository(session)), CapabilityPlacementPlanner(SqlZoneRepository(session)), registry, ), registry, Loading
src/srm/api/rest/router.py +2 −2 Original line number Diff line number Diff line Loading @@ -306,11 +306,11 @@ async def list_zones( status_code=status.HTTP_204_NO_CONTENT, responses={ status.HTTP_404_NOT_FOUND: { "model": ErrorResponse, "model": ProblemDetail, "description": "Service specification not found.", }, status.HTTP_409_CONFLICT: { "model": ErrorResponse, "model": ProblemDetail, "description": "Service specification has live service instances.", }, }, Loading
src/srm/application/command_handlers/network_capability_activate.py +6 −6 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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 Loading @@ -65,7 +65,7 @@ class NetworkCapabilityActivateCommandCoordinator: async def _parse_command( self, envelope: ValidatedEnvelopeV1, envelope: AnswerableCommandV1, ) -> NetworkCapabilityActivateCommand | None: try: activate_message = SrmNetworkCapabilityActivateV1.model_validate( Loading Loading @@ -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( Loading Loading @@ -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 Loading @@ -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 Loading
src/srm/application/services/capability_placement.py +0 −19 Original line number Diff line number Diff line Loading @@ -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