Skip to main content

SIP Execution Control Configuration Database library.

Project description

SIP Configuration Service

Introduction

The Configuration Database is a backing service for use by SKA SIP Execution Control (EC) and Tango Control components. This package contains a library providing specialised functions for interfacing with data objects in the EC Configuration Database.

For a description of the Data Model used by this library see Sections 7.4.4 and 7.5.6 of the SIP Report.

This library provides modules for each of the data objects stored within the EC configuration database. These are built on top of a simple low-level wrapper to the Python Redis API, which handles connections to the database and abstraction from the Python Redis API.

Installation

This library can be installed using pip with the following command:

pip install -U skasip-config-db

Usage

Example usage:

# coding: utf-8
"""Example usage."""
from sip_config_db.scheduling import Subarray, SchedulingBlockInstance
from sip_config_db.states import SDPState
from sip_config_db.utils.generate_sbi_config import generate_sbi_config

sdp_state = SDPState()
print(sdp_state.current_state)

subarray = Subarray(0)
subarray.activate()
print(subarray.active)

sbi_config = generate_sbi_config(register_workflows=True)
sbi = SchedulingBlockInstance.from_config(sbi_config)
print(sbi.id)

Utility Scripts

The package installs a number of utility scripts, described below:

Initialise the database.

skasip_config_db_init [--data-path=PATH]

Can be used to initialise the configuration database. The optional --data-path=PATH argument, can be used to defined a custom path containing the initial set of SDP services and workflows used to initialise the database. If specifying --data-path, and the specified PATH does not exist a copy of the default data pat will be created at the specified path.

Register workflows

Register workflows from the specified workflow path.

skasip_config_db_register_workflows [workflow path]

Add an SBI to the database

Adds an SBI to the database.

skasip_config_db_add_sbi [--subarray N] [--activate] [--help]

Generate an SBI JSON configuration

Generate an SBI JSON configuration.

skasip_config_db_sbi_json

Update the current state

Updates the current state of SDP or a specified service.

skasip_config_db_update_state [--service SUBSYSTEM.NAME.VERSION] [--help] new_state

List workflow definitions

List known workflow definitions.

skasip_config_db_workflow_definitions

Running tests

Unit tests are run automatically the SIP CI/CD service. It is also possible to run them manually with the following commands from the root SIP:

Note: a Redis db container must be started first in order for most of these tests to pass (See below)

virtualenv -p python3 venv
source venv/bin/activate
pip install -r testing_requirements.txt
pip install -r sip/execution_control/configuration_db/requirements.txt
python3 -m pytest --pylint --codestyle --docstyle -s -v \
    --pylint-rcfile=.pylintrc --rootdir=. \
    sip/execution_control/configuration_db

Starting Configuration Database Redis containers.

To start Docker containers for a Redis Db instance (with a persistent volume) as well as a Redis Commander instance (useful for debugging) issue the following command:

docker stack deploy -c docker-compose.yml [stack name]

Once finished, to clean up.

docker stack rm [stack name]

It is also possible to run redis server natively (without Docker) with:

redis-server

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

skasip_config_db-1.3.0a1.tar.gz (28.9 kB view details)

Uploaded Source

Built Distribution

skasip_config_db-1.3.0a1-py3-none-any.whl (58.5 kB view details)

Uploaded Python 3

File details

Details for the file skasip_config_db-1.3.0a1.tar.gz.

File metadata

  • Download URL: skasip_config_db-1.3.0a1.tar.gz
  • Upload date:
  • Size: 28.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

File hashes

Hashes for skasip_config_db-1.3.0a1.tar.gz
Algorithm Hash digest
SHA256 354bb712c80a8723d99d043f9c6f849b198f96c504dd617cdba1d2b57cfc6d54
MD5 b3c5ba7a190f6b73377f2e6778af7f94
BLAKE2b-256 70bf95580478a789c12e0754ee3857c466d091c24c86bd726b9f23dd9435c2a4

See more details on using hashes here.

File details

Details for the file skasip_config_db-1.3.0a1-py3-none-any.whl.

File metadata

  • Download URL: skasip_config_db-1.3.0a1-py3-none-any.whl
  • Upload date:
  • Size: 58.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.5

File hashes

Hashes for skasip_config_db-1.3.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 39d107e6e4ae571cc1ba819eec0381498d91ae4b6fe85d6f1489ab37768823a0
MD5 19d1530dabeb12e7e50c500596f7d412
BLAKE2b-256 2b7a8f63261c3f53af6c103a3c355af07df0813fcae1b9f0d5579e6ab3b0b53a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page