diff options
author | Hong Hui Xiao <honghui_xiao@yeah.net> | 2018-03-14 09:41:08 +0800 |
---|---|---|
committer | Hong Hui Xiao <honghui_xiao@yeah.net> | 2018-03-21 09:35:28 +0800 |
commit | d89cfaff7fb02bf974feadc04218c6d7f9c5da06 (patch) | |
tree | 0a9602bea0e92e72f95e72cd7fe1689fd8e84c95 /vio | |
parent | e261d61fc75a7d9033092b536a9aeb5498d7b020 (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__.py | 0 | ||||
-rw-r--r-- | vio/vio/api_v2/api_definition/hosts.yaml | 53 | ||||
-rw-r--r-- | vio/vio/api_v2/api_definition/utils.py | 31 |
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 |