API Catalog
===========
-`1. Scope 5 <#_Toc490851650>`__
+`1. Scope`_
-`2. Terms, Definitions and Abbreviations 5 <#_Toc490851651>`__
+`2. Terms, Definitions and Abbreviations`_
-`3. Image Management 5 <#_Toc490851652>`__
+`3. Image Management`_
-`3.1 Create Image 5 <#_Toc490851653>`__
+`3.1. Create Image`_
-`3.1.1 Request 5 <#_Toc490851654>`__
+`3.1.1. Request`_
-`3.1.2 Response 6 <#_Toc490851655>`__
+`3.1.2. Response`_
-`3.2 Delete Image 7 <#_Toc490851656>`__
+`3.2. Delete Image`_
-`3.2.1 Request 7 <#_Toc490851657>`__
+`3.2.1. Request`_
-`3.2.2 Response 7 <#_Toc490851658>`__
+`3.2.2. Response`_
-`3.3 List Images 7 <#_Toc490851659>`__
+`3.3. List Images`_
-`3.3.1 Request 7 <#_Toc490851660>`__
+`3.3.1. Request`_
-`3.3.2 Response 8 <#_Toc490851661>`__
+`3.3.2. Response`_
-`3.4 Get Image 9 <#_Toc490851662>`__
+`3.4. Get Image`_
-`3.4.1 Request 9 <#_Toc490851663>`__
+`3.4.1. Request`_
-`3.4.2 Response 9 <#_Toc490851664>`__
+`3.4.2. Response`_
-`4. Network Management 10 <#_Toc490851665>`__
+`4. Network Management`_
-`4.1 Create Network 10 <#_Toc490851666>`__
+`4.1. Create Network`_
-`4.1.1 Request 10 <#_Toc490851667>`__
+`4.1.1. Request`_
-`4.1.2 Response 11 <#_Toc490851668>`__
+`4.1.2. Response`_
-`4.2 Delete Network 12 <#_Toc490851669>`__
+`4.2. Delete Network`_
-`4.2.1 Request 12 <#_Toc490851670>`__
+`4.2.1. Request`_
-`4.2.2 Response 12 <#_Toc490851671>`__
+`4.2.2. Response`_
-`4.3 List Network 12 <#_Toc490851672>`__
+`4.3. List Network`_
-`4.3.1 Query 12 <#_Toc490851673>`__
+`4.3.1. Query`_
-`4.3.2 Response 13 <#_Toc490851674>`__
+`4.3.2. Response`_
-`4.4 Get Network 14 <#_Toc490851675>`__
+`4.4. Get Network`_
-`4.4.1 Request 14 <#_Toc490851676>`__
+`4.4.1. Request`_
-`4.4.2 Response 14 <#_Toc490851677>`__
+`4.4.2. Response`_
-`5. Subnetwork Management 16 <#_Toc490851678>`__
+`5. Subnetwork Management`_
-`5.1 Create Subnets 16 <#_Toc490851679>`__
+`5.1. Create Subnets`_
-`5.1.1 Request 16 <#_Toc490851680>`__
+`5.1.1. Request`_
-`5.1.2 Response 17 <#_Toc490851681>`__
+`5.1.2. Response`_
-`5.2 Delete Subnets 18 <#_Toc490851682>`__
+`5.2. Delete Subnets`_
-`5.2.1 Request 18 <#_Toc490851683>`__
+`5.2.1. Request`_
-`5.2.2 Response 18 <#_Toc490851684>`__
+`5.2.2. Response`_
-`5.3 List Subnets 18 <#_Toc490851685>`__
+`5.3. List Subnets`_
-`5.3.1 Query 18 <#_Toc490851686>`__
+`5.3.1. Query`_
-`5.3.2 Response 19 <#_Toc490851687>`__
+`5.3.2. Response`_
-`5.4 Get Subnets 20 <#_Toc490851688>`__
+`5.4. Get Subnets`_
-`5.4.1 Request 20 <#_Toc490851689>`__
+`5.4.1. Request`_
-`5.4.2 Response 20 <#_Toc490851690>`__
+`5.4.2. Response`_
-`6. Virtual Port 21 <#_Toc490851691>`__
+`6. Virtual Port`_
-`6.1 Create Virtual Port 21 <#_Toc490851692>`__
+`6.1. Create Virtual Port`_
-`6.1.1 Request 21 <#_Toc490851693>`__
+`6.1.1. Request`_
-`6.1.2 Response 22 <#_Toc490851694>`__
+`6.1.2. Response`_
-`6.2 Delete Virtual Port 22 <#_Toc490851695>`__
+`6.2. Delete Virtual Port`_
-`6.2.1 Request 23 <#_Toc490851696>`__
+`6.2.1. Request`_
-`6.2.2 Response 23 <#_Toc490851697>`__
+`6.2.2. Response`_
-`6.3 List Virtual Port 23 <#_Toc490851698>`__
+`6.3. List Virtual Port`_
-`6.3.1 Query 23 <#_Toc490851699>`__
+`6.3.1. Query`_
-`6.3.2 Response 23 <#_Toc490851700>`__
+`6.3.2. Response`_
-`6.4 Get Virtual Port 24 <#_Toc490851701>`__
+`6.4. Get Virtual Port`_
-`6.4.1 Request 24 <#_Toc490851702>`__
+`6.4.1. Request`_
-`6.4.2 Response 24 <#_Toc490851703>`__
+`6.4.2. Response`_
-`7. Server Management 25 <#_Toc490851704>`__
+`7. Server Management`_
-`7.1 Create Server 25 <#_Toc490851705>`__
+`7.1. Create Server`_
-`7.1.1 Request 25 <#_Toc490851706>`__
+`7.1.1. Request`_
-`7.1.2 Response 27 <#_Toc490851707>`__
+`7.1.2. Response`_
-`7.2 Delete Server 28 <#_Toc490851708>`__
+`7.2. Delete Server`_
-`7.2.1 Request 28 <#_Toc490851709>`__
+`7.2.1. Request`_
-`7.2.2 Response 28 <#_Toc490851710>`__
+`7.2.2. Response`_
-`7.3 List Server 28 <#_Toc490851711>`__
+`7.3. List Server`_
-`7.3.1 Request 28 <#_Toc490851712>`__
+`7.3.1. Request`_
-`7.3.2 Response 29 <#_Toc490851713>`__
+`7.3.2. Response`_
-`7.4 Get Server 29 <#_Toc490851714>`__
+`7.4. Get Server`_
-`7.4.1 Request 30 <#_Toc490851715>`__
+`7.4.1. Request`_
-`7.4.2 Response 30 <#_Toc490851716>`__
+`7.4.2. Response`_
-`8. Flavor Management 30 <#_Toc490851717>`__
+`8. Flavor Management`_
-`8.1 Create Flavor 31 <#_Toc490851718>`__
+`8.1. Create Flavor`_
-`8.1.1 Request 31 <#_Toc490851719>`__
+`8.1.1. Request`_
-`8.1.2 Response 31 <#_Toc490851720>`__
+`8.1.2. Response`_
-`8.2 Delete Flavor 32 <#_Toc490851721>`__
+`8.2. Delete Flavor`_
-`8.2.1 Request 32 <#_Toc490851722>`__
+`8.2.1. Request`_
-`8.2.2 Response 32 <#_Toc490851723>`__
+`8.2.2. Response`_
-`8.3 List Flavor 32 <#_Toc490851724>`__
+`8.3. List Flavor`_
-`8.3.1 Query 32 <#_Toc490851725>`__
+`8.3.1. Query`_
-`8.3.2 Response 32 <#_Toc490851726>`__
+`8.3.2. Response`_
-`8.4 Get Flavor 33 <#_Toc490851727>`__
+`8.4. Get Flavor`_
-`8.4.1 Request 33 <#_Toc490851728>`__
+`8.4.1. Request`_
-`8.4.2 Response 33 <#_Toc490851729>`__
+`8.4.2. Response`_
-`9. Volume Management 34 <#_Toc490851730>`__
+`9. Volume Management`_
-`9.1 Create Volume 34 <#_Toc490851731>`__
+`9.1. Create Volume`_
-`9.1.1 Request 34 <#_Toc490851732>`__
+`9.1.1. Request`_
-`9.1.2 Response 34 <#_Toc490851733>`__
+`9.1.2. Response`_
-`9.2 Delete Volume 35 <#_Toc490851734>`__
+`9.2. Delete Volume`_
-`9.2.1 Request 35 <#_Toc490851735>`__
+`9.2.1. Request`_
-`9.2.2 Response 35 <#_Toc490851736>`__
+`9.2.2. Response`_
-`9.3 List Volumes 35 <#_Toc490851737>`__
+`9.3. List Volumes`_
-`9.3.1 Request 35 <#_Toc490851738>`__
+`9.3.1. Request`_
-`9.3.2 Response 36 <#_Toc490851739>`__
+`9.3.2. Response`_
-`9.4 Get Volumes 37 <#_Toc490851740>`__
+`9.4. Get Volumes`_
-`9.4.1 Request 37 <#_Toc490851741>`__
+`9.4.1. Request`_
-`9.4.2 Response 37 <#_Toc490851742>`__
+`9.4.2. Response`_
-`10. Tenant Management 38 <#_Toc490851743>`__
+`10. Tenant Management`_
-`10.1 List tenants 38 <#_Toc490851744>`__
+`10.1. List tenants`_
-`10.1.1 Query 38 <#_Toc490851745>`__
+`10.1.1. Query`_
-`10.1.2 Response 38 <#_Toc490851746>`__
+`10.1.2. Response`_
-`11. Limits 39 <#_Toc490851747>`__
+`11. Limits`_
-`11.1 List Limits of resouces: CPU&Memory, volume,network,etc
-39 <#_Toc490851748>`__
+`11.1. List Limits of resouces`_
-`11.1.1 Request 39 <#_Toc490851749>`__
+`11.1.1. Request`_
-`11.1.2 Response 39 <#_Toc490851750>`__
+`11.1.2. Response`_
-`12. Host Management 41 <#_Toc490851751>`__
+`12. Host Management`_
-`12.1 List hosts 41 <#_Toc490851752>`__
+`12.1. List hosts`_
-`12.1.1 Request 41 <#_Toc490851753>`__
+`12.1.1. Request`_
-`12.1.2 Response 41 <#_Toc490851754>`__
+`12.1.2. Response`_
-`12.2 Get host 43 <#_Toc490851755>`__
+`12.2. Get host`_
-`12.2.1 Request 43 <#_Toc490851756>`__
+`12.2.1. Request`_
-`12.2.2 Response 43 <#_Toc490851757>`__
+`12.2.2. Response`_
-`13. VIM Management 45 <#_Toc490851758>`__
+`13. VIM Management`_
-`13.1 Update VIM Info 45 <#_Toc490851759>`__
+`13.1. Update VIM Info`_
-`13.1.1 Request 45 <#_Toc490851760>`__
+`13.1.1. Request`_
-`13.1.2 Response 45 <#_Toc490851761>`__
+`13.1.2. Response`_
-`13.2 Unregistry VIM 45 <#_Toc490851762>`__
+`13.2. Unregistry VIM`_
-`13.2.1 Request 45 <#_Toc490851763>`__
+`13.2.1. Request`_
-`13.2.2 Response 46 <#_Toc490851764>`__
+`13.2.2. Response`_
-*
-*
-1. \ **Scope**
+1. **Scope**
+^^^^^^^^^^^^
The scope of the present document is to describe the VIM Driver API
specification.
-1. \ **Terms, Definitions and Abbreviations**
+2. **Terms, Definitions and Abbreviations**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
For the purposes of the present document, the following abbreviations
apply:
| MultiVIM | MultVIM driver services for OPEN-O to drive VIM instances |
+--------------------+-------------------------------------------------------------+
-Table 2-1 abbreviations
+3. **Image Management**
+^^^^^^^^^^^^^^^^^^^^^^^
-1. \ **Image Management**
-
- 1. \ **Create Image**
+3.1. **Create Image**
+---------------------
+---------------------+-------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+===============================================================================+
-| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images |
+| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/images |
+---------------------+-------------------------------------------------------------------------------+
| Operation | POST |
+---------------------+-------------------------------------------------------------------------------+
| Description | Create Image and Upload the image file to the VIM |
+---------------------+-------------------------------------------------------------------------------+
-1. \ **Request**
+3.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| | | | | |
| | | | | public, private, shared, or community |
+-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+
-| properties | O | 0..N | List of key-value pairs | Examples:--property vmware\_disktype=streamOptimized --property vmware\_adaptertype="lsiLogic" |
+| properties | O | 0..N | List of key-value pairs | Examples:--property vmware_disktype=streamOptimized --property vmware_adaptertype="lsiLogic" |
+-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+
-{
+::
-"imageName": "cirros",
+ {
-"imagePath": "/home/cirros.qcow2",
+ "imageName": "cirros",
-"imageType": "qcow2"
+ "imagePath": "/home/cirros.qcow2",
-“containerFormat”:”bare”
+ "imageType": "qcow2"
-}
+ "containerFormat":"bare"
-1. \ **Response**
+ }
+
+3.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
-
- “id”:” 3c9eebdbbfd345658269340b9ea6fb73”,
+::
- "name": "cirros",
-
- "returnCode": 1
-
-}
+ {
+ "id": "3c9eebdbbfd345658269340b9ea6fb73",
+ "name": "cirros",
+ "returnCode": 1
+ }
-1. \ **Delete Image**
+3.2. **Delete Image**
+---------------------
+---------------------+-----------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+=========================================================================================+
-| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images/{imageId} |
+| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/images/{imageId} |
+---------------------+-----------------------------------------------------------------------------------------+
| Operation | Delete |
+---------------------+-----------------------------------------------------------------------------------------+
| Description | Delete Image |
+---------------------+-----------------------------------------------------------------------------------------+
-1. \ **Request**
+3.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+3.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Images**
+3.3. **List Images**
+--------------------
+---------------------+-------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+===============================================================================+
-| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images |
+| URI | msb.onap.org:80/api/multicloud/v0/{cloud_owner}\_{region}/{tenantid}/images |
+---------------------+-------------------------------------------------------------------------------+
| Operation | GET |
+---------------------+-------------------------------------------------------------------------------+
| Description | Query Image list |
+---------------------+-------------------------------------------------------------------------------+
-1. \ **Request**
-
-msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……}
+3.3.1. **Request**
+>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| name | O | 1 | String | Filters the response by a name, as a string. A valid value is the name of an image |
+-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-1. \ **Response**
+3.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
| \ **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
| tenantId | M | 1 | String | Tenant UUID |
+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| 200: ok | | | | |
-| | | | | |
-| 500: failed | | | | |
-| | | | | |
-| { | | | | |
-| | | | | |
-| “vimid”:”” | | | | |
-| | | | | |
-| “vimname”:”” | | | | |
-| | | | | |
-| "imageList": [ | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| { | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| "status": "active", | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| "id": "5e2757c1-f846-4727-915c-9a872553ed75", | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| "size": 862016, | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| "name": "vim-plus-cgsl40g-z.qcow2" | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| } | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-| ] | | | | |
-| | | | | |
-| } | | | | |
-+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
-1. \ **Get Image**
+200: ok
+
+500: failed
+
+::
+
+ {
+ "vimid": "",
+ "vimname": "",
+ "imageList": [{
+ "status": "active",
+ "id": "5e2757c1-f846-4727-915c-9a872553ed75",
+ "size": 862016,
+ "name": "vim-plus-cgsl40g-z.qcow2"
+ }]
+ }
+
+
+3.4. **Get Image**
+------------------
+---------------------+-----------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Description | Query Image Information |
+---------------------+-----------------------------------------------------------------------------------------+
-1. \ **Request**
+3.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+3.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
-
-“vimid”:””
-
-“vimname”:””
+::
-"status": "active",
-
-"id": "5e2757c1-f846-4727-915c-9a872553ed75",
-
-"size": 862016,
-
-"name": "vim-plus-cgsl40g-z.qcow2"
-
-a}
+ {
+ "vimid": "",
+ "vimname": "",
+ "status": "active",
+ "id": "5e2757c1-f846-4727-915c-9a872553ed75",
+ "size": 862016,
+ "name": "vim-plus-cgsl40g-z.qcow2"
+ }
-1. \ **Network Management**
+4. **Network Management**
+^^^^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **Create Network**
+4.1. **Create Network**
+-----------------------
+---------------------+---------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Description | Create network and subnetwork on the VIM |
+---------------------+---------------------------------------------------------------------------------+
-1. \ **Request**
+4.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| physicalNetwork | O | 1 | string | The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host. |
+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| routerExternal | O | 1 | boolean | Indicates whether this network can provide floating IPs via a router. |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| { | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “tenant”: “tenant1”, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “networkName”: “ommnet”, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “shared”: 1, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “vlanTransparent”: 1, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “networkType”:”vlan”, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “segmentationId”:202, | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| “physicalNetwork”:”ctrl”, | | | | |
-| | | | | |
-| “routerExternal”:0 | | | | |
-+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| } | | | | |
+| routerExternal | O | 1 | boolean |Indicates whether this network can provide floating IPs via a router. |
+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-1. \ **Response**
+::
+
+ {
+ "tenant": "tenant1",
+ "networkName": "ommnet",
+ "shared": 1,
+ "vlanTransparent": 1,
+ "networkType": "vlan",
+ "segmentationId": 202,
+ "physicalNetwork": "ctrl",
+ "routerExternal": 0
+ }
+
+4.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
-
-“returnCode”:0,
-
-“vimId”:”11111”,
-
-“vimName”:”11111”,
-
-“status”: “ACTIVE”,
-
-“id”: “3c9eebdbbfd345658269340b9ea6fb73”,
-
-“name”: “net1”,
-
-“tenant”: “tenant1”,
+::
-“networkName”: “ommnet”,
-
-“shared”: 1,
-
-“vlanTransparent”: 1,
-
-“networkType”:”vlan”,
-
-“segmentationId”:202,
-
-“physicalNetwork ”:”ctrl”,
-
-“routerExternal ”:0
-
-}
+ {
+ "returnCode": 0,
+ "vimId": "11111",
+ "vimName": "11111",
+ "status": "ACTIVE",
+ "id": "3c9eebdbbfd345658269340b9ea6fb73",
+ "name": "net1",
+ "tenant": "tenant1",
+ "networkName": "ommnet",
+ "shared": 1,
+ "vlanTransparent": 1,
+ "networkType": "vlan",
+ "segmentationId": 202,
+ "physicalNetwork": "ctrl",
+ "routerExternal": 0
+ }
-1. \ **Delete Network**
+4.2. **Delete Network**
+-----------------------
+---------------------+---------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------------------+
-1. \ **Request**
+4.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+4.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Network**
+4.3. **List Network**
+---------------------
+---------------------+---------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------+
-1. \ **Query**
+4.3.1. **Query**
+>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+---------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| name | O | 1 | String | Filters the response by a name, as a string. A valid value is the name of a network |
+-----------------+-----------------+-------------------+---------------+---------------------------------------------------------------------------------------+
-1. \ **Response**
+4.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
+::
-“vimId”:”11111”,
+ {
-“vimName”:”111”,
+ "vimId": "11111",
-“networks”:
+ "vimName": "111",
-[{
+ "networks":
-“status”: “ACTIVE”,
+ [{
-“id”: “3c9eebdbbfd345658269340b9ea6fb73”,
+ "status": "ACTIVE",
-“name”: “net1”,
+ "id": "3c9eebdbbfd345658269340b9ea6fb73",
-“tenant”: “tenant1”,
+ "name": "net1",
-“networkName”: “ommnet”,
+ "tenant": "tenant1",
-“shared”: 1,
+ "networkName": "ommnet",
-“vlanTransparent”: 1,
+ "shared": 1,
-“networkType”:”vlan”,
+ "vlanTransparent": 1,
-“segmentationId”:202,
+ "networkType": "vlan",
-“physicalNetwork ”:”ctrl”,
+ "segmentationId": 202,
-“routerExternal ”:0
+ "physicalNetwork ": "ctrl",
-}]
+ "routerExternal ": 0
-}
+ }]
-PHYSICALNETWORK
+ }
-1. \ **Get Network**
+4.4. **Get Network**
+--------------------
+---------------------+---------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------------------+
-1. \ **Request**
+4.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+4.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
+::
- “vimId”:”11111”,
+ {
- “vimName”:”11111”,
+ "vimId":"11111",
- “status”: “ACTIVE”,
+ "vimName":"11111",
- “id”: “3c9eebdbbfd345658269340b9ea6fb73”,
+ "status": "ACTIVE",
- “name”: “net1”,
+ "id": "3c9eebdbbfd345658269340b9ea6fb73",
- “tenant”: “tenant1”,
+ "name": "net1",
- “networkName”: “ommnet”,
+ "tenant": "tenant1",
- “shared”: 1,
+ "networkName": "ommnet",
- “vlanTransparent”: 1,
+ "shared": 1,
- “networkType”:”vlan”,
+ "vlanTransparent": 1,
- “segmentationId”:202,
+ "networkType":"vlan",
- “physicalNetwork ”:”ctrl”,
+ "segmentationId":202,
- “routerExternal ”:0
+ "physicalNetwork ":"ctrl",
-}
+ "routerExternal ":0
-1. \ **Subnetwork Management**
+ }
- 1. \ **Create Subnets**
+5. **Subnetwork Management**
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+5.1. **Create Subnets**
+-----------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Description | Create network and subnetwork on the VIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+5.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+------------------------+----------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| hostRoutes | O | 1..n | List of routes | List of routes |
+-------------------+-----------------+-------------------+------------------------+----------------------+
-| allocationPools | O | 1..n | list of “allocation” | list of allocation |
+| allocationPools | O | 1..n | list of "allocation" | list of allocation |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| -->allocation | | | | |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| -->end | O | 1 | String | End ip |
+-------------------+-----------------+-------------------+------------------------+----------------------+
-{
+::
+
+ {
-“tenant”: “tenant1”,
+ "tenant": "tenant1",
-“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”,
+ "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
-“subnetName”: “subnet1”,
+ "subnetName": "subnet1",
-“cidr”: “10.43.35.0/24”,
+ "cidr": "10.43.35.0/24",
-“ipVersion”: 4,
+ "ipVersion": 4,
-“enableDhcp”: 1,
+ "enableDhcp": 1,
-“gatewayIp”: “10.43.35.1”,
+ "gatewayIp": "10.43.35.1",
-“dnsNameservers”: [],
+ "dnsNameservers": [],
-“allocationPools”:[{
+ "allocationPools": [{
-“start”: “192.168.199.2”,
+ "start": "192.168.199.2",
-“end”: “192.168.199.254”
+ "end": "192.168.199.254"
-}],
+ }],
-“hostRoutes”: []
+ "hostRoutes": []
-}
+ }
-1. \ **Response**
+5.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+------------------------+-------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-------------------+-----------------+-------------------+------------------------+-------------------------------------+
| hostRoutes | O | 1..n | List of routes | List of routes |
+-------------------+-----------------+-------------------+------------------------+-------------------------------------+
-| allocationPools | O | 1..n | list of “allocation” | list of allocation |
+| allocationPools | O | 1..n | list of "allocation" | list of allocation |
+-------------------+-----------------+-------------------+------------------------+-------------------------------------+
| -->allocation | | | | |
+-------------------+-----------------+-------------------+------------------------+-------------------------------------+
500: failed
-{
+::
- “returnCode”:0,
+ {
+
+ "returnCode": 0,
- “vimId”:”11111”,
+ "vimId": "11111",
- “vimName”:”11111”,
+ "vimName": "11111",
-“status”:” ACTIVE”
+ "status": " ACTIVE",
-“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23”
+ "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
-“tenant”: “tenant1”,
+ "tenant": "tenant1",
-“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”,
+ "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
-“name”: “subnet1”,
+ "name": "subnet1",
-“cidr”: “10.43.35.0/24”,
+ "cidr": "10.43.35.0/24",
-“ipVersion”: 4,
+ "ipVersion": 4,
-“enableDhcp”: 1,
+ "enableDhcp": 1,
-“gatewayIp”: “10.43.35.1”,
+ "gatewayIp": "10.43.35.1",
-“dnsNameservers”: [],
+ "dnsNameservers": [],
-“allocationPools”:[{
+ "allocationPools": [{
-“start”: “192.168.199.2”,
+ "start": "192.168.199.2",
-“end”: “192.168.199.254”
+ "end": "192.168.199.254"
-}],
+ }],
-“hostRoutes”: []
+ "hostRoutes": []
-}
+ }
-1. \ **Delete Subnets**
+5.2. **Delete Subnets**
+-----------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+5.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+5.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Subnets**
+5.3. **List Subnets**
+---------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Query**
+5.3.1. **Query**
+>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……}
| name | O | 1 | String | Filters fields of the response by a name, as a string. A valid value is the name of a subnet |
+-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------+
-1. \ **Response**
+5.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+------------------------+----------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| hostRoutes | O | 1..n | List of routes | List of routes |
+-------------------+-----------------+-------------------+------------------------+----------------------+
-| allocationPools | O | 1..n | list of “allocation” | list of allocation |
+| allocationPools | O | 1..n | list of "allocation" | list of allocation |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| -->allocation | | | | |
+-------------------+-----------------+-------------------+------------------------+----------------------+
**500: failed**
-{
+::
-“vimId”:”11111”,
+ {
-“vimName”:”11111”,
+ "vimId": "11111",
-"subnets":[
+ "vimName": "11111",
- {
+ "subnets": [
-“status”:” ACTIVE”
+ {
-“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23”
+ "status": " ACTIVE",
-“tenant”: “tenant1”,
+ "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
-“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”,
+ "tenant": "tenant1",
-“name”: “subnet1”,
+ "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
-“cidr”: “10.43.35.0/24”,
+ "name": "subnet1",
-“ipVersion”: 4,
+ "cidr": "10.43.35.0/24",
-“enableDhcp”: 1,
+ "ipVersion": 4,
-“gatewayIp”: “10.43.35.1”,
+ "enableDhcp": 1,
-“dnsNameservers”: [],
+ "gatewayIp": "10.43.35.1",
-“allocationPools”:[{
+ "dnsNameservers": [],
-“start”: “192.168.199.2”,
+ "allocationPools": [{
-“end”: “192.168.199.254”
+ "start": "192.168.199.2",
-}],
+ "end": "192.168.199.254"
-“hostRoutes”: []
+ }],
- }
+ "hostRoutes": []
+
+ }
-]
+ ]
-}
+ }
-1. \ **Get Subnets**
+5.4. **Get Subnets**
+--------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+5.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+5.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+------------------------+----------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| hostRoutes | O | 1..n | List of routes | List of routes |
+-------------------+-----------------+-------------------+------------------------+----------------------+
-| allocationPools | O | 1..n | list of “allocation” | list of allocation |
+| allocationPools | O | 1..n | list of "allocation" | list of allocation |
+-------------------+-----------------+-------------------+------------------------+----------------------+
| -->allocation | | | | |
+-------------------+-----------------+-------------------+------------------------+----------------------+
500: failed
-{
+::
-“status”:” ACTIVE”
+ {
-“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23”
+ "status": " ACTIVE",
-“tenant”: “tenant1”,
+ "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23",
-“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”,
+ "tenant": "tenant1",
-“name”: “subnet1”,
+ "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22",
-“cidr”: “10.43.35.0/24”,
+ "name": "subnet1",
-“ipVersion”: 4,
+ "cidr": "10.43.35.0/24",
-“enableDhcp”: 1,
+ "ipVersion": 4,
-“gatewayIp”: “10.43.35.1”,
+ "enableDhcp": 1,
-“dnsNameservers”: [],
+ "gatewayIp": "10.43.35.1",
-“allocationPools”:[{
+ "dnsNameservers": [],
-“start”: “192.168.199.2”,
+ "allocationPools": [{
-“end”: “192.168.199.254”
+ "start": "192.168.199.2",
-}],
+ "end": "192.168.199.254"
-“hostRoutes”: []
+ }],
-}
+ "hostRoutes": []
-1. \ **Virtual Port**
+ }
+
+6. **Virtual Port**
+^^^^^^^^^^^^^^^^^^^
- 1. \ **Create Virtual Port**
+6.1. **Create Virtual Port**
+----------------------------
+---------------------+------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+------------------------------------------------------------------------------+
-1. \ **Request**
+6.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| \ **securityGroups** | **O** | **1** | **string** | **The IDs of security groups applied to the port.** |
+------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+
-1. \ **Response**
+6.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| **securityGroups** | **O** | **1** | **string** | **List of security group names.** |
+----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+
-1. \ **Delete Virtual Port**
+6.2. **Delete Virtual Port**
+----------------------------
+---------------------+---------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------------+
-1. \ **Request**
+6.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+6.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Virtual Port**
+6.3. **List Virtual Port**
+--------------------------
+---------------------+-----------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+-----------------------------------------------------------------------------+
-1. \ **Query**
+6.3.1. **Query**
+>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+-------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| name | M | 1 | string | Port name to filter out list of virtual ports |
+-----------------+-----------------+-------------------+---------------+-------------------------------------------------+
-1. \ **Response**
+6.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
**500: failed**
-{
-
-}
-1. \ **Get Virtual Port**
+6.4. **Get Virtual Port**
+-------------------------
+---------------------+---------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------------+
-1. \ **Request**
+6.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+6.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+------------------+-----------------+-------------------+---------------+-----------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
**500: failed**
-{
-}
+7. **Server Management**
+^^^^^^^^^^^^^^^^^^^^^^^^
-1. \ **Server Management**
-
- 1. \ **Create Server**
+7.1. **Create Server**
+----------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+7.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| | | | | |
| | | | | NOTE: The ‘null’ value allowed in Nova legacy v2 API, but due to the strict input validation, it isn’t allowed in Nova v2.1 API. |
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| **securityGroups** | **O** | **1** | **List of names of security group** | **One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.** |
+| securityGroups | O | 1 | List of names of security group | One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. |
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity |
+| serverGroup | O | 1 | string | the ServerGroup for anti-affinity and affinity |
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
**boot**
| fileData | M | 1 | string | Injection file content (injection file content inside the <mac>$MAC\_1</mac> $MAC\_1 need to be replaced by the MAC address, of which 1 is NIC index. ) |
+-----------------+-----------------+-------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+
-volumeArray
+**volumeArray**
+-----------------+-----------------+-------------------+---------------+-------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| volumeId | M | 1 | String | Volume Id |
+-----------------+-----------------+-------------------+---------------+-------------------+
-nicArray
+**nicArray**
+-----------------+-----------------+-------------------+---------------+-------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| value | M | 1 | string | value |
+-----------------+-----------------+-------------------+---------------+-------------------+
-{
+::
+
+ {
-"tenant": "tenant1",
+ "tenant": "tenant1",
-"name": "vm1",
+ "name": "vm1",
-“availabilityZone”:”az1”,
+ "availabilityZone": "az1",
-“flavorName”:”vm\_large”,
+ "flavorName": "vm_large",
-"boot": {
+ "boot": {
-"type": 1,
+ "type": 1,
-" volumeName": "volume1"
+ " volumeName": "volume1"
-},
+ },
-“flavorId”:”vm\_large\_134213”
+ "flavorId": "vm_large_134213",
-"contextArray": [{
+ "contextArray": [{
-"fileName": "test.yaml",
+ "fileName": "test.yaml",
-"fileData": "….”
+ "fileData": "…."
-}],
+ }],
-"volumeArray": [{
+ "volumeArray": [{
-"volumeName": "vol1",
+ "volumeName": "vol1",
-}],
+ }],
-“nicArray”:[{
+ "nicArray": [{
- “portId”:”port\_a”
+ "portId": "port_a"
-}]
+ }],
-“metada”: [{
+ "metada": [{
-"keyName": "foo",
+ "keyName": "foo",
-"value": "foo value”
+ "value": "foo value"
-}],
+ }],
-“userdata”:”abcdedf”
+ "userdata": "abcdedf"
-}
+ }
-1. \ **Response**
+7.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
+::
-"id": "3c9eebdbbfd345658269340b9ea6fb73",
+ {
+
+ "id": "3c9eebdbbfd345658269340b9ea6fb73",
-"name": "vm1",
+ "name": "vm1",
-"returnCode": 1,
+ "returnCode": 1,
-}
+ }
-1. \ **Delete Server**
+7.2. **Delete Server**
+----------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+7.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+7.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Server**
+7.3. **List Server**
+--------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+7.3.1. **Request**
+>>>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……}
| name | M | 1 | string | server name |
+-----------------+-----------------+-------------------+---------------+-------------------+
-1. \ **Response**
+7.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
-
-}
-
-1. \ **Get Server**
+7.4. **Get Server**
+-------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+7.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+7.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-{
-
-}
-
-1. \ **Flavor Management**
+8. **Flavor Management**
+^^^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **Create Flavor**
+8.1. **Create Flavor**
+----------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | VNFLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+8.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| extraSpecs | O | 0..N | List of keyname-value pairs | EPA parameter |
+-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+
-1. \ **Response**
+8.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| vimName | O | 1 | string | vim name |
+-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+
-1. \ **Delete Flavor**
+8.2. **Delete Flavor**
+----------------------
+---------------------+--------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------------------+
-1. \ **Request**
+8.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+8.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Flavor**
+8.3. **List Flavor**
+--------------------
+---------------------+---------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+---------------------------------------------------------------------------------+
-1. \ **Query**
+8.3.1. **Query**
+>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+----------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| name | M | 1 | string | Flavor name to filter out list |
+-----------------+-----------------+-------------------+---------------+----------------------------------+
-1. \ **Response**
+8.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-1. \ **Get Flavor**
+8.4. **Get Flavor**
+-------------------
+---------------------+----------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NFLCM,NSLCM->MULTIVIM |
+---------------------+----------------------------------------------------------------------------------------------+
-1. \ **Request**
+8.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+8.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
-1. \ **Volume Management**
+9. **Volume Management**
+^^^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **Create Volume**
+9.1. **Create Volume**
+----------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM->MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+9.1.1. **Request**
+>>>>>>>>>>>>>>>>>>
+--------------------+-----------------+-------------------+---------------+-------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| availabilityZone | O | 1 | string | Usable field |
+--------------------+-----------------+-------------------+---------------+-------------------+
+::
+
{
"tenant": "tenant1",
}
-1. \ **Response**
+9.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+--------------------+-----------------+-------------------+---------------+-------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
"id": "bc9eebdbbfd356458269340b9ea6fb73",
}
-1. \ **Delete Volume**
+9.2. **Delete Volume**
+----------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM->MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+9.2.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+9.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>
204: no content
-1. \ **List Volumes**
+9.3. **List Volumes**
+---------------------
+---------------------+--------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM-> MULTIVIM |
+---------------------+--------------------------------------------------------------------------------+
-1. \ **Request**
+9.3.1. **Request**
+>>>>>>>>>>>>>>>>>>
msb.onap.org:80/api/multicloud/v0/{cloud
owner}\_{region}/volumes?{……}
| name | M | 1 | string | Volume name |
+-----------------+-----------------+-------------------+---------------+-------------------+
-1. \ **Response**
+9.3.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
- "volumes": [
+ "volumes": [
- {
+ {
- "status": "available",
+ "status": "available",
- "name": "test",
+ "name": "test",
- "attachments": [],
+ "attachments": [],
- "createTime": "2015-12-02T07:57:23.000000",
+ "createTime": "2015-12-02T07:57:23.000000",
- " volumeType ": "ws",
+ " volumeType ": "ws",
- "id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55",
+ "id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55",
- "size": 20
+ "size": 20
- },
+ },
- {
+ {
- "status": "in-use",
+ "status": "in-use",
- "name": "wangsong",
+ "name": "wangsong",
- "attachments": [
+ "attachments": [
- {
+ {
- "device": "/dev/vdc",
+ "device": "/dev/vdc",
- "serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
+ "serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
- "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
+ "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
- "hostName": null,
+ "hostName": null,
- "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
+ "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
- }
+ }
- ],
+ ],
- "createTime": "2015-12-02T06:39:40.000000",
+ "createTime": "2015-12-02T06:39:40.000000",
- " volumeType ": null,
+ " volumeType ": null,
- "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
+ "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
- "size": 40
+ "size": 40
- }
+ }
- ]
+ ]
}
-1. \ **Get Volumes**
+9.4. **Get Volumes**
+--------------------
+---------------------+-------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM-> MULTIVIM |
+---------------------+-------------------------------------------------------------------------------------------+
-1. \ **Request**
+9.4.1. **Request**
+>>>>>>>>>>>>>>>>>>
N/A
-1. \ **Response**
+9.4.2. **Response**
+>>>>>>>>>>>>>>>>>>>
+--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
- "status": "in-use",
+ "status": "in-use",
- "name": "wangsong",
+ "name": "wangsong",
- "attachments": [
+ "attachments": [
- {
+ {
- "device": "/dev/vdc",
+ "device": "/dev/vdc",
- "serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
+ "serverId": "3030e666-528e-4954-88f5-cc21dab1262b",
- "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
+ "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
- "hostName": null,
+ "hostName": null,
- "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
+ "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31"
- }
+ }
- ],
+ ],
- "createTime": "2015-12-02T06:39:40.000000",
+ "createTime": "2015-12-02T06:39:40.000000",
- "volumeType ": null,
+ "volumeType ": null,
- "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
+ "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31",
- "volumeSize ": 40
+ "volumeSize ": 40
}
-1. \ **Tenant Management**
+10. **Tenant Management**
+^^^^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **List tenants**
+10.1. **List tenants**
+----------------------
+---------------------+---------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM-> MULTIVIM |
+---------------------+---------------------------------------------------------------------+
-1. \ **Query**
+10.1.1. **Query**
+>>>>>>>>>>>>>>>>>
+---------------------+-----------------+-------------------+---------------+-------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| name={tenantname} | O | 1 | string | Tenant name to filter output list |
+---------------------+-----------------+-------------------+---------------+-------------------------------------+
-1. \ **Response**
+10.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+-------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
- " tenants ": [
+ " tenants ": [
- {
+ {
- "id": "1",
+ "id": "1",
- "name": "test\_a"
+ "name": "test\_a"
- }
+ }
- ]
+ ]
}
-1. \ **Limits**
+11. **Limits**
+^^^^^^^^^^^^^^
- 1. \ **List Limits of resouces: CPU&Memory, volume,network,etc**
+11.1. **List Limits of resouces**
+---------------------------------
+---------------------+-------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM-> MULTIVIM |
+---------------------+-------------------------------------------------------------------------------+
-1. \ **Request**
+11.1.1. **Request**
+>>>>>>>>>>>>>>>>>>>
+
+N/A
-2. \ **Response**
+11.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
"maxPersonality": 5,
}
-1. \ **Host Management**
+12. **Host Management**
+^^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **List hosts**
+12.1. **List hosts**
+--------------------
+---------------------+------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | NSLCM-> MULTIVIM |
+---------------------+------------------------------------------------------------------------------+
-1. \ **Request**
+12.1.1. **Request**
+>>>>>>>>>>>>>>>>>>>
-2. \ **Response**
+N/A
+
+12.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+-----------------+-----------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
500: failed
+::
+
{
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- "hosts": [
+ "hosts": [
- {
+ {
- "name": "b6e4adbc193d428ea923899d07fb001e",
+ "name": "b6e4adbc193d428ea923899d07fb001e",
- "service": "conductor",
+ "service": "conductor",
- "zone": "internal",
+ "zone": "internal",
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- },
+ },
- {
+ {
- "name": "09c025b0efc64211bd23fc50fa974cdf",
+ "name": "09c025b0efc64211bd23fc50fa974cdf",
- "service": "compute",
+ "service": "compute",
- "zone": "nova"
+ "zone": "nova"
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- },
+ },
- {
+ {
- "name": "e73ec0bd35c64de4a1adfa8b8969a1f6",
+ "name": "e73ec0bd35c64de4a1adfa8b8969a1f6",
- "service": "consoleauth",
+ "service": "consoleauth",
- "zone": "internal"
+ "zone": "internal"
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- },
+ },
- {
+ {
- "host\_name": "396a8a0a234f476eb05fb9fbc5802ba7",
+ "host\_name": "396a8a0a234f476eb05fb9fbc5802ba7",
- "service": "network",
+ "service": "network",
- "zone": "internal"
+ "zone": "internal"
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- },
+ },
- {
+ {
- "name": "abffda96592c4eacaf4111c28fddee17",
+ "name": "abffda96592c4eacaf4111c28fddee17",
- "service": "scheduler",
+ "service": "scheduler",
- "zone": "internal"
+ "zone": "internal"
- "vimId": "123",
+ "vimId": "123",
- "vimName": "vimName",
+ "vimName": "vimName",
- "tenantId": "tenantId1"
+ "tenantId": "tenantId1"
- }
+ }
- ]
+ ]
}
-1. \ **Get host**
+12.2. **Get host**
+------------------
+---------------------+-----------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+=========================================================================================+
-| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/hosts/{hostname} |
+| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/hosts/{hostname} |
+---------------------+-----------------------------------------------------------------------------------------+
| Operation | GET |
+---------------------+-----------------------------------------------------------------------------------------+
| Direction | NSLCM-> MULTIVIM |
+---------------------+-----------------------------------------------------------------------------------------+
-1. \ **Request**
+12.2.1. **Request**
+>>>>>>>>>>>>>>>>>>>
-2. \ **Response**
+12.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
| cpu | M | 1 | Int | The cpu info on the host. |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
-| memory\_mb | M | 1 | int | The memory info on the host (in MB). |
+| memory_mb | M | 1 | int | The memory info on the host (in MB). |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
| name | M | 1 | string | host name |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
-| project | M | 1 | string | Value: total, used\_now, used\_max or specific project\_id |
+| project | M | 1 | string | Value: total, used_now, used_max or specific project_id |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
-| disk\_gb | M | 1 | int | The disk info on the host (in GB). |
+| disk_gb | M | 1 | int | The disk info on the host (in GB). |
+-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+
200: ok
500: failed
-{
+::
-"cpu": 1,
-
-"disk\_gb": 1028,
+ {
-"name": "c1a7de0ac9d94e4baceae031d05caae3",
+ "cpu": 1,
-"memory\_mb": 8192,
+ "disk\_gb": 1028,
-"vimId": "123",
+ "name": "c1a7de0ac9d94e4baceae031d05caae3",
-"vimName": "vimName",
+ "memory\_mb": 8192,
-"tenantId": "tenantId1"
+ "vimId": "123",
-}
+ "vimName": "vimName",
- {
+ "tenantId": "tenantId1",
- "host": [
+ "host": [
- {
+ {
- "memory\_mb": 4960,
+ "memory\_mb": 4960,
- "name": " c1a7de0ac9d94e4baceae031d05caae3",
+ "name": " c1a7de0ac9d94e4baceae031d05caae3",
- "disk\_gb": 92,
+ "disk\_gb": 92,
- "project": "(total)",
+ "project": "(total)",
- "cpu": 4
+ "cpu": 4
- },
+ },
- {
+ {
- "memory\_mb": 1536,
+ "memory\_mb": 1536,
- "name": " c1a7de0ac9d94e4baceae031d05caae3",
+ "name": " c1a7de0ac9d94e4baceae031d05caae3",
- "disk\_gb": 2,
+ "disk\_gb": 2,
- "project": "(used\_now)",
+ "project": "(used\_now)",
- "cpu": 2
+ "cpu": 2
- },
+ },
- {
+ {
- "memory\_mb": 1024,
+ "memory\_mb": 1024,
- "name": " c1a7de0ac9d94e4baceae031d05caae3",
+ "name": " c1a7de0ac9d94e4baceae031d05caae3",
- "disk\_gb": 2,
+ "disk\_gb": 2,
- "project": "(used\_max)",
+ "project": "(used\_max)",
- "cpu": 2
+ "cpu": 2
- },
+ },
- {
+ {
- "memory\_mb": 1024,
+ "memory\_mb": 1024,
- "name": " c1a7de0ac9d94e4baceae031d05caae3",
+ "name": " c1a7de0ac9d94e4baceae031d05caae3",
- "disk\_gb": 2,
+ "disk\_gb": 2,
- "project": "568f7ec425db472ba348251bf1e7eebd",
+ "project": "568f7ec425db472ba348251bf1e7eebd",
- "cpu": 2
+ "cpu": 2
- }
+ }
- ],
+ ],
- "vimName": "openstack\_newton",
+ "vimName": "openstack\_newton",
- "vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73",
+ "vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73",
- "tenantId": "568f7ec425db472ba348251bf1e7eebd"
+ "tenantId": "568f7ec425db472ba348251bf1e7eebd"
}
-1. \ **VIM Management**
+13. **VIM Management**
+^^^^^^^^^^^^^^^^^^^^^^
- 1. \ **Update VIM Info**
+13.1. **Update VIM Info**
+-------------------------
+---------------------+----------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
| Direction | ESR-> MULTICLOUD |
+---------------------+----------------------------------------------------------------------------------------------+
-1. \ **Request**
+13.1.1. **Request**
+>>>>>>>>>>>>>>>>>>>
+-----------------+-----------------+-------------------+---------------+-----------------------+
| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** |
| defaultTenant | M | 1 | string | default tenant name |
+-----------------+-----------------+-------------------+---------------+-----------------------+
-1. \ **Response**
+13.1.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
NA
400: failed
-1. \ **Unregistry VIM**
+13.2. **Unregistry VIM**
+------------------------
+---------------------+-----------------------------------------------------------------------------------------------+
| **IF Definition** | **Description** |
+=====================+===============================================================================================+
-| URI | http(s)://[hostname][:port]/onapapi/multicloud/v1 /{cloud-owner}\_{cloud-region}/unregistry |
+| URI | http(s)://[hostname][:port]/onapapi/multicloud/v1/{cloud-owner}\_{cloud-region} |
+---------------------+-----------------------------------------------------------------------------------------------+
| Operation | DELETE |
+---------------------+-----------------------------------------------------------------------------------------------+
| Direction | ESR-> MULTICLOUD |
+---------------------+-----------------------------------------------------------------------------------------------+
-1. \ **Request**
+13.2.1. **Request**
+>>>>>>>>>>>>>>>>>>>
NA
-1. \ **Response**
+13.2.2. **Response**
+>>>>>>>>>>>>>>>>>>>>
NA
It is beneficial to support for multiple container orchestration technologies
as cloud infrastructure:
+
* Allow VNFs to run within container technology and also allow closed
feedback loop same to VM based VIM. e.g. openstack.
* Support for co-existence of VNF VMs and VNF containers
Scope for Beijing release(R-2)
------------------------------
Basic principle
+
* First baby step is to support containers in a Kubernetes cluster via a
Multicloud SBI /K8S Plugin
(other COE's(Container Orchestration Engine) are out of Beijing scope.
- They are future scope.)
+ They are future scope.)
* Minimal implementation with zero impact on MVP of Multicloud Beijing work
Use Cases
+
* Sample VNFs(vFW and vDNS)
(vCPE use case is post Beijing release)
Both vFW and vDNS are targeted. Since custom TOSCA node definitions
is delivered as payload of HTTP request body in the API call. The VNF package
could be a CSAR or Helm Charts.
-CSAR deployment package will include a yaml deployment file and other artifacts.
+CSAR deployment package will include a yaml deployment file and other
+artifacts.
This approach would work for simple VNFs consisting of single PODs.
For VNFs comprising of multiple PODs which are dependent on each other, Helm
service that is part of the VNF.
There would be no change required in the Northboud API from MultiCloud for
-either CSAR package or Helm package or any other package in the future. SO calls
-this MultiVIM Northbound API and sends the k8s package (e.g. csar, or tgz)
-as payload. k8s Plugin will distinguish package types based on its suffix
+either CSAR package or Helm package or any other package in the future. SO
+calls this MultiVIM Northbound API and sends the k8s package (e.g. csar, or
+tgz) as payload. k8s Plugin will distinguish package types based on its suffix
and interact with k8s cluster appropriately:
* For CSAR: k8s yaml file will be extracted from CSAR. k8s REST API server
will be called to create k8s resources (e.g. pods), which is equivalent to
- "kubectl create -f <file.yaml>". The TOSCA file in CSAR is expected to include
- onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml
+ "kubectl create -f <file.yaml>". The TOSCA file in CSAR is expected to
+ include onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml
node which is explained below. In another word, Kubernetes yaml is stored as
artifact in CSAR. it is extracted and then it is fed to k8s API.
swagger.json
------------
+
* PATH: swagger.json
swagger.json for kubernetes API definitions
* METHOD: GET
stretched goal.
* Unit Test
-** API input/output
+
+ * API input/output
* functional test
-** communication to backend(K8S API server, helm tiller server)
+
+ * communication to backend(K8S API server, helm tiller server)
* CSIT as end-to-end test
Request Body:
------------------- ---------- ------- ----------------------------------------
-Attribute Qualifier Content Description
-================== ========== ======= ========================================
-cloudOwner M String any string as cloud owner
------------------- ---------- ------- ----------------------------------------
-cloudRegionId M String e.g. "kubernetes-<N>" as it doesn't apply
- to k8s. Cloud admin assigns unique id.
------------------- ---------- ------- ----------------------------------------
-cloudType M String "kubernetes". new type
------------------- ---------- ------- ----------------------------------------
-cloudRegionVersion M String kubernetes version. "v1.9", "v1.8" ...
------------------- ---------- ------- ----------------------------------------
-ownerDefinedType O String None. (not specified)
------------------- ---------- ------- ----------------------------------------
-cloudZone O String None. (not speicfied)
- as kubernetes doesn't have notion of
- zone.
------------------- ---------- ------- ----------------------------------------
-complexName O String None. (not specified)
- as kubernetes doesn't have notion of
- complex.
------------------- ---------- ------- ----------------------------------------
-cloudExtraInfo O String json string(dictionary) for necessary
- info. For now "{}" empty dictionary.
- For helm support, URL for tiller server
- is stored.
------------------- ---------- ------- ----------------------------------------
-vimAuthInfos M [Obj] Auth information of Cloud
- list of authInfoItem which is described
- below.
-================== ========== ======= ========================================
+::
+
+ ------------------ ---------- ------- ----------------------------------------
+ Attribute Qualifier Content Description
+ ================== ========== ======= ========================================
+ cloudOwner M String any string as cloud owner
+ ------------------ ---------- ------- ----------------------------------------
+ cloudRegionId M String e.g. "kubernetes-<N>" as it doesn't apply
+ to k8s. Cloud admin assigns unique id.
+ ------------------ ---------- ------- ----------------------------------------
+ cloudType M String "kubernetes". new type
+ ------------------ ---------- ------- ----------------------------------------
+ cloudRegionVersion M String kubernetes version. "v1.9", "v1.8" ...
+ ------------------ ---------- ------- ----------------------------------------
+ ownerDefinedType O String None. (not specified)
+ ------------------ ---------- ------- ----------------------------------------
+ cloudZone O String None. (not speicfied)
+ as kubernetes doesn't have notion of
+ zone.
+ ------------------ ---------- ------- ----------------------------------------
+ complexName O String None. (not specified)
+ as kubernetes doesn't have notion of
+ complex.
+ ------------------ ---------- ------- ----------------------------------------
+ cloudExtraInfo O String json string(dictionary) for necessary
+ info. For now "{}" empty dictionary.
+ For helm support, URL for tiller server
+ is stored.
+ ------------------ ---------- ------- ----------------------------------------
+ vimAuthInfos M [Obj] Auth information of Cloud
+ list of authInfoItem which is described
+ below.
+ ================== ========== ======= ========================================
There are several constraints/assumptions on cloudOwner and
cloudRegionId. `cloud-region`_ . For k8s, cloudRegionId is (ab)used to
Basic authentication is used for k8s api server.
--------------- --------- ------- -------------------------------------------
-Attribute Qualifier Content Description
-============== ========= ======= ===========================================
-cloudDomain M String "kubernetes" as this doesn't apply.
--------------- --------- ------- -------------------------------------------
-userName M String User name
--------------- --------- ------- -------------------------------------------
-password M String Password
--------------- --------- ------- -------------------------------------------
-authUrl M String URL for kubernetes API server
--------------- --------- ------- -------------------------------------------
-sslCacert O String ca file content if enabled ssl on
- kubernetes API server
--------------- --------- ------- -------------------------------------------
-sslInsecure O Boolean Whether to verify VIM's certificate
-============== ========= ======= ===========================================
+::
+
+ -------------- --------- ------- -------------------------------------------
+ Attribute Qualifier Content Description
+ ============== ========= ======= ===========================================
+ cloudDomain M String "kubernetes" as this doesn't apply.
+ -------------- --------- ------- -------------------------------------------
+ userName M String User name
+ -------------- --------- ------- -------------------------------------------
+ password M String Password
+ -------------- --------- ------- -------------------------------------------
+ authUrl M String URL for kubernetes API server
+ -------------- --------- ------- -------------------------------------------
+ sslCacert O String ca file content if enabled ssl on
+ kubernetes API server
+ -------------- --------- ------- -------------------------------------------
+ sslInsecure O Boolean Whether to verify VIM's certificate
+ ============== ========= ======= ===========================================
NOTE: For some issues `issue23`_, ESR should provide authenticating by
bearer token for Kubernetes cluster if possible beside basic authentication.
* onap.multicloud.nodes.kubernetes.proxy
* node definitions
- .. code-block::
-
- data_types:
- onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml:
- properties:
- name:
- type: string
- description: >
- Name of application
- path:
- type: string
- description: >
- Paths to kubernetes yaml file
+
+ ::
+
+ data_types:
+ onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml:
+ properties:
+ name:
+ type: string
+ description: >
+ Name of application
+ path:
+ type: string
+ description: >
+ Paths to kubernetes yaml file
For VNFs that are packages as Helm package there would be only one
TOSCA node in the TOSCA template which would have reference to the
* onap.multicloud.nodes.kubernetes.helm
* node definitions
- .. code-block::
-
- data_types:
- onap.multicloud.container.kubernetes.helm.nodes.helm_package:
- properties:
- name:
- type: string
- description: >
- Name of application
- path:
- type: string
- description: >
- Paths to Helm package file
+
+ ::
+
+ data_types:
+ onap.multicloud.container.kubernetes.helm.nodes.helm_package:
+ properties:
+ name:
+ type: string
+ description: >
+ Name of application
+ path:
+ type: string
+ description: >
+ Paths to Helm package file
This TOSCA node definitions wrap kubernetes yaml file or helm chart.
cloudify.nodes.Kubernetes isn't reused in order to avoid definition conflict.
NOTE: In this work flow. only the northbound deployment API endpoint is needed
for VNF deployment. LCM APIs are only needed for lifecycle management. Other
-internal APIs, e.g. k8s YAML API may be needed only for internal implementation.
+internal APIs, e.g. k8s YAML API may be needed only for internal
+implementation.
SO ARIA multicloud plugin needs to be twisted to call k8s plugin.
The strategy is to keep the existing design of ONAP or to follow
agreed design.
The key point of The interaction between SO and multicloud is
+
* SO decomposes VNFD/NSD into single atomic resource
(e.g. VNF-C corresponding to single VM or single container/pod)
and send requests to create each resources via deployment API.
Past presentations/proposals
----------------------------
.. _Munish proposal: https://schd.ws/hosted_files/onapbeijing2017/dd/Management%20of%20Cloud%20Native%20VNFs%20with%20ONAP%20PA5.pptx
-.. _Isaku proposal:https://schd.ws/hosted_files/onapbeijing2017/9d/onap-kubernetes-arch-design-proposal.pdf
-.. _Bin Hu proposal:https://wiki.onap.org/download/attachments/16007890/ONAP-SantaClara-BinHu-final.pdf?version=1&modificationDate=1513558701000&api=v2
+.. _Isaku proposal: https://schd.ws/hosted_files/onapbeijing2017/9d/onap-kubernetes-arch-design-proposal.pdf
+.. _Bin Hu proposal: https://wiki.onap.org/download/attachments/16007890/ONAP-SantaClara-BinHu-final.pdf?version=1&modificationDate=1513558701000&api=v2
ONAP components
---------------
* TOSCA hello world
- .. code-block::
+ ::
topology_template:
node_templates:
* converted k8s yaml
- .. code-block::
+ ::
$ PYTHONPATH=. python -m tosca_translator.shell -d --debug --template-file tosca_translator/tests/data/tosca_helloworld.yaml
api_version: apps/v1beta1