diff --git a/.gitea/scripts/deploy-and-restart-service.sh b/.gitea/scripts/deploy-and-restart-service.sh index 142b509..ccbbb8f 100755 --- a/.gitea/scripts/deploy-and-restart-service.sh +++ b/.gitea/scripts/deploy-and-restart-service.sh @@ -38,14 +38,17 @@ rsync -avz --delete \ ./services/${SERVICE_NAME_LOWER}/current/* ${SERVICE_DIR}/ ### SUBSTITUTIONS +# Deploy-time tokens are '@@token@@'. Their values are declared in +# config/environments.yml -- keep the two in sync until this is replaced by a +# call to agebd.subs (see the refactor plan, step 3). ### IOC -sed -i "s/{{ *agebd_env_suffix_upper* }}/${AGEBD_ENV_SUFFIX_UPPER}/g" "${IOC_DIR}/"* -sed -i "s/{{ *agebd_env_suffix_lower* }}/${AGEBD_ENV_SUFFIX_LOWER}/g" "${IOC_DIR}/"* -sed -i "s/{{ *ioc_port* }}/${IOC_PORT}/g" "${IOC_DIR}/"* +sed -i "s/@@[[:space:]]*agebd_env_suffix_upper[[:space:]]*@@/${AGEBD_ENV_SUFFIX_UPPER}/g" "${IOC_DIR}/"* +sed -i "s/@@[[:space:]]*agebd_env_suffix_lower[[:space:]]*@@/${AGEBD_ENV_SUFFIX_LOWER}/g" "${IOC_DIR}/"* +sed -i "s/@@[[:space:]]*ioc_port[[:space:]]*@@/${IOC_PORT}/g" "${IOC_DIR}/"* ### SYSTEMD if [ -f "${SYSTEMD_UNIT_FILE_PATH}" ]; then - sed -i "s/{{ *agebd_env* }}/${AGEBD_ENV}/g" "${SYSTEMD_UNIT_FILE_PATH}" + sed -i "s/@@[[:space:]]*agebd_env[[:space:]]*@@/${AGEBD_ENV}/g" "${SYSTEMD_UNIT_FILE_PATH}" fi diff --git a/.gitea/workflows/add-new-service.yml b/.gitea/workflows/add-new-service.yml index 0d465d6..2a2aea7 100644 --- a/.gitea/workflows/add-new-service.yml +++ b/.gitea/workflows/add-new-service.yml @@ -23,6 +23,12 @@ jobs: echo $UV_CACHE_DIR uv run --directory cli pytest + # Includes check_subs: every @@token@@ the new service brought in must be + # declared in config/environments.yml and live in a rendered path. + - name: Run scripts tests + run: | + uv run --directory scripts pytest + - name: Parse Service Directory Name id: parse_branch # Uses bash shell parameter elimination to strip 'feature/add-service-' from the front diff --git a/ansible/tasks/ioc/ioc-install.yml b/ansible/tasks/ioc/ioc-install.yml index 225c2c7..d807ee4 100644 --- a/ansible/tasks/ioc/ioc-install.yml +++ b/ansible/tasks/ioc/ioc-install.yml @@ -32,22 +32,22 @@ cmd: "mv {{ ioc_base_dir }}/{{ orig_params_name }} {{ ioc_base_dir }}/{{ target_params_name }}" removes: "{{ ioc_base_dir }}/{{ orig_params_name }}" # Only runs if the original file exists -# Replace {{ agebd_env_suffix_upper }} inside the newly renamed subs file +# Replace the @@agebd_env_suffix_upper@@ token inside the newly renamed subs file - name: "[{{ target_service_name_lower }}] Substitute environment tokens inside subs file" ansible.builtin.replace: path: "{{ ioc_base_dir }}/{{ target_subs_name }}" - regexp: '\{\{\s*agebd_env_suffix_upper\s*\}\}' + regexp: '@@\s*agebd_env_suffix_upper\s*@@' replace: "{{ env_suffix_upper }}" -# Replace {{ agebd_env_suffix_lower }} and {{ ioc_port }} inside the newly renamed params file +# Replace the @@agebd_env_suffix_lower@@ and @@ioc_port@@ tokens inside the newly renamed params file - name: "[{{ target_service_name_lower }}] Substitute environment token inside params file" ansible.builtin.replace: path: "{{ ioc_base_dir }}/{{ target_params_name }}" regexp: "{{ item.regexp }}" replace: "{{ item.replace | string }}" with_items: - - { regexp: '\{\{\s*agebd_env_suffix_lower\s*\}\}', replace: "{{ env_suffix_lower }}" } - - { regexp: '\{\{\s*ioc_port\s*\}\}', replace: "{{ ioc_port }}" } + - { regexp: '@@\s*agebd_env_suffix_lower\s*@@', replace: "{{ env_suffix_lower }}" } + - { regexp: '@@\s*ioc_port\s*@@', replace: "{{ ioc_port }}" } - name: "[{{ target_service_name_lower }}] Run ioc install" ansible.builtin.shell: diff --git a/ansible/tasks/service/service-deploy-and-restart.yml b/ansible/tasks/service/service-deploy-and-restart.yml index 0d38c27..2380c7c 100644 --- a/ansible/tasks/service/service-deploy-and-restart.yml +++ b/ansible/tasks/service/service-deploy-and-restart.yml @@ -27,7 +27,7 @@ - name: "[{{ target_service_name_lower }}] Substitute environment variable inline" ansible.builtin.replace: path: "{{ svc_current_dir }}/systemd/{{ service_unit_name }}" - regexp: '\{\{\s*agebd_env\s*\}\}' + regexp: '@@\s*agebd_env\s*@@' replace: "{{ agebd_env }}" # systemctl --user link --force "./{{ service_unit_name }}" diff --git a/cli/src/models/master_ioc_subs.py b/cli/src/models/master_ioc_subs.py index 80d1c82..6b6d67e 100644 --- a/cli/src/models/master_ioc_subs.py +++ b/cli/src/models/master_ioc_subs.py @@ -24,7 +24,7 @@ class MasterIocSubs(BaseModel): Parses the configuration text and appends a new row before the closing bracket. """ quoted_service = f'"{service_name}"' - new_row = f' {{ "{{{{ agebd_env_suffix_upper }}}}", {quoted_service:<22} , "{starton}", "{autooff}" }}' + new_row = f' {{ "@@agebd_env_suffix_upper@@", {quoted_service:<22} , "{starton}", "{autooff}" }}' # Use regex to find the last closing curly brace of the configuration block # This targets the line that contains only a lone closing brace, optional spaces, and maybe a comma/semicolon. diff --git a/cli/tests/fixtures/expected_output/qt/A_BD_ServiceManager.ui b/cli/tests/fixtures/expected_output/qt/A_BD_ServiceManager.ui index 389a057..4260a44 100644 --- a/cli/tests/fixtures/expected_output/qt/A_BD_ServiceManager.ui +++ b/cli/tests/fixtures/expected_output/qt/A_BD_ServiceManager.ui @@ -71,7 +71,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD caCalc::TriggerZeroToOne @@ -106,7 +106,7 @@ caLabel[statusTip="Operation"]{ !A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF @@ -586,7 +586,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ALIVE + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ALIVE caLed::Alarm @@ -602,7 +602,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STARTTIME + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STARTTIME caLineEdit::Default @@ -624,7 +624,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STATUS + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STATUS caLineEdit::Default @@ -646,7 +646,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-VERSION + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-VERSION caLineEdit::Default @@ -668,7 +668,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF caChoice::Column @@ -717,7 +717,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF-RB + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF-RB caLed::Alarm @@ -763,7 +763,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:STATUS + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:STATUS caLed::Alarm @@ -1040,7 +1040,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:MASTER-LOGS-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:MASTER-LOGS-REQ Logs @@ -1106,7 +1106,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD Reload @@ -1172,7 +1172,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:RESTART + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:RESTART ↺ diff --git a/cli/tests/fixtures/expected_output/qt/A_BD_TestService99-X00.ui b/cli/tests/fixtures/expected_output/qt/A_BD_TestService99-X00.ui index 3e964b9..b0cf93b 100644 --- a/cli/tests/fixtures/expected_output/qt/A_BD_TestService99-X00.ui +++ b/cli/tests/fixtures/expected_output/qt/A_BD_TestService99-X00.ui @@ -30,7 +30,7 @@ 0 - AGEBD-TESTSERVICE99-X00{{ agebd_env_suffix_upper }}:AO + AGEBD-TESTSERVICE99-X00@@agebd_env_suffix_upper@@:AO 9.000000000000000 @@ -49,10 +49,10 @@ - Toggle AGEBD-ALH{{ agebd_env_suffix_upper }}:TESTSERVICE99-X00-ONOFF + Toggle AGEBD-ALH@@agebd_env_suffix_upper@@:TESTSERVICE99-X00-ONOFF - AGEBD-ALH{{ agebd_env_suffix_upper }}:TESTSERVICE99-X00-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TESTSERVICE99-X00-ONOFF @@ -70,7 +70,7 @@ - Value of AGEBD-TESTSERVICE99-X00{{ agebd_env_suffix_upper }}:AO + Value of AGEBD-TESTSERVICE99-X00@@agebd_env_suffix_upper@@:AO diff --git a/cli/tests/fixtures/expected_output/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs b/cli/tests/fixtures/expected_output/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs index cebcb97..a1754e8 100644 --- a/cli/tests/fixtures/expected_output/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs +++ b/cli/tests/fixtures/expected_output/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs @@ -1,5 +1,5 @@ file MASTER.template { pattern { SUFFIX SERVICE STARTON AUTOOFF } - { "{{ agebd_env_suffix_upper }}", "MASTER" , "0", "30" } - { "{{ agebd_env_suffix_upper }}", "TESTSERVICE99-X00" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "MASTER" , "0", "30" } + { "@@agebd_env_suffix_upper@@", "TESTSERVICE99-X00" , "0", "0" } } diff --git a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_main.subs b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_main.subs index ba42592..70d11d8 100644 --- a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_main.subs +++ b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_main.subs @@ -1,4 +1,4 @@ file TESTSERVICE99-X00.template { pattern { DEVICE } - { AGEBD-TESTSERVICE99-X00{{ agebd_env_suffix_upper }} } + { AGEBD-TESTSERVICE99-X00@@agebd_env_suffix_upper@@ } } diff --git a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_parameters.yaml b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_parameters.yaml index c179f0d..24aa364 100644 --- a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_parameters.yaml +++ b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/ioc/AGEBD-CPCL-TESTSERVICE99-X00_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/systemd/AGEBD-SERVICE-TESTSERVICE99-X00.service b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/systemd/AGEBD-SERVICE-TESTSERVICE99-X00.service index 496c48b..436985e 100644 --- a/cli/tests/fixtures/expected_output/services/testservice99-x00/current/systemd/AGEBD-SERVICE-TESTSERVICE99-X00.service +++ b/cli/tests/fixtures/expected_output/services/testservice99-x00/current/systemd/AGEBD-SERVICE-TESTSERVICE99-X00.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TESTSERVICE99-X00 After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TESTSERVICE99-X00 +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TESTSERVICE99-X00 Restart=no [Install] diff --git a/cli/tests/fixtures/test_repo_root/qt/A_BD_ServiceManager.ui b/cli/tests/fixtures/test_repo_root/qt/A_BD_ServiceManager.ui index c1b6561..d2c3936 100644 --- a/cli/tests/fixtures/test_repo_root/qt/A_BD_ServiceManager.ui +++ b/cli/tests/fixtures/test_repo_root/qt/A_BD_ServiceManager.ui @@ -71,7 +71,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD caCalc::TriggerZeroToOne @@ -106,7 +106,7 @@ caLabel[statusTip="Operation"]{ !A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF @@ -586,7 +586,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ALIVE + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ALIVE caLed::Alarm @@ -602,7 +602,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STARTTIME + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STARTTIME caLineEdit::Default @@ -624,7 +624,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STATUS + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STATUS caLineEdit::Default @@ -646,7 +646,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-VERSION + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-VERSION caLineEdit::Default @@ -668,7 +668,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF caChoice::Column @@ -717,7 +717,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF-RB + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF-RB caLed::Alarm @@ -763,7 +763,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:STATUS + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:STATUS caLed::Alarm @@ -1040,7 +1040,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:MASTER-LOGS-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:MASTER-LOGS-REQ Logs @@ -1106,7 +1106,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD Reload @@ -1172,7 +1172,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:RESTART + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:RESTART ↺ diff --git a/cli/tests/fixtures/test_repo_root/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs b/cli/tests/fixtures/test_repo_root/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs index 6ccd171..6e28017 100644 --- a/cli/tests/fixtures/test_repo_root/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs +++ b/cli/tests/fixtures/test_repo_root/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs @@ -1,4 +1,4 @@ file MASTER.template { pattern { SUFFIX SERVICE STARTON AUTOOFF } - { "{{ agebd_env_suffix_upper }}", "MASTER" , "0", "30" } + { "@@agebd_env_suffix_upper@@", "MASTER" , "0", "30" } } diff --git a/cli/uv.lock b/cli/uv.lock index d56b4cc..29a62ec 100644 --- a/cli/uv.lock +++ b/cli/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] diff --git a/config/environments.yml b/config/environments.yml new file mode 100644 index 0000000..bf3707a --- /dev/null +++ b/config/environments.yml @@ -0,0 +1,79 @@ +# Single source of truth for every deploy-time substitution in this repo. +# +# There are two substitution stages, and they use different delimiters on +# purpose: +# +# {{ token }} creation-time. Resolved once by copier when a new service is +# created (cli/src/core/service_creator.py). Never survives +# into a committed file. +# +# @@token@@ deploy-time. Resolved on every deploy, per environment, by +# agebd.subs. Lives in committed files. +# +# This file declares the deploy-time stage only. scripts/ci/check_subs.py +# enforces that every @@token@@ in the repo is declared here, and that it +# only appears in a path that actually gets rendered. +# +# 'local' is deliberately absent: it is a runtime mode for tests without EPICS +# access (see agebd.enums.AGEBD_ENV), not a deploy target. + +environments: + prod: + agebd_env: prod + agebd_env_suffix_upper: "" + agebd_env_suffix_lower: "" + dev: + agebd_env: dev + agebd_env_suffix_upper: "-DEV" + agebd_env_suffix_lower: "-dev" + +# Every deploy-time token. Each environment above must define exactly the +# tokens with source 'environment' -- adding one here without adding it to +# every environment is a load-time error. +tokens: + agebd_env: + source: environment + description: >- + Deployment environment name. Used in deploy paths and systemd units, + e.g. /sls/bd/hla/dev/bin/start_service.sh. + agebd_env_suffix_upper: + source: environment + description: >- + Uppercase suffix appended to EPICS device names, e.g. AGEBD-TUNE-DEV. + Used in IOC substitution files and Qt UI files. + agebd_env_suffix_lower: + source: environment + description: >- + Lowercase suffix appended to host names, e.g. sls-vserv-bd-01-dev. + Used in IOC parameter files. + ioc_port: + source: registry + description: >- + IOC port for the service being deployed, read from + config/services_registry.yml. + +# Where deploy-time tokens are allowed to live, as repo-root-relative globs. +locations: + # Rendered at deploy time by agebd.subs. A token here is resolved. + render: + - services/*/current/ioc + - services/*/current/systemd + - qt + # Carry deploy-time tokens verbatim, because the copy they produce lands in + # a render path. A token here is NOT resolved in place. + passthrough: + - templates + - cli/tests/fixtures + # The substitution machinery itself: code that renders, generates or + # documents tokens. Naming a token here is expected; nothing is resolved. + # These paths use {{ }} as their own template language (Ansible, copier), so + # the leftover-delimiter check does not apply to them. + references: + - ansible/tasks/* + - .gitea/scripts + - cli/src/models + - packages/agebd/src/agebd + - packages/agebd/tests + - scripts/ci + - scripts/tests + - config diff --git a/packages/agebd/pyproject.toml b/packages/agebd/pyproject.toml index 20a1b46..384fcf3 100644 --- a/packages/agebd/pyproject.toml +++ b/packages/agebd/pyproject.toml @@ -9,6 +9,7 @@ dependencies = [ "pyepics>=3.5.10", "typer>=0.23.2", "gitpython>=3.1.50", + "pyyaml>=6.0.3", ] # Dev dependencies diff --git a/packages/agebd/src/agebd/subs.py b/packages/agebd/src/agebd/subs.py new file mode 100644 index 0000000..dd4b1e1 --- /dev/null +++ b/packages/agebd/src/agebd/subs.py @@ -0,0 +1,370 @@ +""" +Single source of truth for deploy-time substitutions. + +Committed files carry deploy-time placeholders written as ``@@token@@``. +This module is the only place that knows what those tokens resolve to. + +There are two substitution stages in this repo, and they use different +delimiters on purpose: + + ``{{ token }}`` creation-time. Resolved once by copier when a new + service is created (cli/src/core/service_creator.py). + Never survives into a committed file. + + ``@@token@@`` deploy-time. Resolved on every deploy, per environment, + by this module. Lives in committed files. + +Token values come from two sources, both declared in config/environments.yml: + + environment the per-environment table in config/environments.yml + registry config/services_registry.yml, per service + +Rendering is a strict regex substitution rather than a template engine. The +rendered files are EPICS database/substitution files and Qt XML, which are +full of braces and other characters a template engine would try to interpret; +and a regex over declared token names gives an exact "unknown token in this +file" error instead of silently leaving the placeholder in place -- which is +the failure mode of the sed calls this module replaces. +""" + +import os +import re +from dataclasses import dataclass, field +from fnmatch import fnmatch +from pathlib import Path +from typing import Iterable, Iterator, Optional, Union + +import yaml + +from agebd.utils import get_git_root + +CONFIG_DIR_ENV_VAR = "AGEBD_CONFIG_DIR" +ENVIRONMENTS_FILENAME = "environments.yml" +SERVICES_REGISTRY_FILENAME = "services_registry.yml" + +ENVIRONMENT_SOURCE = "environment" +REGISTRY_SOURCE = "registry" + +#: Deploy-time placeholder, e.g. ``@@agebd_env@@`` or ``@@agebd_env@@``. +TOKEN_PATTERN = re.compile(r"@@\s*([a-z][a-z0-9_]*)\s*@@") + +#: The pre-migration deploy-time delimiters. Kept here so that the CI lint can +#: spot files that were missed by the switch to ``@@token@@``. +LEGACY_TOKEN_PATTERN = re.compile(r"\{\{\s*([a-z][a-z0-9_]*)\s*\}\}") + + +class SubstitutionError(Exception): + """Base class for every error raised by this module.""" + + +class UnknownTokenError(SubstitutionError): + """A ``@@token@@`` was found that is not declared in environments.yml.""" + + +def resolve_config_dir(config_dir: Optional[Union[str, Path]] = None) -> Path: + """ + Locate the directory holding environments.yml. + + Explicit argument wins, then $AGEBD_CONFIG_DIR, then the config directory + of the surrounding git checkout. The env var is what deployed hosts use: + the deployed tree is not a git checkout. + """ + if config_dir is not None: + return Path(config_dir) + + from_env = os.environ.get(CONFIG_DIR_ENV_VAR) + if from_env: + return Path(from_env) + + try: + return get_git_root(__file__) / "config" + except Exception as e: + raise SubstitutionError( + "Could not locate the config directory: agebd is not installed inside a git " + f"checkout. Set ${CONFIG_DIR_ENV_VAR} to the directory holding " + f"{ENVIRONMENTS_FILENAME}." + ) from e + + +@dataclass(frozen=True) +class TokenSpec: + name: str + source: str + description: str = "" + + +@dataclass +class SubstitutionsConfig: + """The parsed contents of config/environments.yml.""" + + config_dir: Path + environments: dict + tokens: dict + render_paths: tuple = () + passthrough_paths: tuple = () + reference_paths: tuple = () + + @property + def environments_file(self) -> Path: + return self.config_dir / ENVIRONMENTS_FILENAME + + @property + def services_registry_file(self) -> Path: + return self.config_dir / SERVICES_REGISTRY_FILENAME + + @classmethod + def load(cls, config_dir: Optional[Union[str, Path]] = None) -> "SubstitutionsConfig": + resolved_dir = resolve_config_dir(config_dir) + path = resolved_dir / ENVIRONMENTS_FILENAME + if not path.is_file(): + raise SubstitutionError(f"No {ENVIRONMENTS_FILENAME} found at: {path}") + + with open(path) as f: + raw = yaml.safe_load(f) or {} + + tokens = { + name: TokenSpec( + name=name, + source=spec["source"], + description=spec.get("description", ""), + ) + for name, spec in (raw.get("tokens") or {}).items() + } + locations = raw.get("locations") or {} + + config = cls( + config_dir=resolved_dir, + environments=raw.get("environments") or {}, + tokens=tokens, + render_paths=tuple(locations.get("render") or ()), + passthrough_paths=tuple(locations.get("passthrough") or ()), + reference_paths=tuple(locations.get("references") or ()), + ) + config.assert_valid() + return config + + def assert_valid(self) -> None: + """ + Every environment must define exactly the tokens sourced from the + environment table -- no more, no less. This is what stops a new token + from being added for dev but forgotten for prod. + """ + if not self.environments: + raise SubstitutionError(f"No environments declared in {self.environments_file}") + + for name, spec in self.tokens.items(): + if spec.source not in (ENVIRONMENT_SOURCE, REGISTRY_SOURCE): + raise SubstitutionError( + f"Token '{name}' in {self.environments_file} has unknown source " + f"'{spec.source}'. Expected '{ENVIRONMENT_SOURCE}' or '{REGISTRY_SOURCE}'." + ) + + expected = self.environment_token_names() + for env_name, values in self.environments.items(): + declared = set(values) + missing = expected - declared + unexpected = declared - expected + if missing: + raise SubstitutionError( + f"Environment '{env_name}' in {self.environments_file} is missing " + f"token(s): {', '.join(sorted(missing))}" + ) + if unexpected: + raise SubstitutionError( + f"Environment '{env_name}' in {self.environments_file} defines " + f"token(s) that are not declared under 'tokens': " + f"{', '.join(sorted(unexpected))}" + ) + + def environment_token_names(self) -> set: + return {n for n, spec in self.tokens.items() if spec.source == ENVIRONMENT_SOURCE} + + def registry_token_names(self) -> set: + return {n for n, spec in self.tokens.items() if spec.source == REGISTRY_SOURCE} + + def assert_environment_exists(self, env: str) -> dict: + try: + return self.environments[env] + except KeyError: + known = ", ".join(sorted(self.environments)) + raise SubstitutionError( + f"Unknown environment '{env}'. Declared in {self.environments_file}: {known}" + ) from None + + def expand_render_paths(self, repo_root: Union[str, Path]) -> list: + """ + Resolve the 'render' globs against a checkout, keeping only what exists. + """ + root = Path(repo_root) + found = [] + for pattern in self.render_paths: + found.extend(sorted(p for p in root.glob(pattern) if p.is_dir())) + return found + + def is_render_path(self, rel_path: Union[str, Path]) -> bool: + return _is_under_any(Path(rel_path), self.render_paths) + + def is_passthrough_path(self, rel_path: Union[str, Path]) -> bool: + return _is_under_any(Path(rel_path), self.passthrough_paths) + + def is_reference_path(self, rel_path: Union[str, Path]) -> bool: + """ + True for the substitution machinery itself -- code that renders, + generates or documents tokens rather than carrying them. + """ + return _is_under_any(Path(rel_path), self.reference_paths) + + +@dataclass +class Substitutions: + """ + Resolved deploy-time token values for one environment, and optionally for + one service. + """ + + values: dict = field(default_factory=dict) + config: Optional[SubstitutionsConfig] = None + + @classmethod + def for_env(cls, env: str, config_dir: Optional[Union[str, Path]] = None) -> "Substitutions": + """ + Tokens that depend only on the environment. Rendering a file that also + needs a registry token (``ioc_port``) with this will raise -- use + :meth:`for_service`. + """ + config = SubstitutionsConfig.load(config_dir) + return cls(values=dict(config.assert_environment_exists(str(env))), config=config) + + @classmethod + def for_service( + cls, env: str, service_name: str, config_dir: Optional[Union[str, Path]] = None + ) -> "Substitutions": + """ + Every deploy-time token, for one service in one environment. + """ + subs = cls.for_env(env, config_dir=config_dir) + assert subs.config is not None + if "ioc_port" in subs.config.registry_token_names(): + subs.values["ioc_port"] = str( + read_ioc_port(subs.config.services_registry_file, service_name) + ) + return subs + + def __getitem__(self, token: str) -> str: + try: + return self.values[token] + except KeyError: + raise UnknownTokenError(self._unknown_token_message(token)) from None + + def __contains__(self, token: str) -> bool: + return token in self.values + + def render_text(self, text: str, origin: Optional[Union[str, Path]] = None) -> str: + """ + Replace every ``@@token@@`` in ``text``. Raises on an undeclared or + misspelled token rather than leaving it in the output. + """ + + def replace(match: "re.Match") -> str: + token = match.group(1) + if token not in self.values: + raise UnknownTokenError(self._unknown_token_message(token, origin=origin)) + return self.values[token] + + return TOKEN_PATTERN.sub(replace, text) + + def render_file(self, path: Union[str, Path]) -> bool: + """ + Render one file in place. Returns True if the file changed. + """ + path = Path(path) + original = path.read_text() + rendered = self.render_text(original, origin=path) + if rendered == original: + return False + path.write_text(rendered) + return True + + def render_tree(self, root: Union[str, Path]) -> list: + """ + Render every text file under ``root`` in place. Returns the files that + changed. + """ + return [path for path in iter_text_files(root) if self.render_file(path)] + + def _unknown_token_message(self, token: str, origin: Optional[Union[str, Path]] = None) -> str: + where = f" in {origin}" if origin else "" + known = ", ".join(sorted(self.values)) or "(none)" + declared_in = self.config.environments_file if self.config else ENVIRONMENTS_FILENAME + return ( + f"Unknown deploy-time token '@@{token}@@'{where}. " + f"Declare it in {declared_in}, or fix the spelling. " + f"Available here: {known}." + ) + + +def read_ioc_port(registry_file: Union[str, Path], service_name: str) -> int: + """ + Look up a service's IOC port in the services registry. + + Registry names are CamelCase; callers pass whatever casing they have, so + the comparison is case-insensitive. + """ + with open(registry_file) as f: + registry = yaml.safe_load(f) or {} + + wanted = service_name.lower() + for entry in registry.get("services") or []: + if str(entry.get("name", "")).lower() == wanted: + return entry["ioc_port"] + + raise SubstitutionError(f"Service '{service_name}' not found in {registry_file}") + + +def find_tokens(text: str) -> set: + """Every deploy-time token name appearing in ``text``.""" + return set(TOKEN_PATTERN.findall(text)) + + +def find_legacy_tokens(text: str) -> set: + """Every pre-migration ``{{ token }}`` name appearing in ``text``.""" + return set(LEGACY_TOKEN_PATTERN.findall(text)) + + +SKIPPED_DIRS = frozenset( + {".git", ".venv", ".pixi", ".cache", ".pytest_cache", ".ruff_cache", "__pycache__"} +) + + +def iter_text_files(root: Union[str, Path]) -> Iterator[Path]: + """ + Yield readable text files under ``root``, skipping build/cache directories + and anything that is not valid UTF-8. + """ + for path in sorted(Path(root).rglob("*")): + if not path.is_file(): + continue + if SKIPPED_DIRS.intersection(path.parts): + continue + try: + path.read_text() + except (UnicodeDecodeError, OSError): + continue + yield path + + +def _is_under_any(rel_path: Path, patterns: Iterable) -> bool: + """ + True if ``rel_path`` itself, or any of its parent directories, matches one + of the repo-root-relative directory globs in ``patterns``. + """ + candidates = [rel_path] + [p for p in rel_path.parents if str(p) != "."] + for pattern in patterns: + pattern_parts = Path(pattern).parts + for candidate in candidates: + parts = candidate.parts + if len(parts) == len(pattern_parts) and all( + fnmatch(part, pat) for part, pat in zip(parts, pattern_parts) + ): + return True + return False diff --git a/packages/agebd/tests/test_subs.py b/packages/agebd/tests/test_subs.py new file mode 100644 index 0000000..f909544 --- /dev/null +++ b/packages/agebd/tests/test_subs.py @@ -0,0 +1,217 @@ +import pytest +import yaml + +from agebd.subs import ( + SubstitutionError, + Substitutions, + SubstitutionsConfig, + UnknownTokenError, + find_legacy_tokens, + find_tokens, + read_ioc_port, +) + +ENVIRONMENTS = { + "environments": { + "prod": { + "agebd_env": "prod", + "agebd_env_suffix_upper": "", + "agebd_env_suffix_lower": "", + }, + "dev": { + "agebd_env": "dev", + "agebd_env_suffix_upper": "-DEV", + "agebd_env_suffix_lower": "-dev", + }, + }, + "tokens": { + "agebd_env": {"source": "environment", "description": "env name"}, + "agebd_env_suffix_upper": {"source": "environment", "description": "upper suffix"}, + "agebd_env_suffix_lower": {"source": "environment", "description": "lower suffix"}, + "ioc_port": {"source": "registry", "description": "ioc port"}, + }, + "locations": { + "render": ["services/*/current/ioc", "qt"], + "passthrough": ["templates"], + }, +} + +REGISTRY = { + "next_available_ioc_port": 50002, + "services": [ + {"name": "Master", "ioc_port": 50000, "status": "active"}, + {"name": "TauBPM", "ioc_port": 50001, "status": "active"}, + ], +} + + +@pytest.fixture +def config_dir(tmp_path): + (tmp_path / "environments.yml").write_text(yaml.safe_dump(ENVIRONMENTS)) + (tmp_path / "services_registry.yml").write_text(yaml.safe_dump(REGISTRY)) + return tmp_path + + +def write_environments(config_dir, environments): + (config_dir / "environments.yml").write_text(yaml.safe_dump(environments)) + + +def test_for_env_resolves_environment_tokens(config_dir): + subs = Substitutions.for_env("dev", config_dir=config_dir) + + assert subs["agebd_env"] == "dev" + assert subs["agebd_env_suffix_upper"] == "-DEV" + assert subs["agebd_env_suffix_lower"] == "-dev" + + +def test_prod_suffixes_are_empty(config_dir): + subs = Substitutions.for_env("prod", config_dir=config_dir) + + assert subs.render_text("AGEBD-TUNE@@agebd_env_suffix_upper@@:AO") == "AGEBD-TUNE:AO" + + +def test_for_service_adds_ioc_port(config_dir): + subs = Substitutions.for_service("dev", "taubpm", config_dir=config_dir) + + assert subs["ioc_port"] == "50001" + + +def test_render_text_substitutes_every_occurrence(config_dir): + subs = Substitutions.for_env("dev", config_dir=config_dir) + + text = "AGEBD-ALH@@agebd_env_suffix_upper@@:X\nsls-vserv-bd-01@@agebd_env_suffix_lower@@\n" + + assert subs.render_text(text) == "AGEBD-ALH-DEV:X\nsls-vserv-bd-01-dev\n" + + +def test_render_text_raises_on_misspelled_token(config_dir): + subs = Substitutions.for_env("dev", config_dir=config_dir) + + with pytest.raises(UnknownTokenError, match="agebd_env_sufix_upper"): + subs.render_text("AGEBD-TUNE@@agebd_env_sufix_upper@@:AO", origin="TUNE.subs") + + +def test_render_text_raises_when_registry_token_is_not_loaded(config_dir): + """for_env() has no ioc_port, so a parameters file must fail loudly.""" + subs = Substitutions.for_env("dev", config_dir=config_dir) + + with pytest.raises(UnknownTokenError, match="ioc_port"): + subs.render_text("ioc_port: @@ioc_port@@") + + +def test_render_file_reports_whether_it_changed(config_dir, tmp_path): + subs = Substitutions.for_env("dev", config_dir=config_dir) + path = tmp_path / "AGEBD-CPCL-TUNE_main.subs" + path.write_text("{ AGEBD-TUNE@@agebd_env_suffix_upper@@ }\n") + + assert subs.render_file(path) is True + assert path.read_text() == "{ AGEBD-TUNE-DEV }\n" + assert subs.render_file(path) is False + + +def test_render_tree_skips_cache_directories(config_dir, tmp_path): + subs = Substitutions.for_env("dev", config_dir=config_dir) + (tmp_path / "ioc").mkdir() + (tmp_path / "ioc" / "a.subs").write_text("AGEBD-A@@agebd_env_suffix_upper@@") + (tmp_path / "__pycache__").mkdir() + (tmp_path / "__pycache__" / "b.subs").write_text("AGEBD-B@@agebd_env_suffix_upper@@") + + changed = subs.render_tree(tmp_path) + + assert [p.name for p in changed] == ["a.subs"] + assert (tmp_path / "__pycache__" / "b.subs").read_text().endswith("@@agebd_env_suffix_upper@@") + + +def test_replacement_value_is_literal(config_dir): + """A value containing regex backreference syntax must not be interpreted.""" + environments = yaml.safe_load(yaml.safe_dump(ENVIRONMENTS)) + environments["environments"]["dev"]["agebd_env_suffix_upper"] = r"-\1DEV" + write_environments(config_dir, environments) + + subs = Substitutions.for_env("dev", config_dir=config_dir) + + assert subs.render_text("AGEBD-A@@agebd_env_suffix_upper@@") == r"AGEBD-A-\1DEV" + + +def test_unknown_environment_lists_the_known_ones(config_dir): + with pytest.raises(SubstitutionError, match="dev, prod"): + Substitutions.for_env("staging", config_dir=config_dir) + + +def test_token_missing_from_one_environment_is_a_load_error(config_dir): + environments = yaml.safe_load(yaml.safe_dump(ENVIRONMENTS)) + del environments["environments"]["prod"]["agebd_env_suffix_lower"] + write_environments(config_dir, environments) + + with pytest.raises(SubstitutionError, match="missing token"): + SubstitutionsConfig.load(config_dir) + + +def test_undeclared_token_in_an_environment_is_a_load_error(config_dir): + environments = yaml.safe_load(yaml.safe_dump(ENVIRONMENTS)) + environments["environments"]["dev"]["agebd_env_suffix_mixed"] = "-Dev" + write_environments(config_dir, environments) + + with pytest.raises(SubstitutionError, match="not declared"): + SubstitutionsConfig.load(config_dir) + + +def test_unknown_token_source_is_a_load_error(config_dir): + environments = yaml.safe_load(yaml.safe_dump(ENVIRONMENTS)) + environments["tokens"]["ioc_port"]["source"] = "somewhere" + write_environments(config_dir, environments) + + with pytest.raises(SubstitutionError, match="unknown source"): + SubstitutionsConfig.load(config_dir) + + +def test_read_ioc_port_is_case_insensitive(config_dir): + registry_file = config_dir / "services_registry.yml" + + assert read_ioc_port(registry_file, "taubpm") == 50001 + assert read_ioc_port(registry_file, "TauBPM") == 50001 + assert read_ioc_port(registry_file, "TAUBPM") == 50001 + + +def test_read_ioc_port_raises_for_unknown_service(config_dir): + with pytest.raises(SubstitutionError, match="Nope"): + read_ioc_port(config_dir / "services_registry.yml", "Nope") + + +def test_path_classification(config_dir): + config = SubstitutionsConfig.load(config_dir) + + assert config.is_render_path("services/tune/current/ioc/TUNE.template") + assert config.is_render_path("qt/A_BD_Tune.ui") + assert config.is_passthrough_path("templates/service/x/current/ioc/a.jinja") + assert not config.is_render_path("services/tune/current/app/src/main.py") + assert not config.is_passthrough_path("services/tune/current/app/src/main.py") + + +def test_expand_render_paths(config_dir, tmp_path): + config = SubstitutionsConfig.load(config_dir) + repo = tmp_path / "repo" + (repo / "services" / "tune" / "current" / "ioc").mkdir(parents=True) + (repo / "services" / "tune" / "current" / "app").mkdir(parents=True) + (repo / "qt").mkdir() + + expanded = {p.relative_to(repo).as_posix() for p in config.expand_render_paths(repo)} + + assert expanded == {"services/tune/current/ioc", "qt"} + + +def test_find_tokens_ignores_non_token_angle_brackets(): + assert find_tokens("@@b@@ and @@agebd_env@@") == {"b", "agebd_env"} + assert find_tokens("user@@example.com") == set() + assert find_tokens("@@ NotAToken @@") == set() + + +def test_find_legacy_tokens_returns_both_stages(): + """ + It cannot tell the two stages apart on syntax alone -- callers intersect + the result with the declared deploy-time tokens. + """ + assert find_legacy_tokens("{{ agebd_env_suffix_upper }} {{service_name_upper}}") == { + "agebd_env_suffix_upper", + "service_name_upper", + } diff --git a/packages/agebd/uv.lock b/packages/agebd/uv.lock index 1f758ce..11ec0f8 100644 --- a/packages/agebd/uv.lock +++ b/packages/agebd/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -28,6 +29,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -532,6 +534,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "readme-renderer" version = "45.0" diff --git a/qt/A_BD_DBPM3Curr.ui b/qt/A_BD_DBPM3Curr.ui index 288be53..5cc52db 100644 --- a/qt/A_BD_DBPM3Curr.ui +++ b/qt/A_BD_DBPM3Curr.ui @@ -43,7 +43,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:DBPM3CURR-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:DBPM3CURR-GUIRELOAD caCalc::TriggerZeroToOne @@ -185,7 +185,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CHARGE-AVG + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CHARGE-AVG @@ -245,7 +245,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CURRENT-AVG + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CURRENT-AVG @@ -305,7 +305,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:ACCUMULATED-BEAM-DOSE + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:ACCUMULATED-BEAM-DOSE @@ -521,7 +521,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CURRENT-AVG.EGU + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CURRENT-AVG.EGU @@ -581,7 +581,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CHARGE-AVG.EGU + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CHARGE-AVG.EGU @@ -641,7 +641,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:ACCUMULATED-BEAM-DOSE.EGU + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:ACCUMULATED-BEAM-DOSE.EGU @@ -755,7 +755,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:DBPM3CURR-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:DBPM3CURR-ONOFF caChoice::Column @@ -796,7 +796,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CALIBRATION-DBPM3-2-PCT-NEW + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CALIBRATION-DBPM3-2-PCT-NEW @@ -853,7 +853,7 @@ Calculate New Calibration Factor - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CONTROL-RECALIBRATE + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CONTROL-RECALIBRATE Calculate New Calibration Factor @@ -872,7 +872,7 @@ - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CONTROL-RECALIBRATE-NPTS + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CONTROL-RECALIBRATE-NPTS 0 @@ -894,7 +894,7 @@ Apply New Calibration Factor - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CONTROL-RECALIBRATE-APPLY + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CONTROL-RECALIBRATE-APPLY Apply New Calibration Factor @@ -922,7 +922,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:CALIBRATION-DBPM3-2-PCT + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:CALIBRATION-DBPM3-2-PCT @@ -1118,7 +1118,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:ACCUMULATED-BEAM-DOSE-PCT + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:ACCUMULATED-BEAM-DOSE-PCT @@ -1194,7 +1194,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }}:ACCUMULATED-BEAM-DOSE-PCT.EGU + AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@:ACCUMULATED-BEAM-DOSE-PCT.EGU diff --git a/qt/A_BD_FeedBackOverview.ui b/qt/A_BD_FeedBackOverview.ui index afac466..d58b54a 100644 --- a/qt/A_BD_FeedBackOverview.ui +++ b/qt/A_BD_FeedBackOverview.ui @@ -106,7 +106,7 @@ caLabel[statusTip="Operation"]{ - name=Orbit Feedback,alive=ARSGE-CECL-FOFB1:FOFB-OPERATE,panelcmd=A_DI_FOFB_CECL_USER.ui;name=Hor. Tune Feedback,onoff=AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBX-ONOFF,alive=AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBX-ALIVE,panelcmd=A_BD_TuneBump.ui;name=Ver. Tune Feedback,onoff=AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBY-ONOFF,alive=AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBY-ALIVE,panelcmd=A_BD_TuneBump.ui + name=Orbit Feedback,alive=ARSGE-CECL-FOFB1:FOFB-OPERATE,panelcmd=A_DI_FOFB_CECL_USER.ui;name=Hor. Tune Feedback,onoff=AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBX-ONOFF,alive=AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBX-ALIVE,panelcmd=A_BD_TuneBump.ui;name=Ver. Tune Feedback,onoff=AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBY-ONOFF,alive=AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBY-ALIVE,panelcmd=A_BD_TuneBump.ui A_BD_FeedBackOverview_inc.ui diff --git a/qt/A_BD_InjectionGuard.ui b/qt/A_BD_InjectionGuard.ui index 4393d06..7328d5e 100644 --- a/qt/A_BD_InjectionGuard.ui +++ b/qt/A_BD_InjectionGuard.ui @@ -66,7 +66,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:INJECTIONGUARD-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:INJECTIONGUARD-GUIRELOAD caCalc::TriggerZeroToOne @@ -89,7 +89,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CONTROL-MODE + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CONTROL-MODE @@ -125,7 +125,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-SUM + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-SUM caLineEdit::Alarm_Default @@ -405,7 +405,7 @@ caLabel[statusTip="Operation"]{ 30 - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:STATUS-SECRET-MASTER + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:STATUS-SECRET-MASTER caLed::Alarm @@ -547,7 +547,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignCenter - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-SUM-OP + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-SUM-OP caLineEdit::Alarm_Default @@ -617,7 +617,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignCenter - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-SUM-MD + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-SUM-MD caLineEdit::Alarm_Default @@ -696,7 +696,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignCenter - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-SUM-LATCH + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-SUM-LATCH caLineEdit::Alarm_Default @@ -724,7 +724,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:RESET-LATCHES + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:RESET-LATCHES Reset @@ -771,7 +771,7 @@ caLabel[statusTip="Operation"]{ Qt::ScrollBarAsNeeded - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:LOG + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:LOG caMultiLineString::None @@ -790,7 +790,7 @@ caLabel[statusTip="Operation"]{ Clear Logs - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:LOG-CLEAR + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:LOG-CLEAR Clear Logs @@ -819,7 +819,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:LOG-PAUSE + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:LOG-PAUSE diff --git a/qt/A_BD_InjectionGuard_inc.ui b/qt/A_BD_InjectionGuard_inc.ui index 12b4b31..f81722a 100644 --- a/qt/A_BD_InjectionGuard_inc.ui +++ b/qt/A_BD_InjectionGuard_inc.ui @@ -30,7 +30,7 @@ - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CONTROL-BRIDGE-CHECK-$(checknr) + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CONTROL-BRIDGE-CHECK-$(checknr) @@ -62,7 +62,7 @@ false - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-$(checknr) + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-$(checknr) caLed::Alarm @@ -81,7 +81,7 @@ false - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-$(checknr)-MD + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-$(checknr)-MD caLed::Alarm @@ -110,7 +110,7 @@ true - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-$(checknr).DESC + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-$(checknr).DESC @@ -170,7 +170,7 @@ false - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CHECK-$(checknr)-LATCH + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CHECK-$(checknr)-LATCH caLed::Alarm @@ -199,7 +199,7 @@ 20 - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:CONTROL-BRIDGE-CHECK-$(checknr) + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:CONTROL-BRIDGE-CHECK-$(checknr) caLed::Alarm diff --git a/qt/A_BD_Master.ui b/qt/A_BD_Master.ui index 96b5a3c..229928e 100644 --- a/qt/A_BD_Master.ui +++ b/qt/A_BD_Master.ui @@ -43,7 +43,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD caCalc::TriggerZeroToOne @@ -62,7 +62,7 @@ Clear Logs - AGEBD-MASTER{{ agebd_env_suffix_upper }}:LOG-CLEAR + AGEBD-MASTER@@agebd_env_suffix_upper@@:LOG-CLEAR Clear Logs @@ -94,7 +94,7 @@ Get Systemd Status for each Service - AGEBD-MASTER{{ agebd_env_suffix_upper }}:GET-SYSTEMD-STATUS + AGEBD-MASTER@@agebd_env_suffix_upper@@:GET-SYSTEMD-STATUS Get Systemd Status for each Service @@ -151,7 +151,7 @@ true - AGEBD-MASTER{{ agebd_env_suffix_upper }}:LOG + AGEBD-MASTER@@agebd_env_suffix_upper@@:LOG caLineEdit::User diff --git a/qt/A_BD_NTurns.ui b/qt/A_BD_NTurns.ui index 0921764..dc4479a 100644 --- a/qt/A_BD_NTurns.ui +++ b/qt/A_BD_NTurns.ui @@ -24,7 +24,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:NTURNS-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:NTURNS-ONOFF caChoice::Column @@ -62,7 +62,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:NTURNS-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:NTURNS-GUIRELOAD caCalc::TriggerZeroToOne @@ -202,7 +202,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-80-NPOINTS + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-80-NPOINTS caLineEdit::User @@ -218,7 +218,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-80-MINHEIGHT + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-80-MINHEIGHT @@ -231,7 +231,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-80-MINSEP + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-80-MINSEP @@ -292,7 +292,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-2K-MINSEP + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-2K-MINSEP @@ -305,7 +305,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-2K-MINHEIGHT + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-2K-MINHEIGHT @@ -318,7 +318,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:CONTROL-2K-NPOINTS + AGEBD-NTURNS@@agebd_env_suffix_upper@@:CONTROL-2K-NPOINTS caLineEdit::User @@ -388,7 +388,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-80TURNS + AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-80TURNS @@ -448,7 +448,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-2KTURNS + AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-2KTURNS @@ -526,7 +526,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:BPM-WF-ENUMERATE;AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-80TURNS-WF + AGEBD-NTURNS@@agebd_env_suffix_upper@@:BPM-WF-ENUMERATE;AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-80TURNS-WF caCartesianPlot::Lines @@ -542,7 +542,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:BPM-WF-ENUMERATE;AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-80TURNS-PEAKS + AGEBD-NTURNS@@agebd_env_suffix_upper@@:BPM-WF-ENUMERATE;AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-80TURNS-PEAKS caCartesianPlot::Sticks @@ -582,7 +582,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:BPM-WF-ENUMERATE;AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-2KTURNS-WF + AGEBD-NTURNS@@agebd_env_suffix_upper@@:BPM-WF-ENUMERATE;AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-2KTURNS-WF caCartesianPlot::Lines @@ -598,7 +598,7 @@ - AGEBD-NTURNS{{ agebd_env_suffix_upper }}:BPM-WF-ENUMERATE;AGEBD-NTURNS{{ agebd_env_suffix_upper }}:STAGE0-Q-80TURNS-PEAKS; + AGEBD-NTURNS@@agebd_env_suffix_upper@@:BPM-WF-ENUMERATE;AGEBD-NTURNS@@agebd_env_suffix_upper@@:STAGE0-Q-80TURNS-PEAKS; caCartesianPlot::Sticks diff --git a/qt/A_BD_OrbitBump.ui b/qt/A_BD_OrbitBump.ui index 64c3c4e..2a17f88 100644 --- a/qt/A_BD_OrbitBump.ui +++ b/qt/A_BD_OrbitBump.ui @@ -328,7 +328,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:ORBITBUMP-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:ORBITBUMP-GUIRELOAD caCalc::TriggerZeroToOne diff --git a/qt/A_BD_OrbitBump_ExpertBackUp.ui b/qt/A_BD_OrbitBump_ExpertBackUp.ui index 18fac9c..3b52e13 100644 --- a/qt/A_BD_OrbitBump_ExpertBackUp.ui +++ b/qt/A_BD_OrbitBump_ExpertBackUp.ui @@ -31,7 +31,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINE-BEND + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINE-BEND @@ -51,7 +51,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINE-ID + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINE-ID @@ -64,7 +64,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINECALC + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINECALC caLineEdit::Default @@ -86,7 +86,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINETYPE-BEND + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINETYPE-BEND caLineEdit::Default @@ -108,7 +108,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINETYPE + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINETYPE caLineEdit::Default @@ -130,7 +130,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINETYPE-ID + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINETYPE-ID caLineEdit::Default @@ -152,7 +152,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:BEAMLINE + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:BEAMLINE caLineEdit::Default diff --git a/qt/A_BD_OrbitBump_Expert_inc.ui b/qt/A_BD_OrbitBump_Expert_inc.ui index 1d0a058..105d90e 100644 --- a/qt/A_BD_OrbitBump_Expert_inc.ui +++ b/qt/A_BD_OrbitBump_Expert_inc.ui @@ -24,7 +24,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAX-BPM1 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAX-BPM1 @@ -37,7 +37,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAY-BPM1 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAY-BPM1 @@ -50,7 +50,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAX-BPM2 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAX-BPM2 @@ -63,7 +63,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAY-BPM2 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAY-BPM2 @@ -82,7 +82,7 @@ 0 - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-X + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-X caSpinbox::Alarm @@ -116,7 +116,7 @@ 0 - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-XP + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-XP caSpinbox::Alarm @@ -150,7 +150,7 @@ 0 - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-YP + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-YP caSpinbox::Alarm @@ -184,7 +184,7 @@ 0 - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-Y + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-Y caSpinbox::Alarm @@ -212,7 +212,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAX-BPM4 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAX-BPM4 @@ -225,7 +225,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAY-BPM3 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAY-BPM3 @@ -238,7 +238,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAY-BPM4 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAY-BPM4 @@ -251,7 +251,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-DELTAX-BPM3 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-DELTAX-BPM3 @@ -264,7 +264,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-BPM1 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-BPM1 @@ -277,7 +277,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-BPM2 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-BPM2 @@ -290,7 +290,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-BPM3 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-BPM3 @@ -303,7 +303,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-BPM4 + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-BPM4 @@ -475,7 +475,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-X-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-X-TOTAL caLineEdit::Alarm_Default @@ -497,7 +497,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-Y-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-Y-TOTAL caLineEdit::Alarm_Default @@ -516,7 +516,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-YP-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-YP-TOTAL caLineEdit::Alarm_Default @@ -535,7 +535,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-XP-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-XP-TOTAL caLineEdit::Alarm_Default diff --git a/qt/A_BD_OrbitBump_Operator_inc.ui b/qt/A_BD_OrbitBump_Operator_inc.ui index 3d59a56..8c18013 100644 --- a/qt/A_BD_OrbitBump_Operator_inc.ui +++ b/qt/A_BD_OrbitBump_Operator_inc.ui @@ -37,7 +37,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-X-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-X-TOTAL caLineEdit::Alarm_Default @@ -59,7 +59,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-XP-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-XP-TOTAL caLineEdit::Alarm_Default @@ -78,7 +78,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-Y-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-Y-TOTAL caLineEdit::Alarm_Default @@ -97,7 +97,7 @@ - AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }}:$(sourcepoint)-OFFSET-YP-TOTAL + AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@:$(sourcepoint)-OFFSET-YP-TOTAL caLineEdit::Alarm_Default diff --git a/qt/A_BD_PostMortemLog.ui b/qt/A_BD_PostMortemLog.ui index bf7f8f7..658cfab 100644 --- a/qt/A_BD_PostMortemLog.ui +++ b/qt/A_BD_PostMortemLog.ui @@ -52,7 +52,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:POSTMORTEMLOG-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:POSTMORTEMLOG-GUIRELOAD caCalc::TriggerZeroToOne @@ -74,7 +74,7 @@ true - AGEBD-MASTER{{ agebd_env_suffix_upper }}:LOG + AGEBD-MASTER@@agebd_env_suffix_upper@@:LOG @@ -106,7 +106,7 @@ Horizontal Tune (nominal: Qx = 39.37) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-QX + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-QX @@ -179,7 +179,7 @@ Vertival Tune (nominal: Qy = 15.22) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-QY + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-QY @@ -252,7 +252,7 @@ Vertival Beam Size (nominal: Sig_y = 10) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X01DD-SIGY + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X01DD-SIGY @@ -262,7 +262,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X08DB-SIGY + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X08DB-SIGY caCartesianPlot::Lines @@ -332,7 +332,7 @@ Horizontal Beam Size (nominal: Sig_x = 9) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X01DD-SIGX + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X01DD-SIGX @@ -342,7 +342,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X08DB-SIGX + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X08DB-SIGX caCartesianPlot::Lines @@ -412,7 +412,7 @@ Stored Beam Current - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-CURRPCT + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-CURRPCT @@ -422,7 +422,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-CURRBPM + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-CURRBPM caCartesianPlot::Lines @@ -492,7 +492,7 @@ Beam Lifetime - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TAUBPM + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TAUBPM caCartesianPlot::FatDots @@ -505,7 +505,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TAUPCT + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TAUPCT caCartesianPlot::FatDots @@ -580,7 +580,7 @@ Vertival Beam Size (nominal: Sig_y = 10) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X01DD-SIGY-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X01DD-SIGY-LAST @@ -590,7 +590,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X08DB-SIGY-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X08DB-SIGY-LAST caCartesianPlot::Lines @@ -660,7 +660,7 @@ Stored Beam Current - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-CURRPCT-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-CURRPCT-LAST @@ -670,7 +670,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-CURRBPM-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-CURRBPM-LAST caCartesianPlot::Lines @@ -740,7 +740,7 @@ Horizontal Tune (nominal: Qx = 39.37) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-QX-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-QX-LAST @@ -813,7 +813,7 @@ Horizontal Beam Size (nominal: Sig_x = 9) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X01DD-SIGX-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X01DD-SIGX-LAST @@ -823,7 +823,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-X08DB-SIGX-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-X08DB-SIGX-LAST caCartesianPlot::Lines @@ -893,7 +893,7 @@ Vertival Tune (nominal: Qy = 15.22) - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-QY-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-QY-LAST @@ -966,7 +966,7 @@ Beam Lifetime - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TAUBPM-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TAUBPM-LAST caCartesianPlot::FatDots @@ -979,7 +979,7 @@ - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TIME;AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:BUFFER-TAUPCT-LAST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TIME;AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:BUFFER-TAUPCT-LAST caCartesianPlot::FatDots @@ -1072,7 +1072,7 @@ Update Logs - AGEBD-MASTER{{ agebd_env_suffix_upper }}:POSTMORTEMLOG-LOGS-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:POSTMORTEMLOG-LOGS-REQ Update Logs @@ -1104,7 +1104,7 @@ Test Trigger Post Mortem - AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }}:TEST + AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@:TEST Test Trigger Post Mortem diff --git a/qt/A_BD_Scrubbing.ui b/qt/A_BD_Scrubbing.ui index 0c96232..0deae26 100644 --- a/qt/A_BD_Scrubbing.ui +++ b/qt/A_BD_Scrubbing.ui @@ -24,7 +24,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:SCRUBBING-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:SCRUBBING-ONOFF caChoice::Column @@ -59,7 +59,7 @@ - ARIVA-VMAVE:PRESS-MAX;ARIVA-VMAVE-FE:PRESS-MAX;ARIVA-VMAVE-ALL:PRESS-MAX;AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-MAX-PLOT;AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-MIN-PLOT;AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-PLOT + ARIVA-VMAVE:PRESS-MAX;ARIVA-VMAVE-FE:PRESS-MAX;ARIVA-VMAVE-ALL:PRESS-MAX;AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-MAX-PLOT;AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-MIN-PLOT;AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-DYN-PLOT caStripPlot::Second @@ -411,7 +411,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:SCRUBBING-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:SCRUBBING-GUIRELOAD caCalc::TriggerOneToZero @@ -427,7 +427,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:SCRUBBING-INFO + AGEBD-ALH@@agebd_env_suffix_upper@@:SCRUBBING-INFO caLineEdit::Alarm_Default @@ -449,7 +449,7 @@ - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:TOPUP-DELTAT + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:TOPUP-DELTAT caLineEdit::Default @@ -474,7 +474,7 @@ - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:TOPUP-TAU + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:TOPUP-TAU caLineEdit::Default @@ -568,7 +568,7 @@ - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:TOPUP-DELTAI + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:TOPUP-DELTAI caLineEdit::Default @@ -1913,7 +1913,7 @@ 22 - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:STATUS-SECRET-MASTER + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:STATUS-SECRET-MASTER caLed::Alarm @@ -2937,7 +2937,7 @@ AGETI-CVME-MASTER-TMA:Evt-LI-Gun-EVRCount-I 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOIN-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOIN-SP.VAL caSpinbox::User @@ -2962,7 +2962,7 @@ AGETI-CVME-MASTER-TMA:Evt-LI-Gun-EVRCount-I 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOMB-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOMB-SP.VAL caSpinbox::User @@ -2987,7 +2987,7 @@ AGETI-CVME-MASTER-TMA:Evt-LI-Gun-EVRCount-I 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOME-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOME-SP.VAL caSpinbox::User @@ -3012,7 +3012,7 @@ AGETI-CVME-MASTER-TMA:Evt-LI-Gun-EVRCount-I 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOEX-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOEX-SP.VAL caSpinbox::User @@ -3037,7 +3037,7 @@ AGETI-CVME-MASTER-TMA:Evt-LI-Gun-EVRCount-I 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-SRIN-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-SRIN-SP.VAL caSpinbox::User @@ -3099,7 +3099,7 @@ Setpoint true - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOMB-RB.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOMB-RB.VAL @@ -3141,7 +3141,7 @@ Setpoint true - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOIN-RB.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOIN-RB.VAL @@ -3183,7 +3183,7 @@ Setpoint true - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOME-RB.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOME-RB.VAL @@ -3225,7 +3225,7 @@ Setpoint true - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-SRIN-RB.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-SRIN-RB.VAL @@ -3267,7 +3267,7 @@ Setpoint true - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:WARMUPCYCLES-BOEX-RB.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:WARMUPCYCLES-BOEX-RB.VAL @@ -3394,7 +3394,7 @@ Remaining - ;AGEBD-TIMING{{ agebd_env_suffix_upper }}:TARGET-BUCKET + ;AGEBD-TIMING@@agebd_env_suffix_upper@@:TARGET-BUCKET caCartesianPlot::Sticks @@ -3491,7 +3491,7 @@ Remaining - AGEBD-TIMING{{ agebd_env_suffix_upper }}:GO + AGEBD-TIMING@@agebd_env_suffix_upper@@:GO @@ -3535,7 +3535,7 @@ Remaining - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FILLPATTERN-string.VAL + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FILLPATTERN-string.VAL 0 @@ -3567,7 +3567,7 @@ Remaining - AGEBD-TIMING{{ agebd_env_suffix_upper }}:FPFB-MODE + AGEBD-TIMING@@agebd_env_suffix_upper@@:FPFB-MODE @@ -3591,7 +3591,7 @@ Remaining EPushButton::WidthAndHeight - AGEBD-TIMING{{ agebd_env_suffix_upper }}:ZERO-TARGET-BUCKET + AGEBD-TIMING@@agebd_env_suffix_upper@@:ZERO-TARGET-BUCKET Reset @@ -3639,7 +3639,7 @@ Remaining true - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CURRENT-THRESHOLD + AGEBD-TIMING@@agebd_env_suffix_upper@@:CURRENT-THRESHOLD caSpinbox::User @@ -3690,7 +3690,7 @@ Remaining 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:FPFB-NTH + AGEBD-TIMING@@agebd_env_suffix_upper@@:FPFB-NTH caSpinbox::User @@ -3754,7 +3754,7 @@ Remaining 1 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MIN + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MIN caSpinbox::User @@ -3779,7 +3779,7 @@ Remaining 1 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -3850,7 +3850,7 @@ Remaining 1 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-MIN + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-MIN caSpinbox::User @@ -3921,7 +3921,7 @@ Remaining 1 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-MAX + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-MAX caSpinbox::User @@ -3969,7 +3969,7 @@ Remaining 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-TIME-MAX + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-TIME-MAX caSpinbox::User @@ -3994,7 +3994,7 @@ Remaining 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-TIME-MIN + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-TIME-MIN caSpinbox::User @@ -4058,7 +4058,7 @@ Remaining 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-GUNGRID-FPFB + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-GUNGRID-FPFB caSpinbox::User @@ -4083,7 +4083,7 @@ Remaining 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-GUNGRID-ACCUM + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-GUNGRID-ACCUM caSpinbox::User @@ -4171,7 +4171,7 @@ Remaining - ARS07-DPCT-0000:CURR;AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX;AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MIN + ARS07-DPCT-0000:CURR;AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX;AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MIN caStripPlot::Second @@ -4398,7 +4398,7 @@ Remaining Qt::AlignBottom|Qt::AlignRight|Qt::AlignTrailing - AGEBD-PARAMS{{ agebd_env_suffix_upper }}:LIFETIME + AGEBD-PARAMS@@agebd_env_suffix_upper@@:LIFETIME @@ -4448,7 +4448,7 @@ Remaining - AGEBD-PARAMS{{ agebd_env_suffix_upper }}:TRANSMISSION + AGEBD-PARAMS@@agebd_env_suffix_upper@@:TRANSMISSION @@ -4521,7 +4521,7 @@ Remaining -AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-FRAC +AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-VACUUM-DYN-FRAC caSpinbox::User @@ -4559,7 +4559,7 @@ AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-FRAC - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-SCRUB + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-SCRUB @@ -4611,7 +4611,7 @@ AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-FRAC A>3 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-SCRUB + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-SCRUB @@ -4674,7 +4674,7 @@ AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-FRAC 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:MBFBY-GAIN-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:MBFBY-GAIN-SP.VAL caSpinbox::User @@ -4776,7 +4776,7 @@ AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-VACUUM-DYN-FRAC 0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:MBFBX-GAIN-SP.VAL + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:MBFBX-GAIN-SP.VAL caSpinbox::User @@ -5062,7 +5062,7 @@ ARSGE-MBFBT-AMP-02:SET-ON-OFF A<4 & A>0 - AGEBD-SCRUBBING{{ agebd_env_suffix_upper }}:CONTROL-SCRUB + AGEBD-SCRUBBING@@agebd_env_suffix_upper@@:CONTROL-SCRUB diff --git a/qt/A_BD_ServiceManager.ui b/qt/A_BD_ServiceManager.ui index 850dca3..3539295 100644 --- a/qt/A_BD_ServiceManager.ui +++ b/qt/A_BD_ServiceManager.ui @@ -71,7 +71,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD caCalc::TriggerZeroToOne @@ -106,7 +106,7 @@ caLabel[statusTip="Operation"]{ !A - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF @@ -586,7 +586,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ALIVE + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ALIVE caLed::Alarm @@ -602,7 +602,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STARTTIME + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STARTTIME caLineEdit::Default @@ -624,7 +624,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-STATUS + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-STATUS caLineEdit::Default @@ -646,7 +646,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-VERSION + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-VERSION caLineEdit::Default @@ -668,7 +668,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF caChoice::Column @@ -717,7 +717,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-ONOFF-RB + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-ONOFF-RB caLed::Alarm @@ -763,7 +763,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:STATUS + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:STATUS caLed::Alarm @@ -1040,7 +1040,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:MASTER-LOGS-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:MASTER-LOGS-REQ Logs @@ -1106,7 +1106,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:MASTER-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:MASTER-GUIRELOAD Reload @@ -1172,7 +1172,7 @@ caLabel[statusTip="Operation"]{ EPushButton::None - AGEBD-CPCL-MASTER{{ agebd_env_suffix_upper }}:RESTART + AGEBD-CPCL-MASTER@@agebd_env_suffix_upper@@:RESTART ↺ diff --git a/qt/A_BD_ServiceManager_inc.ui b/qt/A_BD_ServiceManager_inc.ui index 4f030fb..056c07c 100644 --- a/qt/A_BD_ServiceManager_inc.ui +++ b/qt/A_BD_ServiceManager_inc.ui @@ -162,7 +162,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-STATUS + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-STATUS caLineEdit::Default @@ -195,7 +195,7 @@ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:$(service)-RESTART-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:$(service)-RESTART-REQ Restart @@ -227,7 +227,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-VERSION + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-VERSION caLineEdit::Default @@ -249,7 +249,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-ONOFF caChoice::Column @@ -268,7 +268,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-STARTTIME + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-STARTTIME caLineEdit::Default @@ -320,7 +320,7 @@ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-ALIVE + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-ALIVE caLed::Alarm @@ -347,7 +347,7 @@ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:$(service)-LOGS-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:$(service)-LOGS-REQ Logs @@ -409,7 +409,7 @@ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-ONOFF-RB + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-ONOFF-RB caLed::Alarm @@ -536,7 +536,7 @@ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:$(service)-START-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:$(service)-START-REQ Start @@ -579,7 +579,7 @@ EPushButton::None - AGEBD-MASTER{{ agebd_env_suffix_upper }}:$(service)-ABORT-REQ + AGEBD-MASTER@@agebd_env_suffix_upper@@:$(service)-ABORT-REQ KILL @@ -686,7 +686,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:$(service)-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:$(service)-GUIRELOAD Reload diff --git a/qt/A_BD_TauBPM.ui b/qt/A_BD_TauBPM.ui index 9460e95..c063922 100644 --- a/qt/A_BD_TauBPM.ui +++ b/qt/A_BD_TauBPM.ui @@ -78,7 +78,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:TAU + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:TAU @@ -138,7 +138,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:TAU-ERR + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:TAU-ERR @@ -214,7 +214,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:INJRATE + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:INJRATE @@ -274,7 +274,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:INJRATE-ERR + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:INJRATE-ERR @@ -363,7 +363,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:LIFETIME-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:LIFETIME-GUIRELOAD caCalc::TriggerZeroToOne @@ -395,7 +395,7 @@ - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:CONTROL-NSAMPLES-FIT-TAU + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:CONTROL-NSAMPLES-FIT-TAU caLineEdit::User @@ -411,7 +411,7 @@ - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:CONTROL-MIN-CURR + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:CONTROL-MIN-CURR 12 @@ -430,7 +430,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TAUBPM-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TAUBPM-ONOFF caChoice::Column @@ -465,7 +465,7 @@ - AGEBD-TAUBPM{{ agebd_env_suffix_upper }}:CONTROL-NSAMPLES-FIT-ROC + AGEBD-TAUBPM@@agebd_env_suffix_upper@@:CONTROL-NSAMPLES-FIT-ROC caLineEdit::User diff --git a/qt/A_BD_TauPCT.ui b/qt/A_BD_TauPCT.ui index 31c3115..7f79c7d 100644 --- a/qt/A_BD_TauPCT.ui +++ b/qt/A_BD_TauPCT.ui @@ -78,7 +78,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:TAU + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:TAU @@ -138,7 +138,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:TAU-ERR + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:TAU-ERR @@ -214,7 +214,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:INJRATE + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:INJRATE @@ -274,7 +274,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:INJRATE-ERR + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:INJRATE-ERR @@ -363,7 +363,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TAUPCT-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:TAUPCT-GUIRELOAD caCalc::TriggerZeroToOne @@ -395,7 +395,7 @@ - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:CONTROL-NSAMPLES-FIT-TAU + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:CONTROL-NSAMPLES-FIT-TAU caLineEdit::User @@ -411,7 +411,7 @@ - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:CONTROL-MIN-CURR + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:CONTROL-MIN-CURR 12 @@ -430,7 +430,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TAUPCT-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TAUPCT-ONOFF caChoice::Column @@ -449,7 +449,7 @@ - AGEBD-TAUPCT{{ agebd_env_suffix_upper }}:CONTROL-NSAMPLES-FIT-ROC + AGEBD-TAUPCT@@agebd_env_suffix_upper@@:CONTROL-NSAMPLES-FIT-ROC caLineEdit::User diff --git a/qt/A_BD_Timing.ui b/qt/A_BD_Timing.ui index 3b78166..b18ff40 100644 --- a/qt/A_BD_Timing.ui +++ b/qt/A_BD_Timing.ui @@ -46,7 +46,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TIMING-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:TIMING-GUIRELOAD caCalc::TriggerZeroToOne @@ -154,7 +154,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-GUN + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-GUN caSpinbox::User @@ -185,7 +185,7 @@ 3 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-llemast + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-llemast caSpinbox::User @@ -240,7 +240,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-BOINKI + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-BOINKI caSpinbox::User @@ -295,7 +295,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-BOINSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-BOINSE caSpinbox::User @@ -326,7 +326,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-BOEXKI + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-BOEXKI caSpinbox::User @@ -384,7 +384,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-BOEXSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-BOEXSE caSpinbox::User @@ -442,7 +442,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-SRINSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-SRINSE caSpinbox::User @@ -548,7 +548,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-BTRICT + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-BTRICT caSpinbox::User @@ -798,7 +798,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-klystr2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-klystr2 caSpinbox::User @@ -829,7 +829,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-3GHzScp + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-3GHzScp caSpinbox::User @@ -860,7 +860,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-500-PBU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-500-PBU caSpinbox::User @@ -891,7 +891,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-Kly1PMU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-Kly1PMU caSpinbox::User @@ -922,7 +922,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-klystr1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-klystr1 caSpinbox::User @@ -953,7 +953,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-preamp1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-preamp1 caSpinbox::User @@ -984,7 +984,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-3GHzQdm + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-3GHzQdm caSpinbox::User @@ -1015,7 +1015,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-preamp2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-preamp2 caSpinbox::User @@ -1046,7 +1046,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lirf-Kly2PMU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lirf-Kly2PMU caSpinbox::User @@ -1173,7 +1173,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-SRINK1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-SRINK1 caSpinbox::User @@ -1207,7 +1207,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-SRINK2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-SRINK2 caSpinbox::User @@ -1241,7 +1241,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-SRINK3 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-SRINK3 caSpinbox::User @@ -1275,7 +1275,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-SRINK4 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-SRINK4 caSpinbox::User @@ -1333,7 +1333,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lindi-ictone + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lindi-ictone caSpinbox::User @@ -1364,7 +1364,7 @@ 0 - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-ZERO-DELAY-lindi-icts23 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-ZERO-DELAY-lindi-icts23 caSpinbox::User @@ -3472,7 +3472,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-GUN + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-GUN @@ -3497,7 +3497,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-llemast + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-llemast @@ -3522,7 +3522,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-BOINKI + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-BOINKI @@ -3547,7 +3547,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-BOINSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-BOINSE @@ -3572,7 +3572,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-BOEXKI + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-BOEXKI @@ -3597,7 +3597,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-BOEXSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-BOEXSE @@ -3622,7 +3622,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-BTRICT + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-BTRICT @@ -3647,7 +3647,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-SRINSE + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-SRINSE @@ -3672,7 +3672,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-SRINK4 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-SRINK4 @@ -3697,7 +3697,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-preamp1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-preamp1 @@ -3722,7 +3722,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-3GHzQdm + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-3GHzQdm @@ -3747,7 +3747,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-500-PBU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-500-PBU @@ -3772,7 +3772,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-preamp2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-preamp2 @@ -3797,7 +3797,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-klystr2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-klystr2 @@ -3822,7 +3822,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-3GHzScp + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-3GHzScp @@ -3847,7 +3847,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-Kly1PMU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-Kly1PMU @@ -3872,7 +3872,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-klystr1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-klystr1 @@ -3897,7 +3897,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lirf-Kly2PMU + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lirf-Kly2PMU @@ -3922,7 +3922,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lindi-ictone + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lindi-ictone @@ -3947,7 +3947,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-lindi-icts23 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-lindi-icts23 @@ -3972,7 +3972,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-SRINK3 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-SRINK3 @@ -3997,7 +3997,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-SRINK2 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-SRINK2 @@ -4022,7 +4022,7 @@ false - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FLW-BCKT-SRINK1 + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FLW-BCKT-SRINK1 catogglebutton_3 @@ -4089,7 +4089,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TIMING{{ agebd_env_suffix_upper }}:SETALL-DELAY + AGEBD-TIMING@@agebd_env_suffix_upper@@:SETALL-DELAY @@ -4149,7 +4149,7 @@ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TIMING{{ agebd_env_suffix_upper }}:SETALL-ERROR + AGEBD-TIMING@@agebd_env_suffix_upper@@:SETALL-ERROR @@ -4230,7 +4230,7 @@ - AGEBD-TIMING{{ agebd_env_suffix_upper }}:CONTROL-FILLPATTERN-string.VAL + AGEBD-TIMING@@agebd_env_suffix_upper@@:CONTROL-FILLPATTERN-string.VAL 0 @@ -4266,7 +4266,7 @@ EPushButton::WidthAndHeight - AGEBD-TIMING{{ agebd_env_suffix_upper }}:ZERO-TARGET-BUCKET + AGEBD-TIMING@@agebd_env_suffix_upper@@:ZERO-TARGET-BUCKET Reset @@ -4426,7 +4426,7 @@ !A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TIMING-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TIMING-ONOFF @@ -4470,7 +4470,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TIMING-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TIMING-ONOFF 0 diff --git a/qt/A_BD_TopUpTool.ui b/qt/A_BD_TopUpTool.ui index cb126f5..83e7b85 100644 --- a/qt/A_BD_TopUpTool.ui +++ b/qt/A_BD_TopUpTool.ui @@ -24,7 +24,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TOPUPTOOL-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TOPUPTOOL-ONOFF caChoice::Column @@ -209,7 +209,7 @@ 0 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-GUNGRID-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-GUNGRID-MAX caSpinbox::User @@ -273,7 +273,7 @@ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:SCRUBBING-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:SCRUBBING-GUIRELOAD caCalc::TriggerOneToZero @@ -289,7 +289,7 @@ - AGEBD-ALH{{ agebd_env_suffix_upper }}:SCRUBBING-INFO + AGEBD-ALH@@agebd_env_suffix_upper@@:SCRUBBING-INFO caLineEdit::Alarm_Default @@ -311,7 +311,7 @@ - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAT + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAT caLineEdit::Default @@ -336,7 +336,7 @@ - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-TAU + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-TAU caLineEdit::Default @@ -430,7 +430,7 @@ - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAI + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAI caLineEdit::Default @@ -1989,7 +1989,7 @@ 22 - AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }}:STATUS-SECRET-MASTER + AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@:STATUS-SECRET-MASTER caLed::Alarm @@ -2286,7 +2286,7 @@ AGETI-CVME-MASTER-TMA:Evt-SR-Inj-EVRCount-I 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2744,7 +2744,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2769,7 +2769,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2794,7 +2794,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2819,7 +2819,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2844,7 +2844,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2869,7 +2869,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -2894,7 +2894,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -3050,7 +3050,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MAX caSpinbox::User @@ -3121,7 +3121,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-TIME-FREQ + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-TIME-FREQ caSpinbox::User @@ -3169,7 +3169,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-CURRENT-MIN + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-CURRENT-MIN caSpinbox::User @@ -3194,7 +3194,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-VAC-MAX + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-VAC-MAX caSpinbox::User @@ -3219,7 +3219,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA 1 - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:CONTROL-VAC-MIN + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:CONTROL-VAC-MIN caSpinbox::User @@ -3262,7 +3262,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAT + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAT caLineEdit::Default @@ -3287,7 +3287,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAI + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAI caLineEdit::Default @@ -3312,7 +3312,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-TAU + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-TAU caLineEdit::Default @@ -3337,7 +3337,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAI + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAI caLineEdit::Default @@ -3431,7 +3431,7 @@ AGETI-CVME-MASTER-TMA:Evt-14.VALA - AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }}:TOPUP-DELTAT + AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@:TOPUP-DELTAT caLineEdit::Default diff --git a/qt/A_BD_Tune.ui b/qt/A_BD_Tune.ui index d6b6403..733714b 100644 --- a/qt/A_BD_Tune.ui +++ b/qt/A_BD_Tune.ui @@ -55,7 +55,7 @@ x [mm] - AGEBD-TUNE{{ agebd_env_suffix_upper }}:OSCILLATION-SAMPLE-ALL;AGEBD-TUNE{{ agebd_env_suffix_upper }}:OSCILLATION-X-ALL + AGEBD-TUNE@@agebd_env_suffix_upper@@:OSCILLATION-SAMPLE-ALL;AGEBD-TUNE@@agebd_env_suffix_upper@@:OSCILLATION-X-ALL caCartesianPlot::NoSymbol @@ -102,7 +102,7 @@ y [mm] - AGEBD-TUNE{{ agebd_env_suffix_upper }}:OSCILLATION-SAMPLE-ALL;AGEBD-TUNE{{ agebd_env_suffix_upper }}:OSCILLATION-Y-ALL + AGEBD-TUNE@@agebd_env_suffix_upper@@:OSCILLATION-SAMPLE-ALL;AGEBD-TUNE@@agebd_env_suffix_upper@@:OSCILLATION-Y-ALL caCartesianPlot::NoSymbol @@ -151,7 +151,7 @@ Amplitude - AGEBD-TUNE{{ agebd_env_suffix_upper }}:SPEC-SAMPLE-ALL;AGEBD-TUNE{{ agebd_env_suffix_upper }}:HORIZONTAL-SPEC-ALL + AGEBD-TUNE@@agebd_env_suffix_upper@@:SPEC-SAMPLE-ALL;AGEBD-TUNE@@agebd_env_suffix_upper@@:HORIZONTAL-SPEC-ALL caCartesianPlot::NoSymbol @@ -198,7 +198,7 @@ Amplitude - AGEBD-TUNE{{ agebd_env_suffix_upper }}:SPEC-SAMPLE-ALL;AGEBD-TUNE{{ agebd_env_suffix_upper }}:VERTICAL-SPEC-ALL + AGEBD-TUNE@@agebd_env_suffix_upper@@:SPEC-SAMPLE-ALL;AGEBD-TUNE@@agebd_env_suffix_upper@@:VERTICAL-SPEC-ALL caCartesianPlot::NoSymbol @@ -283,7 +283,7 @@ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNE-ALIVE + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNE-ALIVE caLed::Alarm @@ -323,7 +323,7 @@ false - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNE-ONOFF-RB + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNE-ONOFF-RB caLed::Alarm @@ -358,7 +358,7 @@ measurement true - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNE-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNE-ONOFF @@ -405,7 +405,7 @@ measurement - AGEBD-TUNE{{ agebd_env_suffix_upper }}:MEAS-TIME + AGEBD-TUNE@@agebd_env_suffix_upper@@:MEAS-TIME @@ -433,7 +433,7 @@ measurement - AGEBD-TUNE{{ agebd_env_suffix_upper }}:VERTICAL-PEAK1-FREQ + AGEBD-TUNE@@agebd_env_suffix_upper@@:VERTICAL-PEAK1-FREQ 4 @@ -467,7 +467,7 @@ measurement - AGEBD-TUNE{{ agebd_env_suffix_upper }}:HORIZONTAL-PEAK1-FREQ + AGEBD-TUNE@@agebd_env_suffix_upper@@:HORIZONTAL-PEAK1-FREQ 4 @@ -516,7 +516,7 @@ measurement - AGEBD-TUNE{{ agebd_env_suffix_upper }}:Q1_NAFF + AGEBD-TUNE@@agebd_env_suffix_upper@@:Q1_NAFF 4 @@ -538,7 +538,7 @@ measurement - AGEBD-TUNE{{ agebd_env_suffix_upper }}:Q2_NAFF + AGEBD-TUNE@@agebd_env_suffix_upper@@:Q2_NAFF 4 @@ -612,7 +612,7 @@ measurement false - AGEBD-TUNE{{ agebd_env_suffix_upper }}:SVD-CLEAN + AGEBD-TUNE@@agebd_env_suffix_upper@@:SVD-CLEAN @@ -631,7 +631,7 @@ measurement 0 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:SVD-CLEAN-Neigenvalues + AGEBD-TUNE@@agebd_env_suffix_upper@@:SVD-CLEAN-Neigenvalues false @@ -705,7 +705,7 @@ values 2 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-ROI-Yi + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-ROI-Yi caSpinbox::User @@ -756,7 +756,7 @@ values 0.000000000000000 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-ROI-Xf + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-ROI-Xf caSpinbox::User @@ -789,7 +789,7 @@ values 2 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-ROI-Xi + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-ROI-Xi caSpinbox::User @@ -870,7 +870,7 @@ values 0.000000000000000 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-ROI-Yf + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-ROI-Yf caSpinbox::User @@ -934,7 +934,7 @@ values false - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-TbTLastIndex + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-TbTLastIndex caSpinbox::User @@ -994,7 +994,7 @@ values false - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-TbTFirstIndex + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-TbTFirstIndex false @@ -1045,7 +1045,7 @@ values true - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-NAveraging + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-NAveraging caNumeric::Channel @@ -1096,7 +1096,7 @@ values true - AGEBD-TUNE{{ agebd_env_suffix_upper }}:CONTROL-NAFF + AGEBD-TUNE@@agebd_env_suffix_upper@@:CONTROL-NAFF @@ -1130,7 +1130,7 @@ harmonics true - AGEBD-TUNE{{ agebd_env_suffix_upper }}:NAFF-HARMONICS + AGEBD-TUNE@@agebd_env_suffix_upper@@:NAFF-HARMONICS caNumeric::Channel @@ -1185,7 +1185,7 @@ ARS07-DBPM-0840 - AGEBD-TUNE{{ agebd_env_suffix_upper }}:BPM-SELECT-SINGLE + AGEBD-TUNE@@agebd_env_suffix_upper@@:BPM-SELECT-SINGLE @@ -1873,7 +1873,7 @@ ARS07-DBPM-0840 false - AGEBD-TUNE{{ agebd_env_suffix_upper }}:SINGLE-BPM + AGEBD-TUNE@@agebd_env_suffix_upper@@:SINGLE-BPM diff --git a/qt/A_BD_TuneBump.ui b/qt/A_BD_TuneBump.ui index 55eff01..9ed1d2c 100644 --- a/qt/A_BD_TuneBump.ui +++ b/qt/A_BD_TuneBump.ui @@ -81,7 +81,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEBUMP-GUIRELOAD + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEBUMP-GUIRELOAD caCalc::TriggerZeroToOne @@ -103,7 +103,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-STEPDOWN + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-STEPDOWN << @@ -141,7 +141,7 @@ caLabel[statusTip="Operation"]{ 4 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-STEPSIZE + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-STEPSIZE caSpinbox::User @@ -175,7 +175,7 @@ caLabel[statusTip="Operation"]{ 4 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-STEPSIZE + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-STEPSIZE caSpinbox::User @@ -232,7 +232,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-STEPDOWN + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-STEPDOWN << @@ -330,7 +330,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-STEPUP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-STEPUP >> @@ -368,7 +368,7 @@ caLabel[statusTip="Operation"]{ false - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-STEPUP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-STEPUP >> @@ -457,7 +457,7 @@ caLabel[statusTip="Operation"]{ Vertical Tune (nominal: Qy = 15.22) - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QY-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QY-AMP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QY-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QY-AMP @@ -467,7 +467,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-PEAKS-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-PEAKS + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-PEAKS-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-PEAKS caCartesianPlot::Sticks @@ -518,7 +518,7 @@ caLabel[statusTip="Operation"]{ Synchrotron Tune (nominal: 0.0027) - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QZ-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QZ-AMP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QZ-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QZ-AMP @@ -528,7 +528,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QZ-PEAKS-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QZ-PEAKS + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QZ-PEAKS-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QZ-PEAKS caCartesianPlot::Sticks @@ -579,7 +579,7 @@ caLabel[statusTip="Operation"]{ Horizontal Tune (nominal: Qx = 39.37) - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QX-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:NORM-QX-AMP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QX-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:NORM-QX-AMP @@ -589,7 +589,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-PEAKS-FREQ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-PEAKS + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-PEAKS-FREQ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-PEAKS caCartesianPlot::Sticks @@ -657,7 +657,7 @@ caLabel[statusTip="Operation"]{ Tune Z - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-FREQ-qZ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-Z + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-FREQ-qZ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-Z @@ -702,7 +702,7 @@ caLabel[statusTip="Operation"]{ Tune Y - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-FREQ-qY;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-Y + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-FREQ-qY;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-Y @@ -747,7 +747,7 @@ caLabel[statusTip="Operation"]{ Tune X - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-FREQ-qX;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SPEC-X + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-FREQ-qX;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SPEC-X @@ -809,7 +809,7 @@ caLabel[statusTip="Operation"]{ Vertical TbT data - ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-Y + ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-Y @@ -857,7 +857,7 @@ caLabel[statusTip="Operation"]{ Longitudinal Stage 1 Data - ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-Z + ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-Z @@ -905,7 +905,7 @@ caLabel[statusTip="Operation"]{ Horizontal TbT data - ;AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-X + ;AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-X @@ -1329,7 +1329,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-ULIM + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-ULIM caSpinbox::User @@ -1360,7 +1360,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-LLIM + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-LLIM caSpinbox::User @@ -1391,7 +1391,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-ULIM + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-ULIM caSpinbox::User @@ -1459,7 +1459,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-LLIM + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-LLIM caSpinbox::User @@ -1758,7 +1758,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-Y.INP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-Y.INP @@ -1818,7 +1818,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-X.INP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-X.INP @@ -1878,7 +1878,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:SIGN-Z.INP + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:SIGN-Z.INP @@ -2021,7 +2021,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-KP + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-KP caSpinbox::User @@ -2193,7 +2193,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-KI + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-KI caSpinbox::User @@ -2224,7 +2224,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-KD + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-KD caSpinbox::User @@ -2255,7 +2255,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-QX + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-QX caSpinbox::User @@ -2323,7 +2323,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-QXMAX + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-QXMAX caSpinbox::User @@ -2391,7 +2391,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-QXMIN + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-QXMIN caSpinbox::User @@ -2496,7 +2496,7 @@ caLabel[statusTip="Operation"]{ 1 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-MIN-CURR + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-MIN-CURR caSpinbox::User @@ -2567,7 +2567,7 @@ caLabel[statusTip="Operation"]{ true - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CONTROL-QX-OKRNG + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CONTROL-QX-OKRNG caSpinbox::User @@ -2598,7 +2598,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:DELTAQ + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:DELTAQ @@ -2705,7 +2705,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:QSTEPS + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:QSTEPS caStripPlot::Second @@ -2866,7 +2866,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBX-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBX-ONOFF caChoice::Column @@ -2885,7 +2885,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK1 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK1 @@ -2911,7 +2911,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK2 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK2 @@ -2974,7 +2974,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK5 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK5 @@ -3000,7 +3000,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK8 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK8 @@ -3063,7 +3063,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK3 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK3 @@ -3126,7 +3126,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK6 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK6 @@ -3152,7 +3152,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK4 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK4 @@ -3215,7 +3215,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECK7 + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECK7 @@ -3321,7 +3321,7 @@ caLabel[statusTip="Operation"]{ true - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:CHECKALL + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:CHECKALL @@ -3501,7 +3501,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:DELTAQ-ULIM + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:DELTAQ-ULIM caSpinbox::User @@ -3532,7 +3532,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBX{{ agebd_env_suffix_upper }}:DELTAQ-LLIM + AGEBD-TUNEFBX@@agebd_env_suffix_upper@@:DELTAQ-LLIM caSpinbox::User @@ -3635,7 +3635,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-QY + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-QY caSpinbox::User @@ -3706,7 +3706,7 @@ caLabel[statusTip="Operation"]{ true - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-QY-OKRNG + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-QY-OKRNG caSpinbox::User @@ -3774,7 +3774,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-KI + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-KI caSpinbox::User @@ -3873,7 +3873,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK4 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK4 @@ -3905,7 +3905,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-KP + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-KP caSpinbox::User @@ -3936,7 +3936,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-QYMAX + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-QYMAX caSpinbox::User @@ -4078,7 +4078,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-KD + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-KD caSpinbox::User @@ -4103,7 +4103,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK3 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK3 @@ -4283,7 +4283,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:DELTAQ + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:DELTAQ @@ -4386,7 +4386,7 @@ caLabel[statusTip="Operation"]{ true - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECKALL + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECKALL @@ -4412,7 +4412,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK5 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK5 @@ -4438,7 +4438,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK2 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK2 @@ -4507,7 +4507,7 @@ caLabel[statusTip="Operation"]{ 2 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-QYMIN + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-QYMIN caSpinbox::User @@ -4532,7 +4532,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK1 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK1 @@ -4595,7 +4595,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBY-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBY-ONOFF caChoice::Column @@ -4614,7 +4614,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK6 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK6 @@ -4656,7 +4656,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:QSTEPS + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:QSTEPS caStripPlot::Second @@ -4897,7 +4897,7 @@ caLabel[statusTip="Operation"]{ 1 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CONTROL-MIN-CURR + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CONTROL-MIN-CURR caSpinbox::User @@ -4959,7 +4959,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK7 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK7 @@ -4985,7 +4985,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:CHECK8 + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:CHECK8 @@ -5091,7 +5091,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:DELTAQ-ULIM + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:DELTAQ-ULIM caSpinbox::User @@ -5122,7 +5122,7 @@ caLabel[statusTip="Operation"]{ 3 - AGEBD-TUNEFBY{{ agebd_env_suffix_upper }}:DELTAQ-LLIM + AGEBD-TUNEFBY@@agebd_env_suffix_upper@@:DELTAQ-LLIM caSpinbox::User @@ -5189,7 +5189,7 @@ caLabel[statusTip="Operation"]{ - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:WRITE2MAG + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:WRITE2MAG @@ -5241,7 +5241,7 @@ caLabel[statusTip="Operation"]{ Qt::ScrollBarAsNeeded - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:CHANGELOG + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:CHANGELOG caMultiLineString::None @@ -5277,7 +5277,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX @@ -5359,7 +5359,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY @@ -5472,7 +5472,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-SB1 + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-SB1 @@ -5532,7 +5532,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-SB1-DIFF + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-SB1-DIFF @@ -5629,7 +5629,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-SB2 + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-SB2 @@ -5689,7 +5689,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-SB2-DIFF + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-SB2-DIFF @@ -5860,7 +5860,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-SB1 + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-SB1 @@ -6031,7 +6031,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-SB2 + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-SB2 @@ -6091,7 +6091,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-SB1-DIFF + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-SB1-DIFF @@ -6151,7 +6151,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-SB2-DIFF + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-SB2-DIFF @@ -6223,7 +6223,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QX-FREQ + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QX-FREQ @@ -6311,7 +6311,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QY-FREQ + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QY-FREQ @@ -6423,7 +6423,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QZ + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QZ @@ -6508,7 +6508,7 @@ caLabel[statusTip="Operation"]{ Qt::AlignAbsolute|Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }}:QZ-FREQ + AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@:QZ-FREQ @@ -6603,7 +6603,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBX-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBX-ONOFF @@ -6641,7 +6641,7 @@ caLabel[statusTip="Operation"]{ A - AGEBD-ALH{{ agebd_env_suffix_upper }}:TUNEFBY-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:TUNEFBY-ONOFF calabel_3 diff --git a/scripts/ci/check_subs.py b/scripts/ci/check_subs.py new file mode 100644 index 0000000..f341d9a --- /dev/null +++ b/scripts/ci/check_subs.py @@ -0,0 +1,131 @@ +""" +Guard the deploy-time substitution contract. + +Every ``@@token@@`` in this repo must be declared in config/environments.yml, +and must live somewhere that actually gets rendered. Three things are checked: + + 1. Tokens inside a render path are declared. + Catches typos, which would otherwise ship the literal placeholder. + + 2. Declared tokens only appear in a render, passthrough or reference path. + Catches a placeholder added to a file nobody renders -- exactly the + regression that put a suffix token into qt/*.ui while the Qt deploy + step was a plain rsync. + + 3. No pre-migration ``{{ token }}`` form of a deploy-time token survives, + in the paths that carry tokens. Catches files missed by the switch to + the ``@@token@@`` delimiters. Reference paths are exempt: Ansible and + copier own ``{{ }}`` in their own files, and some of their variables + share a name with our tokens. + +Files tracked by git plus new, non-ignored files are scanned, so build and +cache directories are skipped for free. +""" + +import sys + +import git +from agebd.subs import ( + SubstitutionsConfig, + find_legacy_tokens, + find_tokens, +) +from agebd.utils import get_git_root + +REPO_ROOT = get_git_root(__file__) + + +def iter_tracked_text_files(repo_root=REPO_ROOT): + """ + Yield (relative_path, contents) for every UTF-8 decodable file that is + tracked, or new and not gitignored. New files are included so that a bad + token is reported before it is committed rather than after. + """ + repo = git.Repo(repo_root) + listing = repo.git.ls_files("--cached", "--others", "--exclude-standard") + for rel_path in sorted(set(listing.splitlines())): + path = repo_root / rel_path + if not path.is_file(): + continue + try: + yield rel_path, path.read_text() + except (UnicodeDecodeError, OSError): + continue + + +def check_declared(config, rel_path, contents): + """1. Tokens inside a render path must be declared.""" + if not config.is_render_path(rel_path): + return [] + + return [ + f"{rel_path}: '@@{token}@@' is not declared under 'tokens' in " + f"{config.environments_file.name}" + for token in sorted(find_tokens(contents)) + if token not in config.tokens + ] + + +def carries_tokens(config, rel_path): + """ + True for paths whose files carry deploy-time tokens as data: they are + either rendered, or copied into something that is. + """ + return config.is_render_path(rel_path) or config.is_passthrough_path(rel_path) + + +def check_location(config, rel_path, contents): + """2. Declared tokens must sit in a render, passthrough or reference path.""" + if carries_tokens(config, rel_path) or config.is_reference_path(rel_path): + return [] + + return [ + f"{rel_path}: '@@{token}@@' is in a path that is never rendered. In " + f"{config.environments_file.name}, add the path to 'locations.render' if it " + f"should be substituted at deploy time, or to 'locations.references' if it is " + f"part of the substitution machinery. Otherwise remove the token." + for token in sorted(find_tokens(contents) & set(config.tokens)) + ] + + +def check_no_legacy_delimiters(config, rel_path, contents): + """ + 3. No deploy-time token may still use the creation-time delimiters, in the + paths that carry tokens. Elsewhere {{ }} belongs to whichever tool owns + the file. + """ + if not carries_tokens(config, rel_path): + return [] + + return [ + f"{rel_path}: '{{{{ {token} }}}}' uses the creation-time delimiters for a " + f"deploy-time token. Write it as '@@{token}@@'." + for token in sorted(find_legacy_tokens(contents) & set(config.tokens)) + ] + + +CHECKS = (check_declared, check_location, check_no_legacy_delimiters) + + +def check_subs(repo_root=REPO_ROOT): + """ + Raise AssertionError listing every violation, or return silently. + """ + config = SubstitutionsConfig.load(repo_root / "config") + + errors = [] + for rel_path, contents in iter_tracked_text_files(repo_root): + for check in CHECKS: + errors.extend(check(config, rel_path, contents)) + + if errors: + raise AssertionError("Deploy-time substitution problems found:\n\n " + "\n ".join(errors)) + + +if __name__ == "__main__": + try: + check_subs() + except AssertionError as e: + print(e, file=sys.stderr) + sys.exit(1) + print("All deploy-time tokens are declared and live in a rendered path.") diff --git a/scripts/tests/test_check_subs.py b/scripts/tests/test_check_subs.py new file mode 100644 index 0000000..e7e53af --- /dev/null +++ b/scripts/tests/test_check_subs.py @@ -0,0 +1,73 @@ +import pytest +from agebd.subs import SubstitutionsConfig +from agebd.utils import get_git_root + +from ci.check_subs import ( + check_declared, + check_location, + check_no_legacy_delimiters, + check_subs, +) + +REPO_ROOT = get_git_root(__file__) + + +@pytest.fixture +def config(): + return SubstitutionsConfig.load(REPO_ROOT / "config") + + +def test_repo_satisfies_the_substitution_contract(): + check_subs() + + +def test_undeclared_token_in_a_render_path_is_reported(config): + errors = check_declared(config, "qt/A_BD_Tune.ui", "AGEBD-TUNE@@agebd_env_sufix_upper@@:AO") + + assert len(errors) == 1 + assert "agebd_env_sufix_upper" in errors[0] + + +def test_declared_token_in_a_render_path_is_accepted(config): + assert check_declared(config, "qt/A_BD_Tune.ui", "@@agebd_env_suffix_upper@@") == [] + + +def test_token_outside_a_rendered_path_is_reported(config): + errors = check_location(config, "bin/start_service.sh", "SUFFIX=@@agebd_env_suffix_upper@@") + + assert len(errors) == 1 + assert "never rendered" in errors[0] + + +def test_token_in_a_render_path_is_accepted(config): + assert check_location(config, "qt/A_BD_Tune.ui", "@@agebd_env_suffix_upper@@") == [] + + +def test_token_in_a_passthrough_path_is_accepted(config): + assert ( + check_location( + config, + "templates/service/{{service_name_lower}}/current/ioc/x.jinja", + "@@agebd_env_suffix_upper@@", + ) + == [] + ) + + +def test_legacy_delimiters_are_reported(config): + errors = check_no_legacy_delimiters( + config, "qt/A_BD_Tune.ui", "AGEBD-TUNE{{ agebd_env_suffix_upper }}:AO" + ) + + assert len(errors) == 1 + assert "@@agebd_env_suffix_upper@@" in errors[0] + + +def test_creation_time_tokens_are_left_alone(config): + """{{ service_name_upper }} is copier's, not ours.""" + assert ( + check_no_legacy_delimiters( + config, "templates/service/x/current/ioc/y.jinja", "{{ service_name_upper }}" + ) + == [] + ) diff --git a/scripts/uv.lock b/scripts/uv.lock index 4fb18c2..0f9df6b 100644 --- a/scripts/uv.lock +++ b/scripts/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] diff --git a/services/dbpm3curr/current/app/uv.lock b/services/dbpm3curr/current/app/uv.lock index d44abe9..c2d1df4 100644 --- a/services/dbpm3curr/current/app/uv.lock +++ b/services/dbpm3curr/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_main.subs b/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_main.subs index 9bd8726..0c8c4c7 100644 --- a/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_main.subs +++ b/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_main.subs @@ -1,4 +1,4 @@ file DBPM3CURR.template { pattern { DEVICE } - { AGEBD-DBPM3CURR{{ agebd_env_suffix_upper }} } + { AGEBD-DBPM3CURR@@agebd_env_suffix_upper@@ } } diff --git a/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_parameters.yaml b/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_parameters.yaml index c179f0d..24aa364 100644 --- a/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_parameters.yaml +++ b/services/dbpm3curr/current/ioc/AGEBD-CPCL-DBPM3CURR_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/dbpm3curr/current/systemd/AGEBD-SERVICE-DBPM3CURR.service b/services/dbpm3curr/current/systemd/AGEBD-SERVICE-DBPM3CURR.service index dc46bb9..800fe42 100644 --- a/services/dbpm3curr/current/systemd/AGEBD-SERVICE-DBPM3CURR.service +++ b/services/dbpm3curr/current/systemd/AGEBD-SERVICE-DBPM3CURR.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-DBPM3CURR After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh DBPM3CURR +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh DBPM3CURR Restart=no [Install] diff --git a/services/injectionguard/current/app/uv.lock b/services/injectionguard/current/app/uv.lock index dc5c6b5..67f7f0c 100644 --- a/services/injectionguard/current/app/uv.lock +++ b/services/injectionguard/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_main.subs b/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_main.subs index 28c92a4..ff29124 100644 --- a/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_main.subs +++ b/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_main.subs @@ -1,31 +1,31 @@ file INJECTIONGUARD_individual.template { pattern { DEVICE } - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} } + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ } } file INJECTIONGUARD_automated.template { pattern { DEVICE NR Latch Description } - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 01 1 "Beam Dump Kicker"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 02 1 "Dump Valve"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 03 1 "MIS"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 04 1 "VCS"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 05 1 "Linac KV/BB/BY"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 06 1 "RF Linac"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 07 1 "RF Booster"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 08 1 "RF Ring"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 09 1 "Magnets Pulsed"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 10 1 "Magnets Booster"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 11 1 "Magnets Corrector"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 12 1 "Magnets Ring"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 13 1 "Current Limit"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 14 1 "IDs Ready"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 15 1 "Single Bunch Charge"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 16 1 "Injection Quality"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 17 1 "Dump Quality"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 18 1 "Lifetime"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 19 1 "Tune"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 20 0 "Pingers"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 21 1 "Vacuum Pressure"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 22 1 "Orbit Deviation"} - { AGEBD-INJECTIONGUARD{{ agebd_env_suffix_upper }} 23 1 "Beam Dump Controller"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 01 1 "Beam Dump Kicker"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 02 1 "Dump Valve"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 03 1 "MIS"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 04 1 "VCS"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 05 1 "Linac KV/BB/BY"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 06 1 "RF Linac"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 07 1 "RF Booster"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 08 1 "RF Ring"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 09 1 "Magnets Pulsed"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 10 1 "Magnets Booster"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 11 1 "Magnets Corrector"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 12 1 "Magnets Ring"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 13 1 "Current Limit"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 14 1 "IDs Ready"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 15 1 "Single Bunch Charge"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 16 1 "Injection Quality"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 17 1 "Dump Quality"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 18 1 "Lifetime"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 19 1 "Tune"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 20 0 "Pingers"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 21 1 "Vacuum Pressure"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 22 1 "Orbit Deviation"} + { AGEBD-INJECTIONGUARD@@agebd_env_suffix_upper@@ 23 1 "Beam Dump Controller"} } diff --git a/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_parameters.yaml b/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_parameters.yaml index c179f0d..24aa364 100644 --- a/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_parameters.yaml +++ b/services/injectionguard/current/ioc/AGEBD-CPCL-INJECTIONGUARD_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/injectionguard/current/systemd/AGEBD-SERVICE-INJECTIONGUARD.service b/services/injectionguard/current/systemd/AGEBD-SERVICE-INJECTIONGUARD.service index 64f6675..007f32a 100644 --- a/services/injectionguard/current/systemd/AGEBD-SERVICE-INJECTIONGUARD.service +++ b/services/injectionguard/current/systemd/AGEBD-SERVICE-INJECTIONGUARD.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-INJECTIONGUARD After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh INJECTIONGUARD +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh INJECTIONGUARD Restart=no [Install] diff --git a/services/master/current/app/uv.lock b/services/master/current/app/uv.lock index 7118582..9bd84ca 100644 --- a/services/master/current/app/uv.lock +++ b/services/master/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] diff --git a/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs b/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs index 6fa7099..7c80682 100644 --- a/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs +++ b/services/master/current/ioc/AGEBD-CPCL-MASTER_main.subs @@ -1,32 +1,32 @@ file MASTER.template { pattern { SUFFIX SERVICE STARTON AUTOOFF } - { "{{ agebd_env_suffix_upper }}", "MASTER" , "0", "30" } - { "{{ agebd_env_suffix_upper }}", "NTURNS" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "DBPM3CURR" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "TAUBPM" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "TAUPCT" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "SCRUBBING" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "TIMING" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "TUNE" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "INJECTIONGUARD" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "POSTMORTEMLOG" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "TUNEBUMP" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "PLOTS" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "ORBITBUMP" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "TOPUPTOOL" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "SHIFTTOOL" , "1", "0" } - { "{{ agebd_env_suffix_upper }}", "BEAMTRANSFERCHECKS" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "TUNEFBX" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "TUNEFBY" , "0", "0" } - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X02S" , "0", "0" } # I-TOMCAT - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X03M" , "0", "0" } # ADRESS - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X04S" , "0", "0" } # ADDAMS - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X05L" , "0", "0" } # QUEST - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X06S" , "0", "0" } # PXI - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X07M" , "0", "0" } # PHOENIX/XTREME - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X08S" , "0", "0" } # MicroXAS - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X09L" , "0", "0" } # OPERA - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X10S" , "0", "0" } # PXII - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X11M" , "0", "0" } # SIM - { "{{ agebd_env_suffix_upper }}", "OPTICSFF-X12S" , "0", "0" } # cSAXS + { "@@agebd_env_suffix_upper@@", "MASTER" , "0", "30" } + { "@@agebd_env_suffix_upper@@", "NTURNS" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "DBPM3CURR" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "TAUBPM" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "TAUPCT" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "SCRUBBING" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "TIMING" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "TUNE" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "INJECTIONGUARD" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "POSTMORTEMLOG" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "TUNEBUMP" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "PLOTS" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "ORBITBUMP" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "TOPUPTOOL" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "SHIFTTOOL" , "1", "0" } + { "@@agebd_env_suffix_upper@@", "BEAMTRANSFERCHECKS" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "TUNEFBX" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "TUNEFBY" , "0", "0" } + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X02S" , "0", "0" } # I-TOMCAT + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X03M" , "0", "0" } # ADRESS + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X04S" , "0", "0" } # ADDAMS + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X05L" , "0", "0" } # QUEST + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X06S" , "0", "0" } # PXI + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X07M" , "0", "0" } # PHOENIX/XTREME + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X08S" , "0", "0" } # MicroXAS + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X09L" , "0", "0" } # OPERA + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X10S" , "0", "0" } # PXII + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X11M" , "0", "0" } # SIM + { "@@agebd_env_suffix_upper@@", "OPTICSFF-X12S" , "0", "0" } # cSAXS } diff --git a/services/master/current/ioc/AGEBD-CPCL-MASTER_parameters.yaml b/services/master/current/ioc/AGEBD-CPCL-MASTER_parameters.yaml index c179f0d..24aa364 100644 --- a/services/master/current/ioc/AGEBD-CPCL-MASTER_parameters.yaml +++ b/services/master/current/ioc/AGEBD-CPCL-MASTER_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/master/current/systemd/AGEBD-SERVICE-MASTER.service b/services/master/current/systemd/AGEBD-SERVICE-MASTER.service index aea7b97..490eefe 100644 --- a/services/master/current/systemd/AGEBD-SERVICE-MASTER.service +++ b/services/master/current/systemd/AGEBD-SERVICE-MASTER.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-MASTER After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh MASTER +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh MASTER Restart=no [Install] diff --git a/services/nturns/current/app/uv.lock b/services/nturns/current/app/uv.lock index 1f79ca4..46026f6 100644 --- a/services/nturns/current/app/uv.lock +++ b/services/nturns/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -286,6 +288,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_main.subs b/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_main.subs index 8a6d076..708f2e9 100644 --- a/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_main.subs +++ b/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_main.subs @@ -1,4 +1,4 @@ file NTURNS.template { pattern { DEVICE } - { AGEBD-NTURNS{{ agebd_env_suffix_upper }} } + { AGEBD-NTURNS@@agebd_env_suffix_upper@@ } } diff --git a/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_parameters.yaml b/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_parameters.yaml index c179f0d..24aa364 100644 --- a/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_parameters.yaml +++ b/services/nturns/current/ioc/AGEBD-CPCL-NTURNS_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/nturns/current/systemd/AGEBD-SERVICE-NTURNS.service b/services/nturns/current/systemd/AGEBD-SERVICE-NTURNS.service index 93bc014..cf91666 100644 --- a/services/nturns/current/systemd/AGEBD-SERVICE-NTURNS.service +++ b/services/nturns/current/systemd/AGEBD-SERVICE-NTURNS.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-NTURNS After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh NTURNS +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh NTURNS Restart=no [Install] diff --git a/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_main.subs b/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_main.subs index 710b532..286591d 100644 --- a/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_main.subs +++ b/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_main.subs @@ -2,31 +2,31 @@ file ORBITBUMP_machine.template { pattern {DEVICE sourcepoint beamline LOX HIX X LOXP HIXP XP LOY HIY Y LOYP HIYP YP BPM1 C1xx C1xpx C1yy C1ypy BPM2 C2xx C2xpx C2yy C2ypy BPM3 C3xx C3xpx C3yy C3ypy BPM4 C4xx C4xpx C4yy C4ypy} # Diagnostic dipole beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X01DD NEMO -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS01-DBPM-1080 -0.0009920 -0.0006308 -0.0001141 0.0001109 ARS01-DBPM-1460 0.9742755 -0.1432472 0.9455447 -0.0865934 ARS01-DBPM-1900 0.9277200 1.0454287 0.1445141 1.5920941 ARS01-DBPM-2410 -0.0809412 -0.0384293 0.0058229 0.1036650} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X08DB DISCO -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS08-DBPM-1900 -0.2500389 -0.0365053 0.0001023 0.0000595 ARS08-DBPM-2410 1.2775662 -0.9246414 0.5814965 -0.4999301 ARS08-DBPM-2910 0.6885552 0.9211364 0.4873898 1.7550023 ARS08-DBPM-4220 -0.2391394 -0.0169593 0.0309046 0.1234665} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10DG X11HEAT -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS10-DBPM-4720 -0.0187 -0.0188 0 0 ARS10-DBPM-5250 1.6016 -1.2108 0.5496 -0.5376 ARS10-DBPM-5880 0.7075 1.0654 1.1093 1.9515 ARS11-DBPM-0850 0.0026 0.0044 0.0166 0.0304} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X01DD NEMO -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS01-DBPM-1080 -0.0009920 -0.0006308 -0.0001141 0.0001109 ARS01-DBPM-1460 0.9742755 -0.1432472 0.9455447 -0.0865934 ARS01-DBPM-1900 0.9277200 1.0454287 0.1445141 1.5920941 ARS01-DBPM-2410 -0.0809412 -0.0384293 0.0058229 0.1036650} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X08DB DISCO -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS08-DBPM-1900 -0.2500389 -0.0365053 0.0001023 0.0000595 ARS08-DBPM-2410 1.2775662 -0.9246414 0.5814965 -0.4999301 ARS08-DBPM-2910 0.6885552 0.9211364 0.4873898 1.7550023 ARS08-DBPM-4220 -0.2391394 -0.0169593 0.0309046 0.1234665} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10DG X11HEAT -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS10-DBPM-4720 -0.0187 -0.0188 0 0 ARS10-DBPM-5250 1.6016 -1.2108 0.5496 -0.5376 ARS10-DBPM-5880 0.7075 1.0654 1.1093 1.9515 ARS11-DBPM-0850 0.0026 0.0044 0.0166 0.0304} # User dipole beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X01DA DEBYE -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS01-DBPM-2410 -0.2169694 -0.0006291 0.0001170 0.0000325 ARS01-DBPM-2910 1.2765938 -0.9208697 0.5792863 -0.5011470 ARS01-DBPM-4220 0.6866207 0.9198858 0.4842977 1.7595080 ARS01-DBPM-4720 -0.1924402 0.0258918 0.0307458 0.1239361} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X02DA S-TOMCAT -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS02-DBPM-2410 -0.2089937 0.0072435 0.0001169 0.0000325 ARS02-DBPM-2910 1.2772588 -0.9200089 0.5792866 -0.5011606 ARS02-DBPM-4220 0.6864959 0.9194778 0.4843170 1.7595616 ARS02-DBPM-4720 -0.1833930 0.0352770 0.0307471 0.1239392} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X03DA PEARL -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS03-DBPM-2410 -0.2016647 0.0152728 0.0001171 0.0000326 ARS03-DBPM-2910 1.2831552 -0.9190247 0.5819894 -0.5004911 ARS03-DBPM-4220 0.6905553 0.9206615 0.4875028 1.7552635 ARS03-DBPM-4720 -0.1749243 0.0438144 0.0309089 0.1234182} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X04DB VUV -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS04-DBPM-1900 -0.1917962 0.0214714 0.0001022 0.0000595 ARS04-DBPM-2410 1.2842031 -0.9179380 0.5814999 -0.5000284 ARS04-DBPM-2910 0.6887599 0.9211626 0.4874732 1.7553295 ARS04-DBPM-4220 -0.1710439 0.0514609 0.0309080 0.1234788} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X05DA Optics -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS05-DBPM-2410 -0.2740176 -0.0571105 0.0001170 0.0000321 ARS05-DBPM-2910 1.2732647 -0.9287209 0.5819890 -0.5003730 ARS05-DBPM-4220 0.6913367 0.9213802 0.4873370 1.7548006 ARS05-DBPM-4720 -0.2592981 -0.0408063 0.0308988 0.1233928} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X06DA PXIII -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS06-DBPM-2410 -0.2675305 -0.0508248 0.0001170 0.0000321 ARS06-DBPM-2910 1.2749858 -0.9266845 0.5818007 -0.5004548 ARS06-DBPM-4220 0.6916389 0.9218001 0.4871613 1.7552275 ARS06-DBPM-4720 -0.2517260 -0.0332473 0.0308895 0.1234316} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07DB nanoXAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS07-DBPM-1900 -0.2563387 -0.0425222 0.0001023 0.0000596 ARS07-DBPM-2410 1.2761628 -0.9263027 0.5814954 -0.4999177 ARS07-DBPM-2910 0.6888233 0.9216262 0.4873810 1.7549631 ARS07-DBPM-4220 -0.2469055 -0.0248794 0.0309043 0.1234651} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07DA PolLux -300 300 0 -150 150 0 -300 300 0 -250 250 0 ARS07-DBPM-2410 -0.2606076 -0.0450539 0.0001170 0.0000326 ARS07-DBPM-2910 1.2750718 -0.9205684 0.5819899 -0.4976199 ARS07-DBPM-4220 0.6915728 0.9246379 0.4873668 1.7572153 ARS07-DBPM-4720 -0.2433555 -0.0254434 0.0309006 0.1235450} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10DA SuperXAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS10-DBPM-2410 -0.2392400 -0.0226765 0.0001170 0.0000321 ARS10-DBPM-2910 1.2780895 -0.9235140 0.5818007 -0.5005005 ARS10-DBPM-4220 0.6911875 0.9212713 0.4872251 1.7554059 ARS10-DBPM-4720 -0.2190626 -0.0004438 0.0308933 0.1234413} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X01DA DEBYE -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS01-DBPM-2410 -0.2169694 -0.0006291 0.0001170 0.0000325 ARS01-DBPM-2910 1.2765938 -0.9208697 0.5792863 -0.5011470 ARS01-DBPM-4220 0.6866207 0.9198858 0.4842977 1.7595080 ARS01-DBPM-4720 -0.1924402 0.0258918 0.0307458 0.1239361} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X02DA S-TOMCAT -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS02-DBPM-2410 -0.2089937 0.0072435 0.0001169 0.0000325 ARS02-DBPM-2910 1.2772588 -0.9200089 0.5792866 -0.5011606 ARS02-DBPM-4220 0.6864959 0.9194778 0.4843170 1.7595616 ARS02-DBPM-4720 -0.1833930 0.0352770 0.0307471 0.1239392} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X03DA PEARL -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS03-DBPM-2410 -0.2016647 0.0152728 0.0001171 0.0000326 ARS03-DBPM-2910 1.2831552 -0.9190247 0.5819894 -0.5004911 ARS03-DBPM-4220 0.6905553 0.9206615 0.4875028 1.7552635 ARS03-DBPM-4720 -0.1749243 0.0438144 0.0309089 0.1234182} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X04DB VUV -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS04-DBPM-1900 -0.1917962 0.0214714 0.0001022 0.0000595 ARS04-DBPM-2410 1.2842031 -0.9179380 0.5814999 -0.5000284 ARS04-DBPM-2910 0.6887599 0.9211626 0.4874732 1.7553295 ARS04-DBPM-4220 -0.1710439 0.0514609 0.0309080 0.1234788} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X05DA Optics -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS05-DBPM-2410 -0.2740176 -0.0571105 0.0001170 0.0000321 ARS05-DBPM-2910 1.2732647 -0.9287209 0.5819890 -0.5003730 ARS05-DBPM-4220 0.6913367 0.9213802 0.4873370 1.7548006 ARS05-DBPM-4720 -0.2592981 -0.0408063 0.0308988 0.1233928} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X06DA PXIII -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS06-DBPM-2410 -0.2675305 -0.0508248 0.0001170 0.0000321 ARS06-DBPM-2910 1.2749858 -0.9266845 0.5818007 -0.5004548 ARS06-DBPM-4220 0.6916389 0.9218001 0.4871613 1.7552275 ARS06-DBPM-4720 -0.2517260 -0.0332473 0.0308895 0.1234316} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07DB nanoXAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS07-DBPM-1900 -0.2563387 -0.0425222 0.0001023 0.0000596 ARS07-DBPM-2410 1.2761628 -0.9263027 0.5814954 -0.4999177 ARS07-DBPM-2910 0.6888233 0.9216262 0.4873810 1.7549631 ARS07-DBPM-4220 -0.2469055 -0.0248794 0.0309043 0.1234651} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07DA PolLux -300 300 0 -150 150 0 -300 300 0 -250 250 0 ARS07-DBPM-2410 -0.2606076 -0.0450539 0.0001170 0.0000326 ARS07-DBPM-2910 1.2750718 -0.9205684 0.5819899 -0.4976199 ARS07-DBPM-4220 0.6915728 0.9246379 0.4873668 1.7572153 ARS07-DBPM-4720 -0.2433555 -0.0254434 0.0309006 0.1235450} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10DA SuperXAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS10-DBPM-2410 -0.2392400 -0.0226765 0.0001170 0.0000321 ARS10-DBPM-2910 1.2780895 -0.9235140 0.5818007 -0.5005005 ARS10-DBPM-4220 0.6911875 0.9212713 0.4872251 1.7554059 ARS10-DBPM-4720 -0.2190626 -0.0004438 0.0308933 0.1234413} # ID beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X02SA I-TOMCAT -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS01-DBPM-5250 -0.0161762 0.0645315 -0.0000522 0.0002217 ARS01-DBPM-5880 1.3057217 -3.1586368 0.7340909 -1.7908669 ARS02-DBPM-1080 1.1637103 2.7703664 0.8405251 2.0415012 ARS02-DBPM-1460 0.0473369 0.1176477 0.0354851 0.0914118} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X03MA ADRESS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS02-DBPM-5250 -0.0056074 0.0805576 -0.0000533 0.0001427 ARS02-DBPM-5880 1.2522257 -3.5240592 0.7649336 -2.1576328 ARS03-DBPM-0810 1.1134798 3.0406278 0.8874945 2.4488073 ARS03-DBPM-1080 0.0367597 0.0902093 0.0491615 0.1421129} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X04SA ADDAMS -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS03-DBPM-5250 0.0006041 0.0811354 -0.0000524 0.0002222 ARS03-DBPM-5880 1.3048037 -3.1594991 0.7340820 -1.7909262 ARS04-DBPM-1080 1.1649402 2.7718322 0.8405182 2.0415768 ARS04-DBPM-1460 0.0441826 0.1145073 0.0354841 0.0914133} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X05LA QUEST -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS04-DBPM-5880 0.0008866 0.0002252 -0.0001045 0.0002529 ARS05-DBPM-0410 0.8976150 -2.8499257 1.0112790 -2.8592349 ARS05-DBPM-1080 1.0880889 5.0183256 0.9137175 4.2390359 ARS05-DBPM-1460 0.0421489 0.1947713 0.0433357 0.2067705} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X06SA PXI -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS05-DBPM-5250 -0.0776973 0.0030268 -0.0000523 0.0002212 ARS05-DBPM-5880 1.3044906 -3.1590695 0.7341239 -1.7906420 ARS06-DBPM-1080 1.1642809 2.7699897 0.8405515 2.0412179 ARS06-DBPM-1460 0.0604868 0.1306028 0.0354886 0.0914055} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07MA Phoenix/XTreme -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS06-DBPM-5250 -0.0684380 0.0189547 -0.0000531 0.0001447 ARS06-DBPM-5880 1.2508776 -3.5845660 0.7649630 -2.1939024 ARS07-DBPM-0810 1.1137188 2.9863773 0.8875136 2.4060190 ARS07-DBPM-1080 0.0093629 0.0606390 0.0491634 0.1397441} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X08SA micro-XAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS07-DBPM-5250 -0.0624701 0.0181621 -0.0000523 0.0002216 ARS07-DBPM-5880 1.3039931 -3.1597229 0.7341156 -1.7906968 ARS08-DBPM-1080 1.1652753 2.7714013 0.8405450 2.0412871 ARS08-DBPM-1460 0.0575855 0.1278140 0.0354876 0.0914065} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X09LA PEARL/XIL-II -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS08-DBPM-5880 0.0011254 0.0009724 -0.0000942 0.0002317 ARS09-DBPM-0570 0.8843735 -2.4344684 1.1263977 -3.0082085 ARS09-DBPM-1080 1.0591734 3.0395499 0.9413643 2.7184391 ARS09-DBPM-1460 0.0394021 0.1139547 0.0465775 0.1402264} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10SA PXII -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS09-DBPM-5250 -0.0473875 0.0333454 -0.0000523 0.0002213 ARS09-DBPM-5880 1.3047178 -3.1592507 0.7341077 -1.7907518 ARS10-DBPM-1080 1.1639981 2.7701547 0.8405387 2.0413565 ARS10-DBPM-1460 0.0540084 0.1242161 0.0354869 0.0914087} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X11MA SIM -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS10-DBPM-5250 -0.0383667 0.0514782 -0.0000499 0.0001646 ARS10-DBPM-5880 1.2526899 -3.7342542 0.7640638 -2.2804441 ARS11-DBPM-0850 1.1168967 3.1441871 0.8845808 2.5170397 ARS11-DBPM-1080 0.0219427 0.0928506 0.0546028 0.1626088} - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X12SA cSAXS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS11-DBPM-5250 -0.0326376 0.0479239 -0.0000524 0.0002219 ARS11-DBPM-5880 1.3047910 -3.1591765 0.7340995 -1.7908066 ARS12-DBPM-1080 1.1653151 2.7718178 0.8405322 2.0414257 ARS12-DBPM-1460 0.0513287 0.1216036 0.0354860 0.0914097} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X02SA I-TOMCAT -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS01-DBPM-5250 -0.0161762 0.0645315 -0.0000522 0.0002217 ARS01-DBPM-5880 1.3057217 -3.1586368 0.7340909 -1.7908669 ARS02-DBPM-1080 1.1637103 2.7703664 0.8405251 2.0415012 ARS02-DBPM-1460 0.0473369 0.1176477 0.0354851 0.0914118} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X03MA ADRESS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS02-DBPM-5250 -0.0056074 0.0805576 -0.0000533 0.0001427 ARS02-DBPM-5880 1.2522257 -3.5240592 0.7649336 -2.1576328 ARS03-DBPM-0810 1.1134798 3.0406278 0.8874945 2.4488073 ARS03-DBPM-1080 0.0367597 0.0902093 0.0491615 0.1421129} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X04SA ADDAMS -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS03-DBPM-5250 0.0006041 0.0811354 -0.0000524 0.0002222 ARS03-DBPM-5880 1.3048037 -3.1594991 0.7340820 -1.7909262 ARS04-DBPM-1080 1.1649402 2.7718322 0.8405182 2.0415768 ARS04-DBPM-1460 0.0441826 0.1145073 0.0354841 0.0914133} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X05LA QUEST -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS04-DBPM-5880 0.0008866 0.0002252 -0.0001045 0.0002529 ARS05-DBPM-0410 0.8976150 -2.8499257 1.0112790 -2.8592349 ARS05-DBPM-1080 1.0880889 5.0183256 0.9137175 4.2390359 ARS05-DBPM-1460 0.0421489 0.1947713 0.0433357 0.2067705} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X06SA PXI -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS05-DBPM-5250 -0.0776973 0.0030268 -0.0000523 0.0002212 ARS05-DBPM-5880 1.3044906 -3.1590695 0.7341239 -1.7906420 ARS06-DBPM-1080 1.1642809 2.7699897 0.8405515 2.0412179 ARS06-DBPM-1460 0.0604868 0.1306028 0.0354886 0.0914055} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07MA Phoenix/XTreme -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS06-DBPM-5250 -0.0684380 0.0189547 -0.0000531 0.0001447 ARS06-DBPM-5880 1.2508776 -3.5845660 0.7649630 -2.1939024 ARS07-DBPM-0810 1.1137188 2.9863773 0.8875136 2.4060190 ARS07-DBPM-1080 0.0093629 0.0606390 0.0491634 0.1397441} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X08SA micro-XAS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS07-DBPM-5250 -0.0624701 0.0181621 -0.0000523 0.0002216 ARS07-DBPM-5880 1.3039931 -3.1597229 0.7341156 -1.7906968 ARS08-DBPM-1080 1.1652753 2.7714013 0.8405450 2.0412871 ARS08-DBPM-1460 0.0575855 0.1278140 0.0354876 0.0914065} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X09LA PEARL/XIL-II -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS08-DBPM-5880 0.0011254 0.0009724 -0.0000942 0.0002317 ARS09-DBPM-0570 0.8843735 -2.4344684 1.1263977 -3.0082085 ARS09-DBPM-1080 1.0591734 3.0395499 0.9413643 2.7184391 ARS09-DBPM-1460 0.0394021 0.1139547 0.0465775 0.1402264} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10SA PXII -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS09-DBPM-5250 -0.0473875 0.0333454 -0.0000523 0.0002213 ARS09-DBPM-5880 1.3047178 -3.1592507 0.7341077 -1.7907518 ARS10-DBPM-1080 1.1639981 2.7701547 0.8405387 2.0413565 ARS10-DBPM-1460 0.0540084 0.1242161 0.0354869 0.0914087} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X11MA SIM -500 500 0 -150 150 0 -500 500 0 -150 150 0 ARS10-DBPM-5250 -0.0383667 0.0514782 -0.0000499 0.0001646 ARS10-DBPM-5880 1.2526899 -3.7342542 0.7640638 -2.2804441 ARS11-DBPM-0850 1.1168967 3.1441871 0.8845808 2.5170397 ARS11-DBPM-1080 0.0219427 0.0928506 0.0546028 0.1626088} + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X12SA cSAXS -300 300 0 -150 150 0 -300 300 0 -150 150 0 ARS11-DBPM-5250 -0.0326376 0.0479239 -0.0000524 0.0002219 ARS11-DBPM-5880 1.3047910 -3.1591765 0.7340995 -1.7908066 ARS12-DBPM-1080 1.1653151 2.7718178 0.8405322 2.0414257 ARS12-DBPM-1460 0.0513287 0.1216036 0.0354860 0.0914097} } @@ -34,29 +34,29 @@ file ORBITBUMP_beamline.template { pattern {DEVICE sourcepoint beamline DRVL DRVH X XP Y YP } # Diagnostic dipole beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X01DD NEMO -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X08DB DISCO -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10DG X11HEAT -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X01DD NEMO -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X08DB DISCO -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10DG X11HEAT -10 10 0 0 0 0 } # User dipole beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X01DA DEBYE -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X02DA S-TOMCAT -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X03DA PEARL -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X04DB VUV -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X05DA Optics -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X06DA PXIII -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07DB nanoXAS -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07DA PolLux -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10DA SuperXAS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X01DA DEBYE -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X02DA S-TOMCAT -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X03DA PEARL -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X04DB VUV -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X05DA Optics -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X06DA PXIII -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07DB nanoXAS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07DA PolLux -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10DA SuperXAS -10 10 0 0 0 0 } # ID beamlines - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X02SA I-TOMCAT -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X03MA ADRESS -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X04SA ADDAMS -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X05LA QUEST -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X06SA PXI -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X07MA Phoenix/XTreme -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X08SA micro-XAS -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X09LA PEARL/XIL-II -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X10SA PXII -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X11MA SIM -10 10 0 0 0 0 } - {AGEBD-ORBITBUMP{{ agebd_env_suffix_upper }} X12SA cSAXS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X02SA I-TOMCAT -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X03MA ADRESS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X04SA ADDAMS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X05LA QUEST -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X06SA PXI -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X07MA Phoenix/XTreme -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X08SA micro-XAS -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X09LA PEARL/XIL-II -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X10SA PXII -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X11MA SIM -10 10 0 0 0 0 } + {AGEBD-ORBITBUMP@@agebd_env_suffix_upper@@ X12SA cSAXS -10 10 0 0 0 0 } } diff --git a/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_parameters.yaml b/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_parameters.yaml index c179f0d..24aa364 100644 --- a/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_parameters.yaml +++ b/services/orbitbump/current/ioc/AGEBD-CPCL-ORBITBUMP_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/params/current/ioc/AGEBD-CPCL-PARAMS_main.subs b/services/params/current/ioc/AGEBD-CPCL-PARAMS_main.subs index 17d70e3..6eec21d 100644 --- a/services/params/current/ioc/AGEBD-CPCL-PARAMS_main.subs +++ b/services/params/current/ioc/AGEBD-CPCL-PARAMS_main.subs @@ -1,4 +1,4 @@ file PARAMS.template { pattern { DEVICE } - { AGEBD-PARAMS{{ agebd_env_suffix_upper }} } + { AGEBD-PARAMS@@agebd_env_suffix_upper@@ } } diff --git a/services/params/current/ioc/AGEBD-CPCL-PARAMS_parameters.yaml b/services/params/current/ioc/AGEBD-CPCL-PARAMS_parameters.yaml index c179f0d..24aa364 100644 --- a/services/params/current/ioc/AGEBD-CPCL-PARAMS_parameters.yaml +++ b/services/params/current/ioc/AGEBD-CPCL-PARAMS_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/plots/current/app/uv.lock b/services/plots/current/app/uv.lock index b02d9a2..1c4bad6 100644 --- a/services/plots/current/app/uv.lock +++ b/services/plots/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -510,6 +512,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "requests" version = "2.34.2" diff --git a/services/plots/current/ioc/AGEBD-CPCL-PLOTS_main.subs b/services/plots/current/ioc/AGEBD-CPCL-PLOTS_main.subs index 17e7b9d..2e9deb5 100644 --- a/services/plots/current/ioc/AGEBD-CPCL-PLOTS_main.subs +++ b/services/plots/current/ioc/AGEBD-CPCL-PLOTS_main.subs @@ -1,64 +1,64 @@ file PLOTS_timeaxis.template { pattern { DEVICE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }} } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@ } } file PLOTS_9h.template { pattern { DEVICE, NAME, INP } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, CURRENT, AGEBD-PARAMS:CURRENT } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, CURRENT-BPM, AGEBD-DBPM3CURR:CURRENT-AVG } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, CURRENT-PCT, ARS07-DPCT-0000:CURR } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, INJECTION-RATE, AGEBD-PARAMS:INJECTION-RATE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, TRANSMISSION, AGEBD-PARAMS:TRANSMISSION } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, LIFETIME, AGEBD-PARAMS:LIFETIME } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, MAVAC-AVG, ARIVA-VMAVE:PRESS-AVE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, MAVAC-MAX, ARIVA-VMAVE:PRESS-MAX } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, FEVAC-AVG, ARIVA-VMAVE-FE:PRESS-AVE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, FEVAC-MAX, ARIVA-VMAVE-FE:PRESS-MAX } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ABRTL-DDRM-0670, ABRTL-DDRM-0670:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ABRTL-DDRM-0950, ABRTL-DDRM-0950:FET1_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X05LA-DDRM-0330, X05LA-DDRM-0330:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X05LA-DDRM-0650, X05LA-DDRM-0650:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X09LA-DDRM-0330, X09LA-DDRM-0330:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X09LA-DDRM-0790, X09LA-DDRM-0790:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS01-DDRM-0375, ARS01-DDRM-0375:FET1_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS01-DDRM-1530, ARS01-DDRM-1530:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS05-DDRM-1530, ARS05-DDRM-1530:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS05-DDRM-3500, ARS05-DDRM-3500:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS09-DDRM-1530, ARS09-DDRM-1530:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS09-DDRM-3500, ARS09-DDRM-3500:FET2_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS12-DDRM-1530, ARS12-DDRM-1530:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS12-DDRM-3500, ARS12-DDRM-3500:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS12-DDRM-4400, ARS12-DDRM-4400:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, ARS12-DDRM-5480, ARS12-DDRM-5480:FET1_BIAS_DOSE} - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X02SA-UIND-GAP, AGEOP-STATUS:X02SA-UIND-GAP} # Soft Blue #A0C4FF - # { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X03MA-UIND-GAP, AGEOP-STATUS:X03MA-UIND-GAP} # Warm Orange #FFD6A5 - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X04SA-UIND-GAP, AGEOP-STATUS:X04SA-UIND-GAP} # Light Green #CAFFBF - # { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X05LA-UIND-GAP, AGEOP-STATUS:X05LA-UIND-GAP} # Coral Red #FFADAD - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X06SA-UIND-GAP, AGEOP-STATUS:X06SA-UIND-GAP} # Lavender #CDB4DB - # { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X07MA-UIND-GAP, AGEOP-STATUS:X07MA-UIND-GAP} # Desert Tan #DDB892 - # { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X08SA-UIND-GAP, AGEOP-STATUS:X08SA-UIND-GAP} # Peach Pink #FFB5A7 - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X09LB-UIND-GAP, AGEOP-STATUS:X09LB-UIND-GAP} # Aqua Blue #9BF6FF - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X10SA-UIND-GAP, AGEOP-STATUS:X10SA-UIND-GAP} # Pale Yellow #FDFFB6 - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X11MA-UIND2-GAP, AGEOP-STATUS:X11MA-UIND2-GAP} # Periwinkle #BDB2FF - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, X12SA-UIND-GAP, AGEOP-STATUS:X12SA-UIND-GAP} # Mint Green #B0F2C2 + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, CURRENT, AGEBD-PARAMS:CURRENT } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, CURRENT-BPM, AGEBD-DBPM3CURR:CURRENT-AVG } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, CURRENT-PCT, ARS07-DPCT-0000:CURR } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, INJECTION-RATE, AGEBD-PARAMS:INJECTION-RATE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, TRANSMISSION, AGEBD-PARAMS:TRANSMISSION } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, LIFETIME, AGEBD-PARAMS:LIFETIME } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, MAVAC-AVG, ARIVA-VMAVE:PRESS-AVE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, MAVAC-MAX, ARIVA-VMAVE:PRESS-MAX } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, FEVAC-AVG, ARIVA-VMAVE-FE:PRESS-AVE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, FEVAC-MAX, ARIVA-VMAVE-FE:PRESS-MAX } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ABRTL-DDRM-0670, ABRTL-DDRM-0670:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ABRTL-DDRM-0950, ABRTL-DDRM-0950:FET1_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X05LA-DDRM-0330, X05LA-DDRM-0330:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X05LA-DDRM-0650, X05LA-DDRM-0650:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X09LA-DDRM-0330, X09LA-DDRM-0330:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X09LA-DDRM-0790, X09LA-DDRM-0790:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS01-DDRM-0375, ARS01-DDRM-0375:FET1_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS01-DDRM-1530, ARS01-DDRM-1530:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS05-DDRM-1530, ARS05-DDRM-1530:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS05-DDRM-3500, ARS05-DDRM-3500:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS09-DDRM-1530, ARS09-DDRM-1530:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS09-DDRM-3500, ARS09-DDRM-3500:FET2_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS12-DDRM-1530, ARS12-DDRM-1530:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS12-DDRM-3500, ARS12-DDRM-3500:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS12-DDRM-4400, ARS12-DDRM-4400:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, ARS12-DDRM-5480, ARS12-DDRM-5480:FET1_BIAS_DOSE} + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X02SA-UIND-GAP, AGEOP-STATUS:X02SA-UIND-GAP} # Soft Blue #A0C4FF + # { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X03MA-UIND-GAP, AGEOP-STATUS:X03MA-UIND-GAP} # Warm Orange #FFD6A5 + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X04SA-UIND-GAP, AGEOP-STATUS:X04SA-UIND-GAP} # Light Green #CAFFBF + # { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X05LA-UIND-GAP, AGEOP-STATUS:X05LA-UIND-GAP} # Coral Red #FFADAD + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X06SA-UIND-GAP, AGEOP-STATUS:X06SA-UIND-GAP} # Lavender #CDB4DB + # { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X07MA-UIND-GAP, AGEOP-STATUS:X07MA-UIND-GAP} # Desert Tan #DDB892 + # { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X08SA-UIND-GAP, AGEOP-STATUS:X08SA-UIND-GAP} # Peach Pink #FFB5A7 + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X09LB-UIND-GAP, AGEOP-STATUS:X09LB-UIND-GAP} # Aqua Blue #9BF6FF + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X10SA-UIND-GAP, AGEOP-STATUS:X10SA-UIND-GAP} # Pale Yellow #FDFFB6 + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X11MA-UIND2-GAP, AGEOP-STATUS:X11MA-UIND2-GAP} # Periwinkle #BDB2FF + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, X12SA-UIND-GAP, AGEOP-STATUS:X12SA-UIND-GAP} # Mint Green #B0F2C2 } file PLOTS_week.template { pattern { DEVICE, NAME, INP } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, CURRENT-BPM, AGEBD-DBPM3CURR:CURRENT-AVG } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, CURRENT-PCT, ARS07-DPCT-0000:CURR } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, TAU-BPM, AGEBD-TAUBPM:TAU } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, TAU-PCT, AGEBD-TAUPCT:TAU } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, TAU-TOPUP, AGEBD-SCRUBBING:TOPUP-TAU } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, INJRATE-BPM, AGEBD-TAUBPM:INJRATE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, INJRATE-PCT, AGEBD-TAUPCT:INJRATE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, MAVAC-AVG, ARIVA-VMAVE:PRESS-AVE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, MAVAC-MAX, ARIVA-VMAVE:PRESS-MAX } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, FEVAC-AVG, ARIVA-VMAVE-FE:PRESS-AVE } - { AGEBD-PLOTS{{ agebd_env_suffix_upper }}, FEVAC-MAX, ARIVA-VMAVE-FE:PRESS-MAX } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, CURRENT-BPM, AGEBD-DBPM3CURR:CURRENT-AVG } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, CURRENT-PCT, ARS07-DPCT-0000:CURR } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, TAU-BPM, AGEBD-TAUBPM:TAU } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, TAU-PCT, AGEBD-TAUPCT:TAU } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, TAU-TOPUP, AGEBD-SCRUBBING:TOPUP-TAU } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, INJRATE-BPM, AGEBD-TAUBPM:INJRATE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, INJRATE-PCT, AGEBD-TAUPCT:INJRATE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, MAVAC-AVG, ARIVA-VMAVE:PRESS-AVE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, MAVAC-MAX, ARIVA-VMAVE:PRESS-MAX } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, FEVAC-AVG, ARIVA-VMAVE-FE:PRESS-AVE } + { AGEBD-PLOTS@@agebd_env_suffix_upper@@, FEVAC-MAX, ARIVA-VMAVE-FE:PRESS-MAX } } diff --git a/services/plots/current/ioc/AGEBD-CPCL-PLOTS_parameters.yaml b/services/plots/current/ioc/AGEBD-CPCL-PLOTS_parameters.yaml index c179f0d..24aa364 100644 --- a/services/plots/current/ioc/AGEBD-CPCL-PLOTS_parameters.yaml +++ b/services/plots/current/ioc/AGEBD-CPCL-PLOTS_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/plots/current/systemd/AGEBD-SERVICE-PLOTS.service b/services/plots/current/systemd/AGEBD-SERVICE-PLOTS.service index 98888ed..9f4739c 100644 --- a/services/plots/current/systemd/AGEBD-SERVICE-PLOTS.service +++ b/services/plots/current/systemd/AGEBD-SERVICE-PLOTS.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-PLOTS After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh PLOTS +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh PLOTS Restart=no [Install] diff --git a/services/postmortemlog/current/app/uv.lock b/services/postmortemlog/current/app/uv.lock index d036cb1..4550566 100644 --- a/services/postmortemlog/current/app/uv.lock +++ b/services/postmortemlog/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -506,6 +508,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "requests" version = "2.34.2" diff --git a/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_main.subs b/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_main.subs index c424cf8..1b79c63 100644 --- a/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_main.subs +++ b/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_main.subs @@ -1,129 +1,129 @@ file POSTMORTEMLOG.template { pattern { DEVICE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ } } file POSTMORTEMLOG_15min10Hz.template { pattern { DEVICE NAME INP} # ---------- BEAM CURRENT -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} CURRBPM AGEBD-DBPM3CURR:CURRENT-AVG } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} CURRPCT ARS07-DPCT-0000:CURR } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ CURRBPM AGEBD-DBPM3CURR:CURRENT-AVG } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ CURRPCT ARS07-DPCT-0000:CURR } # ---------- BEAM LIFETIME -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} TAUBPM AGEBD-TAUBPM:TAU } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} TAUPCT AGEBD-TAUPCT:TAU } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ TAUBPM AGEBD-TAUBPM:TAU } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ TAUPCT AGEBD-TAUPCT:TAU } # ---------- TUNES -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} QX AGEBD-TUNEBUMP:QX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} QY AGEBD-TUNEBUMP:QY } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} QZ AGEBD-TUNEBUMP:QZ } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ QX AGEBD-TUNEBUMP:QX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ QY AGEBD-TUNEBUMP:QY } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ QZ AGEBD-TUNEBUMP:QZ } # ---------- LOSSES -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-DDRM-0375 ARS01-DDRM-0375:FET1_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ABRTL-DDRM-0670 ABRTL-DDRM-0670:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ABRTL-DDRM-0950 ABRTL-DDRM-0950:FET1_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-DDRM-1530 ARS01-DDRM-1530:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X05LA-DDRM-0330 X05LA-DDRM-0330:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-DDRM-1530 ARS05-DDRM-1530:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-DDRM-3500 ARS05-DDRM-3500:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X09LA-DDRM-0330 X09LA-DDRM-0330:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-DDRM-1530 ARS09-DDRM-1530:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-DDRM-3500 ARS09-DDRM-3500:FET2_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-DDRM-1530 ARS12-DDRM-1530:FET1_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-DDRM-3500 ARS12-DDRM-3500:FET2_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-DDRM-4400 ARS12-DDRM-4400:FET2_BIAS_DOSE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-DDRM-5480 ARS12-DDRM-5480:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-DDRM-0375 ARS01-DDRM-0375:FET1_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ABRTL-DDRM-0670 ABRTL-DDRM-0670:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ABRTL-DDRM-0950 ABRTL-DDRM-0950:FET1_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-DDRM-1530 ARS01-DDRM-1530:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X05LA-DDRM-0330 X05LA-DDRM-0330:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-DDRM-1530 ARS05-DDRM-1530:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-DDRM-3500 ARS05-DDRM-3500:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X09LA-DDRM-0330 X09LA-DDRM-0330:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-DDRM-1530 ARS09-DDRM-1530:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-DDRM-3500 ARS09-DDRM-3500:FET2_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-DDRM-1530 ARS12-DDRM-1530:FET1_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-DDRM-3500 ARS12-DDRM-3500:FET2_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-DDRM-4400 ARS12-DDRM-4400:FET2_BIAS_DOSE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-DDRM-5480 ARS12-DDRM-5480:FET1_BIAS_DOSE } # ---------- RF -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} MASTERFREQ-SET AGERF-MO01:FREQ-SET } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} MASTERFREQ-GET AGERF-MO01:FREQ-GET } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0140-INP ARS05-RCAV-0140:CO1i-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0060-INP ARS05-RCAV-0060:CO1i-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0230-INP ARS05-RCAV-0230:CO1i-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0310-INP ARS05-RCAV-0310:CO1i-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0060-REF ARS05-RCAV-0060:CO1r-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0140-REF ARS05-RCAV-0140:CO1r-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0230-REF ARS05-RCAV-0230:CO1r-POWER-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} RFPOW-0310-REF ARS05-RCAV-0310:CO1r-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ MASTERFREQ-SET AGERF-MO01:FREQ-SET } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ MASTERFREQ-GET AGERF-MO01:FREQ-GET } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0140-INP ARS05-RCAV-0140:CO1i-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0060-INP ARS05-RCAV-0060:CO1i-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0230-INP ARS05-RCAV-0230:CO1i-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0310-INP ARS05-RCAV-0310:CO1i-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0060-REF ARS05-RCAV-0060:CO1r-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0140-REF ARS05-RCAV-0140:CO1r-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0230-REF ARS05-RCAV-0230:CO1r-POWER-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ RFPOW-0310-REF ARS05-RCAV-0310:CO1r-POWER-MAX } # ---------- BEAM SIZE -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X01DD-SIGX X01DD-FE-CAM1:SIG-X } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X01DD-SIGY X01DD-FE-CAM1:SIG-Y } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X08DB-SIGX X08DB-FE-CAM1:SIG-X } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} X08DB-SIGY X08DB-FE-CAM1:SIG-Y } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X01DD-SIGX X01DD-FE-CAM1:SIG-X } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X01DD-SIGY X01DD-FE-CAM1:SIG-Y } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X08DB-SIGX X08DB-FE-CAM1:SIG-X } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ X08DB-SIGY X08DB-FE-CAM1:SIG-Y } # ---------- VACUUM -------------- - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} VACMAX ARIVA-VMAVE:PRESS-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} VACMAXFE ARIVA-VMAVE-FE:PRESS-MAX } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-0110 ARS01-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-0210 ARS01-VMCC-0210:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-0225 ARS01-VMCC-0225:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-0310 ARS01-VMCC-0310:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-1550 ARS01-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-3510 ARS01-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS01-VMCC-5460 ARS01-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-0110 ARS02-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-0210 ARS02-VMCC-0210:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-0310 ARS02-VMCC-0310:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-1550 ARS02-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-3510 ARS02-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS02-VMCC-5460 ARS02-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS03-VMCC-0110 ARS03-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS03-VMCC-0320 ARS03-VMCC-0320:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS03-VMCC-1550 ARS03-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS03-VMCC-3510 ARS03-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS03-VMCC-5460 ARS03-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS04-VMCC-0110 ARS04-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS04-VMCC-1550 ARS04-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS04-VMCC-3510 ARS04-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS04-VMCC-5460 ARS04-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0110 ARS05-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0115 ARS05-VMCC-0115:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0210 ARS05-VMCC-0210:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0215 ARS05-VMCC-0215:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0310 ARS05-VMCC-0310:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0315 ARS05-VMCC-0315:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0410 ARS05-VMCC-0410:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0415 ARS05-VMCC-0415:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0510 ARS05-VMCC-0510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0520 ARS05-VMCC-0520:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0530 ARS05-VMCC-0530:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-0810 ARS05-VMCC-0810:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-1550 ARS05-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-3510 ARS05-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS05-VMCC-5460 ARS05-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS06-VMCC-0110 ARS06-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS06-VMCC-1550 ARS06-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS06-VMCC-3510 ARS06-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS06-VMCC-5460 ARS06-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-0010 ARS07-VMCC-0010:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-0120 ARS07-VMCC-0120:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-0210 ARS07-VMCC-0210:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-1550 ARS07-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-3510 ARS07-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS07-VMCC-5460 ARS07-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS08-VMCC-0110 ARS08-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS08-VMCC-1550 ARS08-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS08-VMCC-3510 ARS08-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS08-VMCC-5460 ARS08-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-0110 ARS09-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-0120 ARS09-VMCC-0120:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-0410 ARS09-VMCC-0410:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-0510 ARS09-VMCC-0510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-0810 ARS09-VMCC-0810:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-1550 ARS09-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-3510 ARS09-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS09-VMCC-5460 ARS09-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS10-VMCC-0110 ARS10-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS10-VMCC-1550 ARS10-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS10-VMCC-3510 ARS10-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS10-VMCC-5460 ARS10-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-0110 ARS11-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-0210 ARS11-VMCC-0210:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-0310 ARS11-VMCC-0310:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-0410 ARS11-VMCC-0410:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-0510 ARS11-VMCC-0510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-1550 ARS11-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-3510 ARS11-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS11-VMCC-5460 ARS11-VMCC-5460:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-VMCC-0110 ARS12-VMCC-0110:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-VMCC-1550 ARS12-VMCC-1550:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-VMCC-3510 ARS12-VMCC-3510:PRESSURE } - { AGEBD-POSTMORTEMLOG{{ agebd_env_suffix_upper }} ARS12-VMCC-5460 ARS12-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ VACMAX ARIVA-VMAVE:PRESS-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ VACMAXFE ARIVA-VMAVE-FE:PRESS-MAX } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-0110 ARS01-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-0210 ARS01-VMCC-0210:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-0225 ARS01-VMCC-0225:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-0310 ARS01-VMCC-0310:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-1550 ARS01-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-3510 ARS01-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS01-VMCC-5460 ARS01-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-0110 ARS02-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-0210 ARS02-VMCC-0210:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-0310 ARS02-VMCC-0310:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-1550 ARS02-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-3510 ARS02-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS02-VMCC-5460 ARS02-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS03-VMCC-0110 ARS03-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS03-VMCC-0320 ARS03-VMCC-0320:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS03-VMCC-1550 ARS03-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS03-VMCC-3510 ARS03-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS03-VMCC-5460 ARS03-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS04-VMCC-0110 ARS04-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS04-VMCC-1550 ARS04-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS04-VMCC-3510 ARS04-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS04-VMCC-5460 ARS04-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0110 ARS05-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0115 ARS05-VMCC-0115:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0210 ARS05-VMCC-0210:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0215 ARS05-VMCC-0215:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0310 ARS05-VMCC-0310:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0315 ARS05-VMCC-0315:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0410 ARS05-VMCC-0410:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0415 ARS05-VMCC-0415:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0510 ARS05-VMCC-0510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0520 ARS05-VMCC-0520:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0530 ARS05-VMCC-0530:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-0810 ARS05-VMCC-0810:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-1550 ARS05-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-3510 ARS05-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS05-VMCC-5460 ARS05-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS06-VMCC-0110 ARS06-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS06-VMCC-1550 ARS06-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS06-VMCC-3510 ARS06-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS06-VMCC-5460 ARS06-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-0010 ARS07-VMCC-0010:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-0120 ARS07-VMCC-0120:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-0210 ARS07-VMCC-0210:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-1550 ARS07-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-3510 ARS07-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS07-VMCC-5460 ARS07-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS08-VMCC-0110 ARS08-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS08-VMCC-1550 ARS08-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS08-VMCC-3510 ARS08-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS08-VMCC-5460 ARS08-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-0110 ARS09-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-0120 ARS09-VMCC-0120:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-0410 ARS09-VMCC-0410:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-0510 ARS09-VMCC-0510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-0810 ARS09-VMCC-0810:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-1550 ARS09-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-3510 ARS09-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS09-VMCC-5460 ARS09-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS10-VMCC-0110 ARS10-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS10-VMCC-1550 ARS10-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS10-VMCC-3510 ARS10-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS10-VMCC-5460 ARS10-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-0110 ARS11-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-0210 ARS11-VMCC-0210:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-0310 ARS11-VMCC-0310:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-0410 ARS11-VMCC-0410:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-0510 ARS11-VMCC-0510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-1550 ARS11-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-3510 ARS11-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS11-VMCC-5460 ARS11-VMCC-5460:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-VMCC-0110 ARS12-VMCC-0110:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-VMCC-1550 ARS12-VMCC-1550:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-VMCC-3510 ARS12-VMCC-3510:PRESSURE } + { AGEBD-POSTMORTEMLOG@@agebd_env_suffix_upper@@ ARS12-VMCC-5460 ARS12-VMCC-5460:PRESSURE } } diff --git a/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_parameters.yaml b/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_parameters.yaml index c179f0d..24aa364 100644 --- a/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_parameters.yaml +++ b/services/postmortemlog/current/ioc/AGEBD-CPCL-POSTMORTEMLOG_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/postmortemlog/current/systemd/AGEBD-SERVICE-POSTMORTEMLOG.service b/services/postmortemlog/current/systemd/AGEBD-SERVICE-POSTMORTEMLOG.service index 0c9bef2..3812a83 100644 --- a/services/postmortemlog/current/systemd/AGEBD-SERVICE-POSTMORTEMLOG.service +++ b/services/postmortemlog/current/systemd/AGEBD-SERVICE-POSTMORTEMLOG.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-POSTMORTEMLOG After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh POSTMORTEMLOG +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh POSTMORTEMLOG Restart=no [Install] diff --git a/services/scrubbing/current/app/uv.lock b/services/scrubbing/current/app/uv.lock index c4e3018..3a93903 100644 --- a/services/scrubbing/current/app/uv.lock +++ b/services/scrubbing/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_main.subs b/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_main.subs index 7c4b66f..d9be150 100644 --- a/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_main.subs +++ b/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_main.subs @@ -1,4 +1,4 @@ file SCRUBBING.template { pattern { DEVICE } - { AGEBD-SCRUBBING{{ agebd_env_suffix_upper }} } + { AGEBD-SCRUBBING@@agebd_env_suffix_upper@@ } } diff --git a/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_parameters.yaml b/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_parameters.yaml index c179f0d..24aa364 100644 --- a/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_parameters.yaml +++ b/services/scrubbing/current/ioc/AGEBD-CPCL-SCRUBBING_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/scrubbing/current/systemd/AGEBD-SERVICE-SCRUBBING.service b/services/scrubbing/current/systemd/AGEBD-SERVICE-SCRUBBING.service index 479b986..22183fc 100644 --- a/services/scrubbing/current/systemd/AGEBD-SERVICE-SCRUBBING.service +++ b/services/scrubbing/current/systemd/AGEBD-SERVICE-SCRUBBING.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-SCRUBBING After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh SCRUBBING +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh SCRUBBING Restart=no [Install] diff --git a/services/shifttool/current/app/uv.lock b/services/shifttool/current/app/uv.lock index f89a870..ee3e89e 100644 --- a/services/shifttool/current/app/uv.lock +++ b/services/shifttool/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -373,6 +375,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "requests" version = "2.34.2" diff --git a/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_main.subs b/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_main.subs index 1e54004..4b4c10e 100644 --- a/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_main.subs +++ b/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_main.subs @@ -1,4 +1,4 @@ file SHIFTTOOL.template { pattern { DEVICE } - { AGEBD-SHIFTTOOL{{ agebd_env_suffix_upper }} } + { AGEBD-SHIFTTOOL@@agebd_env_suffix_upper@@ } } diff --git a/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_parameters.yaml b/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_parameters.yaml index c179f0d..24aa364 100644 --- a/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_parameters.yaml +++ b/services/shifttool/current/ioc/AGEBD-CPCL-SHIFTTOOL_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/shifttool/current/systemd/AGEBD-SERVICE-SHIFTTOOL.service b/services/shifttool/current/systemd/AGEBD-SERVICE-SHIFTTOOL.service index e1e1a1c..95dfb42 100644 --- a/services/shifttool/current/systemd/AGEBD-SERVICE-SHIFTTOOL.service +++ b/services/shifttool/current/systemd/AGEBD-SERVICE-SHIFTTOOL.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-SHIFTTOOL After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh SHIFTTOOL +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh SHIFTTOOL Restart=no [Install] diff --git a/services/taubpm/current/app/uv.lock b/services/taubpm/current/app/uv.lock index ab2369d..6180982 100644 --- a/services/taubpm/current/app/uv.lock +++ b/services/taubpm/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_main.subs b/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_main.subs index bef2d58..24d8543 100644 --- a/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_main.subs +++ b/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_main.subs @@ -1,4 +1,4 @@ file TAUBPM.template { pattern { DEVICE } - { AGEBD-TAUBPM{{ agebd_env_suffix_upper }} } + { AGEBD-TAUBPM@@agebd_env_suffix_upper@@ } } diff --git a/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_parameters.yaml b/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_parameters.yaml index c179f0d..24aa364 100644 --- a/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_parameters.yaml +++ b/services/taubpm/current/ioc/AGEBD-CPCL-TAUBPM_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/taubpm/current/systemd/AGEBD-SERVICE-TAUBPM.service b/services/taubpm/current/systemd/AGEBD-SERVICE-TAUBPM.service index 7a2c19d..59e5dae 100644 --- a/services/taubpm/current/systemd/AGEBD-SERVICE-TAUBPM.service +++ b/services/taubpm/current/systemd/AGEBD-SERVICE-TAUBPM.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TAUBPM After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TAUBPM +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TAUBPM Restart=no [Install] diff --git a/services/taupct/current/app/uv.lock b/services/taupct/current/app/uv.lock index 939300c..2d56d1e 100644 --- a/services/taupct/current/app/uv.lock +++ b/services/taupct/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_main.subs b/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_main.subs index efe7adc..f902cd6 100644 --- a/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_main.subs +++ b/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_main.subs @@ -1,4 +1,4 @@ file TAUPCT.template { pattern { DEVICE } - { AGEBD-TAUPCT{{ agebd_env_suffix_upper }} } + { AGEBD-TAUPCT@@agebd_env_suffix_upper@@ } } diff --git a/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_parameters.yaml b/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_parameters.yaml index c179f0d..24aa364 100644 --- a/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_parameters.yaml +++ b/services/taupct/current/ioc/AGEBD-CPCL-TAUPCT_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/taupct/current/systemd/AGEBD-SERVICE-TAUPCT.service b/services/taupct/current/systemd/AGEBD-SERVICE-TAUPCT.service index 8632a60..8695bb4 100644 --- a/services/taupct/current/systemd/AGEBD-SERVICE-TAUPCT.service +++ b/services/taupct/current/systemd/AGEBD-SERVICE-TAUPCT.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TAUPCT After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TAUPCT +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TAUPCT Restart=no [Install] diff --git a/services/timing/current/app/uv.lock b/services/timing/current/app/uv.lock index 24e45d2..94c899e 100644 --- a/services/timing/current/app/uv.lock +++ b/services/timing/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/timing/current/ioc/AGEBD-CPCL-TIMING_main.subs b/services/timing/current/ioc/AGEBD-CPCL-TIMING_main.subs index 768d0f2..9837aba 100644 --- a/services/timing/current/ioc/AGEBD-CPCL-TIMING_main.subs +++ b/services/timing/current/ioc/AGEBD-CPCL-TIMING_main.subs @@ -1,4 +1,4 @@ file TIMING.template { pattern { DEVICE } - { AGEBD-TIMING{{ agebd_env_suffix_upper }} } + { AGEBD-TIMING@@agebd_env_suffix_upper@@ } } diff --git a/services/timing/current/ioc/AGEBD-CPCL-TIMING_parameters.yaml b/services/timing/current/ioc/AGEBD-CPCL-TIMING_parameters.yaml index c179f0d..24aa364 100644 --- a/services/timing/current/ioc/AGEBD-CPCL-TIMING_parameters.yaml +++ b/services/timing/current/ioc/AGEBD-CPCL-TIMING_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/timing/current/systemd/AGEBD-SERVICE-TIMING.service b/services/timing/current/systemd/AGEBD-SERVICE-TIMING.service index 37d3228..7650e5c 100644 --- a/services/timing/current/systemd/AGEBD-SERVICE-TIMING.service +++ b/services/timing/current/systemd/AGEBD-SERVICE-TIMING.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TIMING After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TIMING +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TIMING Restart=no [Install] diff --git a/services/topuptool/current/app/uv.lock b/services/topuptool/current/app/uv.lock index a1e962a..137728b 100644 --- a/services/topuptool/current/app/uv.lock +++ b/services/topuptool/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_main.subs b/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_main.subs index 99c70ee..5edf85b 100644 --- a/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_main.subs +++ b/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_main.subs @@ -1,4 +1,4 @@ file TOPUPTOOL.template { pattern { DEVICE } - { AGEBD-TOPUPTOOL{{ agebd_env_suffix_upper }} } + { AGEBD-TOPUPTOOL@@agebd_env_suffix_upper@@ } } diff --git a/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_parameters.yaml b/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_parameters.yaml index c179f0d..24aa364 100644 --- a/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_parameters.yaml +++ b/services/topuptool/current/ioc/AGEBD-CPCL-TOPUPTOOL_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/topuptool/current/systemd/AGEBD-SERVICE-TOPUPTOOL.service b/services/topuptool/current/systemd/AGEBD-SERVICE-TOPUPTOOL.service index f322fb2..612e53f 100644 --- a/services/topuptool/current/systemd/AGEBD-SERVICE-TOPUPTOOL.service +++ b/services/topuptool/current/systemd/AGEBD-SERVICE-TOPUPTOOL.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TOPUPTOOL After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TOPUPTOOL +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TOPUPTOOL Restart=no [Install] diff --git a/services/tune/current/app/uv.lock b/services/tune/current/app/uv.lock index e7452fe..effe985 100644 --- a/services/tune/current/app/uv.lock +++ b/services/tune/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -382,6 +384,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/dd/96da98f892250475bdf2328112d7468abdd4acc7b902b6af23f4ed958ea0/pytz-2026.2-py2.py3-none-any.whl", hash = "sha256:04156e608bee23d3792fd45c94ae47fae1036688e75032eea2e3bf0323d1f126", size = 510141, upload-time = "2026-05-04T01:35:27.408Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/tune/current/ioc/AGEBD-CPCL-TUNE_main.subs b/services/tune/current/ioc/AGEBD-CPCL-TUNE_main.subs index 45ad64a..64f89f8 100644 --- a/services/tune/current/ioc/AGEBD-CPCL-TUNE_main.subs +++ b/services/tune/current/ioc/AGEBD-CPCL-TUNE_main.subs @@ -1,4 +1,4 @@ file TUNE.template { pattern { DEVICE } - { AGEBD-TUNE{{ agebd_env_suffix_upper }} } + { AGEBD-TUNE@@agebd_env_suffix_upper@@ } } diff --git a/services/tune/current/ioc/AGEBD-CPCL-TUNE_parameters.yaml b/services/tune/current/ioc/AGEBD-CPCL-TUNE_parameters.yaml index c179f0d..24aa364 100644 --- a/services/tune/current/ioc/AGEBD-CPCL-TUNE_parameters.yaml +++ b/services/tune/current/ioc/AGEBD-CPCL-TUNE_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/tune/current/systemd/AGEBD-SERVICE-TUNE.service b/services/tune/current/systemd/AGEBD-SERVICE-TUNE.service index a2ef74f..e3d8433 100644 --- a/services/tune/current/systemd/AGEBD-SERVICE-TUNE.service +++ b/services/tune/current/systemd/AGEBD-SERVICE-TUNE.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TUNE After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TUNE +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TUNE Restart=no [Install] diff --git a/services/tunebump/current/app/uv.lock b/services/tunebump/current/app/uv.lock index fa7fbfc..30017a1 100644 --- a/services/tunebump/current/app/uv.lock +++ b/services/tunebump/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -288,6 +290,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_main.subs b/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_main.subs index eda0773..1b568b7 100644 --- a/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_main.subs +++ b/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_main.subs @@ -1,4 +1,4 @@ file TUNEBUMP.template { pattern { DEVICE } - { AGEBD-TUNEBUMP{{ agebd_env_suffix_upper }} } + { AGEBD-TUNEBUMP@@agebd_env_suffix_upper@@ } } diff --git a/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_parameters.yaml b/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_parameters.yaml index c179f0d..24aa364 100644 --- a/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_parameters.yaml +++ b/services/tunebump/current/ioc/AGEBD-CPCL-TUNEBUMP_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/tunebump/current/systemd/AGEBD-SERVICE-TUNEBUMP.service b/services/tunebump/current/systemd/AGEBD-SERVICE-TUNEBUMP.service index 1c9313b..623ae62 100644 --- a/services/tunebump/current/systemd/AGEBD-SERVICE-TUNEBUMP.service +++ b/services/tunebump/current/systemd/AGEBD-SERVICE-TUNEBUMP.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TUNEBUMP After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TUNEBUMP +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TUNEBUMP Restart=no [Install] diff --git a/services/tunefbx/current/app/uv.lock b/services/tunefbx/current/app/uv.lock index 46b65ea..b06290c 100644 --- a/services/tunefbx/current/app/uv.lock +++ b/services/tunefbx/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_main.subs b/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_main.subs index 4ce5b49..91e35d9 100644 --- a/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_main.subs +++ b/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_main.subs @@ -1,4 +1,4 @@ file TUNEFBX.template { pattern { DEVICE } - { AGEBD-TUNEFBX{{ agebd_env_suffix_upper }} } + { AGEBD-TUNEFBX@@agebd_env_suffix_upper@@ } } diff --git a/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_parameters.yaml b/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_parameters.yaml index c179f0d..24aa364 100644 --- a/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_parameters.yaml +++ b/services/tunefbx/current/ioc/AGEBD-CPCL-TUNEFBX_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/tunefbx/current/systemd/AGEBD-SERVICE-TUNEFBX.service b/services/tunefbx/current/systemd/AGEBD-SERVICE-TUNEFBX.service index 85688a0..ce93033 100644 --- a/services/tunefbx/current/systemd/AGEBD-SERVICE-TUNEFBX.service +++ b/services/tunefbx/current/systemd/AGEBD-SERVICE-TUNEFBX.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TUNEFBX After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TUNEFBX +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TUNEFBX Restart=no [Install] diff --git a/services/tunefby/current/app/uv.lock b/services/tunefby/current/app/uv.lock index ae9bbd5..9639669 100644 --- a/services/tunefby/current/app/uv.lock +++ b/services/tunefby/current/app/uv.lock @@ -10,6 +10,7 @@ dependencies = [ { name = "gitpython" }, { name = "h5py" }, { name = "pyepics" }, + { name = "pyyaml" }, { name = "typer" }, ] @@ -18,6 +19,7 @@ requires-dist = [ { name = "gitpython", specifier = ">=3.1.50" }, { name = "h5py", specifier = ">=3.16.0" }, { name = "pyepics", specifier = ">=3.5.10" }, + { name = "pyyaml", specifier = ">=6.0.3" }, { name = "typer", specifier = ">=0.23.2" }, ] @@ -284,6 +286,23 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, ] +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/a0/39350dd17dd6d6c6507025c0e53aef67a9293a6d37d3511f23ea510d5800/pyyaml-6.0.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", size = 184227, upload-time = "2025-09-25T21:31:46.04Z" }, + { url = "https://files.pythonhosted.org/packages/05/14/52d505b5c59ce73244f59c7a50ecf47093ce4765f116cdb98286a71eeca2/pyyaml-6.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", size = 174019, upload-time = "2025-09-25T21:31:47.706Z" }, + { url = "https://files.pythonhosted.org/packages/43/f7/0e6a5ae5599c838c696adb4e6330a59f463265bfa1e116cfd1fbb0abaaae/pyyaml-6.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", size = 740646, upload-time = "2025-09-25T21:31:49.21Z" }, + { url = "https://files.pythonhosted.org/packages/2f/3a/61b9db1d28f00f8fd0ae760459a5c4bf1b941baf714e207b6eb0657d2578/pyyaml-6.0.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", size = 840793, upload-time = "2025-09-25T21:31:50.735Z" }, + { url = "https://files.pythonhosted.org/packages/7a/1e/7acc4f0e74c4b3d9531e24739e0ab832a5edf40e64fbae1a9c01941cabd7/pyyaml-6.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", size = 770293, upload-time = "2025-09-25T21:31:51.828Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ef/abd085f06853af0cd59fa5f913d61a8eab65d7639ff2a658d18a25d6a89d/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", size = 732872, upload-time = "2025-09-25T21:31:53.282Z" }, + { url = "https://files.pythonhosted.org/packages/1f/15/2bc9c8faf6450a8b3c9fc5448ed869c599c0a74ba2669772b1f3a0040180/pyyaml-6.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", size = 758828, upload-time = "2025-09-25T21:31:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/a3/00/531e92e88c00f4333ce359e50c19b8d1de9fe8d581b1534e35ccfbc5f393/pyyaml-6.0.3-cp310-cp310-win32.whl", hash = "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", size = 142415, upload-time = "2025-09-25T21:31:55.885Z" }, + { url = "https://files.pythonhosted.org/packages/2a/fa/926c003379b19fca39dd4634818b00dec6c62d87faf628d1394e137354d4/pyyaml-6.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", size = 158561, upload-time = "2025-09-25T21:31:57.406Z" }, +] + [[package]] name = "rich" version = "15.0.0" diff --git a/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_main.subs b/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_main.subs index 759a18d..9b64018 100644 --- a/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_main.subs +++ b/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_main.subs @@ -1,4 +1,4 @@ file TUNEFBY.template { pattern { DEVICE } - { AGEBD-TUNEFBY{{ agebd_env_suffix_upper }} } + { AGEBD-TUNEFBY@@agebd_env_suffix_upper@@ } } diff --git a/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_parameters.yaml b/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_parameters.yaml index c179f0d..24aa364 100644 --- a/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_parameters.yaml +++ b/services/tunefby/current/ioc/AGEBD-CPCL-TUNEFBY_parameters.yaml @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ agebd_env_suffix_lower }} -ioc_port: {{ ioc_port }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/services/tunefby/current/systemd/AGEBD-SERVICE-TUNEFBY.service b/services/tunefby/current/systemd/AGEBD-SERVICE-TUNEFBY.service index c2f2d0e..828b784 100644 --- a/services/tunefby/current/systemd/AGEBD-SERVICE-TUNEFBY.service +++ b/services/tunefby/current/systemd/AGEBD-SERVICE-TUNEFBY.service @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-TUNEFBY After=network.target [Service] -Environment=AGEBD_ENV={{ agebd_env }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{ agebd_env }}/bin/start_service.sh TUNEFBY +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh TUNEFBY Restart=no [Install] diff --git a/templates/qt/A_BD_{{ui_filename}}.ui.jinja b/templates/qt/A_BD_{{ui_filename}}.ui.jinja index 307ae6d..1e372dc 100644 --- a/templates/qt/A_BD_{{ui_filename}}.ui.jinja +++ b/templates/qt/A_BD_{{ui_filename}}.ui.jinja @@ -30,7 +30,7 @@ 0 - AGEBD-{{ service_name_upper }}{{ '{{ agebd_env_suffix_upper }}' }}:AO + AGEBD-{{ service_name_upper }}@@agebd_env_suffix_upper@@:AO 9.000000000000000 @@ -49,10 +49,10 @@ - Toggle AGEBD-ALH{{ '{{ agebd_env_suffix_upper }}' }}:{{ service_name_upper }}-ONOFF + Toggle AGEBD-ALH@@agebd_env_suffix_upper@@:{{ service_name_upper }}-ONOFF - AGEBD-ALH{{ '{{ agebd_env_suffix_upper }}' }}:{{ service_name_upper }}-ONOFF + AGEBD-ALH@@agebd_env_suffix_upper@@:{{ service_name_upper }}-ONOFF @@ -70,7 +70,7 @@ - Value of AGEBD-{{ service_name_upper }}{{ '{{ agebd_env_suffix_upper }}' }}:AO + Value of AGEBD-{{ service_name_upper }}@@agebd_env_suffix_upper@@:AO diff --git a/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_main.subs.jinja b/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_main.subs.jinja index 78f2f06..a209fa1 100644 --- a/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_main.subs.jinja +++ b/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_main.subs.jinja @@ -1,4 +1,4 @@ file {{ service_name_upper }}.template { pattern { DEVICE } - { AGEBD-{{ service_name_upper }}{{ '{{ agebd_env_suffix_upper }}' }} } + { AGEBD-{{ service_name_upper }}@@agebd_env_suffix_upper@@ } } diff --git a/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_parameters.yaml.jinja b/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_parameters.yaml.jinja index 8748d7c..24aa364 100644 --- a/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_parameters.yaml.jinja +++ b/templates/service/{{service_name_lower}}/current/ioc/AGEBD-CPCL-{{service_name_upper}}_parameters.yaml.jinja @@ -1,6 +1,6 @@ cpu_architecture: x86_64 epics_version: 7.0.8 -ioc_host: sls-vserv-bd-01{{ '{{ agebd_env_suffix_lower }}' }} -ioc_port: {{ '{{ ioc_port }}' }} +ioc_host: sls-vserv-bd-01@@agebd_env_suffix_lower@@ +ioc_port: @@ioc_port@@ os: RHEL8 os_id: rhel diff --git a/templates/service/{{service_name_lower}}/current/systemd/AGEBD-SERVICE-{{service_name_upper}}.service.jinja b/templates/service/{{service_name_lower}}/current/systemd/AGEBD-SERVICE-{{service_name_upper}}.service.jinja index 61b1e48..2bdaf79 100644 --- a/templates/service/{{service_name_lower}}/current/systemd/AGEBD-SERVICE-{{service_name_upper}}.service.jinja +++ b/templates/service/{{service_name_lower}}/current/systemd/AGEBD-SERVICE-{{service_name_upper}}.service.jinja @@ -3,9 +3,9 @@ Description=AGEBD-SERVICE-{{ service_name_upper }} After=network.target [Service] -Environment=AGEBD_ENV={{ '{{ agebd_env }}' }} +Environment=AGEBD_ENV=@@agebd_env@@ Environment=PYTHONUNBUFFERED=1 -ExecStart=/sls/bd/hla/{{'{{ agebd_env }}'}}/bin/start_service.sh {{ service_name_upper }} +ExecStart=/sls/bd/hla/@@agebd_env@@/bin/start_service.sh {{ service_name_upper }} Restart=no [Install]