From: Ethan Lynn Date: Mon, 29 Jan 2018 02:34:04 +0000 (+0800) Subject: Design spec of resource capacity check API X-Git-Tag: v1.1.2~83 X-Git-Url: https://gerrit.onap.org/r/gitweb?p=multicloud%2Fframework.git;a=commitdiff_plain;h=42eec842c08392caeb29fa17fe42e543760308c0 Design spec of resource capacity check API This is the design spec for resource capacity check API between OOF and MultiCloud. Change-Id: If2213b95a3ce3a807c1ce21cac13fdb57bd86caa Issue-ID: MULTICLOUD-160 Issue-ID: MULTICLOUD-156 Signed-off-by: Ethan Lynn --- diff --git a/docs/specs/multicloud_resource_capacity_check.rst b/docs/specs/multicloud_resource_capacity_check.rst new file mode 100644 index 0000000..9fddb85 --- /dev/null +++ b/docs/specs/multicloud_resource_capacity_check.rst @@ -0,0 +1,101 @@ +.. 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 Resources Capacity Check API +======================================= + +To better expose VIM capabilities and available resources capacity to external +consumer, some extensions need to be done by MultiCloud. + + +Problem Description +=================== + +Current MultiCloud didn't expose any standard API/methods to check/publish the +resources capacity for each VIM, which makes external project can not realize +the capacity information of VIM. When a VIM with shortage resources was chosen +to deploy a bunch of VNFs, it will fail eventually. Exposing these information +will could let external project to make a better decision on choosing which VIM +to deploy the VNFs. + + +Propose Change +============== + +Cloud Locations +--------------- + +Cloud latitude and longitude information is needed by OOF to determine the +distance between vGMuxInfra and vG. The latitude and longitude information +are part of A&AI complex schema[A&AI Complex Schema]_, which related to +cloud-region schema. + +There is no change needed to MultiCloud, but cloud administrator need to +input these information when register a new VIM. Currently ESR Portal don't +expose these input forms to cloud administrator, need ESR team to add related +workflow to create complex data in A&AI and create a relationship between +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 + + +Available Resource Check +------------------------ + +A new API will be used by OOF to check the available cloud resources, which +will help OOF to make a better placement decision. OOF will give a resrouces +requirement of a specific deployment and a list of VIMs which need to be +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 +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 +data. + + +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 + } + +Output of check_vim_capacity will be + +:: + { + "VIMs": array // VIMs satisfy with this resource requirement + } + +Input of /capacity_check will be + +:: + { + "vCPU": int, + "Memory": float, + "Storage": int, + } + + +Output of /capacity_check will be + +:: + { + "result": bool + } + + +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