summaryrefslogtreecommitdiffstats
path: root/docs/multicloud-plugin-vio
diff options
context:
space:
mode:
authorEthan Lynn <ethanlynnl@vmware.com>2018-11-05 14:41:16 +0800
committerEthan Lynn <ethanlynnl@vmware.com>2018-11-06 10:46:00 +0800
commitc918a20d5758bd7a50d4273c8c6c715fefc48fb1 (patch)
treefaaa022aa0dc9fb21e6f1837cd37934d966d4d4f /docs/multicloud-plugin-vio
parentc8d753e474dfbe61ac85fe5c9dc974c9b10080fa (diff)
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 <ethanlynnl@vmware.com>
Diffstat (limited to 'docs/multicloud-plugin-vio')
-rw-r--r--docs/multicloud-plugin-vio/Multicloud-Fake_Cloud-Guide.rst314
-rw-r--r--docs/multicloud-plugin-vio/UserGuide-MultiCloud-VMware-OpenStack.rst89
2 files changed, 403 insertions, 0 deletions
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": “<project-id>”}},
+ "identity":
+ {
+ "password": {"user": {"domain": {"name": “<doman-name>”}, "password": “<user-password>”, "name": “<user-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/<user-tenantid>
+
+
+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:<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/<user-tenantid>
+
+
+.. code-block:: console
+
+ $ curl -X GET -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/os-hypervisors/detail
+
+
+List instance of user’s project
+--------------------------------
+
+.. code-block:: console
+
+ $ curl -X GET -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers
+
+
+Show instance detail
+--------------------
+
+you need to input <server-id> in url path.
+
+.. code-block:: console
+
+ $ curl -X GET -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vimid/nova/tenantid/servers/<server-id>
+
+
+Shutdown instance
+-----------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"os-stop":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Start instance
+--------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"os-start":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Suspend instance
+----------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"suspend":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Resume instance
+----------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"resume":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Pause instance
+--------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"pause":null}' -H 'X-Auth-Token:<token>' -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Unpasue instance
+----------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"unpause":null}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+Reboot instance
+---------------
+
+you need to input <server-id> in url path
+
+.. code-block:: console
+
+ $ curl -X POST -d '{"reboot":{"type":"HARD"}}' -H 'X-Auth-Token:<token> -H 'Content-Type:application/json' http://$msb_address/api/multicloud-vio/v0/vmware_fake/nova/<tenantid>/servers/<server-id>/action
+
+
+list heat stacks
+----------------
+
+.. code-block:: console
+
+ $ curl -X GET -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat/<tenantid>/stacks
+
+
+create preview stack
+--------------------
+
+.. code-block:: console
+
+ $ curl -X POST -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat/<tenantid>/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\" &gt; /root/hello-world.txt\n"
+ }
+ }
+ }
+ },
+ "timeout_mins": 60
+ }"
+
+
+create stack
+-------------
+
+.. code-block:: console
+
+ $ curl -X POST -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat/<tenantid>/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\" &gt; /root/hello-world.txt\n"
+ }
+ }
+ }
+ },
+ "timeout_mins": 60
+ }"
+
+
+delete stack
+------------
+
+.. code-block:: console
+
+ $ curl -X DELETE -H 'X-Auth-Token:<token>' http://$msb_address/api/multicloud-vio/v0/vmware_fake/heat/<tenantid>/stacks/<stack_name>/<stack_id>
+
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