From b3e79cc6ebba2898e201426b59c1bc8caa347a6a Mon Sep 17 00:00:00 2001 From: Ethan Lynn Date: Tue, 5 Jun 2018 17:26:55 +0800 Subject: [PATCH] Update API doc Fix style Change-Id: Ifee26b7453de51f63bd37b0289ab3ccdc0697ec2 Issue-ID: MULTICLOUD-239 Signed-off-by: Ethan Lynn --- docs/MultCloud-Test-CSIT.rst | 18 - docs/MultiCloud-API-Specification-V1.rst | 1395 +++++++++++---------- docs/MultiCloud-Deployment-Guide.rst | 12 +- docs/MultiCloud-Heat-Deployment-Guide.rst | 60 +- docs/MultiCloud-Test-CSIT.rst | 29 +- docs/MultiCloud-Test-Guide.rst | 58 +- docs/Multicloud-Fake_Cloud-Guide.rst | 53 +- docs/Release Notes.rst | 10 +- docs/index.rst | 21 +- docs/specs/MultiCloud-HPA-Discovery-design.rst | 2 +- docs/specs/README.rst | 8 +- docs/specs/elastic_api_exposure.rst | 80 +- docs/specs/logging_enablement.rst | 46 +- docs/specs/multicloud-container-plugin.rst | 189 +-- docs/specs/multicloud_event_federation.rst | 144 ++- docs/specs/multicloud_image_service.rst | 28 +- docs/specs/multicloud_resource_capacity_check.rst | 9 +- docs/specs/parallelism_improvement.rst | 27 +- 18 files changed, 1205 insertions(+), 984 deletions(-) delete mode 100644 docs/MultCloud-Test-CSIT.rst diff --git a/docs/MultCloud-Test-CSIT.rst b/docs/MultCloud-Test-CSIT.rst deleted file mode 100644 index 63fd87f..0000000 --- a/docs/MultCloud-Test-CSIT.rst +++ /dev/null @@ -1,18 +0,0 @@ -Clone integration repo - - git clone http://gerrit.onap.org/r/integration - -Setup more contains if needed - -The file 'setup.sh' under 'test/csit/plans/multicloud/functionality1' will setup multicloud containers for CSIT test. -Add more tests - -The file 'testplan.txt' under 'test/csit/plans/multicloud/functionality1/' specific the robot tests to be run. - -The content of 'testplan.txt' will looks like following: - - # Test suites are relative paths under [integration.git]/test/csit/tests/. - # Place the suites in run order. - multicloud/provision/sanity_test_multivim.robot - -When adding tests to file 'multicloud/provision/sanity_test_multivim.robot' , a 'verify-csit' job will be trigger for related patch, and related change will be tested. diff --git a/docs/MultiCloud-API-Specification-V1.rst b/docs/MultiCloud-API-Specification-V1.rst index ab0e3e9..f95a333 100644 --- a/docs/MultiCloud-API-Specification-V1.rst +++ b/docs/MultiCloud-API-Specification-V1.rst @@ -9,246 +9,245 @@ MultiCloud API Specification V1 API Catalog =========== -`1. Scope 5 <#_Toc490851650>`__ +`1. Scope`_ -`2. Terms, Definitions and Abbreviations 5 <#_Toc490851651>`__ +`2. Terms, Definitions and Abbreviations`_ -`3. Image Management 5 <#_Toc490851652>`__ +`3. Image Management`_ -`3.1 Create Image 5 <#_Toc490851653>`__ +`3.1. Create Image`_ -`3.1.1 Request 5 <#_Toc490851654>`__ +`3.1.1. Request`_ -`3.1.2 Response 6 <#_Toc490851655>`__ +`3.1.2. Response`_ -`3.2 Delete Image 7 <#_Toc490851656>`__ +`3.2. Delete Image`_ -`3.2.1 Request 7 <#_Toc490851657>`__ +`3.2.1. Request`_ -`3.2.2 Response 7 <#_Toc490851658>`__ +`3.2.2. Response`_ -`3.3 List Images 7 <#_Toc490851659>`__ +`3.3. List Images`_ -`3.3.1 Request 7 <#_Toc490851660>`__ +`3.3.1. Request`_ -`3.3.2 Response 8 <#_Toc490851661>`__ +`3.3.2. Response`_ -`3.4 Get Image 9 <#_Toc490851662>`__ +`3.4. Get Image`_ -`3.4.1 Request 9 <#_Toc490851663>`__ +`3.4.1. Request`_ -`3.4.2 Response 9 <#_Toc490851664>`__ +`3.4.2. Response`_ -`4. Network Management 10 <#_Toc490851665>`__ +`4. Network Management`_ -`4.1 Create Network 10 <#_Toc490851666>`__ +`4.1. Create Network`_ -`4.1.1 Request 10 <#_Toc490851667>`__ +`4.1.1. Request`_ -`4.1.2 Response 11 <#_Toc490851668>`__ +`4.1.2. Response`_ -`4.2 Delete Network 12 <#_Toc490851669>`__ +`4.2. Delete Network`_ -`4.2.1 Request 12 <#_Toc490851670>`__ +`4.2.1. Request`_ -`4.2.2 Response 12 <#_Toc490851671>`__ +`4.2.2. Response`_ -`4.3 List Network 12 <#_Toc490851672>`__ +`4.3. List Network`_ -`4.3.1 Query 12 <#_Toc490851673>`__ +`4.3.1. Query`_ -`4.3.2 Response 13 <#_Toc490851674>`__ +`4.3.2. Response`_ -`4.4 Get Network 14 <#_Toc490851675>`__ +`4.4. Get Network`_ -`4.4.1 Request 14 <#_Toc490851676>`__ +`4.4.1. Request`_ -`4.4.2 Response 14 <#_Toc490851677>`__ +`4.4.2. Response`_ -`5. Subnetwork Management 16 <#_Toc490851678>`__ +`5. Subnetwork Management`_ -`5.1 Create Subnets 16 <#_Toc490851679>`__ +`5.1. Create Subnets`_ -`5.1.1 Request 16 <#_Toc490851680>`__ +`5.1.1. Request`_ -`5.1.2 Response 17 <#_Toc490851681>`__ +`5.1.2. Response`_ -`5.2 Delete Subnets 18 <#_Toc490851682>`__ +`5.2. Delete Subnets`_ -`5.2.1 Request 18 <#_Toc490851683>`__ +`5.2.1. Request`_ -`5.2.2 Response 18 <#_Toc490851684>`__ +`5.2.2. Response`_ -`5.3 List Subnets 18 <#_Toc490851685>`__ +`5.3. List Subnets`_ -`5.3.1 Query 18 <#_Toc490851686>`__ +`5.3.1. Query`_ -`5.3.2 Response 19 <#_Toc490851687>`__ +`5.3.2. Response`_ -`5.4 Get Subnets 20 <#_Toc490851688>`__ +`5.4. Get Subnets`_ -`5.4.1 Request 20 <#_Toc490851689>`__ +`5.4.1. Request`_ -`5.4.2 Response 20 <#_Toc490851690>`__ +`5.4.2. Response`_ -`6. Virtual Port 21 <#_Toc490851691>`__ +`6. Virtual Port`_ -`6.1 Create Virtual Port 21 <#_Toc490851692>`__ +`6.1. Create Virtual Port`_ -`6.1.1 Request 21 <#_Toc490851693>`__ +`6.1.1. Request`_ -`6.1.2 Response 22 <#_Toc490851694>`__ +`6.1.2. Response`_ -`6.2 Delete Virtual Port 22 <#_Toc490851695>`__ +`6.2. Delete Virtual Port`_ -`6.2.1 Request 23 <#_Toc490851696>`__ +`6.2.1. Request`_ -`6.2.2 Response 23 <#_Toc490851697>`__ +`6.2.2. Response`_ -`6.3 List Virtual Port 23 <#_Toc490851698>`__ +`6.3. List Virtual Port`_ -`6.3.1 Query 23 <#_Toc490851699>`__ +`6.3.1. Query`_ -`6.3.2 Response 23 <#_Toc490851700>`__ +`6.3.2. Response`_ -`6.4 Get Virtual Port 24 <#_Toc490851701>`__ +`6.4. Get Virtual Port`_ -`6.4.1 Request 24 <#_Toc490851702>`__ +`6.4.1. Request`_ -`6.4.2 Response 24 <#_Toc490851703>`__ +`6.4.2. Response`_ -`7. Server Management 25 <#_Toc490851704>`__ +`7. Server Management`_ -`7.1 Create Server 25 <#_Toc490851705>`__ +`7.1. Create Server`_ -`7.1.1 Request 25 <#_Toc490851706>`__ +`7.1.1. Request`_ -`7.1.2 Response 27 <#_Toc490851707>`__ +`7.1.2. Response`_ -`7.2 Delete Server 28 <#_Toc490851708>`__ +`7.2. Delete Server`_ -`7.2.1 Request 28 <#_Toc490851709>`__ +`7.2.1. Request`_ -`7.2.2 Response 28 <#_Toc490851710>`__ +`7.2.2. Response`_ -`7.3 List Server 28 <#_Toc490851711>`__ +`7.3. List Server`_ -`7.3.1 Request 28 <#_Toc490851712>`__ +`7.3.1. Request`_ -`7.3.2 Response 29 <#_Toc490851713>`__ +`7.3.2. Response`_ -`7.4 Get Server 29 <#_Toc490851714>`__ +`7.4. Get Server`_ -`7.4.1 Request 30 <#_Toc490851715>`__ +`7.4.1. Request`_ -`7.4.2 Response 30 <#_Toc490851716>`__ +`7.4.2. Response`_ -`8. Flavor Management 30 <#_Toc490851717>`__ +`8. Flavor Management`_ -`8.1 Create Flavor 31 <#_Toc490851718>`__ +`8.1. Create Flavor`_ -`8.1.1 Request 31 <#_Toc490851719>`__ +`8.1.1. Request`_ -`8.1.2 Response 31 <#_Toc490851720>`__ +`8.1.2. Response`_ -`8.2 Delete Flavor 32 <#_Toc490851721>`__ +`8.2. Delete Flavor`_ -`8.2.1 Request 32 <#_Toc490851722>`__ +`8.2.1. Request`_ -`8.2.2 Response 32 <#_Toc490851723>`__ +`8.2.2. Response`_ -`8.3 List Flavor 32 <#_Toc490851724>`__ +`8.3. List Flavor`_ -`8.3.1 Query 32 <#_Toc490851725>`__ +`8.3.1. Query`_ -`8.3.2 Response 32 <#_Toc490851726>`__ +`8.3.2. Response`_ -`8.4 Get Flavor 33 <#_Toc490851727>`__ +`8.4. Get Flavor`_ -`8.4.1 Request 33 <#_Toc490851728>`__ +`8.4.1. Request`_ -`8.4.2 Response 33 <#_Toc490851729>`__ +`8.4.2. Response`_ -`9. Volume Management 34 <#_Toc490851730>`__ +`9. Volume Management`_ -`9.1 Create Volume 34 <#_Toc490851731>`__ +`9.1. Create Volume`_ -`9.1.1 Request 34 <#_Toc490851732>`__ +`9.1.1. Request`_ -`9.1.2 Response 34 <#_Toc490851733>`__ +`9.1.2. Response`_ -`9.2 Delete Volume 35 <#_Toc490851734>`__ +`9.2. Delete Volume`_ -`9.2.1 Request 35 <#_Toc490851735>`__ +`9.2.1. Request`_ -`9.2.2 Response 35 <#_Toc490851736>`__ +`9.2.2. Response`_ -`9.3 List Volumes 35 <#_Toc490851737>`__ +`9.3. List Volumes`_ -`9.3.1 Request 35 <#_Toc490851738>`__ +`9.3.1. Request`_ -`9.3.2 Response 36 <#_Toc490851739>`__ +`9.3.2. Response`_ -`9.4 Get Volumes 37 <#_Toc490851740>`__ +`9.4. Get Volumes`_ -`9.4.1 Request 37 <#_Toc490851741>`__ +`9.4.1. Request`_ -`9.4.2 Response 37 <#_Toc490851742>`__ +`9.4.2. Response`_ -`10. Tenant Management 38 <#_Toc490851743>`__ +`10. Tenant Management`_ -`10.1 List tenants 38 <#_Toc490851744>`__ +`10.1. List tenants`_ -`10.1.1 Query 38 <#_Toc490851745>`__ +`10.1.1. Query`_ -`10.1.2 Response 38 <#_Toc490851746>`__ +`10.1.2. Response`_ -`11. Limits 39 <#_Toc490851747>`__ +`11. Limits`_ -`11.1 List Limits of resouces: CPU&Memory, volume,network,etc -39 <#_Toc490851748>`__ +`11.1. List Limits of resouces`_ -`11.1.1 Request 39 <#_Toc490851749>`__ +`11.1.1. Request`_ -`11.1.2 Response 39 <#_Toc490851750>`__ +`11.1.2. Response`_ -`12. Host Management 41 <#_Toc490851751>`__ +`12. Host Management`_ -`12.1 List hosts 41 <#_Toc490851752>`__ +`12.1. List hosts`_ -`12.1.1 Request 41 <#_Toc490851753>`__ +`12.1.1. Request`_ -`12.1.2 Response 41 <#_Toc490851754>`__ +`12.1.2. Response`_ -`12.2 Get host 43 <#_Toc490851755>`__ +`12.2. Get host`_ -`12.2.1 Request 43 <#_Toc490851756>`__ +`12.2.1. Request`_ -`12.2.2 Response 43 <#_Toc490851757>`__ +`12.2.2. Response`_ -`13. VIM Management 45 <#_Toc490851758>`__ +`13. VIM Management`_ -`13.1 Update VIM Info 45 <#_Toc490851759>`__ +`13.1. Update VIM Info`_ -`13.1.1 Request 45 <#_Toc490851760>`__ +`13.1.1. Request`_ -`13.1.2 Response 45 <#_Toc490851761>`__ +`13.1.2. Response`_ -`13.2 Unregistry VIM 45 <#_Toc490851762>`__ +`13.2. Unregistry VIM`_ -`13.2.1 Request 45 <#_Toc490851763>`__ +`13.2.1. Request`_ -`13.2.2 Response 46 <#_Toc490851764>`__ +`13.2.2. Response`_ -* -* -1. \ **Scope** +1. **Scope** +^^^^^^^^^^^^ The scope of the present document is to describe the VIM Driver API specification. -1. \ **Terms, Definitions and Abbreviations** +2. **Terms, Definitions and Abbreviations** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For the purposes of the present document, the following abbreviations apply: @@ -265,16 +264,16 @@ apply: | MultiVIM | MultVIM driver services for OPEN-O to drive VIM instances | +--------------------+-------------------------------------------------------------+ -Table 2-1 abbreviations +3. **Image Management** +^^^^^^^^^^^^^^^^^^^^^^^ -1. \ **Image Management** - - 1. \ **Create Image** +3.1. **Create Image** +--------------------- +---------------------+-------------------------------------------------------------------------------+ | **IF Definition** | **Description** | +=====================+===============================================================================+ -| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images | +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/images | +---------------------+-------------------------------------------------------------------------------+ | Operation | POST | +---------------------+-------------------------------------------------------------------------------+ @@ -283,7 +282,8 @@ Table 2-1 abbreviations | Description | Create Image and Upload the image file to the VIM | +---------------------+-------------------------------------------------------------------------------+ -1. \ **Request** +3.1.1. **Request** +>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -302,22 +302,25 @@ Table 2-1 abbreviations | | | | | | | | | | | public, private, shared, or community | +-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ -| properties | O | 0..N | List of key-value pairs | Examples:--property vmware\_disktype=streamOptimized --property vmware\_adaptertype="lsiLogic" | +| properties | O | 0..N | List of key-value pairs | Examples:--property vmware_disktype=streamOptimized --property vmware_adaptertype="lsiLogic" | +-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------------------------------------------------+ -{ +:: -"imageName": "cirros", + { -"imagePath": "/home/cirros.qcow2", + "imageName": "cirros", -"imageType": "qcow2" + "imagePath": "/home/cirros.qcow2", -“containerFormat”:”bare” + "imageType": "qcow2" -} + "containerFormat":"bare" -1. \ **Response** + } + +3.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------------------+--------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -351,22 +354,21 @@ Table 2-1 abbreviations 500: failed -{ - - “id”:” 3c9eebdbbfd345658269340b9ea6fb73”, +:: - "name": "cirros", - - "returnCode": 1 - -} + { + "id": "3c9eebdbbfd345658269340b9ea6fb73", + "name": "cirros", + "returnCode": 1 + } -1. \ **Delete Image** +3.2. **Delete Image** +--------------------- +---------------------+-----------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | +=====================+=========================================================================================+ -| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images/{imageId} | +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/images/{imageId} | +---------------------+-----------------------------------------------------------------------------------------+ | Operation | Delete | +---------------------+-----------------------------------------------------------------------------------------+ @@ -375,20 +377,23 @@ Table 2-1 abbreviations | Description | Delete Image | +---------------------+-----------------------------------------------------------------------------------------+ -1. \ **Request** +3.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +3.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Images** +3.3. **List Images** +-------------------- +---------------------+-------------------------------------------------------------------------------+ | **IF Definition** | **Description** | +=====================+===============================================================================+ -| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/images | +| URI | msb.onap.org:80/api/multicloud/v0/{cloud_owner}\_{region}/{tenantid}/images | +---------------------+-------------------------------------------------------------------------------+ | Operation | GET | +---------------------+-------------------------------------------------------------------------------+ @@ -397,9 +402,8 @@ N/A | Description | Query Image list | +---------------------+-------------------------------------------------------------------------------+ -1. \ **Request** - -msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……} +3.3.1. **Request** +>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -411,7 +415,8 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……} | name | O | 1 | String | Filters the response by a name, as a string. A valid value is the name of an image | +-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -1. \ **Response** +3.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ | \ **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -442,36 +447,27 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……} +-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ | tenantId | M | 1 | String | Tenant UUID | +-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| 200: ok | | | | | -| | | | | | -| 500: failed | | | | | -| | | | | | -| { | | | | | -| | | | | | -| “vimid”:”” | | | | | -| | | | | | -| “vimname”:”” | | | | | -| | | | | | -| "imageList": [ | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| { | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| "status": "active", | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| "id": "5e2757c1-f846-4727-915c-9a872553ed75", | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| "size": 862016, | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| "name": "vim-plus-cgsl40g-z.qcow2" | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| } | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -| ] | | | | | -| | | | | | -| } | | | | | -+-------------------------------------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ -1. \ **Get Image** +200: ok + +500: failed + +:: + + { + "vimid": "", + "vimname": "", + "imageList": [{ + "status": "active", + "id": "5e2757c1-f846-4727-915c-9a872553ed75", + "size": 862016, + "name": "vim-plus-cgsl40g-z.qcow2" + }] + } + + +3.4. **Get Image** +------------------ +---------------------+-----------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -485,11 +481,13 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/images?{……} | Description | Query Image Information | +---------------------+-----------------------------------------------------------------------------------------+ -1. \ **Request** +3.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +3.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------+--------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -523,25 +521,22 @@ N/A 500: failed -{ - -“vimid”:”” - -“vimname”:”” +:: -"status": "active", - -"id": "5e2757c1-f846-4727-915c-9a872553ed75", - -"size": 862016, - -"name": "vim-plus-cgsl40g-z.qcow2" - -a} + { + "vimid": "", + "vimname": "", + "status": "active", + "id": "5e2757c1-f846-4727-915c-9a872553ed75", + "size": 862016, + "name": "vim-plus-cgsl40g-z.qcow2" + } -1. \ **Network Management** +4. **Network Management** +^^^^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **Create Network** +4.1. **Create Network** +----------------------- +---------------------+---------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -555,7 +550,8 @@ a} | Description | Create network and subnetwork on the VIM | +---------------------+---------------------------------------------------------------------------------+ -1. \ **Request** +4.1.1. **Request** +>>>>>>>>>>>>>>>>>> +-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -576,30 +572,24 @@ a} +-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | physicalNetwork | O | 1 | string | The physical network where this network should be implemented. The Networking API v2.0 does not provide a way to list available physical networks. For example, the Open vSwitch plug-in configuration file defines a symbolic name that maps to specific bridges on each compute host. | +-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| routerExternal | O | 1 | boolean | Indicates whether this network can provide floating IPs via a router. | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| { | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “tenant”: “tenant1”, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “networkName”: “ommnet”, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “shared”: 1, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “vlanTransparent”: 1, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “networkType”:”vlan”, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “segmentationId”:202, | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| “physicalNetwork”:”ctrl”, | | | | | -| | | | | | -| “routerExternal”:0 | | | | | -+-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| } | | | | | +| routerExternal | O | 1 | boolean |Indicates whether this network can provide floating IPs via a router. | +-----------------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -1. \ **Response** +:: + + { + "tenant": "tenant1", + "networkName": "ommnet", + "shared": 1, + "vlanTransparent": 1, + "networkType": "vlan", + "segmentationId": 202, + "physicalNetwork": "ctrl", + "routerExternal": 0 + } + +4.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -636,39 +626,27 @@ a} 500: failed -{ - -“returnCode”:0, - -“vimId”:”11111”, - -“vimName”:”11111”, - -“status”: “ACTIVE”, - -“id”: “3c9eebdbbfd345658269340b9ea6fb73”, - -“name”: “net1”, - -“tenant”: “tenant1”, +:: -“networkName”: “ommnet”, - -“shared”: 1, - -“vlanTransparent”: 1, - -“networkType”:”vlan”, - -“segmentationId”:202, - -“physicalNetwork ”:”ctrl”, - -“routerExternal ”:0 - -} + { + "returnCode": 0, + "vimId": "11111", + "vimName": "11111", + "status": "ACTIVE", + "id": "3c9eebdbbfd345658269340b9ea6fb73", + "name": "net1", + "tenant": "tenant1", + "networkName": "ommnet", + "shared": 1, + "vlanTransparent": 1, + "networkType": "vlan", + "segmentationId": 202, + "physicalNetwork": "ctrl", + "routerExternal": 0 + } -1. \ **Delete Network** +4.2. **Delete Network** +----------------------- +---------------------+---------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -680,15 +658,18 @@ a} | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------------------+ -1. \ **Request** +4.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +4.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Network** +4.3. **List Network** +--------------------- +---------------------+---------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -700,7 +681,8 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------+ -1. \ **Query** +4.3.1. **Query** +>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+---------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -708,7 +690,8 @@ N/A | name | O | 1 | String | Filters the response by a name, as a string. A valid value is the name of a network | +-----------------+-----------------+-------------------+---------------+---------------------------------------------------------------------------------------+ -1. \ **Response** +4.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -744,45 +727,46 @@ N/A 500: failed -{ +:: -“vimId”:”11111”, + { -“vimName”:”111”, + "vimId": "11111", -“networks”: + "vimName": "111", -[{ + "networks": -“status”: “ACTIVE”, + [{ -“id”: “3c9eebdbbfd345658269340b9ea6fb73”, + "status": "ACTIVE", -“name”: “net1”, + "id": "3c9eebdbbfd345658269340b9ea6fb73", -“tenant”: “tenant1”, + "name": "net1", -“networkName”: “ommnet”, + "tenant": "tenant1", -“shared”: 1, + "networkName": "ommnet", -“vlanTransparent”: 1, + "shared": 1, -“networkType”:”vlan”, + "vlanTransparent": 1, -“segmentationId”:202, + "networkType": "vlan", -“physicalNetwork ”:”ctrl”, + "segmentationId": 202, -“routerExternal ”:0 + "physicalNetwork ": "ctrl", -}] + "routerExternal ": 0 -} + }] -PHYSICALNETWORK  + } -1. \ **Get Network** +4.4. **Get Network** +-------------------- +---------------------+---------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -794,11 +778,13 @@ PHYSICALNETWORK  | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------------------+ -1. \ **Request** +4.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +4.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -834,39 +820,43 @@ N/A 500: failed -{ +:: - “vimId”:”11111”, + { - “vimName”:”11111”, + "vimId":"11111", - “status”: “ACTIVE”, + "vimName":"11111", - “id”: “3c9eebdbbfd345658269340b9ea6fb73”, + "status": "ACTIVE", - “name”: “net1”, + "id": "3c9eebdbbfd345658269340b9ea6fb73", - “tenant”: “tenant1”, + "name": "net1", - “networkName”: “ommnet”, + "tenant": "tenant1", - “shared”: 1, + "networkName": "ommnet", - “vlanTransparent”: 1, + "shared": 1, - “networkType”:”vlan”, + "vlanTransparent": 1, - “segmentationId”:202, + "networkType":"vlan", - “physicalNetwork ”:”ctrl”, + "segmentationId":202, - “routerExternal ”:0 + "physicalNetwork ":"ctrl", -} + "routerExternal ":0 -1. \ **Subnetwork Management** + } - 1. \ **Create Subnets** +5. **Subnetwork Management** +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +5.1. **Create Subnets** +----------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -880,7 +870,8 @@ N/A | Description | Create network and subnetwork on the VIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +5.1.1. **Request** +>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+------------------------+----------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -905,7 +896,7 @@ N/A +-------------------+-----------------+-------------------+------------------------+----------------------+ | hostRoutes | O | 1..n | List of routes | List of routes | +-------------------+-----------------+-------------------+------------------------+----------------------+ -| allocationPools | O | 1..n | list of “allocation” | list of allocation | +| allocationPools | O | 1..n | list of "allocation" | list of allocation | +-------------------+-----------------+-------------------+------------------------+----------------------+ | -->allocation | | | | | +-------------------+-----------------+-------------------+------------------------+----------------------+ @@ -914,37 +905,40 @@ N/A | -->end | O | 1 | String | End ip | +-------------------+-----------------+-------------------+------------------------+----------------------+ -{ +:: + + { -“tenant”: “tenant1”, + "tenant": "tenant1", -“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", -“subnetName”: “subnet1”, + "subnetName": "subnet1", -“cidr”: “10.43.35.0/24”, + "cidr": "10.43.35.0/24", -“ipVersion”: 4, + "ipVersion": 4, -“enableDhcp”: 1, + "enableDhcp": 1, -“gatewayIp”: “10.43.35.1”, + "gatewayIp": "10.43.35.1", -“dnsNameservers”: [], + "dnsNameservers": [], -“allocationPools”:[{ + "allocationPools": [{ -“start”: “192.168.199.2”, + "start": "192.168.199.2", -“end”: “192.168.199.254” + "end": "192.168.199.254" -}], + }], -“hostRoutes”: [] + "hostRoutes": [] -} + } -1. \ **Response** +5.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+------------------------+-------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -983,7 +977,7 @@ N/A +-------------------+-----------------+-------------------+------------------------+-------------------------------------+ | hostRoutes | O | 1..n | List of routes | List of routes | +-------------------+-----------------+-------------------+------------------------+-------------------------------------+ -| allocationPools | O | 1..n | list of “allocation” | list of allocation | +| allocationPools | O | 1..n | list of "allocation" | list of allocation | +-------------------+-----------------+-------------------+------------------------+-------------------------------------+ | -->allocation | | | | | +-------------------+-----------------+-------------------+------------------------+-------------------------------------+ @@ -996,47 +990,50 @@ N/A 500: failed -{ +:: - “returnCode”:0, + { + + "returnCode": 0, - “vimId”:”11111”, + "vimId": "11111", - “vimName”:”11111”, + "vimName": "11111", -“status”:” ACTIVE” + "status": " ACTIVE", -“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23", -“tenant”: “tenant1”, + "tenant": "tenant1", -“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", -“name”: “subnet1”, + "name": "subnet1", -“cidr”: “10.43.35.0/24”, + "cidr": "10.43.35.0/24", -“ipVersion”: 4, + "ipVersion": 4, -“enableDhcp”: 1, + "enableDhcp": 1, -“gatewayIp”: “10.43.35.1”, + "gatewayIp": "10.43.35.1", -“dnsNameservers”: [], + "dnsNameservers": [], -“allocationPools”:[{ + "allocationPools": [{ -“start”: “192.168.199.2”, + "start": "192.168.199.2", -“end”: “192.168.199.254” + "end": "192.168.199.254" -}], + }], -“hostRoutes”: [] + "hostRoutes": [] -} + } -1. \ **Delete Subnets** +5.2. **Delete Subnets** +----------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1048,15 +1045,18 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +5.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +5.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Subnets** +5.3. **List Subnets** +--------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1068,7 +1068,8 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Query** +5.3.1. **Query** +>>>>>>>>>>>>>>>> msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} @@ -1078,7 +1079,8 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} | name | O | 1 | String | Filters fields of the response by a name, as a string. A valid value is the name of a subnet | +-----------------+-----------------+-------------------+---------------+------------------------------------------------------------------------------------------------+ -1. \ **Response** +5.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+------------------------+----------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1117,7 +1119,7 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} +-------------------+-----------------+-------------------+------------------------+----------------------+ | hostRoutes | O | 1..n | List of routes | List of routes | +-------------------+-----------------+-------------------+------------------------+----------------------+ -| allocationPools | O | 1..n | list of “allocation” | list of allocation | +| allocationPools | O | 1..n | list of "allocation" | list of allocation | +-------------------+-----------------+-------------------+------------------------+----------------------+ | -->allocation | | | | | +-------------------+-----------------+-------------------+------------------------+----------------------+ @@ -1130,53 +1132,56 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} **500: failed** -{ +:: -“vimId”:”11111”, + { -“vimName”:”11111”, + "vimId": "11111", -"subnets":[ + "vimName": "11111", - { + "subnets": [ -“status”:” ACTIVE” + { -“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + "status": " ACTIVE", -“tenant”: “tenant1”, + "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23", -“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + "tenant": "tenant1", -“name”: “subnet1”, + "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", -“cidr”: “10.43.35.0/24”, + "name": "subnet1", -“ipVersion”: 4, + "cidr": "10.43.35.0/24", -“enableDhcp”: 1, + "ipVersion": 4, -“gatewayIp”: “10.43.35.1”, + "enableDhcp": 1, -“dnsNameservers”: [], + "gatewayIp": "10.43.35.1", -“allocationPools”:[{ + "dnsNameservers": [], -“start”: “192.168.199.2”, + "allocationPools": [{ -“end”: “192.168.199.254” + "start": "192.168.199.2", -}], + "end": "192.168.199.254" -“hostRoutes”: [] + }], - } + "hostRoutes": [] + + } -] + ] -} + } -1. \ **Get Subnets** +5.4. **Get Subnets** +-------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1188,11 +1193,13 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/subnets?{……} | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +5.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +5.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+------------------------+----------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1229,7 +1236,7 @@ N/A +-------------------+-----------------+-------------------+------------------------+----------------------+ | hostRoutes | O | 1..n | List of routes | List of routes | +-------------------+-----------------+-------------------+------------------------+----------------------+ -| allocationPools | O | 1..n | list of “allocation” | list of allocation | +| allocationPools | O | 1..n | list of "allocation" | list of allocation | +-------------------+-----------------+-------------------+------------------------+----------------------+ | -->allocation | | | | | +-------------------+-----------------+-------------------+------------------------+----------------------+ @@ -1242,43 +1249,47 @@ N/A 500: failed -{ +:: -“status”:” ACTIVE” + { -“id”:” d62019d3-bc6e-4319-9c1d-6722fc136a23” + "status": " ACTIVE", -“tenant”: “tenant1”, + "id": " d62019d3-bc6e-4319-9c1d-6722fc136a23", -“network\_id”:“d32019d3-bc6e-4319-9c1d-6722fc136a22”, + "tenant": "tenant1", -“name”: “subnet1”, + "network_id": "d32019d3-bc6e-4319-9c1d-6722fc136a22", -“cidr”: “10.43.35.0/24”, + "name": "subnet1", -“ipVersion”: 4, + "cidr": "10.43.35.0/24", -“enableDhcp”: 1, + "ipVersion": 4, -“gatewayIp”: “10.43.35.1”, + "enableDhcp": 1, -“dnsNameservers”: [], + "gatewayIp": "10.43.35.1", -“allocationPools”:[{ + "dnsNameservers": [], -“start”: “192.168.199.2”, + "allocationPools": [{ -“end”: “192.168.199.254” + "start": "192.168.199.2", -}], + "end": "192.168.199.254" -“hostRoutes”: [] + }], -} + "hostRoutes": [] -1. \ **Virtual Port** + } + +6. **Virtual Port** +^^^^^^^^^^^^^^^^^^^ - 1. \ **Create Virtual Port** +6.1. **Create Virtual Port** +---------------------------- +---------------------+------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1290,7 +1301,8 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+------------------------------------------------------------------------------+ -1. \ **Request** +6.1.1. **Request** +>>>>>>>>>>>>>>>>>> +------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1312,7 +1324,8 @@ N/A | \ **securityGroups** | **O** | **1** | **string** | **The IDs of security groups applied to the port.** | +------------------------+-----------------+-------------------+---------------+-------------------------------------------------------+ -1. \ **Response** +6.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1350,7 +1363,8 @@ N/A | **securityGroups** | **O** | **1** | **string** | **List of security group names.** | +----------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ -1. \ **Delete Virtual Port** +6.2. **Delete Virtual Port** +---------------------------- +---------------------+---------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1362,15 +1376,18 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------------+ -1. \ **Request** +6.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +6.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Virtual Port** +6.3. **List Virtual Port** +-------------------------- +---------------------+-----------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1382,7 +1399,8 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+-----------------------------------------------------------------------------+ -1. \ **Query** +6.3.1. **Query** +>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+-------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1390,7 +1408,8 @@ N/A | name | M | 1 | string | Port name to filter out list of virtual ports | +-----------------+-----------------+-------------------+---------------+-------------------------------------------------+ -1. \ **Response** +6.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +-------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1432,11 +1451,9 @@ N/A **500: failed** -{ - -} -1. \ **Get Virtual Port** +6.4. **Get Virtual Port** +------------------------- +---------------------+---------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1448,11 +1465,13 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------------+ -1. \ **Request** +6.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +6.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +------------------+-----------------+-------------------+---------------+-----------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1492,13 +1511,12 @@ N/A **500: failed** -{ -} +7. **Server Management** +^^^^^^^^^^^^^^^^^^^^^^^^ -1. \ **Server Management** - - 1. \ **Create Server** +7.1. **Create Server** +---------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1510,7 +1528,8 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +7.1.1. **Request** +>>>>>>>>>>>>>>>>>> +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1535,9 +1554,9 @@ N/A | | | | | | | | | | | NOTE: The ‘null’ value allowed in Nova legacy v2 API, but due to the strict input validation, it isn’t allowed in Nova v2.1 API. | +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **securityGroups** | **O** | **1** | **List of names of security group** | **One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group.** | +| securityGroups | O | 1 | List of names of security group | One or more security groups. Specify the name of the security group in the name attribute. If you omit this attribute, the API creates the server in the default security group. | +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ -| **serverGroup** | **O** | **1** | **string** | the ServerGroup for anti-affinity and affinity | +| serverGroup | O | 1 | string | the ServerGroup for anti-affinity and affinity | +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ **boot** @@ -1566,7 +1585,7 @@ N/A | 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 +**volumeArray** +-----------------+-----------------+-------------------+---------------+-------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1574,7 +1593,7 @@ volumeArray | volumeId | M | 1 | String | Volume Id | +-----------------+-----------------+-------------------+---------------+-------------------+ -nicArray +**nicArray** +-----------------+-----------------+-------------------+---------------+-------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1592,59 +1611,62 @@ nicArray | value | M | 1 | string | value | +-----------------+-----------------+-------------------+---------------+-------------------+ -{ +:: + + { -"tenant": "tenant1", + "tenant": "tenant1", -"name": "vm1", + "name": "vm1", -“availabilityZone”:”az1”, + "availabilityZone": "az1", -“flavorName”:”vm\_large”, + "flavorName": "vm_large", -"boot": { + "boot": { -"type": 1, + "type": 1, -" volumeName": "volume1" + " volumeName": "volume1" -}, + }, -“flavorId”:”vm\_large\_134213” + "flavorId": "vm_large_134213", -"contextArray": [{ + "contextArray": [{ -"fileName": "test.yaml", + "fileName": "test.yaml", -"fileData": "….” + "fileData": "…." -}], + }], -"volumeArray": [{ + "volumeArray": [{ -"volumeName": "vol1", + "volumeName": "vol1", -}], + }], -“nicArray”:[{ + "nicArray": [{ - “portId”:”port\_a” + "portId": "port_a" -}] + }], -“metada”: [{ + "metada": [{ -"keyName": "foo", + "keyName": "foo", -"value": "foo value” + "value": "foo value" -}], + }], -“userdata”:”abcdedf” + "userdata": "abcdedf" -} + } -1. \ **Response** +7.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +----------------------+-----------------+-------------------+--------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1688,17 +1710,20 @@ nicArray 500: failed -{ +:: -"id": "3c9eebdbbfd345658269340b9ea6fb73", + { + + "id": "3c9eebdbbfd345658269340b9ea6fb73", -"name": "vm1", + "name": "vm1", -"returnCode": 1, + "returnCode": 1, -} + } -1. \ **Delete Server** +7.2. **Delete Server** +---------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1710,15 +1735,18 @@ nicArray | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +7.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +7.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Server** +7.3. **List Server** +-------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1730,7 +1758,8 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +7.3.1. **Request** +>>>>>>>>>>>>>>>>>> msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……} @@ -1740,7 +1769,8 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……} | name | M | 1 | string | server name | +-----------------+-----------------+-------------------+---------------+-------------------+ -1. \ **Response** +7.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1782,11 +1812,8 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……} 500: failed -{ - -} - -1. \ **Get Server** +7.4. **Get Server** +------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1798,11 +1825,13 @@ msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/vms?{……} | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +7.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +7.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +----------------------+-----------------+-------------------+---------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1842,13 +1871,11 @@ N/A 500: failed -{ - -} - -1. \ **Flavor Management** +8. **Flavor Management** +^^^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **Create Flavor** +8.1. **Create Flavor** +---------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1860,7 +1887,8 @@ N/A | Direction | VNFLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +8.1.1. **Request** +>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1882,7 +1910,8 @@ N/A | extraSpecs | O | 0..N | List of keyname-value pairs | EPA parameter | +-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ -1. \ **Response** +8.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1914,7 +1943,8 @@ N/A | vimName | O | 1 | string | vim name | +-----------------+-----------------+-------------------+---------------------------+------------------------------------------------------------------------------------------------------------------------------+ -1. \ **Delete Flavor** +8.2. **Delete Flavor** +---------------------- +---------------------+--------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1926,15 +1956,18 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------------------+ -1. \ **Request** +8.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +8.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Flavor** +8.3. **List Flavor** +-------------------- +---------------------+---------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -1946,7 +1979,8 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+---------------------------------------------------------------------------------+ -1. \ **Query** +8.3.1. **Query** +>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+----------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1954,7 +1988,8 @@ N/A | name | M | 1 | string | Flavor name to filter out list | +-----------------+-----------------+-------------------+---------------+----------------------------------+ -1. \ **Response** +8.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -1990,7 +2025,8 @@ N/A 500: failed -1. \ **Get Flavor** +8.4. **Get Flavor** +------------------- +---------------------+----------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2002,11 +2038,13 @@ N/A | Direction | NFLCM,NSLCM->MULTIVIM | +---------------------+----------------------------------------------------------------------------------------------+ -1. \ **Request** +8.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +8.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+-------------------------------+------------------------------------------------------------------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2040,9 +2078,11 @@ N/A 500: failed -1. \ **Volume Management** +9. **Volume Management** +^^^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **Create Volume** +9.1. **Create Volume** +---------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2054,7 +2094,8 @@ N/A | Direction | NSLCM->MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +9.1.1. **Request** +>>>>>>>>>>>>>>>>>> +--------------------+-----------------+-------------------+---------------+-------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2070,6 +2111,8 @@ N/A | availabilityZone | O | 1 | string | Usable field | +--------------------+-----------------+-------------------+---------------+-------------------+ +:: + { "tenant": "tenant1", @@ -2086,7 +2129,8 @@ N/A } -1. \ **Response** +9.1.2. **Response** +>>>>>>>>>>>>>>>>>>> +--------------------+-----------------+-------------------+---------------+-------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2114,6 +2158,8 @@ N/A 500: failed +:: + { "id": "bc9eebdbbfd356458269340b9ea6fb73", @@ -2124,7 +2170,8 @@ N/A } -1. \ **Delete Volume** +9.2. **Delete Volume** +---------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2136,15 +2183,18 @@ N/A | Direction | NSLCM->MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +9.2.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +9.2.2. **Response** +>>>>>>>>>>>>>>>>>>> 204: no content -1. \ **List Volumes** +9.3. **List Volumes** +--------------------- +---------------------+--------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2156,7 +2206,8 @@ N/A | Direction | NSLCM-> MULTIVIM | +---------------------+--------------------------------------------------------------------------------+ -1. \ **Request** +9.3.1. **Request** +>>>>>>>>>>>>>>>>>> msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/volumes?{……} @@ -2167,7 +2218,8 @@ N/A | name | M | 1 | string | Volume name | +-----------------+-----------------+-------------------+---------------+-------------------+ -1. \ **Response** +9.3.2. **Response** +>>>>>>>>>>>>>>>>>>> +--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2201,67 +2253,70 @@ N/A 500: failed +:: + { - "volumes": [ + "volumes": [ - { + { - "status": "available", + "status": "available", - "name": "test", + "name": "test", - "attachments": [], + "attachments": [], - "createTime": "2015-12-02T07:57:23.000000", + "createTime": "2015-12-02T07:57:23.000000", - " volumeType ": "ws", + " volumeType ": "ws", - "id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55", + "id": "91b39ebb-acdc-43f3-9c2e-b0da7ad0fd55", - "size": 20 + "size": 20 - }, + }, - { + { - "status": "in-use", + "status": "in-use", - "name": "wangsong", + "name": "wangsong", - "attachments": [ + "attachments": [ - { + { - "device": "/dev/vdc", + "device": "/dev/vdc", - "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", + "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", - "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", - "hostName": null, + "hostName": null, - "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" - } + } - ], + ], - "createTime": "2015-12-02T06:39:40.000000", + "createTime": "2015-12-02T06:39:40.000000", - " volumeType ": null, + " volumeType ": null, - "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", - "size": 40 + "size": 40 - } + } - ] + ] } -1. \ **Get Volumes** +9.4. **Get Volumes** +-------------------- +---------------------+-------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2273,11 +2328,13 @@ N/A | Direction | NSLCM-> MULTIVIM | +---------------------+-------------------------------------------------------------------------------------------+ -1. \ **Request** +9.4.1. **Request** +>>>>>>>>>>>>>>>>>> N/A -1. \ **Response** +9.4.2. **Response** +>>>>>>>>>>>>>>>>>>> +--------------------+-----------------+-------------------+----------------------+----------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2325,43 +2382,47 @@ N/A 500: failed +:: + { - "status": "in-use", + "status": "in-use", - "name": "wangsong", + "name": "wangsong", - "attachments": [ + "attachments": [ - { + { - "device": "/dev/vdc", + "device": "/dev/vdc", - "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", + "serverId": "3030e666-528e-4954-88f5-cc21dab1262b", - "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + "volumeId": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", - "hostName": null, + "hostName": null, - "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31" - } + } - ], + ], - "createTime": "2015-12-02T06:39:40.000000", + "createTime": "2015-12-02T06:39:40.000000", - "volumeType ": null, + "volumeType ": null, - "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", + "id": "4bd3e9eb-cd8b-456a-8589-910836a0ab31", - "volumeSize ": 40 + "volumeSize ": 40 } -1. \ **Tenant Management** +10. **Tenant Management** +^^^^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **List tenants** +10.1. **List tenants** +---------------------- +---------------------+---------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2373,7 +2434,8 @@ N/A | Direction | NSLCM-> MULTIVIM | +---------------------+---------------------------------------------------------------------+ -1. \ **Query** +10.1.1. **Query** +>>>>>>>>>>>>>>>>> +---------------------+-----------------+-------------------+---------------+-------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2381,7 +2443,8 @@ N/A | name={tenantname} | O | 1 | string | Tenant name to filter output list | +---------------------+-----------------+-------------------+---------------+-------------------------------------+ -1. \ **Response** +10.1.2. **Response** +>>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+-------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2401,25 +2464,29 @@ N/A 500: failed +:: + { - " tenants ": [ + " tenants ": [ - { + { - "id": "1", + "id": "1", - "name": "test\_a" + "name": "test\_a" - } + } - ] + ] } -1. \ **Limits** +11. **Limits** +^^^^^^^^^^^^^^ - 1. \ **List Limits of resouces: CPU&Memory, volume,network,etc** +11.1. **List Limits of resouces** +--------------------------------- +---------------------+-------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2431,9 +2498,13 @@ N/A | Direction | NSLCM-> MULTIVIM | +---------------------+-------------------------------------------------------------------------------+ -1. \ **Request** +11.1.1. **Request** +>>>>>>>>>>>>>>>>>>> + +N/A -2. \ **Response** +11.1.2. **Response** +>>>>>>>>>>>>>>>>>>>> +---------------------------+-----------------+-------------------+---------------+------------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2489,6 +2560,8 @@ N/A 500: failed +:: + { "maxPersonality": 5, @@ -2511,9 +2584,11 @@ N/A } -1. \ **Host Management** +12. **Host Management** +^^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **List hosts** +12.1. **List hosts** +-------------------- +---------------------+------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2525,9 +2600,13 @@ N/A | Direction | NSLCM-> MULTIVIM | +---------------------+------------------------------------------------------------------------------+ -1. \ **Request** +12.1.1. **Request** +>>>>>>>>>>>>>>>>>>> -2. \ **Response** +N/A + +12.1.2. **Response** +>>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+-----------------+-----------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2551,115 +2630,120 @@ N/A 500: failed +:: + { - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - "hosts": [ + "hosts": [ - { + { - "name": "b6e4adbc193d428ea923899d07fb001e", + "name": "b6e4adbc193d428ea923899d07fb001e", - "service": "conductor", + "service": "conductor", - "zone": "internal", + "zone": "internal", - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - }, + }, - { + { - "name": "09c025b0efc64211bd23fc50fa974cdf", + "name": "09c025b0efc64211bd23fc50fa974cdf", - "service": "compute", + "service": "compute", - "zone": "nova" + "zone": "nova" - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - }, + }, - { + { - "name": "e73ec0bd35c64de4a1adfa8b8969a1f6", + "name": "e73ec0bd35c64de4a1adfa8b8969a1f6", - "service": "consoleauth", + "service": "consoleauth", - "zone": "internal" + "zone": "internal" - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - }, + }, - { + { - "host\_name": "396a8a0a234f476eb05fb9fbc5802ba7", + "host\_name": "396a8a0a234f476eb05fb9fbc5802ba7", - "service": "network", + "service": "network", - "zone": "internal" + "zone": "internal" - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - }, + }, - { + { - "name": "abffda96592c4eacaf4111c28fddee17", + "name": "abffda96592c4eacaf4111c28fddee17", - "service": "scheduler", + "service": "scheduler", - "zone": "internal" + "zone": "internal" - "vimId": "123", + "vimId": "123", - "vimName": "vimName", + "vimName": "vimName", - "tenantId": "tenantId1" + "tenantId": "tenantId1" - } + } - ] + ] } -1. \ **Get host** +12.2. **Get host** +------------------ +---------------------+-----------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | +=====================+=========================================================================================+ -| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}\_{region}/{tenantid}/hosts/{hostname} | +| URI | msb.onap.org:80/api/multicloud/v0/{cloud owner}_{region}/{tenantid}/hosts/{hostname} | +---------------------+-----------------------------------------------------------------------------------------+ | Operation | GET | +---------------------+-----------------------------------------------------------------------------------------+ | Direction | NSLCM-> MULTIVIM | +---------------------+-----------------------------------------------------------------------------------------+ -1. \ **Request** +12.2.1. **Request** +>>>>>>>>>>>>>>>>>>> -2. \ **Response** +12.2.2. **Response** +>>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2676,110 +2760,110 @@ N/A +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ | cpu | M | 1 | Int | The cpu info on the host. | +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ -| memory\_mb | M | 1 | int | The memory info on the host (in MB). | +| memory_mb | M | 1 | int | The memory info on the host (in MB). | +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ | name | M | 1 | string | host name | +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ -| project | M | 1 | string | Value: total, used\_now, used\_max or specific project\_id | +| project | M | 1 | string | Value: total, used_now, used_max or specific project_id | +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ -| disk\_gb | M | 1 | int | The disk info on the host (in GB). | +| disk_gb | M | 1 | int | The disk info on the host (in GB). | +-----------------+-----------------+-------------------+---------------------+--------------------------------------------------------------+ 200: ok 500: failed -{ +:: -"cpu": 1, - -"disk\_gb": 1028, + { -"name": "c1a7de0ac9d94e4baceae031d05caae3", + "cpu": 1, -"memory\_mb": 8192, + "disk\_gb": 1028, -"vimId": "123", + "name": "c1a7de0ac9d94e4baceae031d05caae3", -"vimName": "vimName", + "memory\_mb": 8192, -"tenantId": "tenantId1" + "vimId": "123", -} + "vimName": "vimName", - { + "tenantId": "tenantId1", - "host": [ + "host": [ - { + { - "memory\_mb": 4960, + "memory\_mb": 4960, - "name": " c1a7de0ac9d94e4baceae031d05caae3", + "name": " c1a7de0ac9d94e4baceae031d05caae3", - "disk\_gb": 92, + "disk\_gb": 92, - "project": "(total)", + "project": "(total)", - "cpu": 4 + "cpu": 4 - }, + }, - { + { - "memory\_mb": 1536, + "memory\_mb": 1536, - "name": " c1a7de0ac9d94e4baceae031d05caae3", + "name": " c1a7de0ac9d94e4baceae031d05caae3", - "disk\_gb": 2, + "disk\_gb": 2, - "project": "(used\_now)", + "project": "(used\_now)", - "cpu": 2 + "cpu": 2 - }, + }, - { + { - "memory\_mb": 1024, + "memory\_mb": 1024, - "name": " c1a7de0ac9d94e4baceae031d05caae3", + "name": " c1a7de0ac9d94e4baceae031d05caae3", - "disk\_gb": 2, + "disk\_gb": 2, - "project": "(used\_max)", + "project": "(used\_max)", - "cpu": 2 + "cpu": 2 - }, + }, - { + { - "memory\_mb": 1024, + "memory\_mb": 1024, - "name": " c1a7de0ac9d94e4baceae031d05caae3", + "name": " c1a7de0ac9d94e4baceae031d05caae3", - "disk\_gb": 2, + "disk\_gb": 2, - "project": "568f7ec425db472ba348251bf1e7eebd", + "project": "568f7ec425db472ba348251bf1e7eebd", - "cpu": 2 + "cpu": 2 - } + } - ], + ], - "vimName": "openstack\_newton", + "vimName": "openstack\_newton", - "vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73", + "vimId": "dd5b6da9-5984-401f-b89f-78a9776b1a73", - "tenantId": "568f7ec425db472ba348251bf1e7eebd" + "tenantId": "568f7ec425db472ba348251bf1e7eebd" } -1. \ **VIM Management** +13. **VIM Management** +^^^^^^^^^^^^^^^^^^^^^^ - 1. \ **Update VIM Info** +13.1. **Update VIM Info** +------------------------- +---------------------+----------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | @@ -2791,7 +2875,8 @@ N/A | Direction | ESR-> MULTICLOUD | +---------------------+----------------------------------------------------------------------------------------------+ -1. \ **Request** +13.1.1. **Request** +>>>>>>>>>>>>>>>>>>> +-----------------+-----------------+-------------------+---------------+-----------------------+ | **Parameter** | **Qualifier** | **Cardinality** | **Content** | **Description** | @@ -2799,7 +2884,8 @@ N/A | defaultTenant | M | 1 | string | default tenant name | +-----------------+-----------------+-------------------+---------------+-----------------------+ -1. \ **Response** +13.1.2. **Response** +>>>>>>>>>>>>>>>>>>>> NA @@ -2807,23 +2893,26 @@ NA 400: failed -1. \ **Unregistry VIM** +13.2. **Unregistry VIM** +------------------------ +---------------------+-----------------------------------------------------------------------------------------------+ | **IF Definition** | **Description** | +=====================+===============================================================================================+ -| URI | http(s)://[hostname][:port]/onapapi/multicloud/v1 /{cloud-owner}\_{cloud-region}/unregistry | +| URI | http(s)://[hostname][:port]/onapapi/multicloud/v1/{cloud-owner}\_{cloud-region} | +---------------------+-----------------------------------------------------------------------------------------------+ | Operation | DELETE | +---------------------+-----------------------------------------------------------------------------------------------+ | Direction | ESR-> MULTICLOUD | +---------------------+-----------------------------------------------------------------------------------------------+ -1. \ **Request** +13.2.1. **Request** +>>>>>>>>>>>>>>>>>>> NA -1. \ **Response** +13.2.2. **Response** +>>>>>>>>>>>>>>>>>>>> NA diff --git a/docs/MultiCloud-Deployment-Guide.rst b/docs/MultiCloud-Deployment-Guide.rst index 3550f77..58edaf9 100644 --- a/docs/MultiCloud-Deployment-Guide.rst +++ b/docs/MultiCloud-Deployment-Guide.rst @@ -13,11 +13,14 @@ Please refer to onap deployment in kubernetes website(https://wiki.onap.org/disp to setup kubernets cluster. -After installing kubectl and helm, execute "kubectl cluster-info" command to verify your 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. +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. .. code-block:: console @@ -141,7 +144,8 @@ 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" +Then register vio information into AAI service with region name "vmware" and +region id "vio" .. code-block:: console diff --git a/docs/MultiCloud-Heat-Deployment-Guide.rst b/docs/MultiCloud-Heat-Deployment-Guide.rst index f736f26..b2049bc 100644 --- a/docs/MultiCloud-Heat-Deployment-Guide.rst +++ b/docs/MultiCloud-Heat-Deployment-Guide.rst @@ -26,29 +26,33 @@ we'll need to create a file call admin.rc with following content keystone version 2.0 Example: -export OS_AUTH_URL=https://identity.api.opentack.com/v2.0/ -export OS_USERNAME=UserName -export OS_TENANT_ID=TenantID -export OS_REGION_NAME=RegionID -export OS_PASSWORD=Password -export OS_IDENTITY_API_VERSION=2 +.. code-block:: console + + export OS_AUTH_URL=https://identity.api.opentack.com/v2.0/ + export OS_USERNAME=UserName + export OS_TENANT_ID=TenantID + export OS_REGION_NAME=RegionID + export OS_PASSWORD=Password + export OS_IDENTITY_API_VERSION=2 keystone version 3.0 Example: -export OS_AUTH_URL=https://identiy.api.openstack.com/v3/ -export OS_PROJECT_ID=ProjectID -export OS_PROJECT_NAME=ProjectName -export OS_USER_DOMAIN_NAME=DomainName -export OS_USERNAME=UserName -export OS_PASSWORD=Password -if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi +.. code-block:: console + + export OS_AUTH_URL=https://identiy.api.openstack.com/v3/ + export OS_PROJECT_ID=ProjectID + export OS_PROJECT_NAME=ProjectName + export OS_USER_DOMAIN_NAME=DomainName + export OS_USERNAME=UserName + export OS_PASSWORD=Password + if [ -z "$OS_USER_DOMAIN_NAME" ]; then unset OS_USER_DOMAIN_NAME; fi -# unset v2.0 items in case set -unset OS_TENANT_ID -unset OS_TENANT_NAME + # unset v2.0 items in case set + unset OS_TENANT_ID + unset OS_TENANT_NAME -export OS_IDENTITY_API_VERSION=3 + export OS_IDENTITY_API_VERSION=3 @@ -58,7 +62,10 @@ Get VIO pem Get a copy of vio.pem in load balancer vms(/etc/ssl/vio.pem) in local host, then add the following line to your admin.rc file: -export OS_CACERT=/your/path/vio.pem + +.. code-block:: console + + export OS_CACERT=/your/path/vio.pem @@ -66,22 +73,27 @@ export OS_CACERT=/your/path/vio.pem Deploy the ONAP ~~~~~~~~~~~~~~~~ -get onap heat files from git repo: -git clone http://@gerrit.onap.org/r/a/demo +get onap heat files from git repo:: -we will use onap_opentack_float.yaml and onap_openstack_float.env heat templates -at ./demo/heat/ONAP/ dirctory. + git clone http://@gerrit.onap.org/r/a/demo + +we will use onap_opentack_float.yaml and onap_openstack_float.env heat +templates at ./demo/heat/ONAP/ dirctory. Set env options in onap_openstack_float.env according to VIO platform env, Finally, heat enviroment contains correct parameters. Next source the admin.rc file to create shell environment variables we nedd. -source admin.rc +.. code-block:: console + + source admin.rc Then create heat stack -openstack stack create -t onap_openstack_float.yaml -e onap_openstack_float.env ONAP +.. code-block:: console + + openstack stack create -t onap_openstack_float.yaml -e onap_openstack_float.env ONAP This process will take several minutes to spin up diff --git a/docs/MultiCloud-Test-CSIT.rst b/docs/MultiCloud-Test-CSIT.rst index 63fd87f..145148e 100644 --- a/docs/MultiCloud-Test-CSIT.rst +++ b/docs/MultiCloud-Test-CSIT.rst @@ -1,18 +1,37 @@ +.. + This work is licensed under a Creative Commons Attribution 4.0 + International License. + +=============================== +ONAP MultiCloud CSIT Test Guide +=============================== + Clone integration repo +====================== + +:: git clone http://gerrit.onap.org/r/integration -Setup more contains if needed +Add more contains +================= + +The file 'setup.sh' under 'test/csit/plans/multicloud/functionality1' will +setup multicloud containers for CSIT test, add more containers in this file +if needed. -The file 'setup.sh' under 'test/csit/plans/multicloud/functionality1' will setup multicloud containers for CSIT test. Add more tests +============== -The file 'testplan.txt' under 'test/csit/plans/multicloud/functionality1/' specific the robot tests to be run. +The file 'testplan.txt' under 'test/csit/plans/multicloud/functionality1/' +specific the robot tests to be run. -The content of 'testplan.txt' will looks like following: +The content of 'testplan.txt' will looks like following:: # Test suites are relative paths under [integration.git]/test/csit/tests/. # Place the suites in run order. multicloud/provision/sanity_test_multivim.robot -When adding tests to file 'multicloud/provision/sanity_test_multivim.robot' , a 'verify-csit' job will be trigger for related patch, and related change will be tested. +When adding tests to file 'multicloud/provision/sanity_test_multivim.robot' , +a 'verify-csit' job will be trigger for related patch, and related change will +be tested. diff --git a/docs/MultiCloud-Test-Guide.rst b/docs/MultiCloud-Test-Guide.rst index c48bb79..b77b115 100644 --- a/docs/MultiCloud-Test-Guide.rst +++ b/docs/MultiCloud-Test-Guide.rst @@ -9,16 +9,20 @@ ONAP MultiCloud Test Guide Test Examples ~~~~~~~~~~~~~ -The env HOST_IP is msb-iag service cluster-ip value is "10.43.188.78"(see it above). +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 V2 auth token ----------------- -# VIO openstack support keystone V2 version, vio proxy-plugin will check the request body format, if request body format -# is keystone V2 format will access keystone V2 service, if not it will access keystone V3 service. +# VIO openstack support keystone V2 version, vio proxy-plugin will check the +request body format, if request body format +# is keystone V2 format will access keystone V2 service, if not it will access +keystone V3 service. # this example show how to access keystone V2 service. + .. code-block:: console $ curl -X POST -d @testV2.json -H 'Content-Type:application/json' http://$msb_address/api/multicloud/v0//identity/v2.0/tokens @@ -39,18 +43,23 @@ testV2.json content: 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”. +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 +# 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://$msb_address/api/multicloud-vio/v0//identity +Identity endpoint:: + + http://$msb_address/api/multicloud-vio/v0//identity + +Nova endpoint:: -Nova endpoint: - http://$msb_address/api/multicloud-vio/v0//nova/ + http://$msb_address/api/multicloud-vio/v0//nova/ Get V3 auth token @@ -70,26 +79,31 @@ test.json content example: "auth": sudo pip install virtualenv{ "scope": {"project": {"id": “”}}, "identity": - { - "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] - } + { + "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”. +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 +# 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://$msb_address/api/multicloud-vio/v0//identity +Identity endpoint:: + + http://$msb_address/api/multicloud-vio/v0//identity + +Nova endpoint:: -Nova endpoint: - http://$msb_address/api/multicloud-vio/v0//nova/ + http://$msb_address/api/multicloud-vio/v0//nova/ List projects @@ -221,8 +235,8 @@ get the taskid from response body,then query the task status by taskid. $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0//glance/v2/tasks/ -You can see the description and properties of task in response body,if 'status' is success, it will show image_id in -result block. +You can see the description and properties of task in response body,if 'status' +is success, it will show image_id in result block. query the image status by image_id diff --git a/docs/Multicloud-Fake_Cloud-Guide.rst b/docs/Multicloud-Fake_Cloud-Guide.rst index 4a2087d..52011a5 100644 --- a/docs/Multicloud-Fake_Cloud-Guide.rst +++ b/docs/Multicloud-Fake_Cloud-Guide.rst @@ -8,12 +8,15 @@ MultiCloud Fake_Cloud User Case -multilcoud-vmware server not only provide vio plugin to access real openstack platform,but +multilcoud-vmware server not only provide vio plugin to access real openstack +platform,but also provide fake_cloud plugin which simulate thereal VIO function.The fake -cloud is suitable for testing openstack function if there is not real VIO platform. +cloud is suitable for testing openstack function if there is not real VIO +platform. -Make sure you environment have msb,aai service and multicloud-vmware config file has the right msb_ip and +Make sure you environment have msb,aai service and multicloud-vmware config +file has the right msb_ip and msb_port value,The config file path is vio/vio/pub/config/congfig.py @@ -21,7 +24,8 @@ msb_port value,The config file path is vio/vio/pub/config/congfig.py Register Fake Cloud to AAI ~~~~~~~~~~~~~~~~~~~~~~~~~~ -Register vio information into AAI service with region name "vmware" and region id "fake" +Register vio information into AAI service with region name "vmware" and region +id "fake" .. code-block:: console @@ -66,7 +70,8 @@ the ${msb_address} = "MSB_IP:MSB_PORT" Get auth token -------------- -# send request to multicloud-framework(broker) service to get token of keystone V3 +# send request to multicloud-framework(broker) service to get token of keystone +V3 .. code-block:: console @@ -76,36 +81,42 @@ test.json content example: :: - { + { "auth": { - "scope": {"project": {"id": “”}}, - "identity": - { - "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] - } + "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”. +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/vmware_fake", it represent the multicloud-vio service, +So requests sending to mulitcloud-vio will be forwarded to fake cloud.the ip +and port reprenst ${msb_address} + -# you can find the endpoint url namespace is "api/multicloiud-vio/v0/vmware_fake", it represent the multicloud-vio service, So -requests sending to mulitcloud-vio will be forwarded to fake cloud.the ip and port reprenst ${msb_address} +Identity endpoint:: + http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity -Identity endpoint: - http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity +Nova endpoint:: -Nova endpoint: - http://$msb_address/api/multicloud-vio/v0/vmware_fake/compute/ + http://$msb_address/api/multicloud-vio/v0/vmware_fake/compute/ List projects ------------- -Use identity’s endpoint: http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity/ +Use identity’s endpoint: http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity/ .. code-block:: console diff --git a/docs/Release Notes.rst b/docs/Release Notes.rst index 996b1df..676dc43 100644 --- a/docs/Release Notes.rst +++ b/docs/Release Notes.rst @@ -8,7 +8,7 @@ Release Notes Version: 1.1.0 -------- +-------------- :Release Date: 2018-06-07 @@ -44,9 +44,9 @@ None MULTICLOUD code has been formally scanned during build time using NexusIQ and no Critical vulnerability were found. Quick Links: - - `MULTICLOUD project page `_ - - - `Passing Badge information for MULTICLOUD `_ + - `MULTICLOUD project page `_ + + - `Passing Badge information for MULTICLOUD `_ **Upgrade Notes** @@ -61,7 +61,7 @@ None None Version: 1.0.0 -------- +-------------- :Release Date: 2017-11-16 diff --git a/docs/index.rst b/docs/index.rst index 8c7ba0e..b326ecf 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -1,6 +1,6 @@ -.. This work is licensed under a Creative Commons Attribution 4.0 International License. -.. http://creativecommons.org/licenses/by/4.0 -.. Copyright (c) 2017-2018 VMware, Inc. +.. + This work is licensed under a Creative Commons Attribution 4.0 + International License. .. _index-multicloud: @@ -16,3 +16,18 @@ MultiCloud Documentation Repository Multicloud-Fake_Cloud-Guide MultiCloud-Heat-Deployment-Guide MultiCloud-Administrator-Guide + + +MultiCloud Specification Documentation +-------------------------------------- +.. toctree:: + :maxdepth: 1 + + specs/elastic_api_exposure + specs/logging_enablement + specs/multicloud_event_federation + specs/multicloud_image_service + specs/multicloud_resource_capacity_check + specs/multicloud-container-plugin + specs/MultiCloud-HPA-Discovery-design + specs/parallelism_improvement diff --git a/docs/specs/MultiCloud-HPA-Discovery-design.rst b/docs/specs/MultiCloud-HPA-Discovery-design.rst index 3a841de..a5e5252 100644 --- a/docs/specs/MultiCloud-HPA-Discovery-design.rst +++ b/docs/specs/MultiCloud-HPA-Discovery-design.rst @@ -24,7 +24,7 @@ be ESR (External System Registration service). Whenever the ONAP user is onboarding a VIM instance or a cloud, he/she will fill in VIM/Cloud access information including but not limited to : authentication url, user/password, tenant name, cloud owner and region id, and cloud extra information pertaining - to this VIM/Cloud. +to this VIM/Cloud. Given these access information for a VIM instance, ESR will request MultiCloud to perform VIM/Cloud registration process. diff --git a/docs/specs/README.rst b/docs/specs/README.rst index 6429d1f..b39c8d3 100644 --- a/docs/specs/README.rst +++ b/docs/specs/README.rst @@ -1,10 +1,10 @@ INTRO ===== -This directory holds the proposals of non-trivial changes to multicloud. We host -them here to avoid the potential headaches in managing yet another project, -say `multicloud-specs`. When the needs rise up for a dedicated project for -proposals, we can create such a project and migrate things here. +This directory holds the proposals of non-trivial changes to multicloud. We +host them here to avoid the potential headaches in managing yet another +project, say `multicloud-specs`. When the needs rise up for a dedicated project +for proposals, we can create such a project and migrate things here. DIRECTORY LAYOUT diff --git a/docs/specs/elastic_api_exposure.rst b/docs/specs/elastic_api_exposure.rst index 4cea241..99061d7 100644 --- a/docs/specs/elastic_api_exposure.rst +++ b/docs/specs/elastic_api_exposure.rst @@ -73,10 +73,14 @@ implementation for now will still focus on the northbound and southboud API conversion. It should be noted that there is a prior art in OpenStack "Gluon" [1]_ project -which provides a model-driven framework to generate APIs based on model definitions -in YAML. A full, normative definition and extension mechanism of "API Specification" -[2]_ is available in Gluon. Although our current work has limited scope, for those -who are interested in full normative definition and extension mechanism in our future +which provides a model-driven framework to generate APIs based on model +definitions +in YAML. A full, normative definition and extension mechanism of "API +Specification" +[2]_ is available in Gluon. Although our current work has limited scope, for +those +who are interested in full normative definition and extension mechanism in our +future work, please refer to those references in "Gluon" [1]_ project and its "API Specifications" [2]_. @@ -84,10 +88,11 @@ Specifications" [2]_. .. [2] https://github.com/openstack/gluon/blob/master/doc/source/devref/gluon_api_spec.inc Since the API are defined by YAML files, swagger files can also be generated -from YAML files and exist without manually maintaining. The framework will cover -the conversion from YAML file to swagger files. +from YAML files and exist without manually maintaining. The framework will +cover the conversion from YAML file to swagger files. -To keep backward compatibility, the proposal in this spec will be bound to [MULTICLOUD-150]_. +To keep backward compatibility, the proposal in this spec will be bound to +[MULTICLOUD-150]_. This means that the proposal is only usable when evenlet with pecan is enabled. So that uses don't care about this feature will not be affected. @@ -98,9 +103,9 @@ Definition of API ----------------- Take the API of `host` as example. The API will be defined as follow. URLs of -the API are defined under `paths`. There are several attributes for the API. The -number of kinds of attributes is not constrained to following example, other -attributes can be added if needed. +the API are defined under `paths`. There are several attributes for the API. +The number of kinds of attributes is not constrained to following example, +other attributes can be added if needed. :: @@ -126,8 +131,8 @@ attributes can be added if needed. parameters ~~~~~~~~~~ -`parameters` are the variables in the URL. It can be extracted from URL and then -used in data retrieving and manipulating. +`parameters` are the variables in the URL. It can be extracted from URL and +then used in data retrieving and manipulating. `parameters` are discriminated by `name`, and validated by `type` and `format`. @@ -138,17 +143,18 @@ These attributes represents the supported HTTP method. In above example, only `get` method is defined. When client sends other HTTP method to the URL, a 404 response will be returned. -`responses` defines the response of the request. `success_code` is the HTTP code -in the response. `description` is an optional parameter. It describes the response. +`responses` defines the response of the request. `success_code` is the HTTP +code in the response. `description` is an optional parameter. It describes the +response. `schema` points to the RESTful resource that will be in the response body. In -above example, the RESTful resource is `host`. It should be found in the RESTful -resource definition section. +above example, the RESTful resource is `host`. It should be found in the +RESTful resource definition section. vim_path ~~~~~~~~ -`vim_path` defines the relative URL path of the southbound VIM. Multi-Cloud will -use this path to retrieve data from VIM. +`vim_path` defines the relative URL path of the southbound VIM. Multi-Cloud +will use this path to retrieve data from VIM. Definition of RESTful resource ------------------------------ @@ -188,8 +194,8 @@ example, other attributes can be added if needed. vim_resource ~~~~~~~~~~~~ -`vim_resource` points to the resource that comes from southbound VIM. Multi-Cloud -will use the resource to build its own resource. +`vim_resource` points to the resource that comes from southbound VIM. +Multi-Cloud will use the resource to build its own resource. properties ~~~~~~~~~~ @@ -198,32 +204,40 @@ properties and several attributes. The number of kinds of attributes is not constrained to the example, other attributes can be added if needed. -`type` of property means the type of current property. It can be some simple data, -like string or integer. It can also be some composite data like, object or array. +`type` of property means the type of current property. It can be some simple +data, +like string or integer. It can also be some composite data like, object or +array. -`required` of property means if this property is required for the resource. If it -is required, missing this property will cause request failure. Default value of -`required` is false. +`required` of property means if this property is required for the resource. If +it is required, missing this property will cause request failure. Default value +of `required` is false. `source` of property means that current property will be built from it. It is -usually a property from `vim_resource`. By default, it will be the same property -in `vim_resource`. +usually a property from `vim_resource`. By default, it will be the same +property in `vim_resource`. -`action` of property means that current property will be build by using this action. -By default, it will be `copy`, which means the data from property of VIM resource +`action` of property means that current property will be build by using this +action. +By default, it will be `copy`, which means the data from property of VIM +resource is copied to property of Multi-Cloud resource. Other actions can be defined for different scenarios. -`minimal` is one of the constraint of the property. It means the minimal possible +`minimal` is one of the constraint of the property. It means the minimal +possible value of the property. If value of the property is less than minimal value. The request will fail. Swagger File generation ----------------------- -Multi-Cloud is using Swagger file to describe its API. It is maintained manually. -Since this spec proposes to use YAML file to generate Multi-Cloud's API, Swagger -file can also be generated from YAML file. The API generating framework will also +Multi-Cloud is using Swagger file to describe its API. It is maintained +manually. +Since this spec proposes to use YAML file to generate Multi-Cloud's API, +Swagger +file can also be generated from YAML file. The API generating framework will +also generate Swagger file. Implementation diff --git a/docs/specs/logging_enablement.rst b/docs/specs/logging_enablement.rst index 5fb639e..a717286 100644 --- a/docs/specs/logging_enablement.rst +++ b/docs/specs/logging_enablement.rst @@ -6,8 +6,10 @@ Multi-Vim logging ================= -The purpose of logging is to generate machine-readable, indexable output logs and support to trace -requests through sub-component, it need to ship logs to logging enhancement project a centralized +The purpose of logging is to generate machine-readable, indexable output logs +and support to trace +requests through sub-component, it need to ship logs to logging enhancement +project a centralized logging analysis system capturing diagnostic information. @@ -15,13 +17,17 @@ logging analysis system capturing diagnostic information. Problem Description =================== -So far the logging of multi-vim is not able to support customer configuration, handler context specific logging like -MDC[MDC_Document]_, also it dose't propagate transaction-ID in REST headers which is critical to tracing request. -There are 4 python containers in oom project need to configure filebeat container for shipping logs. +So far the logging of multi-vim is not able to support customer configuration, +handler context specific logging like +MDC[MDC_Document]_, also it dose't propagate transaction-ID in REST headers +which is critical to tracing request. +There are 4 python containers in oom project need to configure filebeat +container for shipping logs. .. [MDC_Document] https://wiki.onap.org/display/DW/ONAP+Application+Logging+Guidelines+v1.1#ONAPApplicationLoggingGuidelinesv1.1-MDCs -In addition the current logging is very difficult to understand behavior and performance. +In addition the current logging is very difficult to understand behavior +and performance. Proposed Change @@ -32,8 +38,10 @@ The proposed change will include three parts. Filebeat container ------------------ -Logging architecture[Log_Architecture]_ use Filebeat collects logs from multi-vim containers and ships them to the -centralized logging stack. To enable this feature it need to add Filebeat container in multi-vim pod that was +Logging architecture[Log_Architecture]_ use Filebeat collects logs from +multi-vim containers and ships them to the +centralized logging stack. To enable this feature it need to add Filebeat +container in multi-vim pod that was deployed by OOM, as well Yaml file will be used to configure Filebeat. .. [Log_Architecture] https://wiki.onap.org/display/DW/Logging+Architecture @@ -41,12 +49,15 @@ deployed by OOM, as well Yaml file will be used to configure Filebeat. Tracing ID ---------- -ONAP logging uses a global unique "RequestID"[RequestID_Document]_ in logging to track the processing of each request -across all the components, multi-vim will receive this id from http header by vary "X-TransactionID", then record it -in logs. -Meanwhile single component should generate a InvocationID that records the relationship between RequestID -and InvocationID for proper tracing. So Mulit-vim will set unique InvocationID for each single request,also output it +ONAP logging uses a global unique "RequestID"[RequestID_Document]_ in logging +to track the processing of each request +across all the components, multi-vim will receive this id from http header +by vary "X-TransactionID", then record it in logs. +Meanwhile single component should generate a InvocationID that records the +relationship between RequestID +and InvocationID for proper tracing. So Mulit-vim will set unique InvocationID +for each single request,also output it in logs. .. [RequestID_Document] https://wiki.onap.org/pages/viewpage.action?pageId=20087036#ONAPApplicationLoggingGuidelinesv1.2(Beijing)-MDC-RequestID @@ -54,9 +65,12 @@ in logs. python AOP logging library -------------------------- -Currently logging enhancement project just has java AOP logging library, For multi-vim which based on python need -a python version. The basic feature of AOP logging library could provide customer configuration include retention -policy、output location、text output format、message level and so on, support MDC context specific logging, able to +Currently logging enhancement project just has java AOP logging library, For +multi-vim which based on python need +a python version. The basic feature of AOP logging library could provide +customer configuration include retention +policy、output location、text output format、message level and so on, support +MDC context specific logging, able to change configuration at runtime, and make logging quite fast. diff --git a/docs/specs/multicloud-container-plugin.rst b/docs/specs/multicloud-container-plugin.rst index cba280d..0c68a89 100644 --- a/docs/specs/multicloud-container-plugin.rst +++ b/docs/specs/multicloud-container-plugin.rst @@ -20,6 +20,7 @@ ONAP to support VNFs as containers in addition to VNFs as VMs. It is beneficial to support for multiple container orchestration technologies as cloud infrastructure: + * Allow VNFs to run within container technology and also allow closed feedback loop same to VM based VIM. e.g. openstack. * Support for co-existence of VNF VMs and VNF containers @@ -39,13 +40,15 @@ Proposed Change Scope for Beijing release(R-2) ------------------------------ Basic principle + * First baby step is to support containers in a Kubernetes cluster via a Multicloud SBI /K8S Plugin (other COE's(Container Orchestration Engine) are out of Beijing scope. - They are future scope.) + They are future scope.) * Minimal implementation with zero impact on MVP of Multicloud Beijing work Use Cases + * Sample VNFs(vFW and vDNS) (vCPE use case is post Beijing release) Both vFW and vDNS are targeted. Since custom TOSCA node definitions @@ -158,7 +161,8 @@ deploying containerized VNF package into Kubernetes cluster. The VNF package is delivered as payload of HTTP request body in the API call. The VNF package could be a CSAR or Helm Charts. -CSAR deployment package will include a yaml deployment file and other artifacts. +CSAR deployment package will include a yaml deployment file and other +artifacts. This approach would work for simple VNFs consisting of single PODs. For VNFs comprising of multiple PODs which are dependent on each other, Helm @@ -167,15 +171,15 @@ package consisting of a set of Helm charts and k8s yamls for each constituent service that is part of the VNF. There would be no change required in the Northboud API from MultiCloud for -either CSAR package or Helm package or any other package in the future. SO calls -this MultiVIM Northbound API and sends the k8s package (e.g. csar, or tgz) -as payload. k8s Plugin will distinguish package types based on its suffix +either CSAR package or Helm package or any other package in the future. SO +calls this MultiVIM Northbound API and sends the k8s package (e.g. csar, or +tgz) as payload. k8s Plugin will distinguish package types based on its suffix and interact with k8s cluster appropriately: * For CSAR: k8s yaml file will be extracted from CSAR. k8s REST API server will be called to create k8s resources (e.g. pods), which is equivalent to - "kubectl create -f ". The TOSCA file in CSAR is expected to include - onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml + "kubectl create -f ". The TOSCA file in CSAR is expected to + include onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml node which is explained below. In another word, Kubernetes yaml is stored as artifact in CSAR. it is extracted and then it is fed to k8s API. @@ -190,6 +194,7 @@ support in the future, no extra code in SO is needed. swagger.json ------------ + * PATH: swagger.json swagger.json for kubernetes API definitions * METHOD: GET @@ -216,9 +221,11 @@ to get experience. the following class of test would be planned as stretched goal. * Unit Test -** API input/output + + * API input/output * functional test -** communication to backend(K8S API server, helm tiller server) + + * communication to backend(K8S API server, helm tiller server) * CSIT as end-to-end test @@ -252,37 +259,39 @@ Operation Type POST Request Body: ------------------- ---------- ------- ---------------------------------------- -Attribute Qualifier Content Description -================== ========== ======= ======================================== -cloudOwner M String any string as cloud owner ------------------- ---------- ------- ---------------------------------------- -cloudRegionId M String e.g. "kubernetes-" as it doesn't apply - to k8s. Cloud admin assigns unique id. ------------------- ---------- ------- ---------------------------------------- -cloudType M String "kubernetes". new type ------------------- ---------- ------- ---------------------------------------- -cloudRegionVersion M String kubernetes version. "v1.9", "v1.8" ... ------------------- ---------- ------- ---------------------------------------- -ownerDefinedType O String None. (not specified) ------------------- ---------- ------- ---------------------------------------- -cloudZone O String None. (not speicfied) - as kubernetes doesn't have notion of - zone. ------------------- ---------- ------- ---------------------------------------- -complexName O String None. (not specified) - as kubernetes doesn't have notion of - complex. ------------------- ---------- ------- ---------------------------------------- -cloudExtraInfo O String json string(dictionary) for necessary - info. For now "{}" empty dictionary. - For helm support, URL for tiller server - is stored. ------------------- ---------- ------- ---------------------------------------- -vimAuthInfos M [Obj] Auth information of Cloud - list of authInfoItem which is described - below. -================== ========== ======= ======================================== +:: + + ------------------ ---------- ------- ---------------------------------------- + Attribute Qualifier Content Description + ================== ========== ======= ======================================== + cloudOwner M String any string as cloud owner + ------------------ ---------- ------- ---------------------------------------- + cloudRegionId M String e.g. "kubernetes-" as it doesn't apply + to k8s. Cloud admin assigns unique id. + ------------------ ---------- ------- ---------------------------------------- + cloudType M String "kubernetes". new type + ------------------ ---------- ------- ---------------------------------------- + cloudRegionVersion M String kubernetes version. "v1.9", "v1.8" ... + ------------------ ---------- ------- ---------------------------------------- + ownerDefinedType O String None. (not specified) + ------------------ ---------- ------- ---------------------------------------- + cloudZone O String None. (not speicfied) + as kubernetes doesn't have notion of + zone. + ------------------ ---------- ------- ---------------------------------------- + complexName O String None. (not specified) + as kubernetes doesn't have notion of + complex. + ------------------ ---------- ------- ---------------------------------------- + cloudExtraInfo O String json string(dictionary) for necessary + info. For now "{}" empty dictionary. + For helm support, URL for tiller server + is stored. + ------------------ ---------- ------- ---------------------------------------- + vimAuthInfos M [Obj] Auth information of Cloud + list of authInfoItem which is described + below. + ================== ========== ======= ======================================== There are several constraints/assumptions on cloudOwner and cloudRegionId. `cloud-region`_ . For k8s, cloudRegionId is (ab)used to @@ -298,22 +307,24 @@ authInfoItem Basic authentication is used for k8s api server. --------------- --------- ------- ------------------------------------------- -Attribute Qualifier Content Description -============== ========= ======= =========================================== -cloudDomain M String "kubernetes" as this doesn't apply. --------------- --------- ------- ------------------------------------------- -userName M String User name --------------- --------- ------- ------------------------------------------- -password M String Password --------------- --------- ------- ------------------------------------------- -authUrl M String URL for kubernetes API server --------------- --------- ------- ------------------------------------------- -sslCacert O String ca file content if enabled ssl on - kubernetes API server --------------- --------- ------- ------------------------------------------- -sslInsecure O Boolean Whether to verify VIM's certificate -============== ========= ======= =========================================== +:: + + -------------- --------- ------- ------------------------------------------- + Attribute Qualifier Content Description + ============== ========= ======= =========================================== + cloudDomain M String "kubernetes" as this doesn't apply. + -------------- --------- ------- ------------------------------------------- + userName M String User name + -------------- --------- ------- ------------------------------------------- + password M String Password + -------------- --------- ------- ------------------------------------------- + authUrl M String URL for kubernetes API server + -------------- --------- ------- ------------------------------------------- + sslCacert O String ca file content if enabled ssl on + kubernetes API server + -------------- --------- ------- ------------------------------------------- + sslInsecure O Boolean Whether to verify VIM's certificate + ============== ========= ======= =========================================== NOTE: For some issues `issue23`_, ESR should provide authenticating by bearer token for Kubernetes cluster if possible beside basic authentication. @@ -354,19 +365,20 @@ VNF-SDK need to be addressed for creation. * onap.multicloud.nodes.kubernetes.proxy * node definitions - .. code-block:: - - data_types: - onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml: - properties: - name: - type: string - description: > - Name of application - path: - type: string - description: > - Paths to kubernetes yaml file + + :: + + data_types: + onap.multicloud.container.kubernetes.proxy.nodes.resources_yaml: + properties: + name: + type: string + description: > + Name of application + path: + type: string + description: > + Paths to kubernetes yaml file For VNFs that are packages as Helm package there would be only one TOSCA node in the TOSCA template which would have reference to the @@ -375,19 +387,20 @@ Helm package. * onap.multicloud.nodes.kubernetes.helm * node definitions - .. code-block:: - - data_types: - onap.multicloud.container.kubernetes.helm.nodes.helm_package: - properties: - name: - type: string - description: > - Name of application - path: - type: string - description: > - Paths to Helm package file + + :: + + data_types: + onap.multicloud.container.kubernetes.helm.nodes.helm_package: + properties: + name: + type: string + description: > + Name of application + path: + type: string + description: > + Paths to Helm package file This TOSCA node definitions wrap kubernetes yaml file or helm chart. cloudify.nodes.Kubernetes isn't reused in order to avoid definition conflict. @@ -475,13 +488,15 @@ multicloud k8s plugin:: NOTE: In this work flow. only the northbound deployment API endpoint is needed for VNF deployment. LCM APIs are only needed for lifecycle management. Other -internal APIs, e.g. k8s YAML API may be needed only for internal implementation. +internal APIs, e.g. k8s YAML API may be needed only for internal +implementation. SO ARIA multicloud plugin needs to be twisted to call k8s plugin. The strategy is to keep the existing design of ONAP or to follow agreed design. The key point of The interaction between SO and multicloud is + * SO decomposes VNFD/NSD into single atomic resource (e.g. VNF-C corresponding to single VM or single container/pod) and send requests to create each resources via deployment API. @@ -551,8 +566,8 @@ References Past presentations/proposals ---------------------------- .. _Munish proposal: https://schd.ws/hosted_files/onapbeijing2017/dd/Management%20of%20Cloud%20Native%20VNFs%20with%20ONAP%20PA5.pptx -.. _Isaku proposal:https://schd.ws/hosted_files/onapbeijing2017/9d/onap-kubernetes-arch-design-proposal.pdf -.. _Bin Hu proposal:https://wiki.onap.org/download/attachments/16007890/ONAP-SantaClara-BinHu-final.pdf?version=1&modificationDate=1513558701000&api=v2 +.. _Isaku proposal: https://schd.ws/hosted_files/onapbeijing2017/9d/onap-kubernetes-arch-design-proposal.pdf +.. _Bin Hu proposal: https://wiki.onap.org/download/attachments/16007890/ONAP-SantaClara-BinHu-final.pdf?version=1&modificationDate=1513558701000&api=v2 ONAP components --------------- @@ -655,7 +670,7 @@ This example is very early phase and there are hard-coded values. * TOSCA hello world - .. code-block:: + :: topology_template: node_templates: @@ -679,7 +694,7 @@ This example is very early phase and there are hard-coded values. * converted k8s yaml - .. code-block:: + :: $ PYTHONPATH=. python -m tosca_translator.shell -d --debug --template-file tosca_translator/tests/data/tosca_helloworld.yaml api_version: apps/v1beta1 diff --git a/docs/specs/multicloud_event_federation.rst b/docs/specs/multicloud_event_federation.rst index 02de57e..433a2a8 100644 --- a/docs/specs/multicloud_event_federation.rst +++ b/docs/specs/multicloud_event_federation.rst @@ -2,25 +2,30 @@ .. http://creativecommons.org/licenses/by/4.0 .. Copyright (c) 2017-2018 VMware, Inc. -================= +============================== Event/Alert/Metrics Federation -================= +============================== -As a cloud mediation layer, Multicloud could be invoked by many projects, through this feature, Multicloud will provide -VM status/events check and also can customize the type of event which user would like to receive. There are some -kinds of VM status can be chosen: DELETE, PAUSE, POWER_OFF, REBUILD,SHUT_DOWN, SOFT_DELETE, etc.. In VMware VIO Plugin, -once any change of VM status is detected of a given type, Multicloud will catch the event and throw it to DMaaP. -Other projects can try this way of getting VM status messages in the future. Also, for other Multicloud plugin providers, -due to some issues, there will be rest apis for them to grab the VM status messages. +As a cloud mediation layer, Multicloud could be invoked by many projects, +through this feature, Multicloud will provide VM status/events check and also +can customize the type of event which user would like to receive. There are +some kinds of VM status can be chosen: DELETE, PAUSE, POWER_OFF, REBUILD +SHUT_DOWN, SOFT_DELETE, etc.. In VMware VIO Plugin, once any change of VM +status is detected of a given type, Multicloud will catch the event and throw +it to DMaaP. Other projects can try this way of getting VM status messages in +the future. Also, for other Multicloud plugin providers, due to some issues, +there will be rest apis for them to grab the VM status messages. -The APP-C won't be impacted since APP-C can still call the existing API which implemented in Amsterdam Release - and the API is an existing API +The APP-C won't be impacted since APP-C can still call the existing API which +implemented in Amsterdam Release and the API is an existing API Use Cases =================== -In VIO, one typical use case is to allow VIO users to fetch messages from DMaaP, this will provide a easier way for fetching status of -VMs, it may drastically reduce the time of close loop, for other Multicloud plugin providers, Multicloud will provide a set of +In VIO, one typical use case is to allow VIO users to fetch messages from +DMaaP, this will provide a easier way for fetching status of +VMs, it may drastically reduce the time of close loop, for other Multicloud +plugin providers, Multicloud will provide a set of rest apis to get them @@ -29,57 +34,60 @@ Proposed change In VIO plugin: -The proposed change will include two parts: * listener: to listen the events of the status change of VM, for others it -will have rest apis to get the messages * publisher: to throw the event to DMaaP.The message we try to send is something like this: -{ - "state_description": "powering-off", - "availability_zone": "nova", - "terminated_at": "", - "ephemeral_gb": 0, - "instance_type_id": 5, - "deleted_at": "", - "reservation_id": "r-pvx3l6s2", - "memory_mb": 2048, - "display_name": "VM1", - "hostname": "vm1", - "state": "active", - "progress": "", - "launched_at": "2018-03-07T05:59:46.000000", - "metadata": {}, - "node": "domain-c202.22bfc05c-da55-4ba6-ba93-08d9a067138e", - "ramdisk_id": "", - "access_ip_v6": null, - "disk_gb": 20, - "access_ip_v4": null, - "kernel_id": "", - "host": "compute01", - "user_id": "aa90efa5c84c4084b39094da952e0bd1", - "image_ref_url": "http://10.154.9.172:9292/images/207b9b7c-9450-4a95-852b-0d6d41f35d24", - "cell_name": "", - "root_gb": 20, - "tenant_id": "943ecb804cdf4103976b8a02cea12fdb", - "created_at": "2018-03-07 05:58:01+00:00", - "instance_id": "4f398943-7d39-4119-8058-74768d6dfa52", - "instance_type": "m1.small", - "vcpus": 1, - "image_meta": { - "is_copying": "1", - "container_format": "bare", - "min_ram": "0", - "vmware_disktype": "streamOptimized", - "disk_format": "vmdk", - "source_type": "url", - "image_url": "https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img", - "vmware_adaptertype": "lsiLogic", - "min_disk": "20", - "base_image_ref": "207b9b7c-9450-4a95-852b-0d6d41f35d24" - }, - "architecture": null, - "os_type": null, - "instance_flavor_id": "2" -} - -The eventual work flow looks like as follows: +The proposed change will include two parts: * listener: to listen the events +of the status change of VM, for others it +will have rest apis to get the messages * publisher: to throw the event to +DMaaP.The message we try to send is something like this:: + + { + "state_description": "powering-off", + "availability_zone": "nova", + "terminated_at": "", + "ephemeral_gb": 0, + "instance_type_id": 5, + "deleted_at": "", + "reservation_id": "r-pvx3l6s2", + "memory_mb": 2048, + "display_name": "VM1", + "hostname": "vm1", + "state": "active", + "progress": "", + "launched_at": "2018-03-07T05:59:46.000000", + "metadata": {}, + "node": "domain-c202.22bfc05c-da55-4ba6-ba93-08d9a067138e", + "ramdisk_id": "", + "access_ip_v6": null, + "disk_gb": 20, + "access_ip_v4": null, + "kernel_id": "", + "host": "compute01", + "user_id": "aa90efa5c84c4084b39094da952e0bd1", + "image_ref_url": "http://10.154.9.172:9292/images/207b9b7c-9450-4a95-852b-0d6d41f35d24", + "cell_name": "", + "root_gb": 20, + "tenant_id": "943ecb804cdf4103976b8a02cea12fdb", + "created_at": "2018-03-07 05:58:01+00:00", + "instance_id": "4f398943-7d39-4119-8058-74768d6dfa52", + "instance_type": "m1.small", + "vcpus": 1, + "image_meta": { + "is_copying": "1", + "container_format": "bare", + "min_ram": "0", + "vmware_disktype": "streamOptimized", + "disk_format": "vmdk", + "source_type": "url", + "image_url": "https://cloud-images.ubuntu.com/releases/14.04/release/ubuntu-14.04-server-cloudimg-amd64-disk1.img", + "vmware_adaptertype": "lsiLogic", + "min_disk": "20", + "base_image_ref": "207b9b7c-9450-4a95-852b-0d6d41f35d24" + }, + "architecture": null, + "os_type": null, + "instance_flavor_id": "2" + } + +The eventual work flow looks like as follows:: +------------------+ | | @@ -104,12 +112,15 @@ The eventual work flow looks like as follows: In Other Plugins: -Since the security rules of VIMs and network connectivity issues, other multicloud plugins won't be suitable for the -oslo notification listener, so we will provide rest apis for them, the specific implementation will be dicided by them +Since the security rules of VIMs and network connectivity issues, other +multicloud plugins won't be suitable for the +oslo notification listener, so we will provide rest apis for them, the +specific implementation will be dicided by them Input of /check_vim_status will be :: + { "states": array // the set of VIM status which user wants to get } @@ -117,12 +128,13 @@ Input of /check_vim_status will be Output of check_vim_status will be :: + { "state_description": string // VIM's state "launched_at": string // time of state change } -The work flow looks like as follows: +The work flow looks like as follows:: +------------------+ | | diff --git a/docs/specs/multicloud_image_service.rst b/docs/specs/multicloud_image_service.rst index 728d389..ae66c34 100644 --- a/docs/specs/multicloud_image_service.rst +++ b/docs/specs/multicloud_image_service.rst @@ -7,17 +7,22 @@ Image Service ================= -Because Multicloud provides a cloud mediation layer supporting multiple clouds. It's necessary to -introduces some function enhancements in it. Image Service could let user upload/download images +Because Multicloud provides a cloud mediation layer supporting multiple clouds. +It's necessary to +introduces some function enhancements in it. Image Service could let user +upload/download images in a convinient way just by using Multicloud. Problem Description =================== -The original functions which Multicloud possesses are to use urls to upload images, while in this -spec we intend to upload images as raw file which means it has to store a copy in Multicloud then -upload the images to the backend openstack. So this spec is to extend multicloud to support +The original functions which Multicloud possesses are to use urls to upload +images, while in this +spec we intend to upload images as raw file which means it has to store a copy +in Multicloud then +upload the images to the backend openstack. So this spec is to extend +multicloud to support download/upload images as raw file rather than a through a url @@ -30,12 +35,13 @@ One typical use case is to allow users to upload/download images by Multicloud Proposed change =================== -The proposed change mainly means introducing glance python APIs to enable multicloud support openstack -image service. This feature needs two changes: Upload API to import an image to backend OpenStack -and the image that just imported can be queried from MultiCloud. Download API to download an image +The proposed change mainly means introducing glance python APIs to enable +multicloud support openstack image service. This feature needs two changes: +Upload API to import an image to backend OpenStack and the image that just +imported can be queried from MultiCloud. Download API to download an image from backend Openstack and the image can be downloaded from MultiCloud. -The eventual work flow looks like as follows: +The eventual work flow looks like as follows::: user request to upload image | @@ -70,6 +76,7 @@ upload: Input of /{vimid}/{tenantid}/images/file will be :: + required: image file { "imageType": string, // image type: ami, ari, aki, vhd, vhdx, vmdk, raw, qcow2, vdi, iso @@ -81,6 +88,7 @@ Input of /{vimid}/{tenantid}/images/file will be Output of upload_image will be :: + "responses": { "201": { "description": "upload successfully", @@ -97,6 +105,7 @@ download: Input of /{vimid}/{tenantid}/images/file/{imageid} will be :: + { "imagepath": string, // the path of the downloaded image "properties": arrary // list of properties @@ -105,6 +114,7 @@ Input of /{vimid}/{tenantid}/images/file/{imageid} will be Output of download_image will be :: + "responses": { "200": { "description": "download successfully", diff --git a/docs/specs/multicloud_resource_capacity_check.rst b/docs/specs/multicloud_resource_capacity_check.rst index 58c2468..cc1696c 100644 --- a/docs/specs/multicloud_resource_capacity_check.rst +++ b/docs/specs/multicloud_resource_capacity_check.rst @@ -2,6 +2,7 @@ .. http://creativecommons.org/licenses/by/4.0 .. Copyright (c) 2017-2018 VMware, Inc. +======================================= MultiCloud Resources Capacity Check API ======================================= @@ -50,8 +51,8 @@ check whether have enough resources for this deployment. The ouput of Multicloud will be a list of VIMs which have enough resources. There will be two part of APIs for this requirement, an check_vim_capacity API -will be added to MultiCloud borker to return a list of VIMs, another -API /capacity_check will be added to each MultiCloud plugins, and return +will be added to MultiCloud borker to return a list of VIMs, another API +/capacity_check will be added to each MultiCloud plugins, and return true or false based on whether the VIM have enought resources. When MultiCloud broker receive a POST request on check_vim_capacity, it will request to each /capacity_check API, and return a list of VIMs with a true in response @@ -61,6 +62,7 @@ data. Input of check_vim_capacity will be :: + { "vCPU": int, // number of cores "Memory": float, // size of memory, GB @@ -71,6 +73,7 @@ Input of check_vim_capacity will be Output of check_vim_capacity will be :: + { "VIMs": array // VIMs satisfy with this resource requirement } @@ -78,6 +81,7 @@ Output of check_vim_capacity will be Input of /capacity_check will be :: + { "vCPU": int, "Memory": float, @@ -88,6 +92,7 @@ Input of /capacity_check will be Output of /capacity_check will be :: + { "result": bool } diff --git a/docs/specs/parallelism_improvement.rst b/docs/specs/parallelism_improvement.rst index 86f39d8..69f0fb8 100644 --- a/docs/specs/parallelism_improvement.rst +++ b/docs/specs/parallelism_improvement.rst @@ -31,7 +31,8 @@ Solution 1 Django is a mature framework. And it has its own way to improve parallelism. Instead of running Django's build-in webserver, Django APP can be deployed in -some dedicated web server. Django’s primary deployment platform is WSGI[django_deploy]_, +some dedicated web server. Django’s primary deployment platform is +WSGI[django_deploy]_, the Python standard for web servers and applications. .. [django_deploy] https://docs.djangoproject.com/en/2.0/howto/deployment/wsgi/ @@ -42,14 +43,15 @@ doesn't have good knowledge of it. Adding feature based on Django may be time-consuming. For example, the unit test[unit_test]_ of Multi-Cloud can't use regular python test library because of Django. The unit test has to base on Django's test framework. When we want to improve the parallelism of Multi-Cloud -services, we need to find out how Django can implement it, instead of using some -common method. +services, we need to find out how Django can implement it, instead of using +some common method. .. [unit_test] https://gerrit.onap.org/r/#/c/8909/ Besides, Django's code pattern is too much like web code. And, most famous use cases of Django are web UI. Current code of Multi-Cloud puts many logic in -files named `views.py`, but actually there is no view to expose. It is confusing. +files named `views.py`, but actually there is no view to expose. It is +confusing. The benefit of this solution is that most current code needs no change. @@ -57,8 +59,8 @@ Solution 2 ---------- Given the fact that Django has shortcomings to move on, this solution propose -to use a alternative framework. Eventlet[Eventlet]_ with Pecan[Pecan]_ will be the -idea web framework in this case, because it is lightweight, lean and widely +to use a alternative framework. Eventlet[Eventlet]_ with Pecan[Pecan]_ will be +the idea web framework in this case, because it is lightweight, lean and widely used. .. [Eventlet] http://eventlet.net/doc/modules/wsgi.html @@ -92,14 +94,15 @@ Test Command Test result ----------- -It should be noted that data may vary in different test run, but overall result is -similar as below. +It should be noted that data may vary in different test run, but overall result +is similar as below. 100 requests, concurrency level 1 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Command: `ab -n 100 -c 1 http:///api/multicloud/v0/vim_types` -Result: +Result:: + Django runserver: total takes 0.512 seconds, all requests success Django+uwsgi: totally takes 0.671 seconds, all requests success. Pecan+eventlet: totally takes 0.149 seconds, all requests success. @@ -108,7 +111,8 @@ Result: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Command: `ab -n 10000 -c 100 http:///api/multicloud/v0/vim_types` -Result: +Result:: + Django runserver: total takes 85.326 seconds, all requests success Django+uwsgi: totally takes 3.808 seconds, all requests success. Pecan+eventlet: totally takes 3.181 seconds, all requests success. @@ -117,7 +121,8 @@ Result: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Command: `ab -n 100000 -c 1000 http:///api/multicloud/v0/vim_types` -Result: +Result:: + Django runserver: Apache Benchmark quit because it reports timeout after running a random portion of all requests. Django+uwsgi: totally takes 37.316 seconds, about 32% requests fail. I see -- 2.16.6