summaryrefslogtreecommitdiffstats
path: root/vio
diff options
context:
space:
mode:
authorHong Hui Xiao <honghui_xiao@yeah.net>2018-03-14 09:41:08 +0800
committerHong Hui Xiao <honghui_xiao@yeah.net>2018-03-21 09:35:28 +0800
commitd89cfaff7fb02bf974feadc04218c6d7f9c5da06 (patch)
tree0a9602bea0e92e72f95e72cd7fe1689fd8e84c95 /vio
parente261d61fc75a7d9033092b536a9aeb5498d7b020 (diff)
Add yaml file for host resource
Add the first yaml file and yaml parse code. Change-Id: I27647b14a49472296ccdd3c88f7f6f07f3c916f5 Issue-ID: MULTICLOUD-152 Signed-off-by: Hong Hui Xiao <honghui_xiao@yeah.net>
Diffstat (limited to 'vio')
-rw-r--r--vio/vio/api_v2/api_definition/__init__.py0
-rw-r--r--vio/vio/api_v2/api_definition/hosts.yaml53
-rw-r--r--vio/vio/api_v2/api_definition/utils.py31
3 files changed, 84 insertions, 0 deletions
diff --git a/vio/vio/api_v2/api_definition/__init__.py b/vio/vio/api_v2/api_definition/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/vio/vio/api_v2/api_definition/__init__.py
diff --git a/vio/vio/api_v2/api_definition/hosts.yaml b/vio/vio/api_v2/api_definition/hosts.yaml
new file mode 100644
index 0000000..e755c77
--- /dev/null
+++ b/vio/vio/api_v2/api_definition/hosts.yaml
@@ -0,0 +1,53 @@
+---
+ info:
+ version: "1.0.0"
+ title: "Multi Cloud Host"
+ description: "Definition of Host API"
+ termsOfService: "http://swagger.io/terms/"
+ schemes:
+ - "http"
+ produces:
+ - "application/json"
+ paths:
+ /{vimid}/{tenantid}/hosts/{hostid}:
+ parameters:
+ - type: string
+ name: vimid
+ - type: string
+ format: uuid
+ name: tenantid
+ - type: string
+ name: hostid
+ in: path
+ required: true
+ get:
+ produces:
+ - "application/json"
+ responses:
+ "200":
+ schema:
+ $ref: "#/definitions/host"
+ vim_path: "/compute/os-hypervisors"
+ definitions:
+ host:
+ properties:
+ name:
+ type: string
+ required: true
+ source: hypervisor.hypervisor_hostname
+ cpu:
+ type: integer
+ minimal: 1
+ source: hypervisor.vcpus
+ action: copy
+ required: true
+ disk_gb:
+ type: integer
+ minimal: 0
+ source: hypervisor.local_gb
+ required: true
+ memory_mb:
+ type: integer
+ minimal: 0
+ source: hypervisor.memory_mb
+ required: true
diff --git a/vio/vio/api_v2/api_definition/utils.py b/vio/vio/api_v2/api_definition/utils.py
new file mode 100644
index 0000000..faf1fb9
--- /dev/null
+++ b/vio/vio/api_v2/api_definition/utils.py
@@ -0,0 +1,31 @@
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import pkg_resources
+import yaml
+
+
+def get_definition_list():
+ """ Get API Definition from YAML files. """
+
+ api_def = []
+ definition_dir = __name__[:__name__.rfind(".")]
+ for f in pkg_resources.resource_listdir(definition_dir, '.'):
+ if not f.endswith(".yaml"):
+ continue
+
+ with pkg_resources.resource_stream(definition_dir, f) as fd:
+ # TODO(xiaohhui): Should add exception handler to inform user of
+ # potential error.
+ api_def.append(yaml.safe_load(fd))
+
+ return api_def