Definition
Related Epic: SDNC-887
There are two new services arround SDN-R Mountpoints planned:
- Use DMaaP as ONAP internal communication services
- Create two seperate bundles in ccsdk/feature-sdnr/wt
- Overall architecture: SDNC-888
Mountpoint provider
- Deliver SDN-R Mountpoint status changes over DMaaP
- Stories are: SDNC-889
- Proposed bundle name: sdnr-wt-mountpoint-state-provider
- Register listener to MDSAL for mountpoint changes and provide related information
- Related disussion: model-driven DMaaP Agent
- Uses ClusteredDataTreeChangeListener for NetconfChangeListener
Mountpoint registrar for VES
- Manage SDN-R Mountpoints
- Methods are: Create, Remove
- Stories are: SDNC-890
- Proposed bundle name: sdnr-wt-mountpoint-registrar
- VES message: pnfRegistration
Integration test
- Story: SDNC-891
Development related
- Location for bundles: ccsdk/feature - sdnr/wt
- Development: Repository: onap-sdnr, branch:odlux-provider
- Test environment with container setup: dmaap + sdnr + sdnrdb
- Sending VES Message in https://git-highstreet-technologies.com/highstreet/sdnr-interfacing-aai-dcae
- Command for registration: pnfRegistration
- Use case: https://wiki.onap.org/display/DW/5G+-+Configuration+with+NETCONF
- JSONSchema: https://git.onap.org/dcaegen2/collectors/ves/tree/etc/CommonEventFormat_30.0.1.json
- Version of VES: 7.1 Files Version: 30.0.1
- Simulator VES/Netconf: Availability October
Open:
- Topic name in DMaaP for such messages: unauthenticated.VES_PNFREG_OUTPUT
Configuration files
- The mountpoint-registrar bundle uses 1 configuration file (it is located in the $ODL_HOME/etc directory by default) -
- dmaap-vesmsg-listener.properties - This file contains a property key by the name - subscriptions and its values are fully qualified Java class names and consumer properties file names separated by : (colon) and ; (semicolon) Ex: subscriptions=org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.DMaaPPNFRegVESMsgConsumer:pnfRegVESmsgConsumer.properties
In the example above, the subscriptions property value contains 2 parts separated by a : (colon). The value before the : (colon) contains a fully qualified Java class name which implements the DMaaPVESMsgConsumer class. The value after the : (colon) contains a consumer properties file as understood by DMaaP consumer implementation. There can be any number of "Java class : consumer properties file" values separated by a ; (semicolon) for the subscriptions property. Note: the example value shown above is identical to the value in the dmaap-vesmsg-listener.properties file shipped with the bundle and this should not be changed.
- dmaap-vesmsg-listener.properties - This file contains a property key by the name - subscriptions and its values are fully qualified Java class names and consumer properties file names separated by : (colon) and ; (semicolon) Ex: subscriptions=org.onap.ccsdk.features.sdnr.wt.mountpointregistrar.impl.DMaaPPNFRegVESMsgConsumer:pnfRegVESmsgConsumer.properties
- The consumer properties file contains information about the Kafka topic, consumer ID, group ID, authorization information etc. This bundle ships a consumer properties file with the name pnfRegVESmsgConsumer.properties and this file is by default in the $ODL_HOME/etc directory.
Usage
- Install DMaaP as per instructions in - How to set up a local DMaaP installation in Docker for testing. This is based on Amsterdam. The latest DMaaP repository can be retrieved using information in - Resources and Repositories
- Installing and starting DMaaP as per the instructions in (1) above brings up 3 docker containers - dmaap:localadapt , dockercompose_kafka and wurstmeister/zookeeper
- Install VESCollector. Detailed instructions are at - https://github.com/onap/dcaegen2-collectors-ves. The DMaaP topics that VESCollector manages are present in etc/DmaapConfig.json file. cambria.topic refers to the topics that VESCollector manages. cambria.hosts value should match the IP Address/Hostname of the DMaaP instance.
- Once we have DMaaP, Kafka, zoopkeeper and VESCollector running, we can send pnfRegistration VES message using the pnfRegister.sh script located at https://git-highstreet-technologies.com/highstreet/sdnr-interfacing-aai-dcae. The "config" file has to be updated with the correct DCAE VES Collector communication end point
- On executing the pnfRegister.sh script (ex: pnfRegister.sh 1234), a VES message is sent to the VESCollector which processes the VES message and checks for conformance as per the JSON schema and if everything is fine, puts the message in the DMaaP topic
- Deploy SDN-R and check if the mountpoint-registrar bundle is running correctly by looking for the following messages in the karaf.log -
- DMaaPPNFRegVESMsgConsumer received ResponseCode: 200
- DMaaPPNFRegVESMsgConsumer received ResponseMessage:
- No data received from fetch. Pausing 5000 ms before retry
- Once the mountpoint-registrar bundle is running correctly, it starts to consume any VES messages coming on the topic and creates a mountpoint in SDN-R by parsing the information in the VES Message. The created mountpoint can be seen by logging into the ODLUX GUI.
- Currently the created mountpoint uses SSH for communicating with the PNF. A TLS based mountpoint implementation is in the works.