Skip to main content

Provides an Acumos model runner for DCAE

Project description

Acumos DCAE Model Runner

The Acumos DCAE model runner enables Acumos Python models to be run as if they were DCAE components.

Each Acumos model method is mapped to a subscriber and publisher stream, with _subscriber and _publisher suffixes respectively. For example, a model with a transform method would have transform_subscriber and transform_publisher streams.

The model runner implements DCAE APIs such as health checks and configuration updates.

The acumos_dcae_model_runner Python package provides a command line utility that can be used to instantiate the model runner. See the tutorial for more information.

The acumos_dcae_model_runner package should be installed in the docker image that is ultimately on-boarded into DCAE. The model runner CLI utility should be the entry point of that Docker image, as shown in the Dockerfile provided in example/ directory in the root of the Acumos DCAE Model Runner repository.

Installation

The acumos_dcae_model_runner package can be installed with pip like so:

pip install acumos_dcae_model_runner

Note: installing acumos_dcae_model_runner will also install the latest version of dcaeapplib, which is only compatible with DCAE Dublin or later. To use acumos_dcae_model_runner with earlier versions of DCAE, be sure to pin or bound the version of dcaeapplib appropriately. Consult the DCAE documentation for more information.

Tutorial

CLI Usage

To execute the model runner, use the provided CLI:

$ acumos_dcae_model_runner --help
usage: acumos_dcae_model_runner [-h] [--timeout TIMEOUT] [--debug] model_dir

positional arguments:
  model_dir          Directory that contains either the dumped model.zip or
                     its unzipped contents.

optional arguments:
  -h, --help         show this help message and exit
  --timeout TIMEOUT  Timeout (ms) used when fetching.
  --debug            Sets the log level to DEBUG

DCAE Onboarding Example

The python-dcae-model-runner repository has an example/ directory that shows how an Acumos model can be onboarded as a DCAE component.

After executing the steps below, the directory should have this structure:

example/
├── Dockerfile
├── dcae-artifacts
   ├── component.json
   ├── number-out.json
   └── numbers-in.json
├── example-model
   ├── metadata.json
   ├── model.proto
   └── model.zip
├── example_model.py
└── requirements.txt

Note: For this example, the requirements.txt file should reflect the packages and versions listed in example-model/metadata.json.

Steps

1) Create the Acumos model

The example_model.py script defines a simple Acumos model that can add two integers together. The following will generate example-model/:

python example_model.py
2) Build the docker image
docker build -t acumos-python-model-test:0.1.0 .
3) Onboard the Acumos model to DCAE

The onboarding procedure involves adding the component and data format artifacts provided in example/dcae-artifacts to the DCAE catalog.

Refer to the official DCAE onboarding documentation for the full procedure.

Acumos DCAE Model Runner Release Notes

v0.1.3

  • Updated major release bound for dcaeapplib

v0.1.2

  • Removed dependency link for dcaeapplib

v0.1.1

  • Updated dependency link for dcaeapplib. It released a patch that fixed an authentication error. The dcaeapplib dependency link will be removed once dcaeapplib is hosted in PyPI.

v0.1.0

  • Initial release of the Acumos DCAE Python model runner

Contributing Guidelines

Testing

We use a combination of tox, pytest, and flake8 to test acumos. Code which is not PEP8 compliant (aside from E501) will be considered a failing test. You can use tools like autopep8 to “clean” your code as follows:

$ pip install autopep8
$ cd python-dcae-model-runner
$ autopep8 -r --in-place --ignore E501 acumos_dcae_model_runner/

Run tox directly:

$ cd python-dcae-model-runner
$ export WORKSPACE=$(pwd)  # env var normally provided by Jenkins
$ tox

You can also specify certain tox environments to test:

$ tox -e py34  # only test against Python 3.4
$ tox -e flake8  # only lint code

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

acumos_dcae_model_runner-0.1.3.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

acumos_dcae_model_runner-0.1.3-py2-none-any.whl (10.5 kB view details)

Uploaded Python 2

File details

Details for the file acumos_dcae_model_runner-0.1.3.tar.gz.

File metadata

  • Download URL: acumos_dcae_model_runner-0.1.3.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.5

File hashes

Hashes for acumos_dcae_model_runner-0.1.3.tar.gz
Algorithm Hash digest
SHA256 b10478dd4d826a3786cc6c29dda51fa1ddd0d7e2b77e84becc3a9403e2ae5a7d
MD5 218a47046d5f8010e2ad2dcab9addfd0
BLAKE2b-256 7051bf001d0304d0350cde194989ea0f3748732ee2168d005b279a2de3b66b0c

See more details on using hashes here.

File details

Details for the file acumos_dcae_model_runner-0.1.3-py2-none-any.whl.

File metadata

  • Download URL: acumos_dcae_model_runner-0.1.3-py2-none-any.whl
  • Upload date:
  • Size: 10.5 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/28.8.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/2.7.5

File hashes

Hashes for acumos_dcae_model_runner-0.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 f0777cd62032f887c1f778ab91d56f6f35a5579706d8bc9f77c823fea8efbec7
MD5 fa50ea87de67b6b0de152aa1cdd734f2
BLAKE2b-256 50b65d988a62c3b1648db2ef7d0384db0d9d0e75648b4b501cba2ac3e58f7592

See more details on using hashes here.

Supported by

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