Skip to content

remote/coordinator: add ListPlaces RPC and deprecate GetPlaces#1914

Closed
asher-pem-arm wants to merge 10 commits into
labgrid-project:masterfrom
ARM-software:detach-streams-from-unary-rpcs-rebase-on-fork_part9
Closed

remote/coordinator: add ListPlaces RPC and deprecate GetPlaces#1914
asher-pem-arm wants to merge 10 commits into
labgrid-project:masterfrom
ARM-software:detach-streams-from-unary-rpcs-rebase-on-fork_part9

Conversation

@asher-pem-arm

@asher-pem-arm asher-pem-arm commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Description

Checklist

  • Documentation for the feature
  • Tests for the feature
  • The arguments and description in doc/configuration.rst have been updated
  • Add a section on how to use the feature to doc/usage.rst
  • Add a section on how to use the feature to doc/development.rst
  • PR has been tested
  • Man pages have been regenerated

See:
#1881

once:
#1913
is merged in will rebase to only: remote/coordinator: add ListPlaces RPC and deprecate GetPlaces

asher-pem-arm and others added 10 commits June 29, 2026 15:00
Add client and server interceptors which attach labgrid identity metadata
to gRPC calls and expose it to coordinator RPC handlers.

Use the metadata identity to register client and exporter stream sessions
while keeping startup-message handling as a deprecated fallback for older
clients and exporters.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Allow AcquirePlace, ReleasePlace and CreateReservation to identify the
caller from gRPC metadata instead of requiring identity to come only from
an established ClientStream session.

Keep the existing ClientStream session lookup as a fallback so older
clients which still send startup messages on the stream continue to work.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary GetPlace RPC for fetching a single place by name instead of
requiring callers to fetch and scan the full GetPlaces response.

Return INVALID_ARGUMENT when no name is provided or when the requested
place does not exist.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary UnsharePlace RPC that lets the acquiring user remove a previously allowed user from a place without updating the full place state.

Expose the RPC through labgrid-client and cover the success, not-acquired, and not-shared error paths.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary CreatePlace RPC that creates and returns the new place while keeping AddPlace available as a deprecated compatibility alias.

Update labgrid-client create to use CreatePlace and cover successful creation plus duplicate-place errors.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary SharePlace RPC that grants another user access to an acquired place while keeping AllowPlace available as a deprecated compatibility alias.

Update labgrid-client to prefer the share command, retain allow as a command alias, and cover successful sharing plus not-acquired errors.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary RefreshReservation RPC that refreshes and returns reservation state while keeping PollReservation available as a deprecated compatibility alias.

Update labgrid-client reservation waiting to use RefreshReservation and cover both new and deprecated reservation refresh paths.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary ListPlaceResources RPC that returns the exporter resources matching a requested place.

Cover matched resources, empty matches, and missing-place errors using exporter fixture data where the resource name differs from its class.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary ListResources RPC that returns exporter resources and supports CEL filtering over resource attributes and paths.

Include coverage for listing all resources and filtering by resource path data while waiting for exporter fixture resources to register.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
Add a unary ListPlaces RPC that returns places and supports CEL filtering over place attributes.

Mark the legacy GetPlaces RPC and messages as deprecated, and add coverage for listing, matching filters, invalid filters, unknown fields and non-boolean filter results.

Signed-off-by: Asher Pemberton <asher.pemberton@arm.com>
Reviewed-by: Asher Pemberton <asher.pemberton@arm.com> # gatekeeper
Co-authored-by: Luke Beardsmore <luke.beardsmore2@arm.com>
@asher-pem-arm asher-pem-arm changed the title Detach streams from unary rpcs rebase on fork part9 remote/coordinator: add ListPlaces RPC and deprecate GetPlaces Jun 29, 2026
@asher-pem-arm

Copy link
Copy Markdown
Contributor Author

closing now part of: #1919

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant