fix(eam): read the instance name from SRM's ref

flowchart LR
  SRM["SRM GET /internal/service-instances<br/>{service_instance_id, ref: podinfo_bcn_1610, ...}"]
  -->|"before: reads name (absent) → None"| X["AppInstanceInfo.name = instance id"]
  SRM -->|"now: reads ref"| Y["AppInstanceInfo.name = podinfo_bcn_1610"]

GET /appinstances gave every instance its UUID as name. SRM's listing has no name field; it carries the requested name as ref, which is what oeg/app-instance-flow.md maps CAMARA name to (service_instance.ref, via the SRM proxy read). SRMServiceInstance read name, always got None, and the mapper fell back to the id.

No test caught it because the fakes build SRMServiceInstance(name=...) directly. The field now validates from ref and keeps name as an alias, so the fakes stay as they are. A new test_srm_client.py case parses SRM's actual response shape.

This fixes local instances by itself. For instances a partner hosts, FM also has to return the name as ref, which is FM MR fix/partner-instance-name.

Result
unit tests 1265 passed, 1 skipped; mypy, ruff clean
new test without the fix fails: assert None == 'podinfo_bcn_01'
testbed, ns oop, OP-1 Barcelona (local) and Paris (on OP-2) instances listed by name, both ready

1-both-named

The two rows still showing a UUID are partner instances deployed before the FM fix.

🤖 Generated with Claude Code

Merge request reports

Loading
Loading