# Overview This repository holds the requested bsread data sources and their data policies of the SwissFEL Data Buffer. # Workflow - Request New Sources / Change Sources This is the workflow 1. Create a forked repository of the current databuffer configuration repository and clone it to your home folder: ```bash ssh sf-lc.psi.ch cd ~ gitutils fork -c archiver_config/sf_databuffer ``` 2. Go to the cloned repository and add/edit the files needed ```bash cd ~/sf_databuffer ... ``` 3. Commit your changes in the cloned local copy and push the changes to the server. ```bash git commit -a -m "my commit message" git push ``` 4. Use `gitutils` to create automatically a merge request to the main repository on the git server. ```bash gitutils merge -t "My Changes" -d "my merge request message" ``` Be aware: The best is to wait until a merge request was approved/closed before you create/open a new one! More details on the gitutils command can be found at: https://gitutils.readthedocs.io/en/latest/ # Administration If there are new changes to this configuration (either through a merge request or direct commit) the configuration needs to be uploaded to the Data/Buffer. To do so clone or pull the latest changes from this repository and execute the `./bufferutils upload` script that comes with this repository (you have to be on a machine that have /opt/gfa/python available!). Before approving/merging any changes make sure that the source is sending out data correctly This can be done by connecting to one of the DataBuffer servers (e.g. __sf-daqbuf-21.psi.ch__) and execting the `bs-analyze` command: ``` bs-analyzer :port ``` When pressing `CTRL+C` the programm gives a detailed report of the source. ## Uploading Sources To upload and start recording of all configured sources use: ```bash ./bufferutils upload ``` ## Checking for labled sources ```bash ./bufferutils list --label ``` _Note:_ Labled sources can be individually stopped and/or restarted by the stop/restart subcommand. A label can be attached to more than one source. While doing so, the restart would affect all sources with the given label. ## Restarting a labeled source ```bash ./bufferutils restart --label