# 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 --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