NSI-AuRA, the Network Service Interface (NSI) ultimate Requester Agent (uRA) for the Advanced North Atlantic (ANA) consortium (https://www.anaeng.global). This is part of a project called ANA-GRAM, the ANA Global Resource Aggregation Method, to federate the ANA trans-Atlantic links via network automation.
Clone the GitHub repository:
git clone https://github.com/workfloworchestrator/nsi-aura.gitCreate a Python virtual environment, like venv, and install the dependencies:
python -m venv venv
. venv/bin/activate
pip install .And run nsi-aura:
PYTHONPATH=. python auraEditable install with development tools:
pip install '.[dev]'Besides the Python packages from dev, also Graphviz needs to be installed and available
in your PATH. Depending on the platform being used for development, use something like the following
to install Graphviz:
brew install graphvizor
apt install graphvizAnd then (re)generate the image(s) in the images folder:
python aura/fsm.pyThe release git tag is the only place a version is written by hand. pyproject.toml declares
dynamic = ["version"] and setuptools-scm derives it: a tag builds 0.3.2, any other commit builds
the next patch as a dev release with its commit, 0.3.3.dev3+g1a2b3c4. AuRA logs that version at
startup and exposes it via importlib.metadata.version("nsi-aura").
The container build has no .git, so .github/workflows/build-push-container.yml checks out with
fetch-depth: 0, resolves the version on the runner, and passes it as --build-arg VERSION=...,
which the Dockerfile hands to setuptools-scm as SETUPTOOLS_SCM_PRETEND_VERSION_FOR_NSI_AURA. A
build without that argument fails rather than producing a mislabelled image:
docker build --build-arg VERSION="$(uvx --from setuptools-scm python -m setuptools_scm)" -t nsi-aura .Arno Bakker (SURF)
Hans Trompert (SURF)
Apache-2.0