Running
To run TEIV with your models pgsql-schema-generator is provided to generate PostgresSQL schemes from the YANG models which can be used in TEIV.
First of all you need the pgsql-schema-generator which can be generated by the following:
the build steps at Release J - Build
pulling the image directly from the Nexus Repository https://nexus3.o-ran-sc.org/#browse/browse:docker.snapshot:v2%2Fo-ran-sc%2Fsmo-teiv-pgsql-schema-generator%2Ftags%2Flatest
Building is a far more time consuming process and may lead to errors.
TEIV with pgsql-schema-generator
Things you should know:
If using you own YANG models place them in a new directory
generate-defaults
indocker-compose/
AND delete the default sql schemas indocker-compose/sql_scripts
if you are generating your own sql schemes with different YANG models, compared to the default YANG, the example events will not work, therefore
kafka-producer
must be commented out in the docker-compose.yml OR you can replace the example events with your own datathe pgsql-schema-generator may fail due to a permission error if the
docker-compose/sql_scripts
to fix this
In the /teiv/docker-compose directory run the following code to bring TEIV up:
docker-compose up
Running 'docker ps -a’ should show the following docker containers:
kafka-producer confluentinc/cp-kafka:7.6.1 (optional - automatically populates TEIV)
pgsql-schema-generator o-ran-sc/smo-teiv-pgsql-schema-generator:latest (optional - if you want to generate your own sql schemas)
kafka confluentinc/cp-kafka:7.6.1
kafka2 confluentinc/cp-kafka:7.6.1
kafka3 confluentinc/cp-kafka:7.6.1
topology-ingestion-inventory o-ran-sc/smo-teiv-ingestion:latest
topology-exposure-inventory o-ran-sc/smo-teiv-exposure:latest
zookeeper confluentinc/cp-zookeeper:6.2.1
dbpostgresql postgis/postgis:13-3.4-alpine
Once running there are some sample queries to try at Sample TEIV Queries
The /teiv/docker-compose
directory has everything needed to get TEIV up and running consisting of the following files and directories:
docker-compose.yml - contains all the services needed to run TEIV
sql_scripts - contains the sql scripts produced by the pgsql-schema-generator and a script used in the dbpostgresql container to check if the sql schemas are present
cloudEventProducer - contains a cloudEventProducer script that will produce kafka events to populate TEIV by running locally, cloudEventProducerForDockerCompose used for the
kafka-producer
service in docker-compomse.yml and the actual events are in the events directorygenerate-defaults - is an optional directory where you put your own YANG files to generate your own custom sql schemas from pgsql-schema-generator
copySqlSchemaFromPgsqlGenerator.sh - copies the sql schema generated from pgsql-schema-generator to the sql_scripts directory, renaming and replacing placeholders.
In docker-compose.yml there is an optional services:
kafka-producer
which will automatically run the cloudEventProducerForDockerCompose script to populate TEIV. Can comment out if this is not desired.pgsql-schema-generator
which will generate sql schemas from your YANG files atdocker-compose/generate-defaults
todocker-compose/sql_scripts
and use them automatically
pgsql-schema-generator locally
If successful built the files highlighted in green/yellow should be present.
The default sql scripts in /docker-compose/sql_scripts
were built from TEIVs default yang models provided in /teiv/teiv/src/main/resources/models
using the pgsql-schema-generator.
To run pgsql-schema-generator yourself, using the default YANG models or your own YANG models, copy YANG models into the /teiv/pgsql-schema-generator/src/main/resources/generate-defaults
directory and from /teiv/pgsql-schema-generator/
run:
mvn exec:java -Dexec.mainClass="org.oran.smo.teiv.pgsqlgenerator.DatabaseSchemaGeneratorApplication"
Once run successfully the sql schemas should be present in /teiv/pgsql-schema-generator/target
(highlighted in red below) and graphs representing the entities and relationships of the YANG models in /teiv/pgsql-schema-generator/target/graphs
(highlighted in blue below):