Lightweight TOSCA orchestrator lightweight API
Project description
xOpera API
An HTTP API interface to the opera orchestrator.
Mimics CLI commands.
WIP.
Development
Requires Python >= 3.7.
To begin:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
OpenAPI base code is generated with generate.sh and is not checked in to the repository.
Other useful commands:
# openapi-generator basics
java -jar openapi-generator-cli-4.3.0.jar
java -jar openapi-generator-cli-4.3.0.jar help generate
java -jar openapi-generator-cli-4.3.0.jar validate --input-spec openapi-spec.yml --recommend
java -jar openapi-generator-cli-4.3.0.jar config-help --generator-name python-flask --full-details
Usage
With Docker:
docker-compose up --build -d
docker cp test.csar xopera-api_api_1:/app/
docker exec xopera-api_api_1 unzip test.csar
docker logs -f xopera-api_api_1
# prepare request inputs: service_template, inputs (in JSON object form, not a string)
curl -XPOST localhost:8080/validate -H "Content-Type: application/json" -d @inputs-request.json
curl -XPOST localhost:8080/deploy -H "Content-Type: application/json" -d @inputs-request.json
curl localhost:8080/status
curl localhost:8080/outputs
curl -XPOST localhost:8080/undeploy
With a local development installation:
./generate.sh
python3 -m venv .venv
source .venv/bin/activate
pip install wheel
pip install -r requirements.txt
cd src/
python3 -m opera.api.cli
curl localhost:8080
Building for PyPI, releases
- If the
operadependency version has changed, you must reflect that change insetup.cfg. - Generate sources with
./generate.sh. - Test built packages in a Docker container.
- Only release tags without any local changes present.
- Manually create and upload releases onto GitHub, no automation for that.
- Build and test before pushing tags to reduce rollbacks.
pip3 install -r requirements.txt
./generate.sh
git tag -a 1.2.3 -m 1.2.3
rm -rfv dist/
python setup.py sdist bdist_wheel
docker run -it --rm -v $(realpath ./dist/):/dist/:ro python:3.8-buster bash
pip3 install dist/*.whl
opera-api
pip3 uninstall -y opera-api
pip3 install dist/*.tar.gz
opera-api
twine upload --repository <pypi|testpypi> dist/*
# upload to github manually
git push --tags
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file opera-api-0.2.0.tar.gz.
File metadata
- Download URL: opera-api-0.2.0.tar.gz
- Upload date:
- Size: 20.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3260f8277395d555e3ffc9327ee9279afa713347eeec4a02da1bd17ab820b5ca
|
|
| MD5 |
531153ed47b57783e44e3aef2f72d588
|
|
| BLAKE2b-256 |
651a6fed5e0cd6f3296f57898227d4281c8e1f8c0c493784b6d3d81a492891e9
|
File details
Details for the file opera_api-0.2.0-py3-none-any.whl.
File metadata
- Download URL: opera_api-0.2.0-py3-none-any.whl
- Upload date:
- Size: 24.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.48.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f52c72812d134f6b676f1a30f3c6ee529a8e36fac0853302600657985fcb135
|
|
| MD5 |
dfa1e3b82b7f66c51ec21627d6611293
|
|
| BLAKE2b-256 |
e657d6eeb837a36111e4c4facf5e9a8da886325b627b0f49c0aea19da7174d55
|