update link to upper-constraints.txt
[multicloud/framework.git] / docs / specs / multicloud_resource_capacity_check.rst
index 9fddb85..f849d32 100644 (file)
@@ -2,6 +2,7 @@
 .. http://creativecommons.org/licenses/by/4.0
 .. Copyright (c) 2017-2018 VMware, Inc.
 
+=======================================
 MultiCloud Resources Capacity Check API
 =======================================
 
@@ -40,6 +41,31 @@ location information and cloud-region record.
 ... [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
 ------------------------
 
@@ -50,34 +76,84 @@ 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 <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,
@@ -88,8 +164,10 @@ Input of <vim_id>/capacity_check will be
 Output of <vim_id>/capacity_check will be
 
 ::
+
   {
-    "result": bool
+    "result": bool,
+    "AZs": array, //list of AZinfo, optional field
   }
 
 
@@ -98,4 +176,10 @@ Work Items
 
 #. 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.