Files
hla_framework_bd/docs/user/add-new-service.md
T

1.6 KiB

Adding a new service

Python setup

Install the uv package manager

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