Source code for samlab.dashboard.service

# Copyright 2018, National Technology & Engineering Solutions of Sandia, LLC
# (NTESS).  Under the terms of Contract DE-NA0003525 with NTESS, the U.S.
# Government retains certain rights in this software.

import logging

log = logging.getLogger(__name__)

_backends = {}


[docs]def require_backend(service, name=None): if service not in _backends: raise RuntimeError(f"No backend found for service: {service}.") # pragma: no cover if name not in _backends[service]: raise RuntimeError(f"No backend found for service: {service} name: {name}.") # pragma: no cover return _backends[service][name]
[docs]def register_backend(backend): service = backend.service name = backend.name if service not in _backends: _backends[service] = {} if name in _backends[service]: log.warning(f"Overwriting {service}/{name} {_backends[service][name]} with {backend}.") # pragma: no cover _backends[service][name] = backend log.info(f"Registered {backend} as {service}/{name}.")