diff options
-rwxr-xr-x | docker/build_image.sh | 2 | ||||
-rw-r--r-- | docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst | 2 | ||||
-rw-r--r-- | docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst | 8 | ||||
-rw-r--r-- | docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst | 281 | ||||
-rw-r--r-- | docs/platform/APIs/index.rst | 10 | ||||
-rw-r--r-- | lcm/swagger/vfc.vnfdriver.swagger.json | 44 | ||||
-rw-r--r-- | pom.xml | 2 | ||||
-rw-r--r-- | version.properties | 2 |
8 files changed, 307 insertions, 44 deletions
diff --git a/docker/build_image.sh b/docker/build_image.sh index ec4ccff6..027d54d4 100755 --- a/docker/build_image.sh +++ b/docker/build_image.sh @@ -6,7 +6,7 @@ cd ${DOCKER_BUILD_DIR} BUILD_ARGS="--no-cache" ORG="onap" -VERSION="1.0.0" +VERSION="1.0.1" PROJECT="vfc" IMAGE="nslcm" DOCKER_REPOSITORY="nexus3.onap.org:10003" diff --git a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst index bada11e7..7188dc7f 100644 --- a/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst +++ b/docs/platform/APIs/NSLCM_API/NSLCM_API_Specification_v0.1.rst @@ -1,6 +1,6 @@ -NS LCM API
+Network services lifecycle management northbound APIs
==========
{
diff --git a/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst b/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst index c6db4326..8d9cff6a 100644 --- a/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst +++ b/docs/platform/APIs/VNFLCM_API/VNFLCM_API.rst @@ -2,14 +2,14 @@ :depth: 3
..
- **VNFM API**
+ **GVNFM Northbound & Southbound APIs**
**V0.1**
**1 Scope**
=============
- The scope of the present document is to describe the VNFM exposed
- API specification over Or-Vnfm Reference Point.
+ The scope of the present document is to describe the GVNFM exposed
+ API specification over Or-Vnfm reference point and Ve-Vnfm-vnf reference point.
**2 Terms, Definitions and Abbreviations**
===========================================
@@ -29,7 +29,7 @@ Table 2-1 abbreviations
-**3. Interfaces provided by VNFM** (Or-Vnfm/Ve-Vnfm-vnf)
+**3. Interfaces provided by GVNFM** (Or-Vnfm)
==========================================================
Interfaces use RESTful API and the format is as follows:
diff --git a/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst index f7a9c67e..c289626d 100644 --- a/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst +++ b/docs/platform/APIs/VNFMDriver_API/VNFM_Driver_API.rst @@ -7,7 +7,7 @@ **1. Scope**
==============
-The scope of the present document is to describe the VNFM Driver exposed API specification.
+The scope of the present document is to describe the VNFM driver integrated related API specification.
**2. Terms, Definitions and Abbreviations**
=============================================
@@ -34,7 +34,7 @@ Interfaces use RESTful API and the format is as follows: http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]
R1 vnfmtype:
zte-vnfm
-fw-vnfm
+hw-vnfm
juju
**3.1 Instantiate VNF**
@@ -71,11 +71,11 @@ juju | | | | | description of the VNF |
| | | | | instance to be created. |
+-----------------------+------------+-------------+----------+------------------------------+
-| extVirtualLink | M | 0..N | String | References to external |
-| | | | | virtual links to connect the |
-| | | | | VNF to. |
+| extVirtualLink | M | 0..N | Ext | References to external |
+| | | | Virtual | virtual links to connect the |
+| | | | LinkData | VNF to. |
+-----------------------+------------+-------------+----------+------------------------------+
-| additionalParam | M | 0..N | String |Additional parameters |
+| additionalParam | M | 0..N | Object |Additional parameters |
| | | | |passed by the NFVO as |
| | | | |input to the instantiation |
| | | | |process, specific to the |
@@ -130,7 +130,7 @@ juju +--------------+------------+-------------+----------+-------------------------------+
| Attribute | Qualifier | Cardinality | Content | Description |
+==============+============+=============+==========+===============================+
-| vimType | M | 1 | String | vim |
+| vimType | M | 1 | String | Type of the VIM |
+--------------+------------+-------------+----------+-------------------------------+
| apiVersion | M | 1 | String | |
+--------------+------------+-------------+----------+-------------------------------+
@@ -168,7 +168,7 @@ juju "vimid":"1",
"interfaceInfo":{
- "vimType":"vim",
+ "vimType":"openstack",
"apiVersion":"v2",
"protocolType":"http"
@@ -197,17 +197,17 @@ juju **3.1.2 Response**
-+--------------+------------+-------------+-----------+-------------------------------+
-| Parameter | Qualifier | Cardinality | Content | Description |
-+==============+============+=============+===========+===============================+
-| jobId | M | 1 | Identifier| Tenant Name of tenant |
-| | | | | operation occurrence. |
-| | | | | |
-| | | | | [lifecycleOperationOccurren |
-| | | | | ceId] |
-+--------------+------------+-------------+-----------+-------------------------------+
-| password | M | 1 | String | Password of login user |
-+--------------+------------+-------------+-----------+-------------------------------+
++-------------------+------------+-------------+-----------+-------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++===================+============+=============+===========+===============================+
+| jobId | M | 1 | Identifier| Tenant Name of tenant |
+| | | | | operation occurrence. |
+| | | | | |
+| | | | | [lifecycleOperationOccurren |
+| | | | | ceId] |
++-------------------+------------+-------------+-----------+-------------------------------+
+| vnfInstanceId | M | 1 | String | VNF instance identifier. |
++-------------------+------------+-------------+-----------+-------------------------------+
{
"jobId":"1",
@@ -340,7 +340,6 @@ VNF filter: vnfInstanceId via url [R1] | | | | | attributeSelector will be |
| | | | | returned for the selected |
| | | | | VNF instance(s). |
-| | | | | See note. |
+--------------+------------+-------------+-----------+---------------------------------+
**VnfInfo Table**
@@ -350,7 +349,7 @@ VNF filter: vnfInstanceId via url [R1] +=================+============+=============+==========+=================================+
| vnfInstanceId | M | 1 | String | VNF instance identifier. |
+-----------------+------------+-------------+----------+---------------------------------+
-| vnfInstanceName | M | o..1 | String | VNF instance name. See note. |
+| vnfInstanceName | M | o..1 | String | VNF instance name. |
+-----------------+------------+-------------+----------+---------------------------------+
| vnfInstance | M | o..1 | String | Human-readable description of |
| Description | | | | the VNF instance. |
@@ -511,7 +510,7 @@ VNF filter: vnfInstanceId via url [R1] | | | | | declared in the VNFD. See note 1. |
+---------------+------------+-------------+-------------+---------------------------------------------+
| aspectId | M | 1 | Identifier | Identifies the aspect of the VNF that is |
-| | | | | requested to be scaled, as declared in the |
+| | | | | requested to be scaled |
+---------------+------------+-------------+-------------+---------------------------------------------+
| numberOfSteps | M | 1 | Integer | Number of scaling steps to be executed as |
| | | | | part of this ScaleVnf operation. It shall |
@@ -532,7 +531,7 @@ VNF filter: vnfInstanceId via url [R1] | scaling (scale up, scale down) is not supported in the present document. |
| SCALE_IN designates scaling in. |
| SCALE_OUT 1 designates scaling out. |
-| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling |
+| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling |
| aspect. |
+------------------------------------------------------------------------------------------------------+
@@ -614,7 +613,7 @@ VNF filter: vnfInstanceId via url [R1] "vduid": "vdu_100",
"vmname": "ZTE_SSS_111_PP_2_L"
- },
+ }
}
@@ -631,3 +630,237 @@ VNF filter: vnfInstanceId via url [R1] "jobId":"1"
}
+
+
+**4. Interfaces provided by VFC to integrate with VNFM driver**
+===========================================
+
+
+**4.1 VNF Lifecycle Operation Granting Interface**
+------------------------
+
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf |
++---------------+------------------------------------------------------------------+
+| Operation | POST |
++---------------+------------------------------------------------------------------+
+| Direction | VNFMDriver -> NSLCM |
++---------------+------------------------------------------------------------------+
+
+**4.1.1 Request**
+
+
+{
+ "vnfInstanceId": "string",
+ "vnfDescriptorId": "string",
+ "lifecycleOperation": "Terminal",
+ "jobId": "string",
+ "addResource": [
+ {
+ "type": "string",
+ "resourceDefinitionId": "string",
+ "vdu": "string"
+ }
+ ],
+ "removeResource": [
+ {
+ "type": "string",
+ "resourceDefinitionId": "string",
+ "vdu": "string"
+ }
+ ],
+ "additionalParam": {}
+}
+
+**4.1.2 Response**
+
+{
+ "vim": {
+ "vimInfoId": "string",
+ "vimId": "string",
+ "interfaceInfo": {
+ "vimType": "string",
+ "apiVersion": "string",
+ "protocolType": "string"
+ },
+ "accessInfo": {
+ "tenant": "string",
+ "username": "string",
+ "password": "string"
+ },
+ "interfaceEndpoint": "string"
+ }
+}
+
+**4.2 VNF LCM Notification Interface**
+------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/ |
+| | {vnfInstanceId}/Notify |
++---------------+------------------------------------------------------------------+
+| Operation | POST |
++---------------+------------------------------------------------------------------+
+| Direction | VNFMDriver -> NSLCM |
++---------------+------------------------------------------------------------------+
+
+**4.2.1 Request**
+
+{
+ "status": "result",
+ "vnfInstanceId": "string",
+ "operation": "Terminal",
+ "jobId": "string",
+ "affectedVnfc": [
+ {
+ "vnfcInstanceId": "string",
+ "vduId": "string",
+ "changeType": "added",
+ "vimid": "string",
+ "vmid": "string",
+ "vmname": "string"
+ }
+ ],
+ "affectedCp": [
+ {
+ "virtualLinkInstanceId": "string",
+ "cpinstanceid": "string",
+ "cpdid": "string",
+ "ownerType": "string",
+ "ownerId": "string",
+ "changeType": "added",
+ "portResource": {
+ "vimid": "string",
+ "resourceid": "string",
+ "resourceName": "string",
+ "tenant": "string",
+ "ipAddress": "string",
+ "macAddress": "string",
+ "instId": "string"
+ }
+ }
+ ],
+ "affectedVl": [
+ {
+ "vlInstanceId": "string",
+ "vldid": "string",
+ "changeType": "added",
+ "networkResource": {
+ "resourceType": "network",
+ "resourceId": "string"
+ }
+ }
+ ],
+ "affectedVirtualStorage": [
+ {}
+ ]
+}
+
+**4.2.2 Response**
+
+N/A
+
+
+**4.3 Query VNFM Register Info Interface**
+------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid} |
++---------------+------------------------------------------------------------------+
+| Operation | GET |
++---------------+------------------------------------------------------------------+
+| Direction | VNFMDriver -> NSLCM |
++---------------+------------------------------------------------------------------+
+
+**4.3.1 Request**
+N/A
+
+**4.3.2 Response**
+{
+ "vnfmId": "string",
+ "name": "string",
+ "type": "string",
+ "url": "string",
+ "userName": "string",
+ "password": "string",
+ "vimId": "string",
+ "vendor": "string",
+ "version": "string",
+ "description": "string",
+ "certificateUrl": "string",
+ "createTime": "string"
+}
+
+
+**4.4 Query VIM Register Info Interface**
+------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition | Description |
++===============+==================================================================+
+| URI | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid} |
++---------------+------------------------------------------------------------------+
+| Operation | GET |
++---------------+------------------------------------------------------------------+
+| Direction | VNFMDriver -> NSLCM |
++---------------+------------------------------------------------------------------+
+
+**4.4.1 Request**
+N/A
+
+**4.4.2 Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter | Qualifier | Cardinality | Content | Description |
++====================+============+=============+=============+=================================+
+| vimId | M | 1 | string | The identifier of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| name | M | 1 | string | The name of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| type | M | 1 | string | The type of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| url | M | 1 | string | The access URL of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| userName | M | 1 | string | The user name of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| password | M | 1 | string | The password of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vendor | M | 1 | string | The vendor of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| version | M | 1 | version | The version of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| description | O | 1 | description | The description of the VIM |
++--------------------+------------+-------------+-------------+---------------------------------+
+| sslCacert | O | 1 | Identifier | The collection of trusted |
+| | | | | certificates towards the VIM. |
++--------------------+------------+-------------+-------------+---------------------------------+
+| sslInsecure | O | 1 | Identifier | Whether to verify VIM's |
+| | | | | certificate. |
++--------------------+------------+-------------+-------------+---------------------------------+
+| status | O | 1 | Identifier | The status of external system |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+
+{
+ "vimId": "string",
+ "name": "string",
+ "type": "string",
+ "url": "string",
+ "userName": "string",
+ "password": "string",
+ "vendor": "string",
+ "version": "string",
+ "description": "string",
+ "createTime": "string",
+ "sslCacert": "string",
+ "sslInsecure": "string",
+ "status": "string"
+}
+
diff --git a/docs/platform/APIs/index.rst b/docs/platform/APIs/index.rst index b05bede2..c6f561be 100644 --- a/docs/platform/APIs/index.rst +++ b/docs/platform/APIs/index.rst @@ -7,7 +7,7 @@ VF-C Offered APIs List VF-C APIs offered. -NS LCM API +VFC Northbound API ---------- Network services lifecycle management APIs @@ -19,10 +19,10 @@ Network services lifecycle management APIs NSLCM_API/index -VNFM Driver API +VNFM Integration APIs --------------- -VNFM Driver component northbound APIs +VNFM Driver Integration Related APIs .. toctree:: :maxdepth: 1 @@ -31,10 +31,10 @@ VNFM Driver component northbound APIs -VNF LCM API +GVNFM Northbound & Southbound APIs ----------- -VNF lifecycle management APIs +GVNFM Northbound & Southbound APIs for VNF Integration .. toctree:: :maxdepth: 1 diff --git a/lcm/swagger/vfc.vnfdriver.swagger.json b/lcm/swagger/vfc.vnfdriver.swagger.json index 49f74cdf..d1db6845 100644 --- a/lcm/swagger/vfc.vnfdriver.swagger.json +++ b/lcm/swagger/vfc.vnfdriver.swagger.json @@ -345,7 +345,7 @@ } } }, - "/nslcm/v1/vnfs/{vnfInstanceId}/Notify": { + "/nslcm/v1/ns/{vnfmid}/vnfs/{vnfInstanceId}/Notify": { "post": { "tags": [ "NSLCM" @@ -357,6 +357,13 @@ { "required": true, "type": "string", + "description": "VNFM Instance Id", + "name": "vnfmid", + "in": "path" + }, + { + "required": true, + "type": "string", "description": "VNF Instance Id", "name": "vnfInstanceId", "in": "path" @@ -561,6 +568,17 @@ } } }, + "JobStatus" : { + "description": "The status of the job", + "type": "string", + "enum": [ + "started", + "processing", + "finished", + "error", + "timeout" + ] + }, "JobDetailInfo": { "type": "object", "properties": { @@ -571,13 +589,16 @@ "type": "object", "properties": { "status": { - "type": "string" + "$ref": "#/definitions/JobStatus", + "description": "The status of the job" }, "progress": { - "type": "string" + "type": "string", + "description": "The progress of the job. Value between 0 and 100." }, "statusDescription": { - "type": "string" + "type": "string", + "description": "The reason of the current status of the job." }, "errorCode": { "type": "string" @@ -595,17 +616,26 @@ } } }, + "ChangeType" : { + "description": "The type of the change", + "type": "string", + "enum": [ + "VDU" + ] + }, "ResourceChange" : { "type": "object", "properties": { "type": { - "type": "string", - "description": " The value should be VDU,VL,CP,Strorage." + "$ref": "#/definitions/ChangeType", + "description": "The type of the resource." }, "resourceDefinitionId": { + "description": "The identifier of the resource within the grant request.", "type": "string" }, "vdu": { + "description": "The identifier of the VDU.", "type": "string" } } @@ -1319,7 +1349,7 @@ }, "sslCacert": { "type": "string", - "description": "CA file content if enabled ssl on auth-url" + "description": "The collection of trusted certificates towards the VIM connection." }, "sslInsecure": { "type": "string", @@ -23,7 +23,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.onap.vfc.nfvo.lcm</groupId> <artifactId>vfc-nfvo-lcm</artifactId> - <version>1.0.0-SNAPSHOT</version> + <version>1.0.1-SNAPSHOT</version> <packaging>pom</packaging> <name>vfc-nfvo-lcm</name> <description>vfc nfvo lcm</description> diff --git a/version.properties b/version.properties index 51287873..266427fa 100644 --- a/version.properties +++ b/version.properties @@ -4,7 +4,7 @@ major=1 minor=0 -patch=0 +patch=1 base_version=${major}.${minor}.${patch} |