From d04a2f7056c4579ee72b328dbb3413a3521ec662 Mon Sep 17 00:00:00 2001 From: xinhuili Date: Sun, 8 Oct 2017 03:05:00 +0800 Subject: Add more docs for Multi VIM/Cloud project This Patch is to add documents of deploymnet guide and API description into the project. Change-Id: I55ff0b8238aa79fd20808b6e9134ab1e77285cbb issue-id: MULTICLOUD-86 Signed-off-by: Xinhui Li --- docs/MultiCloud-API-Specification-V1.rst | 2829 ++++++++++++++++++++++++++++++ docs/MultiCloud-Deployment-Guide.rst | 270 +++ docs/index.rst | 7 +- docs/user/multivimproxy.txt | 247 --- docs/user/test.json | 10 - 5 files changed, 3103 insertions(+), 260 deletions(-) create mode 100644 docs/MultiCloud-API-Specification-V1.rst create mode 100644 docs/MultiCloud-Deployment-Guide.rst delete mode 100644 docs/user/multivimproxy.txt delete mode 100644 docs/user/test.json (limited to 'docs') diff --git a/docs/MultiCloud-API-Specification-V1.rst b/docs/MultiCloud-API-Specification-V1.rst new file mode 100644 index 0000000..398d43f --- /dev/null +++ b/docs/MultiCloud-API-Specification-V1.rst @@ -0,0 +1,2829 @@ +================================ +MultiCloud API Specification V1 +================================ + +API Catalog +=========== + +`1. Scope 5 <#_Toc490851650>`__ + +`2. Terms, Definitions and Abbreviations 5 <#_Toc490851651>`__ + +`3. Image Management 5 <#_Toc490851652>`__ + +`3.1 Create Image 5 <#_Toc490851653>`__ + +`3.1.1 Request 5 <#_Toc490851654>`__ + +`3.1.2 Response 6 <#_Toc490851655>`__ + +`3.2 Delete Image 7 <#_Toc490851656>`__ + +`3.2.1 Request 7 <#_Toc490851657>`__ + +`3.2.2 Response 7 <#_Toc490851658>`__ + +`3.3 List Images 7 <#_Toc490851659>`__ + +`3.3.1 Request 7 <#_Toc490851660>`__ + +`3.3.2 Response 8 <#_Toc490851661>`__ + +`3.4 Get Image 9 <#_Toc490851662>`__ + +`3.4.1 Request 9 <#_Toc490851663>`__ + +`3.4.2 Response 9 <#_Toc490851664>`__ + +`4. Network Management 10 <#_Toc490851665>`__ + +`4.1 Create Network 10 <#_Toc490851666>`__ + +`4.1.1 Request 10 <#_Toc490851667>`__ + +`4.1.2 Response 11 <#_Toc490851668>`__ + +`4.2 Delete Network 12 <#_Toc490851669>`__ + +`4.2.1 Request 12 <#_Toc490851670>`__ + +`4.2.2 Response 12 <#_Toc490851671>`__ + +`4.3 List Network 12 <#_Toc490851672>`__ + +`4.3.1 Query 12 <#_Toc490851673>`__ + +`4.3.2 Response 13 <#_Toc490851674>`__ + +`4.4 Get Network 14 <#_Toc490851675>`__ + +`4.4.1 Request 14 <#_Toc490851676>`__ + +`4.4.2 Response 14 <#_Toc490851677>`__ + +`5. Subnetwork Management 16 <#_Toc490851678>`__ + +`5.1 Create Subnets 16 <#_Toc490851679>`__ + +`5.1.1 Request 16 <#_Toc490851680>`__ + +`5.1.2 Response 17 <#_Toc490851681>`__ + +`5.2 Delete Subnets 18 <#_Toc490851682>`__ + +`5.2.1 Request 18 <#_Toc490851683>`__ + +`5.2.2 Response 18 <#_Toc490851684>`__ + +`5.3 List Subnets 18 <#_Toc490851685>`__ + +`5.3.1 Query 18 <#_Toc490851686>`__ + +`5.3.2 Response 19 <#_Toc490851687>`__ + +`5.4 Get Subnets 20 <#_Toc490851688>`__ + +`5.4.1 Request 20 <#_Toc490851689>`__ + +`5.4.2 Response 20 <#_Toc490851690>`__ + +`6. Virtual Port 21 <#_Toc490851691>`__ + +`6.1 Create Virtual Port 21 <#_Toc490851692>`__ + +`6.1.1 Request 21 <#_Toc490851693>`__ + +`6.1.2 Response 22 <#_Toc490851694>`__ + +`6.2 Delete Virtual Port 22 <#_Toc490851695>`__ + +`6.2.1 Request 23 <#_Toc490851696>`__ + +`6.2.2 Response 23 <#_Toc490851697>`__ + +`6.3 List Virtual Port 23 <#_Toc490851698>`__ + +`6.3.1 Query 23 <#_Toc490851699>`__ + +`6.3.2 Response 23 <#_Toc490851700>`__ + +`6.4 Get Virtual Port 24 <#_Toc490851701>`__ + +`6.4.1 Request 24 <#_Toc490851702>`__ + +`6.4.2 Response 24 <#_Toc490851703>`__ + +`7. Server Management 25 <#_Toc490851704>`__ + +`7.1 Create Server 25 <#_Toc490851705>`__ + +`7.1.1 Request 25 <#_Toc490851706>`__ + +`7.1.2 Response 27 <#_Toc490851707>`__ + +`7.2 Delete Server 28 <#_Toc490851708>`__ + +`7.2.1 Request 28 <#_Toc490851709>`__ + +`7.2.2 Response 28 <#_Toc490851710>`__ + +`7.3 List Server 28 <#_Toc490851711>`__ + +`7.3.1 Request 28 <#_Toc490851712>`__ + +`7.3.2 Response 29 <#_Toc490851713>`__ + +`7.4 Get Server 29 <#_Toc490851714>`__ + +`7.4.1 Request 30 <#_Toc490851715>`__ + +`7.4.2 Response 30 <#_Toc490851716>`__ + +`8. Flavor Management 30 <#_Toc490851717>`__ + +`8.1 Create Flavor 31 <#_Toc490851718>`__ + +`8.1.1 Request 31 <#_Toc490851719>`__ + +`8.1.2 Response 31 <#_Toc490851720>`__ + +`8.2 Delete Flavor 32 <#_Toc490851721>`__ + +`8.2.1 Request 32 <#_Toc490851722>`__ + +`8.2.2 Response 32 <#_Toc490851723>`__ + +`8.3 List Flavor 32 <#_Toc490851724>`__ + +`8.3.1 Query 32 <#_Toc490851725>`__ + +`8.3.2 Response 32 <#_Toc490851726>`__ + +`8.4 Get Flavor 33 <#_Toc490851727>`__ + +`8.4.1 Request 33 <#_Toc490851728>`__ + +`8.4.2 Response 33 <#_Toc490851729>`__ + +`9. Volume Management 34 <#_Toc490851730>`__ + +`9.1 Create Volume 34 <#_Toc490851731>`__ + +`9.1.1 Request 34 <#_Toc490851732>`__ + +`9.1.2 Response 34 <#_Toc490851733>`__ + +`9.2 Delete Volume 35 <#_Toc490851734>`__ + +`9.2.1 Request 35 <#_Toc490851735>`__ + +`9.2.2 Response 35 <#_Toc490851736>`__ + +`9.3 List Volumes 35 <#_Toc490851737>`__ + +`9.3.1 Request 35 <#_Toc490851738>`__ + +`9.3.2 Response 36 <#_Toc490851739>`__ + +`9.4 Get Volumes 37 <#_Toc490851740>`__ + +`9.4.1 Request 37 <#_Toc490851741>`__ + +`9.4.2 Response 37 <#_Toc490851742>`__ + +`10. Tenant Management 38 <#_Toc490851743>`__ + +`10.1 List tenants 38 <#_Toc490851744>`__ + +`10.1.1 Query 38 <#_Toc490851745>`__ + +`10.1.2 Response 38 <#_Toc490851746>`__ + +`11. Limits 39 <#_Toc490851747>`__ + +`11.1 List Limits of resouces: CPU&Memory, volume,network,etc +39 <#_Toc490851748>`__ + +`11.1.1 Request 39 <#_Toc490851749>`__ + +`11.1.2 Response 39 <#_Toc490851750>`__ + +`12. Host Management 41 <#_Toc490851751>`__ + +`12.1 List hosts 41 <#_Toc490851752>`__ + +`12.1.1 Request 41 <#_Toc490851753>`__ + +`12.1.2 Response 41 <#_Toc490851754>`__ + +`12.2 Get host 43 <#_Toc490851755>`__ + +`12.2.1 Request 43 <#_Toc490851756>`__ + +`12.2.2 Response 43 <#_Toc490851757>`__ + +`13. VIM Management 45 <#_Toc490851758>`__ + +`13.1 Update VIM Info 45 <#_Toc490851759>`__ + +`13.1.1 Request 45 <#_Toc490851760>`__ + +`13.1.2 Response 45 <#_Toc490851761>`__ + +`13.2 Unregistry VIM 45 <#_Toc490851762>`__ + +`13.2.1 Request 45 <#_Toc490851763>`__ + +`13.2.2 Response 46 <#_Toc490851764>`__ + +* +* + +1. \ **Scope** + +The scope of the present document is to describe the VIM Driver API +specification. + +1. \ **Terms, Definitions and Abbreviations** + +For the purposes of the present document, the following abbreviations +apply: + ++--------------------+-------------------------------------------------------------+ +| **Abbreviation** | | ++====================+=============================================================+ +| NFVO | Network Functions Virtualization Orchestrator | ++--------------------+-------------------------------------------------------------+ +| VNFM | Virtual Network Function Management | ++--------------------+-------------------------------------------------------------+ +| VIM | Virtualized Infrastructure Manager | ++--------------------+-------------------------------------------------------------+ +| MultiVIM | MultVIM driver services for OPEN-O to drive VIM instances | ++--------------------+-------------------------------------------------------------+ + +Table 2-1 abbreviations + +1. \ **Image Management** + + 1. \ **Create Image** + ++---------------------+-------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images | ++---------------------+-------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+-------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------+ +| Description | Create Image and Upload the image file to the VIM | ++---------------------+-------------------------------------------------------------------------------+ + +1. \ **Request** + ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===========================+==================================================================================================+ +| name | M | 1 | String | Image Name | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| imagePath | M | 1 | String | Image Local Path from catalog | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| imageType | M | 1 | String | Image Type | +| | | | | | +| | | | | ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| containerFormat | M | 1 | string | ami, ari, aki, bare, ovf, ova,  docker | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| visibility | O | 1 | string | Visibility for this image. | +| | | | | | +| | | | | public, private, shared, or community | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ +| properties | O | 0..N | List of key-value pairs | Examples:--property vmware\_disktype=streamOptimized --property vmware\_adaptertype="lsiLogic" | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ + +{ + +"imageName": "cirros", + +"imagePath": "/home/cirros.qcow2", + +"imageType": "qcow2" + +“containerFormat”:”bare” + +} + +1. \ **Response** + ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===========================+========================================================+ +| id | M | 1 | String | Image UUID in the VIM | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| name | M | 1 | String | Image Name | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| returnCode | M | 1 | Int | 0: Already exist 1: Newly created | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| imageType | M | 1 | String | Image Type | +| | | | | | +| | | | | ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| containerFormat | M | 1 | string | ami, ari, aki, bare, ovf, ova,  docker | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| visibility | O | 1 | string | Visibility for this image. | +| | | | | | +| | | | | public, private, shared, or community | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| properties | O | 0..N | List of key-value pairs | | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| vimid | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ + +*202*: accepted + +500: failed + +{ + + “id”:” 3c9eebdbbfd345658269340b9ea6fb73”, + + "name": "cirros", + + "returnCode": 1 + +} + +1. \ **Delete Image** + ++---------------------+-----------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images/{imageId} | ++---------------------+-----------------------------------------------------------------------------------------+ +| Operation | Delete | ++---------------------+-----------------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+-----------------------------------------------------------------------------------------+ +| Description | Delete Image | ++---------------------+-----------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Images** + ++---------------------+-------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images | ++---------------------+-------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------+ +| Description | Query Image list | ++---------------------+-------------------------------------------------------------------------------+ + +1. \ **Request** + +msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……} + ++-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+==================================================================================================================================================================================================================================================================+ +| limit | O | 1 | integer | Requests a page size of items. Returns a number of items up to a limit value. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. | ++-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| marker | O | 1 | string | The ID of the last-seen item. Use the limit parameter to make an initial limited request and use the ID of the last-seen item from the response as the marker parameter value in a subsequent limited request. | ++-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | O | 1 | String | Filters the response by a name, as a string. A valid value is the name of an image | ++-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +1. \ **Response** + ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| \ **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================================================+=================+===================+===============+========================================================+ +| images | M | 0..N | List | Image List | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| id | M | 1 | String | Image ID | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| size | M | 1 | int | Image Size | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| name | M | 1 | String | Image Name | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| status | M | 1 | String | Image Status | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| imageType | M | 1 | String | Image Type | +| | | | | | +| | | | | ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| containerFormat | M | 1 | string | ami, ari, aki, bare, ovf, ova,  docker | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| visibility | O | 1 | string | Visibility for this image. | +| | | | | | +| | | | | public, private, shared, or community | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| 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** + ++---------------------+-----------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images/{imageid} | ++---------------------+-----------------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-----------------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+-----------------------------------------------------------------------------------------+ +| Description | Query Image Information | ++---------------------+-----------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===============+========================================================+ +| id | M | 1 | String | Image ID | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| size | M | 1 | int | Image Size | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| name | M | 1 | String | Image Name | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| status | M | 1 | String | Image Status | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| imageType | M | 1 | String | Image Type | +| | | | | | +| | | | | ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| containerFormat | M | 1 | string | ami, ari, aki, bare, ovf, ova,  docker | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| visibility | O | 1 | string | Visibility for this image. | +| | | | | | +| | | | | public, private, shared, or community | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| vimName | M | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ + +200: ok + +500: failed + +{ + +“vimid”:”” + +“vimname”:”” + +"status": "active", + +"id": "5e2757c1-f846-4727-915c-9a872553ed75", + +"size": 862016, + +"name": "vim-plus-cgsl40g-z.qcow2" + +a} + +1. \ **Network Management** + + 1. \ **Create Network** + ++---------------------+---------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/networks | ++---------------------+---------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+---------------------------------------------------------------------------------+ +| Direction | VNFLCM,NSLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------+ +| Description | Create network and subnetwork on the VIM | ++---------------------+---------------------------------------------------------------------------------+ + +1. \ **Request** + ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=============================+=================+===================+===============+===========================================================================================================================================================================================================================================================================================+ +| name | M | 1 | String | Logical network name | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| shared | M | 1 | boolean | Whether to share(1:sharing;0:private) | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vlanTransparent | O | 1 | boolean | Whether to support VLAN pass through(1:true;0:false) | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| networkType | O | 1 | String | Network type | +| | | | | | +| | | | | flat, vlan, vxlan, gre, | +| | | | | | +| | | | | portgroup | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| segmentationId | O | 1 | Int | id of paragraph | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 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 | | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| } | | ++-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +1. \ **Response** + ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===============+===========================================================================================================================================================================================================================================================================================+ +| status | M | 1 | string | Network status | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | Network id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Network name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| segmentationId | O | 1 | int | Segmentation id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| networkType | O | 1 | string | Network type | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 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. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vlanTransparent | O | 1 | boolean | Whether to support VLAN pass through(1:true;0:false) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| shared | O | 1 | boolean | Whether to share(1:sharing;0:private) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| routerExternal | O | 1 | boolean | Indicates whether this network can provide floating IPs via a router. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +202: accepted + +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 + +} + +1. \ **Delete Network** + ++---------------------+---------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=============================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/networks/{networkId} | ++---------------------+---------------------------------------------------------------------------------------------+ +| Operation | Delete | ++---------------------+---------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Network** + ++---------------------+---------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/networks | ++---------------------+---------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+---------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------+ + +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** + ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===============+===========================================================================================================================================================================================================================================================================================+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| networks | | 0..N | List | Network list | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| status | M | 1 | string | Network status | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | Network id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Network name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| segmentationId | O | 1 | int | Segmentation id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| networkType | O | 1 | string | Network type | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 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. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vlanTransparent | O | 1 | boolean | Whether to support VLAN pass through(1:true;0:false) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| shared | O | 1 | boolean | Whether to share(1:sharing;0:private) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| routerExternal | O | 1 | boolean | Indicates whether this network can provide floating IPs via a router. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +{ + +“vimId”:”11111”, + +“vimName”:”111”, + +“networks”: + +[{ + +“status”: “ACTIVE”, + +“id”: “3c9eebdbbfd345658269340b9ea6fb73”, + +“name”: “net1”, + +“tenant”: “tenant1”, + +“networkName”: “ommnet”, + +“shared”: 1, + +“vlanTransparent”: 1, + +“networkType”:”vlan”, + +“segmentationId”:202, + +“physicalNetwork ”:”ctrl”, + +“routerExternal ”:0 + +}] + +} + +PHYSICALNETWORK  + +1. \ **Get Network** + ++---------------------+---------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=============================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/networks/{networkId} | ++---------------------+---------------------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+---------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===============+===========================================================================================================================================================================================================================================================================================+ +| status | M | 1 | string | Network status | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | Network id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Network name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| segmentationId | O | 1 | int | Segmentation id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| networkType | O | 1 | string | Network type | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| 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. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vlanTransparent | O | 1 | boolean | Whether to support VLAN pass through(1:true;0:false) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| shared | O | 1 | boolean | Whether to share(1:sharing;0:private) | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| routerExternal | O | 1 | boolean | Indicates whether this network can provide floating IPs via a router. | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +{ + + “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. \ **Subnetwork Management** + + 1. \ **Create Subnets** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/subnets | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | VNFLCM,NSLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ +| Description | Create network and subnetwork on the VIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+========================+======================+ +| networkId | M | 1 | String | Network Id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| name | M | 1 | String | SubnetName | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| cidr | M | 1 | String | Subnet cidr | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| ipVersion | M | 1 | Int | Ip type | +| | | | | | +| | | | | 4,6 | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| enableDhcp | O | 1 | boolean | Whether to allow | +| | | | | | +| | | | | 1: yes;0: no | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| gatewayIp | O | 1 | String | Gateway ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| dnsNameservers | O | 1..n | List of servers | List of servers | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| hostRoutes | O | 1..n | List of routes | List of routes | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| allocationPools | O | 1..n | list of “allocation” | list of allocation | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->allocation | | | | | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->start | O | 1 | String | Start ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->end | O | 1 | String | End ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ + +{ + +“tenant”: “tenant1”, + +“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + +“subnetName”: “subnet1”, + +“cidr”: “10.43.35.0/24”, + +“ipVersion”: 4, + +“enableDhcp”: 1, + +“gatewayIp”: “10.43.35.1”, + +“dnsNameservers”: [], + +“allocationPools”:[{ + +“start”: “192.168.199.2”, + +“end”: “192.168.199.254” + +}], + +“hostRoutes”: [] + +} + +1. \ **Response** + ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+========================+=====================================+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| status | M | 1 | string | subnetwork status | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| id | M | 1 | string | subNetwork id | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| networkId | O | 1 | String | Network Id | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| networkName | O | 1 | String | Network Name | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| name | M | 1 | String | SubnetName | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| cidr | M | 1 | String | Subnet cidr | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| ipVersion | M | 1 | Int | Ip type | +| | | | | | +| | | | | 4,6 | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| enableDhcp | O | 1 | boolean | Whether to allow | +| | | | | | +| | | | | 1: yes;0: no | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| gatewayIp | O | 1 | String | Gateway ip | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| dnsNameservers | O | 1..n | List of servers | List of servers | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| hostRoutes | O | 1..n | List of routes | List of routes | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| allocationPools | O | 1..n | list of “allocation” | list of allocation | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| -->allocation | | | | | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| -->start | O | 1 | String | Start ip | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ +| -->end | O | 1 | String | End ip | ++-------------------+-----------------+-------------------+------------------------+-------------------------------------+ + +202: accepted + +500: failed + +{ + + “returnCode”:0, + + “vimId”:”11111”, + + “vimName”:”11111”, + +“status”:” ACTIVE” + +“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + +“tenant”: “tenant1”, + +“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + +“name”: “subnet1”, + +“cidr”: “10.43.35.0/24”, + +“ipVersion”: 4, + +“enableDhcp”: 1, + +“gatewayIp”: “10.43.35.1”, + +“dnsNameservers”: [], + +“allocationPools”:[{ + +“start”: “192.168.199.2”, + +“end”: “192.168.199.254” + +}], + +“hostRoutes”: [] + +} + +1. \ **Delete Subnets** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/subnets/{subnetId} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | Delete | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Subnets** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/subnets | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Query** + +msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} + ++-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+================================================================================================+ +| 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** + ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+========================+======================+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| subnets | M | 0..N | List | Network list | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| status | | 1 | string | subnetwork status | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| id | | 1 | string | subNetwork id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| networkId | O | 1 | String | Network Id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| networkName | O | 1 | String | Network Name | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| name | M | 1 | String | SubnetName | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| cidr | M | 1 | String | Subnet cidr | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| ipVersion | M | 1 | Int | Ip type | +| | | | | | +| | | | | 4,6 | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| enableDhcp | O | 1 | boolean | Whether to allow | +| | | | | | +| | | | | 1: yes;0: no | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| gatewayIp | O | 1 | String | Gateway ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| dnsNameservers | O | 1..n | List of servers | List of servers | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| hostRoutes | O | 1..n | List of routes | List of routes | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| allocationPools | O | 1..n | list of “allocation” | list of allocation | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->allocation | | | | | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->start | O | 1 | String | Start ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->end | O | 1 | String | End ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ + +**200: ok** + +**500: failed** + +{ + +“vimId”:”11111”, + +“vimName”:”11111”, + +"subnets":[ + + { + +“status”:” ACTIVE” + +“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + +“tenant”: “tenant1”, + +“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + +“name”: “subnet1”, + +“cidr”: “10.43.35.0/24”, + +“ipVersion”: 4, + +“enableDhcp”: 1, + +“gatewayIp”: “10.43.35.1”, + +“dnsNameservers”: [], + +“allocationPools”:[{ + +“start”: “192.168.199.2”, + +“end”: “192.168.199.254” + +}], + +“hostRoutes”: [] + + } + +] + +} + +1. \ **Get Subnets** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/subnets/{subnetid} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+========================+======================+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| status | | 1 | string | subnetwork status | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| id | | 1 | string | subNetwork id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| networkId | O | 1 | String | Network Id | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| networkName | O | 1 | String | Network Name | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| name | M | 1 | String | SubnetName | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| cidr | M | 1 | String | Subnet cidr | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| ipVersion | M | 1 | Int | Ip type | +| | | | | | +| | | | | 4,6 | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| enableDhcp | O | 1 | boolean | Whether to allow | +| | | | | | +| | | | | 1: yes;0: no | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| gatewayIp | O | 1 | String | Gateway ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| dnsNameservers | O | 1..n | List of servers | List of servers | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| hostRoutes | O | 1..n | List of routes | List of routes | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| allocationPools | O | 1..n | list of “allocation” | list of allocation | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->allocation | | | | | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->start | O | 1 | String | Start ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ +| -->end | O | 1 | String | End ip | ++-------------------+-----------------+-------------------+------------------------+----------------------+ + +202: accepted + +500: failed + +{ + +“status”:” ACTIVE” + +“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + +“tenant”: “tenant1”, + +“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + +“name”: “subnet1”, + +“cidr”: “10.43.35.0/24”, + +“ipVersion”: 4, + +“enableDhcp”: 1, + +“gatewayIp”: “10.43.35.1”, + +“dnsNameservers”: [], + +“allocationPools”:[{ + +“start”: “192.168.199.2”, + +“end”: “192.168.199.254” + +}], + +“hostRoutes”: [] + +} + +1. \ **Virtual Port** + + 1. \ **Create Virtual Port** + ++---------------------+------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+==============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/ports | ++---------------------+------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+------------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+------------------------------------------------------------------------------+ + +1. \ **Request** + ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++========================+=================+===================+===============+=======================================================+ +| networkId | M | 1 | string | Network UUID | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| subnetId | O | 1 | string | Subnet UUID | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| name | M | 1 | string | Port name | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| macAddress | O | 1 | string | Mac address | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| ip | O | 1 | string | Ip address | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| vnicType | O | 1 | string | Virtual network card type, | +| | | | | | +| | | | | the value of three kinds of normal/direct/macvtap | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ +| \ **securityGroups** | **O** | **1** | **string** | **The IDs of security groups applied to the port.** | ++------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ + +1. \ **Response** + ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++======================+=================+===================+===============+=====================================================+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| status | M | 1 | string | status | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| id | M | 1 | string | Port Id | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| name | M | 1 | string | Port name | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| networkName | M | 1 | string | Network name | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| networkId | M | 1 | string | Network Id | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetName | M | 1 | string | Subnet name | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetId | M | 1 | string | SubnetId | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| macAddress | O | 1 | string | Mac address | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| ip | O | 1 | string | Ip address | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vnicType | O | 1 | string | Virtual network card type, | +| | | | | | +| | | | | the value of three kinds of normal/direct/macvtap | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| **securityGroups** | **O** | **1** | **string** | **List of security group names.** | ++----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ + +1. \ **Delete Virtual Port** + ++---------------------+---------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=======================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/ports/{portid} | ++---------------------+---------------------------------------------------------------------------------------+ +| Operation | DELETTE | ++---------------------+---------------------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Virtual Port** + ++---------------------+-----------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/tenantid}/ports | ++---------------------+-----------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-----------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+-----------------------------------------------------------------------------+ + +1. \ **Query** + ++-----------------+-----------------+-------------------+---------------+-------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+=================================================+ +| name | M | 1 | string | Port name to filter out list of virtual ports | ++-----------------+-----------------+-------------------+---------------+-------------------------------------------------+ + +1. \ **Response** + ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===================+=================+===================+===============+=====================================================+ +| vimId | M | 1 | String | vim id | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| Ports | M | 0..N | List | ports | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| id | M | 1 | string | Port Id | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| name | M | 1 | string | Port name | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| status | M | 1 | string | status | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| **networkName** | O | 1 | string | Network name | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| networkId | M | 1 | string | Network Id | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetName | O | 1 | string | Subnet name | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetId | M | 1 | string | SubnetId | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| macAddress | O | 1 | string | Mac address | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| ip | O | 1 | string | Ip address | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vnicType | O | 1 | string | Virtual network card type, | +| | | | | | +| | | | | the value of three kinds of normal/direct/macvtap | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| securityGroups | O | 1 | string | List of security group names. | ++-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ + +**200: ok** + +**500: failed** + +{ + +} + +1. \ **Get Virtual Port** + ++---------------------+---------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=======================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/ports/{portid} | ++---------------------+---------------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+---------------------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++==================+=================+===================+===============+=====================================================+ +| vimId | M | 1 | String | vim id | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| status | M | 1 | string | status | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| id | M | 1 | string | Port Id | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| name | M | 1 | string | Port name | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| networkName | M | 1 | string | Network name | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| networkId | M | 1 | string | Network Id | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetName | M | 1 | string | Subnet name | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| subnetId | M | 1 | string | SubnetId | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| macAddress | O | 1 | string | Mac address | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| ip | O | 1 | string | Ip address | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| vnicType | O | 1 | string | Virtual network card type, | +| | | | | | +| | | | | the value of three kinds of normal/direct/macvtap | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ +| securityGroups | O | 1 | string | **List of security group names.** | ++------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ + +**200: ok** + +**500: failed** + +{ + +} + +1. \ **Server Management** + + 1. \ **Create Server** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/servers | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++======================+=================+===================+=======================================+========================================================================================================================================================================================+ +| name | M | 1 | string | server name | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| boot | M | 1 | String | Start parameters | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nicArray | O | 1..n | List of nic | List of nic | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| contextArray | O | 1..n | list of context | list of context | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| volumeArray | O | 1..n | list of volume | list of volume | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| availabilityZone | O | 1 | string | Usable field | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| flavorId | M | 1 | String | server Flavor id | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| metadata | O | 1 | List of metadata | Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each. | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| userdata | O | 1 | string | Configuration information or scripts to use upon launch. Must be Base64 encoded. | +| | | | | | +| | | | | 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.** | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +**boot** + ++-----------------+-----------------+-------------------+---------------+---------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===========================+ +| type | M | 1 | int | Startup mode | +| | | | | | +| | | | | 1. boot from the volume | +| | | | | | +| | | | | 2. boot from image | ++-----------------+-----------------+-------------------+---------------+---------------------------+ +| volumeId | O | 1 | string | Volume Id(type=1) | ++-----------------+-----------------+-------------------+---------------+---------------------------+ +| imageId | O | 1 | String | ImageId(type=2) | ++-----------------+-----------------+-------------------+---------------+---------------------------+ + +**contextArray** + ++-----------------+-----------------+-------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===========================================================================================================================================================+ +| fileName | M | 1 | String | Injection file name | ++-----------------+-----------------+-------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ +| fileData | M | 1 | string | Injection file content (injection file content inside the $MAC\_1 $MAC\_1 need to be replaced by the MAC address, of which 1 is NIC index. ) | ++-----------------+-----------------+-------------------+---------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ + +volumeArray + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| volumeId | M | 1 | String | Volume Id | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +nicArray + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| portId | M | 1 | String | Port Id | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +**metadata** + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| keyName | M | 1 | String | Key name | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| value | M | 1 | string | value | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +{ + +"tenant": "tenant1", + +"name": "vm1", + +“availabilityZone”:”az1”, + +“flavorName”:”vm\_large”, + +"boot": { + +"type": 1, + +" volumeName": "volume1" + +}, + +“flavorId”:”vm\_large\_134213” + +"contextArray": [{ + +"fileName": "test.yaml", + +"fileData": "….” + +}], + +"volumeArray": [{ + +"volumeName": "vol1", + +}], + +“nicArray”:[{ + + “portId”:”port\_a” + +}] + +“metada”: [{ + +"keyName": "foo", + +"value": "foo value” + +}], + +“userdata”:”abcdedf” + +} + +1. \ **Response** + ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++======================+=================+===================+======================================+========================================================================================================================================================================================+ +| vimId | M | 1 | String | vim id | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| returnCode | | 1 | int | 0: Already exist 1: Newly created | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | server id | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | | 1 | string | server name | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| boot | M | 1 | String | Start parameters | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nicArray | O | 1..n | List of nic | List of nic | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| volumeArray | O | 1..n | list of volume | list of volume | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| availabilityZone | O | 1 | string | Usable field | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| flavorId | M | 1 | String | server Flavor | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| metadata | O | 1 | List of metadata | Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each. | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **securityGroups** | **O** | **1** | **List of name 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.** | +| | | | | | +| | | | | **[TBD]** | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity | +| | | | | | +| | | | | [TBD] | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **status** | **M** | **1** | **string** | Server status, 0:INACTIVE,1:ACTIVE,2:ERROR | ++----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +202: accepted + +500: failed + +{ + +"id": "3c9eebdbbfd345658269340b9ea6fb73", + +"name": "vm1", + +"returnCode": 1, + +} + +1. \ **Delete Server** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/servers/{serverid} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | DELETE | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Server** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/servers | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + +msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……} + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| name | M | 1 | string | server name | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +1. \ **Response** + ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++======================+=================+===================+=======================================+========================================================================================================================================================================================+ +| vimId | M | 1 | String | vim id | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| servers | M | 1 | array | server list | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | server id | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | server name | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| boot | M | 1 | String | Start parameters | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nicArray | O | 1..n | List of nic | List of nic | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| volumeArray | O | 1..n | list of volume | list of volume | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| availabilityZone | O | 1 | string | Usable field | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| flavorId | M | 1 | String | server Flavor | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| metada | O | 1 | keypair | Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each. | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **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.** | +| | | | | | +| | | | | **[TBD]** | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity | +| | | | | | +| | | | | [TBD] | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +{ + +} + +1. \ **Get Server** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/servers/{serverid} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++======================+=================+===================+=======================================+========================================================================================================================================================================================+ +| vimId | M | 1 | String | vim id | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | server id | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | server name | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| boot | M | 1 | String | Start parameters | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| nicArray | O | 1..n | List of nic | List of nic | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| volumeArray | O | 1..n | list of volume | list of volume | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| availabilityZone | O | 1 | string | Usable field | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| flavorId | M | 1 | String | server Flavor | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| metadata | O | 1 | List of metadata | Metadata key and value pairs. The maximum size of the metadata key and value is 255 bytes each. | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **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.** | +| | | | | | +| | | | | **[TBD]** | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity | +| | | | | | +| | | | | [TBD] | ++----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +{ + +} + +1. \ **Flavor Management** + + 1. \ **Create Flavor** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/flavors | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | VNFLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============================+==============================================================================================================================+ +| name | M | 1 | string | Flavor Name | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vcpu | M | 1 | int | Virtual CPU number | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| memory | M | 1 | int | Memory size | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| disk | M | 1 | int | The size of the root disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| ephemeral | O | 1 | int | The size of the ephemeral disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| swap | O | 1 | int | The size of the swap disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| isPublic | O | 1 | boolean | Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified. | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| extraSpecs | O | 0..N | List of keyname-value pairs | EPA parameter | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ + +1. \ **Response** + ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===========================+==============================================================================================================================+ +| id | M | 1 | string | Flavor id | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Flavor name | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vcpu | M | 1 | int | Virtual CPU number | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| memory | M | 1 | int | Memory size | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| disk | M | 1 | int | The size of the root disk | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| ephemeral | M | 1 | int | The size of the ephemeral disk | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| swap | M | 1 | int | The size of the swap disk | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| isPublic | M | 1 | boolean | Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified. | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| extraSpecs | O | 0..N | List of Key-value pairs | EPA parameter | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ + +1. \ **Delete Flavor** + ++---------------------+--------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+============================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/flavors /{flavorid} | ++---------------------+--------------------------------------------------------------------------------------------+ +| Operation | DELETE | ++---------------------+--------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + +204: no content + +1. \ **List Flavor** + ++---------------------+---------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/ flavors | ++---------------------+---------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+---------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+---------------------------------------------------------------------------------+ + +1. \ **Query** + ++-----------------+-----------------+-------------------+---------------+----------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+==================================+ +| name | M | 1 | string | Flavor name to filter out list | ++-----------------+-----------------+-------------------+---------------+----------------------------------+ + +1. \ **Response** + ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============================+==============================================================================================================================+ +| flavors | M | 0..N | list | Vm list | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| id | M | 1 | string | Flavor id | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Flavor Name | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vcpu | M | 1 | int | Virtual CPU number | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| memory | M | 1 | int | Memory size | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| disk | M | 1 | int | The size of the root disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| ephemeral | M | 1 | int | The size of the ephemeral disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| swap | M | 1 | int | The size of the swap disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| isPublic | M | 1 | boolean | Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified. | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| extraSpecs | O | 0..N | List of keyname-value pairs | EPA parameter | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +1. \ **Get Flavor** + ++---------------------+----------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+==============================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/flavors/{ flavorsid } | ++---------------------+----------------------------------------------------------------------------------------------+ +| Operation | get | ++---------------------+----------------------------------------------------------------------------------------------+ +| Direction | NFLCM,NSLCM->MULTIVIM | ++---------------------+----------------------------------------------------------------------------------------------+ + +1. \ **Request** + +N/A + +1. \ **Response** + ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============================+==============================================================================================================================+ +| id | M | 1 | string | Flavor id | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| name | M | 1 | string | Flavor Name | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vcpu | M | 1 | int | Virtual CPU number | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| memory | M | 1 | int | Memory size | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| disk | M | 1 | int | The size of the root disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| ephemeral | M | 1 | int | The size of the ephemeral disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| swap | M | 1 | int | The size of the swap disk | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| isPublic | M | 1 | boolean | Whether the flavor is public (available to all projects) or scoped to a set of projects. Default is True if not specified. | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| extraSpecs | O | 0..N | List of keyname-value pairs | EPA parameter | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ + +200: ok + +500: failed + +1. \ **Volume Management** + + 1. \ **Create Volume** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/volumes | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + ++--------------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++====================+=================+===================+===============+===================+ +| name | M | 1 | string | Volume name | ++--------------------+-----------------+-------------------+---------------+-------------------+ +| volumeSize | M | 1 | int | Volume size | ++--------------------+-----------------+-------------------+---------------+-------------------+ +| imageId | O | 1 | string | Image UUID | ++--------------------+-----------------+-------------------+---------------+-------------------+ +| volumeType | O | 1 | string | Volume type | ++--------------------+-----------------+-------------------+---------------+-------------------+ +| availabilityZone | O | 1 | string | Usable field | ++--------------------+-----------------+-------------------+---------------+-------------------+ + + { + + "tenant": "tenant1", + + "volumeName": "volume1", + + "volumeSize": 3, + + "imageName": "cirros.qcow2", + + "volumeType": "volumetype1", + + "availabilityZone": "zone1" + + } + +1. \ **Response** + ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++====================+=================+===================+===============+=====================================+ +| returnCode | M | 1 | int | 0: Already exist 1: Newly created | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| vimId | M | 1 | String | vim id | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| vimName | O | 1 | string | vim name | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| status | M | 1 | string | Volume status | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| id | M | 1 | string | Volume id | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| name | M | 1 | string | Volume name | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| volumeType | O | 1 | string | Volume type | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ +| availabilityZone | O | 1 | string | Availability Zone | ++--------------------+-----------------+-------------------+---------------+-------------------------------------+ + +202: accepted + +500: failed + + { + + "id": "bc9eebdbbfd356458269340b9ea6fb73", + + "name": "volume1", + + "returnCode": 1, + + } + +1. \ **Delete Volume** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/volumes/{volumeId} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | DELETE | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NSLCM->MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + + N/A + +1. \ **Response** + + 204: no content + +1. \ **List Volumes** + ++---------------------+--------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/volumes | ++---------------------+--------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+--------------------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+--------------------------------------------------------------------------------+ + +1. \ **Request** + + msb.onap.org:80/api/multicloud/v0/{cloud + owner}\_{region}/volumes?{……} + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| name | M | 1 | string | Volume name | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +1. \ **Response** + ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++====================+=================+===================+======================+====================================================+ +| vimId | M | 1 | String | vim id | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| volumes | M | 1 | Array | | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| id | M | 1 | string | Volume id | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| name | M | 1 | string | Volume name | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| createTime | O | 1 | string | Create time | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| status | M | 1 | string | Volume status | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| volumeSize | M | 1 | int | Volume size | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| volumeType | M | 1 | string | Volume type | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| availabilityZone | M | 1 | string | Availability Zone | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| attachments | M | 1..n | list of attachment | List of additional information on the cloud disk | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ + +200: ok + +500: failed + + { + + "volumes": [ + + { + + "status": "available", + + "name": "test", + + "attachments": [], + + "createTime": "2015-12-02T07:57:23.000000", + + " volumeType ": "ws", + + "id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55", + + "size": 20 + + }, + + { + + "status": "in-use", + + "name": "wangsong", + + "attachments": [ + + { + + "device": "/dev/vdc", + + "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", + + "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + + "hostName": null, + + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" + + } + + ], + + "createTime": "2015-12-02T06:39:40.000000", + + " volumeType ": null, + + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + + "size": 40 + + } + + ] + + } + +1. \ **Get Volumes** + ++---------------------+-------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/volumes/{volumeid} | ++---------------------+-------------------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-------------------------------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+-------------------------------------------------------------------------------------------+ + +1. \ **Request** + + N/A + +1. \ **Response** + ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++====================+=================+===================+======================+====================================================+ +| vimId | M | 1 | String | vim id | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| tenantId | M | 1 | String | Tenant UUID | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| id | | 1 | string | Volume id | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| name | | 1 | string | Volume name | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| createTime | | 1 | string | Create time | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| status | | 1 | string | Volume status | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| volumeType | | 1 | list of string | Volume type | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| volumeSize | | 1 | int | Volume size | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| availabilityZone | M | 1 | string | Availability Zone | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ +| attachments | M | 1..n | list of attachment | List of additional information on the cloud disk | ++--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ + +**attachment:** + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| device | | 1 | string | Device name | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| serverId | | 1 | string | VM id | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| volumeId | | 1 | string | Volume id | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| hostName | | 1 | string | Host name | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| id | | 1 | string | Device id | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +200: ok + +500: failed + + { + + "status": "in-use", + + "name": "wangsong", + + "attachments": [ + + { + + "device": "/dev/vdc", + + "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", + + "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + + "hostName": null, + + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" + + } + + ], + + "createTime": "2015-12-02T06:39:40.000000", + + "volumeType ": null, + + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + + "volumeSize ": 40 + + } + +1. \ **Tenant Management** + + 1. \ **List tenants** + ++---------------------+---------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=====================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/tenants | ++---------------------+---------------------------------------------------------------------+ +| Operation | GET | ++---------------------+---------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+---------------------------------------------------------------------+ + +1. \ **Query** + ++---------------------+-----------------+-------------------+---------------+-------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=====================+=================+===================+===============+=====================================+ +| name={tenantname} | O | 1 | string | Tenant name to filter output list | ++---------------------+-----------------+-------------------+---------------+-------------------------------------+ + +1. \ **Response** + ++-----------------+-----------------+-------------------+---------------+-------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+===================+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| tenants | M | 1 | Array | | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| id | M | 1 | string | tenant UUID | ++-----------------+-----------------+-------------------+---------------+-------------------+ +| name | M | 1 | string | tenant name | ++-----------------+-----------------+-------------------+---------------+-------------------+ + +200: ok + +500: failed + + { + + " tenants ": [ + + { + + "id": "1", + + "name": "test\_a" + + } + + ] + + } + +1. \ **Limits** + + 1. \ **List Limits of resouces: CPU&Memory, volume,network,etc** + ++---------------------+-------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/limits | ++---------------------+-------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-------------------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+-------------------------------------------------------------------------------+ + +1. \ **Request** + +2. \ **Response** + ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++===========================+=================+===================+===============+==================================================================+ +| vimId | M | 1 | String | vim id | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| tenantId | M | 1 | string | Tenant UUID | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxPersonality | O | 1 | int | The number of allowed injected files for each tenant. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxPersonalitySize | O | 1 | int | The number of allowed bytes of content for each injected file. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxServerGroupMembers | O | 1 | int | The number of allowed members for each server group. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxServerGroups | O | 1 | int | The number of allowed server groups for each tenant. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxServerMeta | O | 1 | int | The number of allowed metadata items for each instance. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalCores | O | 1 | int | The number of allowed instance cores for each tenant. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalInstances | O | 1 | int | The number of allowed instances for each tenant. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalKeypairs | O | 1 | int | The number of allowed key pairs for each user. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalRAMSize | O | 1 | int | The amount of allowed instance RAM, in MB, for each tenant. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalVolumeGigabytes | O | 1 | int | The maximum total amount of volumes, in gibibytes (GiB). | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| maxTotalVolumes | O | 1 | int | The maximum number of volumes. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| totalVolumesUsed | O | 1 | int | The total number of volumes used. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| totalGigabytesUsed | O | 1 | int | The total number of gibibytes (GiB) used. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| network | O | 1 | int | The number of networks allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| subnet | O | 1 | int | The number of subnets allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| subnetpool | O | 1 | int | The number of subnet pools allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| security\_group\_rule | O | 1 | int | The number of security group rules allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| security\_group | O | 1 | int | The number of security groups allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| router | O | 1 | int | The number of routers allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ +| port | O | 1 | int | The number of ports allowed for each project. | ++---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ + +200: ok + +500: failed + + { + + "maxPersonality": 5, + + "maxPersonalitySize": 10240, + + "maxServerMeta": 128, + + "maxTotalCores": 20, + + "maxTotalInstances": 10, + + "maxTotalKeypairs": 100, + + "maxTotalRAMSize": 51200, + + "maxServerGroups": 10, + + "maxServerGroupMembers": 10, + + } + +1. \ **Host Management** + + 1. \ **List hosts** + ++---------------------+------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+==============================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/hosts | ++---------------------+------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+------------------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+------------------------------------------------------------------------------+ + +1. \ **Request** + +2. \ **Response** + ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+=================+===================================+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| tenantId | M | 1 | string | Tenant Name | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| hosts | M | 1 | Array of host | List of host information | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| service | M | 1 | string | The service running on the host | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| name | M | 1 | string | host name | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ +| zone | O | 1 | string | Available zone for the host | ++-----------------+-----------------+-------------------+-----------------+-----------------------------------+ + +200: ok + +500: failed + + { + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + "hosts": [ + + { + + "name": "b6e4adbc193d428ea923899d07fb001e", + + "service": "conductor", + + "zone": "internal", + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + }, + + { + + "name": "09c025b0efc64211bd23fc50fa974cdf", + + "service": "compute", + + "zone": "nova" + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + }, + + { + + "name": "e73ec0bd35c64de4a1adfa8b8969a1f6", + + "service": "consoleauth", + + "zone": "internal" + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + }, + + { + + "host\_name": "396a8a0a234f476eb05fb9fbc5802ba7", + + "service": "network", + + "zone": "internal" + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + }, + + { + + "name": "abffda96592c4eacaf4111c28fddee17", + + "service": "scheduler", + + "zone": "internal" + + "vimId": "123", + + "vimName": "vimName", + + "tenantId": "tenantId1" + + } + + ] + + } + +1. \ **Get host** + ++---------------------+-----------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+=========================================================================================+ +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/hosts/{hostname} | ++---------------------+-----------------------------------------------------------------------------------------+ +| Operation | GET | ++---------------------+-----------------------------------------------------------------------------------------+ +| Direction | NSLCM-> MULTIVIM | ++---------------------+-----------------------------------------------------------------------------------------+ + +1. \ **Request** + +2. \ **Response** + ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+=====================+==============================================================+ +| vimId | M | 1 | String | vim id | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| vimName | O | 1 | string | vim name | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| tenantId | M | 1 | string | Tenant Name | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| host | M | 1 | List of resources | Host resource info | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| resource | M | 1..N | Object | Resource description | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| cpu | M | 1 | Int | The cpu info on the host. | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| 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 | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ +| disk\_gb | M | 1 | int | The disk info on the host (in GB). | ++-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ + +200: ok + +500: failed + +{ + +"cpu": 1, + +"disk\_gb": 1028, + +"name": "c1a7de0ac9d94e4baceae031d05caae3", + +"memory\_mb": 8192, + +"vimId": "123", + +"vimName": "vimName", + +"tenantId": "tenantId1" + +} + + { + + "host": [ + + { + + "memory\_mb": 4960, + + "name": " c1a7de0ac9d94e4baceae031d05caae3", + + "disk\_gb": 92, + + "project": "(total)", + + "cpu": 4 + + }, + + { + + "memory\_mb": 1536, + + "name": " c1a7de0ac9d94e4baceae031d05caae3", + + "disk\_gb": 2, + + "project": "(used\_now)", + + "cpu": 2 + + }, + + { + + "memory\_mb": 1024, + + "name": " c1a7de0ac9d94e4baceae031d05caae3", + + "disk\_gb": 2, + + "project": "(used\_max)", + + "cpu": 2 + + }, + + { + + "memory\_mb": 1024, + + "name": " c1a7de0ac9d94e4baceae031d05caae3", + + "disk\_gb": 2, + + "project": "568f7ec425db472ba348251bf1e7eebd", + + "cpu": 2 + + } + + ], + + "vimName": "openstack\_newton", + + "vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73", + + "tenantId": "568f7ec425db472ba348251bf1e7eebd" + + } + +1. \ **VIM Management** + + 1. \ **Update VIM Info** + ++---------------------+----------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+==============================================================================================+ +| URI | http(s)://[hostname][:port]/onapapi/ multicloud /v1/{cloud-owner}\_{cloud-region}/registry | ++---------------------+----------------------------------------------------------------------------------------------+ +| Operation | POST | ++---------------------+----------------------------------------------------------------------------------------------+ +| Direction | ESR-> MULTICLOUD | ++---------------------+----------------------------------------------------------------------------------------------+ + +1. \ **Request** + ++-----------------+-----------------+-------------------+---------------+-----------------------+ +| **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | ++=================+=================+===================+===============+=======================+ +| defaultTenant | M | 1 | string | default tenant name | ++-----------------+-----------------+-------------------+---------------+-----------------------+ + +1. \ **Response** + +NA + +202: accept + +400: failed + +1. \ **Unregistry VIM** + ++---------------------+-----------------------------------------------------------------------------------------------+ +| **IF Definition** | **Description** | ++=====================+===============================================================================================+ +| URI | http(s)://[hostname][:port]/onapapi/multicloud/v1 /{cloud-owner}\_{cloud-region}/unregistry | ++---------------------+-----------------------------------------------------------------------------------------------+ +| Operation | DELETE | ++---------------------+-----------------------------------------------------------------------------------------------+ +| Direction | ESR-> MULTICLOUD | ++---------------------+-----------------------------------------------------------------------------------------------+ + +1. \ **Request** + +NA + +1. \ **Response** + +NA + +204: No content found + +400: failed diff --git a/docs/MultiCloud-Deployment-Guide.rst b/docs/MultiCloud-Deployment-Guide.rst new file mode 100644 index 0000000..77c5a2d --- /dev/null +++ b/docs/MultiCloud-Deployment-Guide.rst @@ -0,0 +1,270 @@ +================================ +ONAP MultiCloud Deployment Guide +================================ + +prepare docker environment +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Please refer to onap deployment in kubernetes website(https://wiki.onap.org/display/DW/ONAP+on+Kubernetes) +to setup kubernets cluster. + + +After installing kubectl and helm, execute "kubectl cluster-info" command to verify your kubernets cluster. + +Clone oom project: git clone http://gerrit.onap.org/r/oom +Source the setenv.bash script in /oom/kubernetes/oneclick/, it will set your helm list of components to start/delete +Run the one time config pod - which mounts the volume /dockerdata/ contained in the pod config-init. + +# cd oom/kubernetes/config +# cp onap-parameters-sample.yaml onap-parameters.yaml +# ./createConfig.sh -n onap + +wait for "onap" namespace created, pod "config-init" created +# kubectl get namespaces +NAME STATUS AGE +default Active 10d +kube-public Active 10d +kube-system Active 10d +onap Active 9d + +startup containers +~~~~~~~~~~~~~~~~~~ + +first run kube2msb container. + +# cd oom/kubernetes/oneclick +# ./createAll.bash -n onap -a kube2msb + +run msb container +# ./createAll.bash -n onap -a msb + +run aai container +# ./createAll.bash -n onap -a aai + + +Finally run multicloud container +# ./createAll.bash -n onap -a multicloud + +get all pods +# kubectl get pods --all-namespaces +NAMESPACE NAME READY STATUS RESTARTS AGE +kube-system heapster-4285517626-2k4l1 1/1 Running 1 9d +kube-system kube-dns-2514474280-mxh18 3/3 Running 3 9d +kube-system kubernetes-dashboard-716739405-jl6mk 1/1 Running 1 9d +kube-system monitoring-grafana-3552275057-hrpn5 1/1 Running 1 9d +kube-system monitoring-influxdb-4110454889-t8tpv 1/1 Running 1 9d +kube-system tiller-deploy-737598192-8q523 1/1 Running 1 9d +onap-aai aai-resources-837807428-2t158 1/1 Running 0 2d +onap-aai aai-service-3869033750-1nvg5 1/1 Running 0 2d +onap-aai aai-traversal-50329389-gnsnk 1/1 Running 0 2d +onap-aai data-router-2254557428-zwxx1 1/1 Running 0 2d +onap-aai elasticsearch-622738319-sx6q1 1/1 Running 0 2d +onap-aai gremlin-671060974-npsg5 1/1 Running 0 2d +onap-aai hbase-3690059193-2pjc5 1/1 Running 0 2d +onap-aai model-loader-service-849987455-w6vwn 1/1 Running 0 2d +onap-aai search-data-service-4105978183-p1nnj 1/1 Running 0 2d +onap-aai sparky-be-2696729089-mcjbw 1/1 Running 0 2d +onap-kube2msb kube2msb-registrator-1600827891-1s3s4 1/1 Running 3 7d +onap-msb msb-consul-3388279333-hbr16 1/1 Running 0 2d +onap-msb msb-discovery-1109629174-t14q8 1/1 Running 0 2d +onap-msb msb-eag-3969419634-2fdnr 1/1 Running 0 2d +onap-msb msb-iag-1114772402-sjlww 1/1 Running 0 2d +onap-multicloud framework-1225620501-9567n 1/1 Running 0 21h +onap-multicloud multicloud-vio-269945856-rl6w6 1/1 Running 0 21h + +get cluster-ip and port + +# kubectl get svc --all-namespaces +NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE +default kubernetes 10.43.0.1 443/TCP 10d +kube-system heapster 10.43.96.134 80/TCP 10d +kube-system kube-dns 10.43.0.10 53/UDP,53/TCP 10d +kube-system kubernetes-dashboard 10.43.9.43 9090/TCP 10d +kube-system monitoring-grafana 10.43.210.16 80/TCP 10d +kube-system monitoring-influxdb 10.43.32.60 8086/TCP 10d +kube-system tiller-deploy 10.43.84.208 44134/TCP 10d +onap-aai aai-resources None 8447/TCP,5005/TCP 2d +onap-aai aai-service 10.43.88.92 8443:30233/TCP,8080:30232/TCP 2d +onap-aai aai-traversal None 8446/TCP,5005/TCP 2d +onap-aai elasticsearch None 9200/TCP 2d +onap-aai gremlin None 8182/TCP 2d +onap-aai hbase None 2181/TCP,8080/TCP,8085/TCP,9090/TCP,16000/TCP,16010/TCP,16201/TCP 2d +onap-aai model-loader-service 10.43.172.213 8443:30229/TCP,8080:30210/TCP 2d +onap-aai search-data-service None 9509/TCP 2d +onap-aai sparky-be None 9517/TCP 2d +onap-msb msb-consul 10.43.41.203 8500:30500/TCP 2d +onap-msb msb-discovery 10.43.6.205 10081:30081/TCP 2d +onap-msb msb-eag 10.43.81.104 80:30082/TCP 2d +onap-msb msb-iag 10.43.188.78 80:30080/TCP 2d +onap-multicloud framework 10.43.97.54 9001:30291/TCP 21h +onap-multicloud multicloud-vio 10.43.230.197 9004:30294/TCP 21h + + +Now msb,aai and multicloud container are online, navigate to http://msb_docker_host_ip:30081/iui/microservices/index.html, +you can see multicloud endpoint have been registered. + +No Service Name Version NameSpace Url Protocol Visualrange Control +1 multicloud v0 /api/multicloud/v0 REST InSystem +2 multicloud-vio v0 /api/multicloud-vio/v0 REST InSystem + +Then register vio information into AAI service with region name "vmware" and region id "vio" + +.. code-block:: console + +# curl -X PUT -H "Authorization: Basic QUFJOkFBSQ==" -H "Content-Type: application/json" -H "X-TransactionId:get_aai_subcr" +https://aai_resource_docker_host_ip:30233/aai/v01/cloud-infrastructure/cloud-regions/cloud-region/vmware/vio +-d "{ + "cloud-type": "vmware", + "cloud-region-version": "4.0", + "esr-system-info-list": { + "esr-system-info": [ + { + "esr-system-info-id": "123-456", + "system-name": "vim-vio", + "system-type": "vim", + "type": "vim", + "user-name": "admin", + "password": "vmware", + "service-url": "", + "cloud-domain": "default", + "default-tenant": "admin", + "ssl-insecure": false + } + ] + } +}" + +Test Examples +~~~~~~~~~~~~~ + +The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above). +The vimid is "vmware_vio" the registered name in aai. + + +Get auth token +-------------- + +# send request to multicloud-framework(broker) service to get token + +.. code-block:: console + +curl -X POST -d @test.json -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud/v0//identity/auth/tokens + +.. code-block:: console + +test.json content example: +{ + "auth": sudo pip install virtualenv{ + "scope": {"project": {"id": “”}}, + "identity": + { + "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] + } + } +} + + +Response: +There are a large amounts of data including service endpoint, user information, etc. +For our testing We take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”. + +# you can find the endpoint url namespace is "api/multicloiud-vio/v0", it represent the multicloud-vio service, So +requests sending to mulitcloud-vio will be forwarded to backend VIO openstack. + + +Identity endpoint: + http://$HOST_IP/api/multicloud-vio/v0//identity + +Nova endpoint: + http://$HOST_IP/api/multicloud-vio/v0//compute/ + + +List projects +------------- + +Use identity’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//identity/ + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//identity/projects + + +Get os Hypervisor +----------------- + +Use nova’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//nova/ + + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//os-hypervisors/detail + + +List instance of user’s project +-------------------------------- + +curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//servers + + +Show instance detail +-------------------- + +you need to input in url path. + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0/vimid/nova/tenantid/servers/ + + +Shutdown instance +----------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Start instance +-------------- + +you need to input in url path + +curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Suspend instance +---------------- + +you need to input in url path + +curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Resume instance +---------------- + +you need to input in url path + +curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Pause instance +-------------- + +you need to input in url path + +curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Unpasue instance +---------------- + +you need to input in url path + +curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action + + +Reboot instance +--------------- + +you need to input in url path + +curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action diff --git a/docs/index.rst b/docs/index.rst index 1dd525d..5de5f3e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,8 +1,9 @@ .. This work is licensed under a Creative Commons Attribution 4.0 International License. -APPC Documentation Repository ------------------------------ +MultiCloud Documentation Repository +----------------------------------- .. toctree:: :maxdepth: 2 - user + MultiCloud-Deployment-Guide + MultiCloud-API-Specification-V1 diff --git a/docs/user/multivimproxy.txt b/docs/user/multivimproxy.txt deleted file mode 100644 index 5f83de9..0000000 --- a/docs/user/multivimproxy.txt +++ /dev/null @@ -1,247 +0,0 @@ -1 prepare docker environment - -Please refer to onap deployment in kubernetes website(https://wiki.onap.org/display/DW/ONAP+on+Kubernetes) -to setup kubernets cluster. - - -After installing kubectl and helm, execute "kubectl cluster-info" command to verify your kubernets cluster. - -Clone oom project: git clone http://gerrit.onap.org/r/oom -Source the setenv.bash script in /oom/kubernetes/oneclick/, it will set your helm list of components to start/delete -Run the one time config pod - which mounts the volume /dockerdata/ contained in the pod config-init. - -# cd oom/kubernetes/config -# cp onap-parameters-sample.yaml onap-parameters.yaml -# ./createConfig.sh -n onap - -wait for "onap" namespace created, pod "config-init" created -# kubectl get namespaces -NAME STATUS AGE -default Active 10d -kube-public Active 10d -kube-system Active 10d -onap Active 9d - -2 startup containers - -first run kube2msb container. - -# cd oom/kubernetes/oneclick -# ./createAll.bash -n onap -a kube2msb - -run msb container -# ./createAll.bash -n onap -a msb - -run aai container -# ./createAll.bash -n onap -a aai - - -Finally run multicloud container -# ./createAll.bash -n onap -a multicloud - -get all pods -# kubectl get pods --all-namespaces -NAMESPACE NAME READY STATUS RESTARTS AGE -kube-system heapster-4285517626-2k4l1 1/1 Running 1 9d -kube-system kube-dns-2514474280-mxh18 3/3 Running 3 9d -kube-system kubernetes-dashboard-716739405-jl6mk 1/1 Running 1 9d -kube-system monitoring-grafana-3552275057-hrpn5 1/1 Running 1 9d -kube-system monitoring-influxdb-4110454889-t8tpv 1/1 Running 1 9d -kube-system tiller-deploy-737598192-8q523 1/1 Running 1 9d -onap-aai aai-resources-837807428-2t158 1/1 Running 0 2d -onap-aai aai-service-3869033750-1nvg5 1/1 Running 0 2d -onap-aai aai-traversal-50329389-gnsnk 1/1 Running 0 2d -onap-aai data-router-2254557428-zwxx1 1/1 Running 0 2d -onap-aai elasticsearch-622738319-sx6q1 1/1 Running 0 2d -onap-aai gremlin-671060974-npsg5 1/1 Running 0 2d -onap-aai hbase-3690059193-2pjc5 1/1 Running 0 2d -onap-aai model-loader-service-849987455-w6vwn 1/1 Running 0 2d -onap-aai search-data-service-4105978183-p1nnj 1/1 Running 0 2d -onap-aai sparky-be-2696729089-mcjbw 1/1 Running 0 2d -onap-kube2msb kube2msb-registrator-1600827891-1s3s4 1/1 Running 3 7d -onap-msb msb-consul-3388279333-hbr16 1/1 Running 0 2d -onap-msb msb-discovery-1109629174-t14q8 1/1 Running 0 2d -onap-msb msb-eag-3969419634-2fdnr 1/1 Running 0 2d -onap-msb msb-iag-1114772402-sjlww 1/1 Running 0 2d -onap-multicloud framework-1225620501-9567n 1/1 Running 0 21h -onap-multicloud multicloud-vio-269945856-rl6w6 1/1 Running 0 21h - -get cluster-ip and port - -# kubectl get svc --all-namespaces -NAMESPACE NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE -default kubernetes 10.43.0.1 443/TCP 10d -kube-system heapster 10.43.96.134 80/TCP 10d -kube-system kube-dns 10.43.0.10 53/UDP,53/TCP 10d -kube-system kubernetes-dashboard 10.43.9.43 9090/TCP 10d -kube-system monitoring-grafana 10.43.210.16 80/TCP 10d -kube-system monitoring-influxdb 10.43.32.60 8086/TCP 10d -kube-system tiller-deploy 10.43.84.208 44134/TCP 10d -onap-aai aai-resources None 8447/TCP,5005/TCP 2d -onap-aai aai-service 10.43.88.92 8443:30233/TCP,8080:30232/TCP 2d -onap-aai aai-traversal None 8446/TCP,5005/TCP 2d -onap-aai elasticsearch None 9200/TCP 2d -onap-aai gremlin None 8182/TCP 2d -onap-aai hbase None 2181/TCP,8080/TCP,8085/TCP,9090/TCP,16000/TCP,16010/TCP,16201/TCP 2d -onap-aai model-loader-service 10.43.172.213 8443:30229/TCP,8080:30210/TCP 2d -onap-aai search-data-service None 9509/TCP 2d -onap-aai sparky-be None 9517/TCP 2d -onap-msb msb-consul 10.43.41.203 8500:30500/TCP 2d -onap-msb msb-discovery 10.43.6.205 10081:30081/TCP 2d -onap-msb msb-eag 10.43.81.104 80:30082/TCP 2d -onap-msb msb-iag 10.43.188.78 80:30080/TCP 2d -onap-multicloud framework 10.43.97.54 9001:30291/TCP 21h -onap-multicloud multicloud-vio 10.43.230.197 9004:30294/TCP 21h - - -Now msb,aai and multicloud container are online, navigate to http://msb_docker_host_ip:30081/iui/microservices/index.html, -you can see multicloud endpoint have been registered. - -No Service Name Version NameSpace Url Protocol Visualrange Control -1 multicloud v0 /api/multicloud/v0 REST InSystem -2 multicloud-vio v0 /api/multicloud-vio/v0 REST InSystem - - -Then register vio information into AAI service with region name "vmware" and region id "vio" -# cur -X PUT -H "Authorization: Basic QUFJOkFBSQ==" - "Content-Type: application/json" -H "X-TransactionId:get_aai_subcr" -https://aai_resource_docker_host_ip:30233/aai/v01/cloud-infrastructure/cloud-regions/cloud-region/vmware/vio --d "{ - "cloud-type": "vmware", - "cloud-region-version": "4.0", - "esr-system-info-list": { - "esr-system-info": [ - { - "esr-system-info-id": "123-456", - "system-name": "vim-vio", - "system-type": "vim", - "type": "vim", - "user-name": "admin", - "password": "vmware", - "service-url": "", - "cloud-domain": "default", - "default-tenant": "admin", - "ssl-insecure": false - } - ] - } -}" - - - - -3 Test Examples - -The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above). -The vimid is "vmware_vio" the registered name in aai. - - -2.1 Get auth token - -# send request to multicloud-framework(broker) service to get token - -curl -X POST -d @test.json -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud/v0//identity/auth/tokens - -test.json content example: - -{ - "auth": - { - "scope": {"project": {"id": “”}}, - "identity": - { - "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] - } - } -} - - -Response: -There are a large amounts of data including service endpoint, user information, etc. -For our testing We take nova and identity service endpoint address and auth token which is in response header named “X-Subject-Token”. - -# you can find the endpoint url namespace is "api/multicloiud-vio/v0", it represent the multicloud-vio service, So -requests sending to mulitcloud-vio will be forwarded to backend VIO openstack. - - -Identity endpoint: - http://$HOST_IP/api/multicloud-vio/v0//identity - -Nova endpoint: - http://$HOST_IP/api/multicloud-vio/v0//compute/ - - -2.2 List projects - -Use identity’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//identity/ - -curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//identity/projects - - -2.3 Get os Hypervisor - -Use nova’s endpoint: http://$HOST_IP/api/multicloud-vio/v0//nova/ - - -curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//os-hypervisors/detail - - -2.4 List instance of user’s project - -curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0//nova//servers - - -2.5 Show instance detail - -you need to input in url path. - -curl -X GET -H 'X-Auth-Token:' http://$HOST_IP/api/multicloud-vio/v0/vimid/nova/tenantid/servers/ - - -2.6 Shutdown instance - -you need to input in url path - -curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - -2.7 Start instance - -you need to input in url path - -curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - -2.8 Suspend instance - -you need to input in url path - -curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - -2.9 Resume instance - -you need to input in url path - -curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - -2.10 Pause instance - -you need to input in url path - -curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - - -2.11 Unpasue instance - -you need to input in url path - -curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action - - -2.12 Reboot instance - -you need to input in url path - -curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$HOST_IP/api/multicloud-vio/v0//nova//servers//action diff --git a/docs/user/test.json b/docs/user/test.json deleted file mode 100644 index cd19378..0000000 --- a/docs/user/test.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "auth": - { - "scope": {"project": {"id": "622b0f38ec9e4ce1ab5c3aad7765d045"}}, - "identity": - { - "password": {"user": {"domain": {"name": "Default"}, "password": "vmware", "name": "admin"}}, "methods": ["password"] - } - } -} -- cgit 1.2.3-korg