...
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
...
NB: must build pgsql-schema-generator to run it. Follow which can be generated by the following:
the build steps at Release J - Build
...
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:
Code Block |
---|
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):
...
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 data
the 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:
...
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
...
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.
Building
Once the code is cloned and requirements installed you should be able to start building TEIV and its components.
To build TEIV and its components with tests run the following command in the first /teiv
directory:
Code Block | ||
---|---|---|
| ||
mvn clean install |
Building with tests should create the following docker images:
o-ran-sc/smo-teiv-ingestion:latest
o-ran-sc/smo-teiv-exposure :latest
To build without tests run the following command in the first /teiv
directory (significantly faster). Do this with custom YANG:
Code Block |
---|
mvn clean install -Dmaven.test.skip=true |
Building without tests should create the following docker images:
o-ran-sc/smo-teiv-ingestion:latest
o-ran-sc/smo-teiv-exposure:latest
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:
Code Block |
---|
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):
...