aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRene Robert <rene.robert@orange.com>2018-04-26 12:08:30 +0000
committerRene Robert <rene.robert@orange.com>2018-04-26 12:08:30 +0000
commit615546d8f9eab9a925f304298f1b42e3b4dbc4d0 (patch)
tree904be3211e3c105ac88cf15f75e1ba882f898b10
parentace06bb0c86ea0a26cd098f1c04bd1b5d1a1f746 (diff)
correct rst files
Issue-ID: EXTAPI-74 Change-Id: Ib03bdda0f7f8493d3b3b6cac9f603076bc7bf62b Signed-off-by: Rene Robert <rene.robert@orange.com>
-rw-r--r--docs/architecture/NBI_R1_Developer_Guide.rst28
-rw-r--r--docs/configuration/configuration.rst1
-rw-r--r--docs/consumedapis/consumedapis.rst6
-rw-r--r--docs/offeredapis/index.rst33
-rw-r--r--docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json6
5 files changed, 40 insertions, 34 deletions
diff --git a/docs/architecture/NBI_R1_Developer_Guide.rst b/docs/architecture/NBI_R1_Developer_Guide.rst
index e855fea..2c9c549 100644
--- a/docs/architecture/NBI_R1_Developer_Guide.rst
+++ b/docs/architecture/NBI_R1_Developer_Guide.rst
@@ -3,18 +3,18 @@
.. Copyright 2018 ORANGE
-============
+=====================
NBI - Developer Guide
-============
-***************
+=====================
+************
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.
-***************
+************
Dependencies
-***************
+************
This project use various framework which are managed with Maven dependency management tool (see *pom.xml* file at root level) :
- Swagger annotations
@@ -24,31 +24,31 @@ This project use various framework which are managed with Maven dependency manag
- `Wiremock <https://github.com/tomakehurst/wiremock>`_ to perform testing over HTTP mocked response
-***************
+*************
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.
-***************
+***********
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.
*commons , configuration, and exceptions* are shared technical classes that provided for all the application.
-***************************************
+***********************************
Running and testing the application
-***************************************
+***********************************
**Locally**
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**
@@ -66,7 +66,7 @@ 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 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 app is running, you can access the API at \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.
diff --git a/docs/configuration/configuration.rst b/docs/configuration/configuration.rst
index fb777a5..ce45d44 100644
--- a/docs/configuration/configuration.rst
+++ b/docs/configuration/configuration.rst
@@ -70,6 +70,7 @@ Changing values
To adapt application parameters to your context, you need to set up some environment attributes. For example :
+::
SPRING_DATASOURCE_PASSWORD: your own value here
SPRING_DATASOURCE_USERNAME: your own value here
diff --git a/docs/consumedapis/consumedapis.rst b/docs/consumedapis/consumedapis.rst
index 66e5885..581b571 100644
--- a/docs/consumedapis/consumedapis.rst
+++ b/docs/consumedapis/consumedapis.rst
@@ -16,6 +16,8 @@ SDC API
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
+::
+
SDC_ROOT_URL = "/sdc/v1/catalog/services/"
SDC_GET_PATH = "/metadata"
@@ -30,6 +32,8 @@ AAI API
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 )
+::
+
AAI_GET_TENANTS_PATH = "/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/$onap.cloudOwner/$onap.lcpCloudRegionId/tenants"
AAI_GET_CUSTOMER_PATH = "/aai/v11/business/customers/customer/"
@@ -51,6 +55,8 @@ SO API
This API is used to perform Service Order and thus instantiate a service
+::
+
MSO_CREATE_SERVICE_INSTANCE_PATH = "/ecomp/mso/infra/serviceInstance/v4"
MSO_GET_REQUEST_STATUS_PATH = "/ecomp/mso/infra/orchestrationRequests/v4/"
diff --git a/docs/offeredapis/index.rst b/docs/offeredapis/index.rst
index bbc8c8d..de8e8a5 100644
--- a/docs/offeredapis/index.rst
+++ b/docs/offeredapis/index.rst
@@ -3,27 +3,27 @@
.. Copyright 2018 ORANGE
-============
+==================================================
nbi - northbound interface - External API for ONAP
-============
-***************
+==================================================
+************
Introduction
-***************
+************
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.
.. image:: images/ONAP_External_ID_Beijing.jpg
:width: 800px
-***************
+***********
API Version
-***************
+***********
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.
@@ -41,13 +41,14 @@ For minor modifications of the API, version numbering must not be updated, provi
- If new enumerated values are included, the former ones and its meaning must be kept.
- If new operations are added, the existing operations must be kept
- New parameters added to existing operations must be optional and existing parameters
+
must be kept
For major modifications of the API, not backward compatible and forcing client implementations to be changed, the version number must be updated.
-***************
+*********
API Table
-***************
+*********
.. |pdf-icon| image:: images/pdf.png
:width: 40px
@@ -73,9 +74,9 @@ API Table
:widths: 10,5,5,5,5,5,5
" ", "json file", "html doc", "plantUML doc", "Swagger Editor", "Postman Collection", "pdf doc"
- "serviceCatalog", ":download:`link <swaggers/serviceCatalog_1_0_0.json>`", ":download:`link <serviceCatalog/documentation.html>`", ":download:`link <serviceCatalog/apiServiceCatalog.plantuml>`", "`link <http://editor2.swagger.io/?url=http://onap.readthedocs.io/en/latest/_downloads/serviceCatalog_1_0_0.json>`_", "coming", "coming"
- "serviceInventory", ":download:`link <swaggers/serviceInventory_1_0_0.json>`", ":download:`link <serviceInventory/documentation.html>`", ":download:`link <serviceInventory/apiServiceInventory.plantuml>`", "`link <http://editor2.swagger.io/?url=http://onap.readthedocs.io/en/latest/_downloads/serviceInventory_1_0_0.json>`_", "coming", "coming"
- "serviceOrder", ":download:`link <swaggers/serviceOrder_1_0_0.json>`", ":download:`link <serviceOrder/documentation.html>`", ":download:`link <serviceOrder/apiServiceOrder.plantuml>`", "`link <http://editor2.swagger.io/?url=http://onap.readthedocs.io/en/latest/_downloads/serviceOrder_1_0_0.json>`_", ":download:`link <postman/ONAPBeijingServiceOrderDoc.postman_collection.json>`", "coming"
+ "serviceCatalog", ":download:`link <swaggers/serviceCatalog_1_0_0.json>`", ":download:`link <serviceCatalog/documentation.html>`", ":download:`link <serviceCatalog/apiServiceCatalog.plantuml>`", "coming", "coming", "coming"
+ "serviceInventory", ":download:`link <swaggers/serviceInventory_1_0_0.json>`", ":download:`link <serviceInventory/documentation.html>`", ":download:`link <serviceInventory/apiServiceInventory.plantuml>`", "coming", "coming", "coming"
+ "serviceOrder", ":download:`link <swaggers/serviceOrder_1_0_0.json>`", ":download:`link <serviceOrder/documentation.html>`", ":download:`link <serviceOrder/apiServiceOrder.plantuml>`", "coming", ":download:`link <postman/ONAPBeijingServiceOrderDoc.postman_collection.json>`", "coming"
***************
@@ -174,16 +175,14 @@ ServiceOrder will manage only ‘add’ and ‘delete’ operation (no change).
prerequisites & assumptions :
• Cloud & tenant information MUST BE defined in the external API property file
-• Management of ONAP customer for add service action:
+• Management of ONAP customer for add service action
+
With the current version of APIs used from SO and AAI we need to manage a ‘customer’. This customer concept is confusing with Customer BSS concept. We took the following rules to manage the ‘customer’ information:
• It could be provided through a serviceOrder in the service Order a relatedParty with role ‘ONAPcustomer’ should be provided in the serviceOrder header (we will not consider in this release the party at item level); External API component will check if this customer exists and create it in AAI if not.
• If no relatedParty are provided the service will be affected to ‘generic’ customer (dummy customer) – we assume this ‘generic’ customer always exists.
-
• Additionally nbi will create in AAI the service-type if it did not exists for the customer
-
• Integration is done at service-level: nbi will trigger only SO request at serviceInstance level --> ONAP prerequisite: SO must be able to find a BPMN to process service fulfillment (integrate vnf, vnf activation in SDNC, VF module
-
• State management: States are only managed by ServiceOrder component and could not be updated from north side via API. Accordingly to service order item fulfillment progress, order item state are updated. Order state is automatically updated based on item state.
diff --git a/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json b/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json
index 832a9e4..6aae232 100644
--- a/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json
+++ b/docs/offeredapis/postman/ONAPBeijingServiceOrderDoc.postman_collection.json
@@ -26,7 +26,7 @@
],
"body": {
"mode": "raw",
- "raw": "{\n \"externalId\": \"NBI-SO001\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer specified\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"relatedParty\": [\n {\n \"id\": \"6490\",\n \"role\": \"ONAPcustomer\",\n \"name\": \"Jean Pontus\",\n \"@referredType\": \"individual\"\n }\n ],\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"id\": \"vFW0001\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
+ "raw": "{\n \"externalId\": \"NBI-SO001\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer specified\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"relatedParty\": [\n {\n \"id\": \"6490\",\n \"role\": \"ONAPcustomer\",\n \"name\": \"Jean Pontus\",\n \"@referredType\": \"individual\"\n }\n ],\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"name\": \"vFW0001\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
},
"description": ""
},
@@ -51,7 +51,7 @@
],
"body": {
"mode": "raw",
- "raw": "{\n \"externalId\": \"NBI-SO002\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer not specified - added to generic customer\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"id\": \"vFW0002\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
+ "raw": "{\n \"externalId\": \"NBI-SO002\",\n \"priority\": \"1\",\n \"description\": \"Firevall service ordering on customer not specified - added to generic customer\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"name\": \"vFW0002\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
},
"description": ""
},
@@ -76,7 +76,7 @@
],
"body": {
"mode": "raw",
- "raw": "{\n \"externalId\": \"LudONAP002\",\n \"priority\": \"1\",\n \"description\": \"Ludo ONAP Order\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"id\": \"vFW0002\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
+ "raw": "{\n \"externalId\": \"LudONAP002\",\n \"priority\": \"1\",\n \"description\": \"Ludo ONAP Order\",\n \"category\": \"Consumer\",\n \"requestedStartDate\": \"2018-02-28T13:33:37.299Z\",\n \"requestedCompletionDate\": \"2018-02-28T13:33:37.299Z\",\n \"orderItem\": [\n {\n \"id\": \"1\",\n \"action\": \"add\",\n \"service\": {\n \"name\": \"vFW0002\",\n \"serviceState\": \"active\",\n \"serviceSpecification\": {\n \"id\": \"3dd3923d-1681-4f5b-99bb-f695ab147004\"\n }\n }\n }\n ]\n}"
},
"description": ""
},