Skip to main content

Services required to run Karabo

Project description

Karabo SCADA Framework - Services

Karabo Badge PyPI - Version PyPI - Python Version PyPI - License PyPI - Wheel GitHub language count GitHub top language GitHub contributors GitHub commit activity GitHub Repo stars

This package provides the service commands required in a Karabo environment.

Please check https://pypi.org/project/Karabo/ for an overview of Karabo's components and ways to install the full system.

Installation

To install run

pip install karabo.services

or use the full or services options when installing the karabo package:

pip install karabo[full]
pip install karabo[services]

This package itself is pure Python but depends on karabo.daemontools which requires compiled code.

You can add the option with_cpp to also install karabo.cpp and the associated services

pip install karabo.services[with_cpp]

List of commands

karabo-activate

Initially activates a Karabo environment by initializing structures into a user defined directory. You will need to execute this command first, before most other commands succeed (you'll get a message that Karabo was not found if you didn't).

Execute

karabo-activate --init-to $PATH --help

to see the options for creating a Karabo environment in PATH. You can use the the --broker-host and --broker-topic modifiers to configure the default broker settings Karabo servers added to this environment will use. Run karabo-activate again (you can omit --init-to now) to reconfigure these settings. The --backbone option will only take effect when an environment is first created, and will install the Karabo backbone services into this environment.

Starting a Karabo standalone system

If you wish to run Karabo standalone you can do this if you have podman or docker installed on the system.

First, run

karabo-activate --init-to PATH --standalone

Then run

podman-compose -f $PATH/var/containers/compose.yaml up

or (docker-compose ...). This will start containerized version of the services a full Karabo installation requires:

  • A RabbitMQ broker (user: xfel, pw: karabo)
  • An Influx database instance for logging (user: infadm, pw: admpwd)
  • A Grafana installation with the Influx database as a pre-provisioned source (user: admin, pw: admin)

Note that the Grafana provisioning assumes karabo as the broker topic in use. If you've used karabo-activate --broker-topic TOPIC you'll need to edit the data source to refer to a database of TOPIC from inside Grafana.

Additionally, the above setup will use a local sqlite database for projects. You can switch this to MySQL database by providing the following arguments to karabo-activate:

  • --project-db HOST:PORT
  • --project-db-user USER
  • --project-db-pw PASSWORD
  • --project-db-name DATABASE_NAME

Finally, run

$PATH/activate

followed by

karabo-start

ikarabo

The interactive Karabo Python shell. Includes device orchistration and scripting using Karathon.

karabo-start, karabo-stop, karabo-kill

Scripts that start, stop, or kill a Karabo device server managed by karabo.daemontools or all such servers.

karabo-check

Outputs the current status of Karabo services managed by karabo.daemontools

karabo-add-deviceserver, karabo-remove-deviceserver

Adds or removes a Karabo device server to the services managed by karabo.daemontools.

Additional commands.

This package exposes additional (internal) commands as entrypoints which are not further described here.

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

karabo_services-3.0.9.tar.gz (20.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

karabo_services-3.0.9-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file karabo_services-3.0.9.tar.gz.

File metadata

  • Download URL: karabo_services-3.0.9.tar.gz
  • Upload date:
  • Size: 20.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.11

File hashes

Hashes for karabo_services-3.0.9.tar.gz
Algorithm Hash digest
SHA256 a215a6677387d487c5e2af237d81b89655e6c0a2479b6cc19dc984e2800ca70e
MD5 2e5803096001d78d0e9b31480f3860a9
BLAKE2b-256 a0b020102e82754c58dc19d728ed8332f9ac2cdb03fb5d7e52df334f7a2e3c8b

See more details on using hashes here.

File details

Details for the file karabo_services-3.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for karabo_services-3.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 6787f94caf13524bbb069c8f80b1a4ff527eb5efc26db96e6e9d8451b1f470ca
MD5 f934b73f1b150f2f9566a5392d56f21e
BLAKE2b-256 15a36cf2b0261e7fa9259b7f433984da1013b2b26ad213efd885383ba9735d38

See more details on using hashes here.

Supported by

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