.. http://creativecommons.org/licenses/by/4.0
.. Copyright (c) 2017-2018 VMware, Inc.
+=======================================
MultiCloud Resources Capacity Check API
=======================================
... [A&AI Complex Schema] https://gerrit.onap.org/r/gitweb?p=aai/aai-common.git;a=blob;f=aai-schema/src/main/resources/oxm/aai_oxm_v12.xml;h=e146c06ac675a1127ee11205c0ff2544e4d9a81d;hb=HEAD#l772
+Multi-Tenant Support
+--------------------
+
+Request Headers:
+>>>>>>>>>>>>>>>>
+
+To support multi-tenants over the same cloud region, all APIs defined below
+should support to accept the following optional headers which are used to
+specify a tenant other than the default one associated with the cloud region.
+
+::
+
+ "Project" : Tenant/Project ID or Name specified by API consumer, Optional
+
+
+Example 1:
+::
+
+ "Project: tenant1"
+
+Example 2:
+::
+
+ "Project: fcca3cc49d5e42caae15459e27103efc"
+
Available Resource Check
------------------------
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 <vim_id>/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
+<vim_id>/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
<vim_id>/capacity_check API, and return a list of VIMs with a true in response
data.
+Format of "vim_id" complying to the functional requirement of
+"Consistent ID of a Cloud Region"
+
+::
+ {cloud-owner}/{cloud-region-id}
+
+Format of "VIM ID" complying to the functional requirement of
+"Consistent ID of a Cloud Region"
+
+::
+
+ {
+ "cloud-owner": string, //cloud owner name/ID
+ "cloud-region-id": string, //cloud region ID
+ }
+
+ Example: array of "VIM ID" looks like:
+
+ [
+ {"cloud-owner": "owner1", "cloud-region-id": "regionid1"},
+ {"cloud-owner": "owner2", "cloud-region-id": "regionid2"}
+ ]
+
+Format of "AZinfo"
+
+::
+
+ {
+ "availability-zone-name": string, //name of available zone
+ "vCPUTotal": int, //number of total cores, optional field
+ "MemoryTotal": float, //GB,total memory, optional field
+ "StorageTotal": int, //GB total storage, optional field
+ "vCPUAvail": int, //number of available cores
+ "MemoryAvail": float, //GB, availablesize of memory
+ "StorageAvail": int, //GB, available storage
+ }
+ }
+
+Format of "VIMinfo" which extend the "VIM ID" as below
+
+::
+
+ {
+ "cloud-owner": string, //cloud owner name/ID
+ "cloud-region-id": string, //cloud region ID
+ "AZs": array, // list of AZinfo
+ }
Input of check_vim_capacity will be
::
+
{
"vCPU": int, // number of cores
"Memory": float, // size of memory, GB
"Storage": int, //GB
- "VIMs": array // VIMs OOF wish to check with
+ "VIMs": array, //list of "VIM ID" with which OOF wish to check
}
Output of check_vim_capacity will be
::
+
{
- "VIMs": array // VIMs satisfy with this resource requirement
+ "VIMs": array, //list of VIMinfo
}
Input of <vim_id>/capacity_check will be
::
+
{
"vCPU": int,
"Memory": float,
Output of <vim_id>/capacity_check will be
::
+
{
- "result": bool
+ "result": bool,
+ "AZs": array, //list of AZinfo, optional field
}
#. Work with ESR team for location inport form.
#. Add check_vim_capacity API to MultiCloud Broker.
-#. Add check_vim_capacity API to each MultiCloud Plugins.
\ No newline at end of file
+#. Add check_vim_capacity API to each MultiCloud Plugins.
+
+Tests
+=====
+
+#. Unit Tests with tox
+#. CSIT Tests, the input/ouput of broker and each plugin see API design above.