+46
−0
Loading
Implements the EAM /deployments resource end to end, adding multi-zone
edge application deployment support on top of the existing single-instance
flow.
| Method | Path | Status in this MR |
|---|---|---|
| POST | /deployments |
Implemented |
| GET | /deployments (list) |
Implemented |
| DELETE | /deployments/{id} |
Implemented (request + completion finalisation) |
| PATCH | /deployments/{id} |
501 stub (message only) |
AppDeployment aggregate for multi-zone deployments,
with a state rollup over its child app_instances and a
deployments enums module.app_deployments table, FK'd from app_instances;
AppDeploymentRepository port + SQL adapter; AppInstanceRepository
gains list_by_app_deployment_id. Repo is wired through the DI chain.EdgeApplicationManagementService.create_app_deployment
and get_app_deployments; multi-zone deploy command / deploy target
mappers; build_app_deployment_info read mapper.app_deployments.state is rolled up when an SRM
operation completes, including multi-zone total-failure fallback (all
app_instances flipped) and a guard against stale redelivered
completions.DELETED / ERROR).CallbackDeliveryPort.deliver now takes a CloudEvent
array; POST /deployments callback is delivered as a single CloudEvents
array. New AppDeploymentStatusChange CloudEvent domain types +
build_app_deployment_status_change_events mapper./deployments rejects duplicate zones with
409; deployment sinkCredential is rejected with 501 rather than
silently dropped.test_app_deployment_repo.py, test_eam_endpoints.pytest_eam_service.py, test_eam_flows.py (e2e POST/DELETE
flows), test_eam_mapper.py, test_app_instance_repo.pywire_app_deployment_repo for
completion paths/deployments logic (currently 501)/clusters (still 501)sinkCredential (currently 501)