Skip to content

Wire adapter into singletons + feature flag + certification tests #892

@aldbr

Description

@aldbr

Description

Plug the read adapter (sub-issue B) into the ResourceStatus and SiteStatus singletons, gated by a feature flag so deployments can switch between the legacy RPC backend and diracx without a code change. Verify behavior end-to-end against a diracx backend.

Writes continue to go through the legacy RPC service in this phase. This wiring is deliberately temporary: once phase 3 ships the write API, it will be replaced by a standard legacy adapter.

Scope

  • Route ResourceStatus and SiteStatus read operations through the adapter from sub-issue B when the feature flag is enabled.
  • Feature flag (CS toggle) to switch between the DIRAC and diracx backends at runtime.
  • Interaction with the existing 300s RSSCache on top of the adapter, and with diracx's server-side CacheableSource. The double-caching layout mirrors the current architecture and should not require changes.
  • Integration tests that exercise the singletons end-to-end against a diracx backend, covering the main consumer patterns: element status for SEs / CEs / FTS, and the site queries (getSiteStatuses, getUsableSites, getSites).

Non-goals

  • No changes to the write path — writes still go to the legacy RPC service.
  • No removal of the legacy RSS RPC service; that happens in phase 3.

Reference

  • Phase 2 main issue (this phase)
  • Sub-issue A (binary model adaptation)
  • Sub-issue B (read adapter)

Acceptance criteria

  • Feature flag switches the singletons between legacy RPC and diracx backends.
  • With the flag on, reads are served by diracx and writes continue to reach the legacy RPC service.
  • Integration tests cover getElementStatus for SEs / CEs / FTS and getSiteStatuses / getUsableSites / getSites.
  • Behavior is verified against the certification instance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions