From c918a20d5758bd7a50d4273c8c6c715fefc48fb1 Mon Sep 17 00:00:00 2001 From: Ethan Lynn Date: Mon, 5 Nov 2018 14:41:16 +0800 Subject: Organize VIO plugin documents This patch adds user guide for MultiCloud VIO plugin and re-organize current VIO documents. Change-Id: Idbe4357b760fbdbc734df19511771d7487d199d9 Issue-ID: MULTICLOUD-395 Signed-off-by: Ethan Lynn --- docs/Multicloud-Fake_Cloud-Guide.rst | 319 --------------------- docs/index.rst | 2 +- .../Multicloud-Fake_Cloud-Guide.rst | 314 ++++++++++++++++++++ .../UserGuide-MultiCloud-VMware-OpenStack.rst | 89 ++++++ 4 files changed, 404 insertions(+), 320 deletions(-) delete mode 100644 docs/Multicloud-Fake_Cloud-Guide.rst create mode 100644 docs/multicloud-plugin-vio/Multicloud-Fake_Cloud-Guide.rst create mode 100644 docs/multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack.rst (limited to 'docs') diff --git a/docs/Multicloud-Fake_Cloud-Guide.rst b/docs/Multicloud-Fake_Cloud-Guide.rst deleted file mode 100644 index 52011a5..0000000 --- a/docs/Multicloud-Fake_Cloud-Guide.rst +++ /dev/null @@ -1,319 +0,0 @@ -.. - This work is licensed under a Creative Commons Attribution 4.0 - International License. - -================================ -MultiCloud Fake_Cloud User Case -================================ - - - -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. - - -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 - - - -Register Fake Cloud to AAI -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Register vio information into AAI service with region name "vmware" and region -id "fake" - -.. code-block:: console - - $ curl -X PUT -H "X-TransactionId":"get_aai_subr" -H "X-FromAppId":"AAI" -H "Accept":"application/json" \ - -H "Content-Type:"application/json" -H "Authorization:Basic QUFJOkFBSQ==" \ - https://aai_ip:aai_port/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/vmware/fake \ - -d "{ - "cloud-owner": "vmware", - "cloud-region-id": "fake", - "cloud-type": "vmware", - "cloud-region-version": "4.0", - "identity-url": "http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3", - "cloud-zone": "cloud zone", - "complex-name": "complex name", - "esr-system-info-list": { - "esr-system-info": [ - { - "system-name": "vmware-fake-cloud", - "type": "vim", - "service-url": "http://127.0.0.1:5000/v3", - "user-name": "admin", - "password": "vmware", - "system-type": "VIM", - "ssl-insecure": true, - "cloud-domain": "default", - "default-tenant": "admin", - } - ] - } - }" - -the identity url reprent the fake cloud identity url. - - - -Test Examples -~~~~~~~~~~~~~ - -the ${fake_identiy_url}= "http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3" -the ${msb_address} = "MSB_IP:MSB_PORT" - -Get auth token --------------- - -# send request to multicloud-framework(broker) service to get token of keystone -V3 - -.. code-block:: console - - $ curl -X POST -d @test.json -H 'Content-Type:application/json' http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3/auth/tokens - -test.json content example: - -:: - - { - "auth": { - "scope": {"project": {"id": “”}}, - "identity": - { - "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] - } - } - } - - -Response: -There are a large amounts of data including service endpoint, user information, -etc. -For our testing We take nova and identity service endpoint address and auth -token which is in response header named “X-Subject-Token”. - -# you can find the endpoint url namespace is -"api/multicloiud-vio/v0/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 - -Nova endpoint:: - - 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/ - -.. code-block:: console - - $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity/projects - - -Get os Hypervisor ------------------ - -Use nova’s endpoint: http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/ - - -.. code-block:: console - - $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//os-hypervisors/detail - - -List instance of user’s project --------------------------------- - -.. code-block:: console - - $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers - - -Show instance detail --------------------- - -you need to input in url path. - -.. code-block:: console - - $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vimid/nova/tenantid/servers/ - - -Shutdown instance ------------------ - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Start instance --------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Suspend instance ----------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Resume instance ----------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Pause instance --------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Unpasue instance ----------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -Reboot instance ---------------- - -you need to input in url path - -.. code-block:: console - - $ curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action - - -list heat stacks ----------------- - -.. code-block:: console - - $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks - - -create preview stack --------------------- - -.. code-block:: console - - $ curl -X POST -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks/preview \ - -d "{ - "files": {}, - "disable_rollback": true, - "parameters": { - "flavor": "m1.heat" - }, - "stack_name": "teststack", - "template": { - "heat_template_version": "2013-05-23", - "description": "Simple template to test heat commands", - "parameters": { - "flavor": { - "default": "m1.tiny", - "type": "string" - } - }, - "resources": { - "hello_world": { - "type": "OS::Nova::Server", - "properties": { - "key_name": "heat_key", - "flavor": { - "get_param": "flavor" - }, - "image": "40be8d1a-3eb9-40de-8abd-43237517384f", - "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n" - } - } - } - }, - "timeout_mins": 60 - }" - - -create stack -------------- - -.. code-block:: console - - $ curl -X POST -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks \ - -d "{ - "files": {}, - "disable_rollback": true, - "parameters": { - "flavor": "m1.heat" - }, - "stack_name": "teststack", - "template": { - "heat_template_version": "2013-05-23", - "description": "Simple template to test heat commands", - "parameters": { - "flavor": { - "default": "m1.tiny", - "type": "string" - } - }, - "resources": { - "hello_world": { - "type": "OS::Nova::Server", - "properties": { - "key_name": "heat_key", - "flavor": { - "get_param": "flavor" - }, - "image": "40be8d1a-3eb9-40de-8abd-43237517384f", - "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n" - } - } - } - }, - "timeout_mins": 60 - }" - - -delete stack ------------- - -.. code-block:: console - - $ curl -X DELETE -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks// - diff --git a/docs/index.rst b/docs/index.rst index 8e2196f..59aa8fb 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -37,7 +37,7 @@ MultiCloud Plugins User Guides :maxdepth: 2 multicloud-plugin-windriver/UserGuide-MultiCloud-WindRiver-TitaniumCloud - Multicloud-Fake_Cloud-Guide + multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack MultiCloud-Test-Guide MultiCloud Specifications diff --git a/docs/multicloud-plugin-vio/Multicloud-Fake_Cloud-Guide.rst b/docs/multicloud-plugin-vio/Multicloud-Fake_Cloud-Guide.rst new file mode 100644 index 0000000..c0e2f03 --- /dev/null +++ b/docs/multicloud-plugin-vio/Multicloud-Fake_Cloud-Guide.rst @@ -0,0 +1,314 @@ +.. + This work is licensed under a Creative Commons Attribution 4.0 + International License. + +=================================================== +MultiCloud VMware OpenStack Simulated API User Case +=================================================== + +When there's no real VIO environment at hands, we could still use fake_cloud APIs +in VIO plugin to test ONAP functions. These set of APIs simulate the real VIO functions +to interact with ONAP components. + +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 + + + +Register Fake Cloud to AAI +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Register vio information into AAI service with region name "vmware" and region +id "fake" + +.. code-block:: console + + $ curl -X PUT -H "X-TransactionId":"get_aai_subr" -H "X-FromAppId":"AAI" -H "Accept":"application/json" \ + -H "Content-Type:"application/json" -H "Authorization:Basic QUFJOkFBSQ==" \ + https://aai_ip:aai_port/aai/v11/cloud-infrastructure/cloud-regions/cloud-region/vmware/fake \ + -d "{ + "cloud-owner": "vmware", + "cloud-region-id": "fake", + "cloud-type": "vmware", + "cloud-region-version": "4.0", + "identity-url": "http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3", + "cloud-zone": "cloud zone", + "complex-name": "complex name", + "esr-system-info-list": { + "esr-system-info": [ + { + "system-name": "vmware-fake-cloud", + "type": "vim", + "service-url": "http://127.0.0.1:5000/v3", + "user-name": "admin", + "password": "vmware", + "system-type": "VIM", + "ssl-insecure": true, + "cloud-domain": "default", + "default-tenant": "admin", + } + ] + } + }" + +the identity url reprent the fake cloud identity url. + + + +Test Examples +~~~~~~~~~~~~~ + +the ${fake_identiy_url}= "http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3" +the ${msb_address} = "MSB_IP:MSB_PORT" + +Get auth token +-------------- + +# send request to multicloud-framework(broker) service to get token of keystone +V3 + +.. code-block:: console + + $ curl -X POST -d @test.json -H 'Content-Type:application/json' http://MSB_IP:MSB_PORT/api/multicloud/v0/vmware_fake/identity/v3/auth/tokens + +test.json content example: + +:: + + { + "auth": { + "scope": {"project": {"id": “”}}, + "identity": + { + "password": {"user": {"domain": {"name": “”}, "password": “”, "name": “”}}, "methods": ["password"] + } + } + } + + +Response: +There are a large amounts of data including service endpoint, user information, +etc. +For our testing We take nova and identity service endpoint address and auth +token which is in response header named “X-Subject-Token”. + +# you can find the endpoint url namespace is +"api/multicloiud-vio/v0/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 + +Nova endpoint:: + + 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/ + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/identity/projects + + +Get os Hypervisor +----------------- + +Use nova’s endpoint: http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/ + + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//os-hypervisors/detail + + +List instance of user’s project +-------------------------------- + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers + + +Show instance detail +-------------------- + +you need to input in url path. + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vimid/nova/tenantid/servers/ + + +Shutdown instance +----------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Start instance +-------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Suspend instance +---------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Resume instance +---------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Pause instance +-------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Unpasue instance +---------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +Reboot instance +--------------- + +you need to input in url path + +.. code-block:: console + + $ curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token: -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova//servers//action + + +list heat stacks +---------------- + +.. code-block:: console + + $ curl -X GET -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks + + +create preview stack +-------------------- + +.. code-block:: console + + $ curl -X POST -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks/preview \ + -d "{ + "files": {}, + "disable_rollback": true, + "parameters": { + "flavor": "m1.heat" + }, + "stack_name": "teststack", + "template": { + "heat_template_version": "2013-05-23", + "description": "Simple template to test heat commands", + "parameters": { + "flavor": { + "default": "m1.tiny", + "type": "string" + } + }, + "resources": { + "hello_world": { + "type": "OS::Nova::Server", + "properties": { + "key_name": "heat_key", + "flavor": { + "get_param": "flavor" + }, + "image": "40be8d1a-3eb9-40de-8abd-43237517384f", + "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n" + } + } + } + }, + "timeout_mins": 60 + }" + + +create stack +------------- + +.. code-block:: console + + $ curl -X POST -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks \ + -d "{ + "files": {}, + "disable_rollback": true, + "parameters": { + "flavor": "m1.heat" + }, + "stack_name": "teststack", + "template": { + "heat_template_version": "2013-05-23", + "description": "Simple template to test heat commands", + "parameters": { + "flavor": { + "default": "m1.tiny", + "type": "string" + } + }, + "resources": { + "hello_world": { + "type": "OS::Nova::Server", + "properties": { + "key_name": "heat_key", + "flavor": { + "get_param": "flavor" + }, + "image": "40be8d1a-3eb9-40de-8abd-43237517384f", + "user_data": "#!/bin/bash -xv\necho \"hello world\" > /root/hello-world.txt\n" + } + } + } + }, + "timeout_mins": 60 + }" + + +delete stack +------------ + +.. code-block:: console + + $ curl -X DELETE -H 'X-Auth-Token:' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat//stacks// + diff --git a/docs/multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack.rst b/docs/multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack.rst new file mode 100644 index 0000000..494482d --- /dev/null +++ b/docs/multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack.rst @@ -0,0 +1,89 @@ +.. 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. + +================================================= +MultiCloud Plugin for VMware Integrated OpenStack +================================================= + + +Supported features +~~~~~~~~~~~~~~~~~~ + +Northbound APIs for SO +---------------------- + +MultiCloud VIO Plugin supports OpenStack services proxy APIs since the beginning, and later +in Casablanca release, VIO plugin supports infra_workload API for SO. Use cases like vFW/vDNS +will leverage these APIs to instantiate VNFs. + +Northbound APIs for VF-C +------------------------ + +MultiCloud VIP Plugin supports VF-C by legacy Open-O APIs, and these APIs evolved according +to the requirements of VF-C and use cases. VoLTE use case leverage these APIs to instantiate +VNFs. + +Support Placement Policies for OOF +---------------------------------- + +Since Beijing release, to help OOF to make better placement decision, MultiCloud expose a capacity +check API. + +Support OpenStack Resources Discovery +------------------------------------- + +When onboarding new VMware OpenStack through ESR UI, VIO plugin could discover current OpenStack +Resources like flavors/images/networks/hypervisors, and update them in A&AI. + +Support HPA Discovery +--------------------- + +The HPA information will be automatically discovered and registered during VIM onboarding process. + +Support Cloud Agnostic Placement Policies +----------------------------------------- + +The cloud agnostic information like Guarantee/Burstable QoS will be automatically discovered and +registered during VIM onboarding process. + +Support Auto-Healing Close Loop +------------------------------- + +Leveraging VESAgent for meter collectrion and healthy report, VIO plugin supports +the auto-healing/auto-scaling scenarios in ONAP. + +Support Events Federation +------------------------- + +Federate the events of VIM layer with ONAP message bus, it provide direct help to HA fencing and improve the +efficiency of VM recover with performance verification. + + +Supported Use Cases +~~~~~~~~~~~~~~~~~~~ + +**vFW/vDNS** + + +**vCPE** + + +**VoLTE** + + + +Cloud Agnostic Placement Policy Enablement +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Currently two types of cloud agnostic intent policies are supported by VIO plugin, Guaranteed QoS and Burstable QoS. +VIO plugin will register them when VIM onboard and OOF could make better placement decision based on these policies. + +**Enable on it on flavors** + +Discovering these kind of features are through flavor's extra-specs, when you set `quota:cpu_reservation_percent=100` +and `quota:memory_reservation_percent=100` in flavor, it will be recognized as `Guaranteed QoS` supported platform. +When you choose other percentage for CPU and memory reservation, it will be recognized as `Burstable QoS` supported platform. +Related information will be registered to A&AI. + +.. include:: Multicloud-Fake_Cloud-Guide.rst -- cgit 1.2.3-korg