Skip to content

EPICS PVA multi-root with N PVI roots #355

@gilesknap

Description

@gilesknap

Parent

#351

What to build

EPICS PVA hosts N controllers in one process, each exposing its own :PVI root for browsing with existing PVI tooling. There is no super-parent PVI record — the PRD explicitly omits this and notes it can be revisited if discovery tooling demands it.

Scope:

  • EPICS PVA transport adopts the multi-controller connect() properly: N independent PVI roots, one per configured controller.
  • Reuses the D2 PV-prefix derivation utility (already introduced in Multi-controller foundation end-to-end via REST transport #353 and adopted by CA in EPICS CA multi-root softioc with id-based PV prefix #354).
  • Per-transport PVA id validator runs at connect() time: rejects illegal characters and the 60-char overflow case.
  • Extend tests/test_multi_controller.py with the EPICS-PVA scenario: two controllers each get their own PVI root with no clash.
  • PVA transport test gains a per-transport id-validation case demonstrating the fail-fast behaviour.

User stories from #351 covered: 12, 16, 17.

Acceptance criteria

  • One process exposes N independent :PVI roots, one per controller, no super-parent
  • PVA id validator rejects illegal characters and 60-char overflow with clear startup errors
  • tests/test_multi_controller.py covers the two-controller PVI scenario over PVA
  • PVA transport test covers id-validation fail-fast
  • Full test suite stays green

Blocked by

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpythonPull requests that update Python code

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions