These artifacts contain the examples of how can be the CCSDK integrated with the lighty.io. This integration removes the dependency on the OSGi framework (Karaf) and the Blueprint dependency injection - instead it uses only the plain java like main method to start the application and plain java constructors as DI (but it is ready to be integrated with other frameworks).
The CCSDK lighty.io modules can be all started at once (as in this example) or only the selected group of them - in case there is no need to run them all.
For more information about the lighty.io visit the official web-page https://lighty.io or the GitHub repository.
ccsdk-lighty-module
The artifact ccsdk-lighty-module
contains implementation of the lighty.io module that groups all the other lighty.io modules from the other repositories (core, adaptors, plugins, northbound). These grouped modules can be started all at once using just a few lines of code.
In addition it contains implementation of the lighty.io module that groups the lighty.io controller (base services from the ODL), the RESTCONF lighty.io module (the RESTCONF from the ODL integrated with the lighty.io) and the CCSDK lighty.io module
ccsdk-lighty-distribution
The CCSDK lighty.io application can be started via main method from the Main class. This artifact generates the .zip file containing the .jar file and all other necessary libraries.
The path to the lighty.io configuration file can be passed to the main method (or to the .jar file) as an argument. This configuration file contains configuration for the lighty.io controller and the RESTCONF (for example the port or the IP address where should the RESTCONF listen or the yang modules that should be imported into the application). The example of the configuration file can be found in the resources directory. If path to the configuration file will not be passed through the main method then the default configuration will be used.
distribution-lighty-ubuntu-docker
The artifact distribution-lighty-ubuntu-docker
contains the Dockerfile and the docker-compose.yml files for the CCSDK lighty.io. Dockerfile is very similar to the original file from the distribution-odlsli-ubuntu
artifact and the docker-compose.yml to the original file from the src/main/yaml
directory in the root of this repository.
Necessary configuration files and the .zip file containing the CCSDK lighty.io application are copied by the maven plugins into the respective directories during the the maven build.
The Dockerfile unpacks the .zip distribution generated by the ccsdk-lighty-distribution
artifact and runs the startODL.sh script that starts the CCSDK lighty.io .jar file using the src/main/properties/lightyCcsdkConfig.json
configuration file.
The docker-compose.yml file contains three images - database, CCSDK lighty.io application and the DG builder.
In order to run the CCSDK lighty.io application build the distribution-lighty
repository using the maven with the docker profile enabled (command: mvn clean install -P docker
). Then run the docker-compose from the src/main/docker
directory (command: docker-compose -f docker-compose.yml up
).
After a few seconds CCSDK lighty.io application should be up and running together with the database and the DG builder.
DG builder web UI can be accessed through the http://localhost:3000
address and RESTCONF at the http://localhost:8383/restconf
address.
In the browser open the localhost:3000
URL. Login with the default username dguser
and the password test123
. In the top right corner click on the menu -> import -> Clipboard. Copy and paste the content of the hello_world.json
file (from the same directory where is this readme file located) to the text box. Then click on the OK button and place the graph to the sheet.
To upload and activate the imported graph click on the small empty square on the left side of the DGSTART
node and then click on the Upload XML
button. Then click on the ViewDG List
button and on the Activate
link in the row where imported graph is.
After the graph is activated it can be called using the POST REST request on the address:
http://<restconf_address:port>/restconf/operations/SLI-API:execute-graph
With the body like:
{ "input": { "module-name": "<name of the module (service-logic type node)>", "rpc-name": "<name of the rpc (method type node)>", "mode": "sync", "sli-parameter": [ ] } }
So in order to call imported hello world graph send the POST request to the address:
http://localhost:8383/restconf/operations/SLI-API:execute-graph
with the body:
{ "input": { "module-name": "Test", "rpc-name": "helloWorld", "mode": "sync", "sli-parameter": [ ] } }
Now the hello world message should be displayed in the console where the CCSDK lighty.io application is running.