diff options
-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 |