Commit 2daa37a9 authored by Dimitrios Gogos's avatar Dimitrios Gogos
Browse files

feat: add kubernetesClusterRef to AppInstanceInfo and update related logic in...

feat: add kubernetesClusterRef to AppInstanceInfo and update related logic in build_app_instance_info
parent 20219328
Loading
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -297,6 +297,7 @@ def build_app_instance_info(
    status = _SRM_STATE_TO_APP_INSTANCE_STATUS.get(instance.state, AppInstanceStatus.UNKNOWN)

    endpoint_info: list[ComponentEndpointInfo] = []
    kubernetes_cluster_ref: UUID | None = None
    for cap in instance.capability_instances:
        if cap.result_summary and cap.result_summary.endpoints:
            for ep in cap.result_summary.endpoints:
@@ -310,6 +311,8 @@ def build_app_instance_info(
                            ),
                        )
                    )
        if cap.kind == "deploy_workload" and cap.control_path_binding_id:
            kubernetes_cluster_ref = UUID(cap.control_path_binding_id)

    return AppInstanceInfo(
        appInstanceId=UUID(instance.service_instance_id),
@@ -319,6 +322,7 @@ def build_app_instance_info(
        status=status,
        edgeCloudZoneId=zone_id,
        componentEndpointInfo=endpoint_info or None,
        kubernetesClusterRef=kubernetes_cluster_ref,
    )


+1 −0
Original line number Diff line number Diff line
@@ -312,6 +312,7 @@ class SRMCapabilityInstanceSummary(BaseModel):
    capability_instance_id: str
    kind: str
    external_ref: str | None = None
    control_path_binding_id: str | None = None
    result_summary: SRMResultSummary | None = None


+17 −0
Original line number Diff line number Diff line
@@ -395,6 +395,23 @@ class TestBuildAppInstanceInfo:
        result = build_app_instance_info(self._make_instance(), APP_ID, ZONE_ID)
        assert result.componentEndpointInfo is None

    def test_kubernetes_cluster_ref_from_deploy_workload_binding(self) -> None:
        binding_id = "642f6105-7015-4af1-a4d1-e1ecb8437abc"
        instance = self._make_instance()
        instance.capability_instances = [
            SRMCapabilityInstanceSummary(
                capability_instance_id="cap-1",
                kind="deploy_workload",
                control_path_binding_id=binding_id,
            )
        ]
        result = build_app_instance_info(instance, APP_ID, ZONE_ID)
        assert result.kubernetesClusterRef == UUID(binding_id)

    def test_no_deploy_workload_binding_gives_none(self) -> None:
        result = build_app_instance_info(self._make_instance(), APP_ID, ZONE_ID)
        assert result.kubernetesClusterRef is None

    def test_name_falls_back_to_instance_id_when_missing(self) -> None:
        instance = self._make_instance()
        instance.name = None