DAQ Config Server#
A service to read files on Diamond’s filesystem from a BlueAPI container. Currently this service is only able to read files on /dls_sw/. Writing to configuration files will come in a future release.
Source |
|
|---|---|
Docker |
|
Releases |
|
Documentation |
https://DiamondLightSource.github.io/daq-config-server |
Here is a minimal example to read a file from the centrally hosted service after installing this package
from daq_config_server import ConfigClient
config_client = ConfigClient("https://daq-config.diamond.ac.uk")
file_contents = config_client.get_file_contents({ABSOLUTE_PATH_TO_CONFIG_FILE}, desired_return_type=str)
The output will come out as a raw string - you should format it as required in your own code. You may also request that the file contents is returned as a dict or in bytes - this will raise an http exception if the file cannot be converted to that type. To be able to read a file, you must first add it to the whitelist.
Testing#
To run unit tests, type tox -e unit_tests from within the dev container
There is a convenient script in ./deployment/build_and_push.sh which can be used to easily build and run the container locally for testing, and optionally push the container to a repository. In general we should rely on the CI to be pushing new containers - however it is sometimes useful to push a development image to a private repo for development or debugging.
To run local system tests, start a local container by running ./deployment/build_and_push.sh -r -b. Then, in the dev container, forward port 8555. There are instructions on port forwarding within vscode here. Next, in a terminal in the devcontainer, run tox -e system_tests_local from the daq-config-server directory.
To run a test deployment on argus, log in to argus in your namespace and run:
helm install daq-config ./helmchart/ --values dev-values.yaml
followed by:
kubectl port-forward service/daq-config-server-svc 8555
after which you should be able to access the API on http://localhost:8555/docs
See https://DiamondLightSource.github.io/daq-config-server for more detailed documentation.
How the documentation is structured#
Documentation is split into four categories, also accessible from links in the top bar.