-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
Introduction
************
-NBI is a Java 8 web application built over Spring Framework. Using Spring Boot 1.5.10 dependencies, it runs as a standalone application with an embedded Tomcat server.
+NBI is a Java 8 web application built over Spring Framework.
+Using Spring Boot 1.5.10 dependencies, it runs as a standalone
+application with an embedded Tomcat server.
************
Dependencies
************
-This project use various framework which are managed with Maven dependency management tool (see *pom.xml* file at root level) :
+This project use various framework which are managed with Maven
+dependency management tool (see *pom.xml* file at root level) :
- Swagger annotations
- `Spring Framework <https://github.com/spring-projects/spring-boot>`_
*************
Configuration
*************
-A configuration file, *src/main/resources/application-localhost.properties* list all the component interface that can be configured depending on the environment were the app is deployed.
-By default, the application runs with an embedded both MongoDB and MariaDB local instance.
-This file also list configurations of all the REST interface maid from NBI to other ONAP component such as SDC, AA&I and SO.
+A configuration file, *src/main/resources/application-localhost.properties*
+list all the component interface that can be configured depending on
+the environment were the application is deployed.
+By default, the application runs with an embedded both MongoDB and MariaDB
+local instance.
+This file also list configurations of all the REST interface maid from NBI
+to other ONAP component such as SDC, AA&I and SO.
***********
Source tree
***********
-This application provides ServiceOrder, ServiceCatalag and ServiceInventory as main functional resources and HealthCheck. Each resource is implemented independently in a package corresponding to its name.
+This application provides ServiceOrder, ServiceCatalag and ServiceInventory
+as main functional resources and HealthCheck. Each resource is implemented
+independently in a package corresponding to its name.
-*commons , configuration, and exceptions* are shared technical classes that provided for all the application.
+*commons , configuration, and exceptions* are shared technical classes that
+provided for all the application.
***********************************
**Locally**
-Ensure that you have a MongoDB and MariaDB instance running and properly configured in *application.properties* file.
+Ensure that you have a MongoDB and MariaDB instance running and properly
+configured in *application.properties* file.
Run *Application.java* class in your favorite IDE
-Or through a terminal, ensure that your maven installation is works and run *mvn spring-boot:run* command to start the application.
+Or through a terminal, ensure that your maven installation is works and
+run *mvn spring-boot:run* command to start the application.
**Docker**
-Requirements: `Docker engine <https://docs.docker.com/engine/>`_ and `docker-compose <https://docs.docker.com/compose/>`_.
+Requirements: `Docker engine <https://docs.docker.com/engine/>`_ and
+`docker-compose <https://docs.docker.com/compose/>`_.
To start the application:
+
1. Generate the application .jar file: `$ mvn clean package`
2. Configure the **.env** file
- 3. Start the *MariaDB* and *MongoDB* services: `$ docker-compose up -d mongo mariadb`
+ 3. Start the *MariaDB* and *MongoDB* services:
+ `$ docker-compose up -d mongo mariadb`
4. Build and start the *NBI* service: `$ docker-compose up --build -d nbi`
You can view the log output of the application with the following command:
`$ docker-compose logs -f nbi`
**Testing**
-When the app is running, you can access the API at :samp:`http://yourhostname:8080/nbi/api/v1` and fill the url with the name of the resources you asking for (/serviceSpecification, /service, /serviceOrder or /status)
+When the application is running, you can access the API at
+:samp:`http://yourhostname:8080/nbi/api/v1` and fill the URL with the name
+of the resources you asking for (/serviceSpecification, /service,
+/serviceOrder or /status)
You can run a test by using `VisualStudio RestClient plugin <https://github.com/Huachao/vscode-restclient>`_
-See the *restclient* package at root level to find *.vscode/settings.json* configuration file and */json/* package with samples requests that can be run.
-You can also trigger these endpoints with any RESTful client or automation framework.
+See the *restclient* package at root level to find *.vscode/settings.json*
+configuration file and */json/* package with samples requests that can be run.
+You can also trigger these endpoints with any RESTful client or automation
+framework.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
************
-NBI stands for NorthBound Interface. It brings to ONAP a set of API that can be used by external systems as BSS for example. These API are based on **TMF API**.
+NBI stands for NorthBound Interface. It brings to ONAP a set of API that can be
+used by external systems as BSS for example.
+These API are based on **TMF API**.
*******************************************
Global NBI architecture for Beijing release
*******************************************
-Following illustration provides a global view about nbi architecture,integration with other ONAP components and API resource/operation provided.
+Following illustration provides a global view about NBI architecture,
+integration with other ONAP components and API resource/operation provided.
.. image:: images/ONAP_External_ID_Beijing.jpg
:width: 800px
Developer Guide
***************
-Technical information about NBI (dependancies, configuration, running & testing) could be found here: :doc:`NBI_R1_Developer_Guide <NBI_R1_Developer_Guide>`
+Technical information about NBI
+(dependencies, configuration, running & testing)
+could be found here: :doc:`NBI_R1_Developer_Guide <NBI_R1_Developer_Guide>`
-API Flow illustration (with example messages) is described in this document: :download:`nbicallflow.pdf <../offeredapis/pdf/nbicallflow.pdf>`
+API Flow illustration (with example messages) is described in this document:
+:download:`nbicallflow.pdf <../offeredapis/pdf/nbicallflow.pdf>`
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
Configuration
=============
-A configuration file, *src/main/resources/application-localhost.properties* list all the component interface that can be configured depending on the environment were the app is deployed.
-By default, the application runs with an embedded both MongoDB and MariaDB local instance.
-This file also list configurations of all the REST interface maid from NBI to other ONAP component such as SDC, AA&I and SO.
+A configuration file, *src/main/resources/application-localhost.properties*
+list all the component interface that can be configured depending on the
+environment were the application is deployed.
+By default, the application runs with an embedded both MongoDB and MariaDB
+local instance.
+This file also list configurations of all the REST interface maid from NBI
+to other ONAP component such as SDC, AA&I and SO.
**************
Changing values
***************
-To adapt application parameters to your context, you need to set up some environment attributes. For example :
+To adapt application parameters to your context, you need to set up some
+environment attributes. For example :
::
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
*******
This API is used to provide Service Catalog information
-Information are retrieved in SDC (and in Tosca "service template" file) - Only GET operation is provided - this API DID NOT UPDATE SDC
+Information are retrieved in SDC (and in TOSCA "service template" file)
+- Only GET operation is provided - this API DID NOT UPDATE SDC
::
*******
This API is used to provide Service Inventory information
-This API retrieves service(s) in the AAI inventory. Only following attributes will be retrieve in service inventory: id, name and type (no state or startDate available )
+This API retrieves service(s) in the AAI inventory. Only following attributes
+will be retrieve in service inventory: id, name and type
+(no state or startDate available )
::
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
**Locally**
-Ensure that you have a MongoDB and MariaDB instance running and properly configured in *application.properties* file.
+Ensure that you have a MongoDB and MariaDB instance running and properly
+configured in *application.properties* file.
Run *Application.java* class in your favorite IDE
-Or through a terminal, ensure that your maven installation is works and run *mvn spring-boot:run* command to start the appication.
+Or through a terminal, ensure that your maven installation is works and
+run *mvn spring-boot:run* command to start the application.
**Docker**
-Requirements: `Docker engine <https://docs.docker.com/engine/>`_ and `docker-compose <https://docs.docker.com/compose/>`_.
+Requirements: `Docker engine <https://docs.docker.com/engine/>`_ and
+`docker-compose <https://docs.docker.com/compose/>`_.
To start the application:
1. Generate the application .jar file: `$ mvn clean package`
2. Configure the **.env** file
- 3. Start the *MariaDB* and *MongoDB* services: `$ docker-compose up -d mongo mariadb`
+ 3. Start the *MariaDB* and *MongoDB* services:
+ `$ docker-compose up -d mongo mariadb`
4. Build and start the *NBI* service: `$ docker-compose up --build -d nbi`
You can view the log output of the application with the following command:
-----
**Testing**
-When the app is running, you can access the API at :samp:`http://yourhostname:8080/nbi/api/v1/` and fill the url with the name of the resources you asking for (/serviceSpecification, /service, /serviceOrder or /status)
-You can run a test by using `VisualStudio RestClient plugin <https://github.com/Huachao/vscode-restclient>`_
-See the *restclient* package at root level to find *.vscode/settings.json* configuration file and */json/* package with samples requests that can be run.
-You can also trigger these endpoints with any RESTful client or automation framework.
+When the application is running, you can access the API at
+:samp:`http://yourhostname:8080/nbi/api/v1/` and fill the URL with the name
+of the resources you asking for (/serviceSpecification, /service,
+/serviceOrder or /status)
+You can run a test by using `VisualStudio RestClient
+plugin <https://github.com/Huachao/vscode-restclient>`_
+See the *restclient* package at root level to find *.vscode/settings.json*
+configuration file and */json/* package with samples requests that can be run.
+You can also trigger these endpoints with any RESTful client or
+automation framework.
-.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. This work is licensed under
+.. a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright 2018 ORANGE
Where to Access Information
---------------------------
-mongodb and Mariadb are accessible inside there respective docker container
+MongoDB and MariaDB are accessible inside there respective docker container
Error / Warning Messages
API Version
***********
-APIs are described with a state version with “v” following the API Name, e.g.: nbi/api/v1/productOrder.
+APIs are described with a state version with “v” following the API Name, e.g.: 'nbi/api/v1/productOrder'.
The schema associated with a REST API must have its version number aligned with that of the REST API.
The version number has major, minor and revision numbers. E.g. v1.0.0
Only high level information are provided - swagger is documented.
Only serviceSpecification resource is provided.
-Information are retrieved in SDC (and in Tosca file) - Only GET operation is provided - this API DID NOT UPDATE SDC
+Information are retrieved in SDC (and in TOSCA file) - Only GET operation is provided - this API DID NOT UPDATE SDC
-Only characteristics at service level will be retrieved in ONAP Tosca file. For example if an ONAP service is composed of VNF and the VF module, the serviceSpecification resource will only feature characteristic describe in the ONAP service tosca model and not attributes in the tosca files for VNF or VF module.
+Only characteristics at service level will be retrieved in ONAP TOSCA file. For example if an ONAP service is composed of VNF and the VF module, the serviceSpecification resource will only feature characteristic describe in the ONAP service tosca model and not attributes in the tosca files for VNF or VF module.
Only ‘basic’ service characteristics will be managed in this release. By ‘basic’ we mean string, boolean, integer parameter type and we do not manage ‘map’ or ‘list parameter type
GET serviceSpecification(list)
-(example: GET /nbi/api/v1/serviceSpecification/?category=NetworkService&distributionStatus =DISTRIBUTED)
+(example: GET /nbi/api/v1/serviceSpecification/?category=NetworkService&distributionStatus=DISTRIBUTED)
It is possible to retrieve a list of serviceSpecification (get by list).
API at a glance:
Only high level information are provided - swagger is documented.
-It is possible to use POST operation to create new serviceOrder in nbi and triggers service provisioning. GET operation is also available to retrieve one service order by providing id or a list of service order. For this release, only a subset of criteria is available:
+It is possible to use POST operation to create new serviceOrder in NBI and triggers service provisioning. GET operation is also available to retrieve one service order by providing id or a list of service order. For this release, only a subset of criteria is available:
• externalId
• state
For service catalog:
-- Find criterias are limited
+- Find criteria are limited
For service inventory:
- Customer information must be passed to get complete service representation.
-- Find criterias are limited.
+- Find criteria are limited.
For service order:
**Security Issues**
Security has not be addressed in this release:
-Authentification management and Data Access rights have not been implemented.
+Authentication management and Data Access rights have not been implemented.
**Upgrade Notes**