2026-07-20 16:46:39 +02:00
2026-07-20 16:46:39 +02:00
2026-07-17 15:53:24 +02:00
2026-07-17 09:25:33 +02:00
2026-07-20 12:28:38 +02:00
2026-07-09 15:06:13 +02:00
2026-07-17 16:59:54 +02:00
2026-06-26 13:58:55 +02:00
2026-07-17 16:59:54 +02:00
2026-07-17 14:29:39 +02:00

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%