SLS HLA Framework

Getting started

Install uv

CLI

Using the CLI:

cd cli
uv sync
source .venv/bin/activate
agebd --help

Adding a new service

agebd service add --help

Environments

The services are deployed to 2 environments:

Environment Network Host Deploy path on host
prod machine sls-vserv-bd-hla01 /sls/bd/hla/prod/
dev office sls-vserv-bd-hla01-dev /sls/bd/hla/dev/

Process Variables (PVs)

We distinguish between

  • prod vs dev PVs
  • services specific PVs from a dedicated IOC vs external PVs from other IOCs

PVs - Service Specific

You create them, see (# TODO: docs...)

prod and dev PVs automatically get created.

In your code, you only use the prod name of a PV. The framework will automatically use the dev name/PV when a service runs in the dev environment.

PVs - External

You can only access them. The framework will use the same PV in prod and dev, i.e. there is no dev PV.

PVs - Examples

Environment Service Specific External
prod PV("AGEBD-MYSERVICE:MYPVNAME") PV("AGEOP-SOME-SERVICE:SOME-PVNAME")
dev PV("AGEBD-MYSERVICE-DEV:MYPVNAME") -

Python

For python services there are 3 environments. The python environment is set through the env variable AGEBD_ENV.

Environment PVs
AGEBD_ENV=prod uses prod PVs
AGEBD_ENV=dev uses dev PVs
AGEBD_ENV=local uses fake/mock python objects as PVs, no access to real PVs

Hosts overview

Check which network a host lives in, e.g. for sls-lca:

ping sls-lca.psi.ch

Machine Net (prod)

  • sls-lca
  • sls-vserv-bd-01
  • sls-vserv-bd-hla01

Office Net (dev)

  • sls-lc8
  • sls-lc9
  • sls-vserv-bd-01-dev
  • sls-vserv-bd-hla01-dev
S
Description
No description provided
Readme
3.3 MiB
Languages
Python 97.6%
Jinja 1.6%
Shell 0.6%
Just 0.2%