/integration-data-provider

Mirror of the integration/data-provider repo

Primary LanguagePythonApache License 2.0Apache-2.0

ONAP data provider

Data ingestion service for ONAP.

Description

Data provider is a project to provide a tool to automate common ONAP resource creation. For many of tasks in ONAP some resources are needed and could be created once, like cloud region, complex or customer in A&AI. With that tool it can be automated to create them for every ONAP instance. It can be also used to create requested resource on already running instance on demand.

Usage

This project is intended to be included in automation chain, e.g. triggered from the pipeline. You can also run it locally using Python interpreter or Docker image.

Installation

To run onap-data-provider Python >= 3.8 version is required. Install it using

python setup.py install

command. You can call then

onap-data-provider

command.

Run locally

When installed onap-data-provider is ready to work. We need some data to be created. Let's use samples/vendor.yaml and create SDC's Vendor resource. Call

onap-data-provider -f samples/vendor.yaml

and in your ONAP instance Vendor resource should be created. If that resource already exists no new data will be created. Check samples directory to get more examples of files which describes resources to create.

You can use multiple files as an input:

onap-data-provider -f samples/vendor.yaml -f samples/vsp.yaml

Directories could be used as well:

onap-data-provider -f samples/

Configuration

Configuration is needed if your environment setup is different that usuall so ONAP components listen on different hosts/ports than default, so are available on other URLs than:

AAI_URL     = "https://aai.api.sparky.simpledemo.onap.org:30233"
CDS_URL     = "http://portal.api.simpledemo.onap.org:30449"
MSB_URL     = "https://msb.api.simpledemo.onap.org:30283"
SDC_BE_URL  = "https://sdc.api.be.simpledemo.onap.org:30204"
SDC_FE_URL  = "https://sdc.api.fe.simpledemo.onap.org:30207"
SDNC_URL    = "https://sdnc.api.simpledemo.onap.org:30267"
SO_URL      = "http://so.api.simpledemo.onap.org:30277"
VID_URL     = "https://vid.api.simpledemo.onap.org:30200"
CLAMP_URL   = "https://clamp.api.simpledemo.onap.org:30258"
VES_URL     = "http://ves.api.simpledemo.onap.org:30417"
DMAAP_URL   = "http://dmaap.api.simpledemo.onap.org:3904"

If you want to use another URLs you need to override default onap-data-provider settings by create Python file with values you want to use. Example: I want to test onap-data-provider data creation on my "test" ONAP instance which is available on "172.17.0.1" IP address, so I need to create my_test_onap_instance_settings.py Python file which looks:

AAI_URL     = "https://172.17.0.1:30233"
CDS_URL     = "http://172.17.0.1:30449"
MSB_URL     = "https://172.17.0.1:30283"
SDC_BE_URL  = "https://172.17.0.1:30204"
SDC_FE_URL  = "https://172.17.0.1:30207"
SDNC_URL    = "https://172.17.0.1:30267"
SO_URL      = "http://172.17.0.1:30277"
VID_URL     = "https://172.17.0.1:30200"
CLAMP_URL   = "https://172.17.0.1:30258"
VES_URL     = "http://172.17.0.1:30417"
DMAAP_URL   = "http://172.17.0.1:3904"

and then if I call

ONAP_PYTHON_SDK_SETTINGS=my_test_onap_instance_settings onap-data-provider ...

all data are going to be created on my local instance.

Set proxy

ONAP data provider can be run with proxy configured. You need to pass urls you want to use for proxy connection as --proxy arguments. Call onap-data-provider -f <infra-file> --proxy http://localhost:8080 https://localhost:8080 to setup proxy for http and https on localhost:8080 address.

Data verification

You can verify the data provided is correct, before you would try to actually push it to the ONAP instance. To do so, use the flag --validate-only:

onap-data-provider -f samples/vendor.yml --validate-only

For reference, please see example data files under samples/ directory.

Development and testing

The following utilities are used within the project:

  • Black
  • mypy
  • pydocstyle

To run all the tests (unit tests, linter and mypy checks), install tox and then run it:

pip install tox
tox .

Licenses

The software that data-provider is built on uses the following licenses.

  • Apache 2 License: onapsdk
  • MIT license: PyYAML, jsonschema