diff options
Diffstat (limited to 'tempest_lib/api_schema/response/compute')
33 files changed, 0 insertions, 3059 deletions
diff --git a/tempest_lib/api_schema/response/compute/__init__.py b/tempest_lib/api_schema/response/compute/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/tempest_lib/api_schema/response/compute/__init__.py +++ /dev/null diff --git a/tempest_lib/api_schema/response/compute/v2_1/__init__.py b/tempest_lib/api_schema/response/compute/v2_1/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/__init__.py +++ /dev/null diff --git a/tempest_lib/api_schema/response/compute/v2_1/agents.py b/tempest_lib/api_schema/response/compute/v2_1/agents.py deleted file mode 100644 index 6f712b4..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/agents.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -common_agent_info = { - 'type': 'object', - 'properties': { - 'agent_id': {'type': ['integer', 'string']}, - 'hypervisor': {'type': 'string'}, - 'os': {'type': 'string'}, - 'architecture': {'type': 'string'}, - 'version': {'type': 'string'}, - 'url': {'type': 'string', 'format': 'uri'}, - 'md5hash': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['agent_id', 'hypervisor', 'os', 'architecture', - 'version', 'url', 'md5hash'] -} - -list_agents = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'agents': { - 'type': 'array', - 'items': common_agent_info - } - }, - 'additionalProperties': False, - 'required': ['agents'] - } -} - -create_agent = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'agent': common_agent_info - }, - 'additionalProperties': False, - 'required': ['agent'] - } -} - -update_agent = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'agent': { - 'type': 'object', - 'properties': { - 'agent_id': {'type': ['integer', 'string']}, - 'version': {'type': 'string'}, - 'url': {'type': 'string', 'format': 'uri'}, - 'md5hash': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['agent_id', 'version', 'url', 'md5hash'] - } - }, - 'additionalProperties': False, - 'required': ['agent'] - } -} - -delete_agent = { - 'status_code': [200] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/aggregates.py b/tempest_lib/api_schema/response/compute/v2_1/aggregates.py deleted file mode 100644 index 1a9fe41..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/aggregates.py +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -# create-aggregate api doesn't have 'hosts' and 'metadata' attributes. -aggregate_for_create = { - 'type': 'object', - 'properties': { - 'availability_zone': {'type': ['string', 'null']}, - 'created_at': {'type': 'string'}, - 'deleted': {'type': 'boolean'}, - 'deleted_at': {'type': ['string', 'null']}, - 'id': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'updated_at': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['availability_zone', 'created_at', 'deleted', - 'deleted_at', 'id', 'name', 'updated_at'], -} - -common_aggregate_info = copy.deepcopy(aggregate_for_create) -common_aggregate_info['properties'].update({ - 'hosts': {'type': 'array'}, - 'metadata': {'type': 'object'} -}) -common_aggregate_info['required'].extend(['hosts', 'metadata']) - -list_aggregates = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'aggregates': { - 'type': 'array', - 'items': common_aggregate_info - } - }, - 'additionalProperties': False, - 'required': ['aggregates'], - } -} - -get_aggregate = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'aggregate': common_aggregate_info - }, - 'additionalProperties': False, - 'required': ['aggregate'], - } -} - -aggregate_set_metadata = get_aggregate -# The 'updated_at' attribute of 'update_aggregate' can't be null. -update_aggregate = copy.deepcopy(get_aggregate) -update_aggregate['response_body']['properties']['aggregate']['properties'][ - 'updated_at'] = { - 'type': 'string' - } - -delete_aggregate = { - 'status_code': [200] -} - -create_aggregate = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'aggregate': aggregate_for_create - }, - 'additionalProperties': False, - 'required': ['aggregate'], - } -} - -aggregate_add_remove_host = get_aggregate diff --git a/tempest_lib/api_schema/response/compute/v2_1/availability_zone.py b/tempest_lib/api_schema/response/compute/v2_1/availability_zone.py deleted file mode 100644 index d9aebce..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/availability_zone.py +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - - -base = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'availabilityZoneInfo': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'zoneName': {'type': 'string'}, - 'zoneState': { - 'type': 'object', - 'properties': { - 'available': {'type': 'boolean'} - }, - 'additionalProperties': False, - 'required': ['available'] - }, - # NOTE: Here is the difference between detail and - # non-detail. - 'hosts': {'type': 'null'} - }, - 'additionalProperties': False, - 'required': ['zoneName', 'zoneState', 'hosts'] - } - } - }, - 'additionalProperties': False, - 'required': ['availabilityZoneInfo'] - } -} - -detail = { - 'type': 'object', - 'patternProperties': { - # NOTE: Here is for a hostname - '^[a-zA-Z0-9-_.]+$': { - 'type': 'object', - 'patternProperties': { - # NOTE: Here is for a service name - '^.*$': { - 'type': 'object', - 'properties': { - 'available': {'type': 'boolean'}, - 'active': {'type': 'boolean'}, - 'updated_at': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['available', 'active', 'updated_at'] - } - } - } - } -} - -list_availability_zone_list = copy.deepcopy(base) - -list_availability_zone_list_detail = copy.deepcopy(base) -list_availability_zone_list_detail['response_body']['properties'][ - 'availabilityZoneInfo']['items']['properties']['hosts'] = detail diff --git a/tempest_lib/api_schema/response/compute/v2_1/baremetal_nodes.py b/tempest_lib/api_schema/response/compute/v2_1/baremetal_nodes.py deleted file mode 100644 index d1ee877..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/baremetal_nodes.py +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2015 NEC Corporation. All rights reserved. -# -# 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 copy - -node = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'interfaces': {'type': 'array'}, - 'host': {'type': 'string'}, - 'task_state': {'type': ['string', 'null']}, - 'cpus': {'type': ['integer', 'string']}, - 'memory_mb': {'type': ['integer', 'string']}, - 'disk_gb': {'type': ['integer', 'string']}, - }, - 'additionalProperties': False, - 'required': ['id', 'interfaces', 'host', 'task_state', 'cpus', 'memory_mb', - 'disk_gb'] -} - -list_baremetal_nodes = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'nodes': { - 'type': 'array', - 'items': node - } - }, - 'additionalProperties': False, - 'required': ['nodes'] - } -} - -baremetal_node = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'node': node - }, - 'additionalProperties': False, - 'required': ['node'] - } -} -get_baremetal_node = copy.deepcopy(baremetal_node) -get_baremetal_node['response_body']['properties']['node'][ - 'properties'].update({'instance_uuid': {'type': ['string', 'null']}}) -get_baremetal_node['response_body']['properties']['node'][ - 'required'].append('instance_uuid') diff --git a/tempest_lib/api_schema/response/compute/v2_1/certificates.py b/tempest_lib/api_schema/response/compute/v2_1/certificates.py deleted file mode 100644 index 4e7cbe4..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/certificates.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -_common_schema = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'certificate': { - 'type': 'object', - 'properties': { - 'data': {'type': 'string'}, - 'private_key': {'type': 'string'}, - }, - 'additionalProperties': False, - 'required': ['data', 'private_key'] - } - }, - 'additionalProperties': False, - 'required': ['certificate'] - } -} - -get_certificate = copy.deepcopy(_common_schema) -get_certificate['response_body']['properties']['certificate'][ - 'properties']['private_key'].update({'type': 'null'}) - -create_certificate = copy.deepcopy(_common_schema) diff --git a/tempest_lib/api_schema/response/compute/v2_1/extensions.py b/tempest_lib/api_schema/response/compute/v2_1/extensions.py deleted file mode 100644 index a6a455c..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/extensions.py +++ /dev/null @@ -1,47 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -list_extensions = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'extensions': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'updated': { - 'type': 'string', - 'format': 'data-time' - }, - 'name': {'type': 'string'}, - 'links': {'type': 'array'}, - 'namespace': { - 'type': 'string', - 'format': 'uri' - }, - 'alias': {'type': 'string'}, - 'description': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['updated', 'name', 'links', 'namespace', - 'alias', 'description'] - } - } - }, - 'additionalProperties': False, - 'required': ['extensions'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py b/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py deleted file mode 100644 index 8119b49..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/fixed_ips.py +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -get_fixed_ip = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'fixed_ip': { - 'type': 'object', - 'properties': { - 'address': parameter_types.ip_address, - 'cidr': {'type': 'string'}, - 'host': {'type': 'string'}, - 'hostname': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['address', 'cidr', 'host', 'hostname'] - } - }, - 'additionalProperties': False, - 'required': ['fixed_ip'] - } -} - -reserve_unreserve_fixed_ip = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/flavors.py b/tempest_lib/api_schema/response/compute/v2_1/flavors.py deleted file mode 100644 index 1d679d1..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/flavors.py +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -list_flavors = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'flavors': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': {'type': 'string'}, - 'links': parameter_types.links, - 'id': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['name', 'links', 'id'] - } - }, - 'flavors_links': parameter_types.links - }, - 'additionalProperties': False, - # NOTE(gmann): flavors_links attribute is not necessary - # to be present always So it is not 'required'. - 'required': ['flavors'] - } -} - -common_flavor_info = { - 'type': 'object', - 'properties': { - 'name': {'type': 'string'}, - 'links': parameter_types.links, - 'ram': {'type': 'integer'}, - 'vcpus': {'type': 'integer'}, - # 'swap' attributes comes as integer value but if it is empty - # it comes as "". So defining type of as string and integer. - 'swap': {'type': ['integer', 'string']}, - 'disk': {'type': 'integer'}, - 'id': {'type': 'string'}, - 'OS-FLV-DISABLED:disabled': {'type': 'boolean'}, - 'os-flavor-access:is_public': {'type': 'boolean'}, - 'rxtx_factor': {'type': 'number'}, - 'OS-FLV-EXT-DATA:ephemeral': {'type': 'integer'} - }, - 'additionalProperties': False, - # 'OS-FLV-DISABLED', 'os-flavor-access', 'rxtx_factor' and - # 'OS-FLV-EXT-DATA' are API extensions. So they are not 'required'. - 'required': ['name', 'links', 'ram', 'vcpus', 'swap', 'disk', 'id'] -} - -list_flavors_details = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'flavors': { - 'type': 'array', - 'items': common_flavor_info - }, - # NOTE(gmann): flavors_links attribute is not necessary - # to be present always So it is not 'required'. - 'flavors_links': parameter_types.links - }, - 'additionalProperties': False, - 'required': ['flavors'] - } -} - -unset_flavor_extra_specs = { - 'status_code': [200] -} - -create_get_flavor_details = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'flavor': common_flavor_info - }, - 'additionalProperties': False, - 'required': ['flavor'] - } -} - -delete_flavor = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/flavors_access.py b/tempest_lib/api_schema/response/compute/v2_1/flavors_access.py deleted file mode 100644 index a4d6af0..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/flavors_access.py +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -add_remove_list_flavor_access = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'flavor_access': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'flavor_id': {'type': 'string'}, - 'tenant_id': {'type': 'string'}, - }, - 'additionalProperties': False, - 'required': ['flavor_id', 'tenant_id'], - } - } - }, - 'additionalProperties': False, - 'required': ['flavor_access'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/flavors_extra_specs.py b/tempest_lib/api_schema/response/compute/v2_1/flavors_extra_specs.py deleted file mode 100644 index a438d48..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/flavors_extra_specs.py +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -set_get_flavor_extra_specs = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'extra_specs': { - 'type': 'object', - 'patternProperties': { - '^[a-zA-Z0-9_\-\. :]+$': {'type': 'string'} - } - } - }, - 'additionalProperties': False, - 'required': ['extra_specs'] - } -} - -set_get_flavor_extra_specs_key = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'patternProperties': { - '^[a-zA-Z0-9_\-\. :]+$': {'type': 'string'} - } - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/floating_ips.py b/tempest_lib/api_schema/response/compute/v2_1/floating_ips.py deleted file mode 100644 index f24fb50..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/floating_ips.py +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -common_floating_ip_info = { - 'type': 'object', - 'properties': { - # NOTE: Now the type of 'id' is integer, but - # here allows 'string' also because we will be - # able to change it to 'uuid' in the future. - 'id': {'type': ['integer', 'string']}, - 'pool': {'type': ['string', 'null']}, - 'instance_id': {'type': ['string', 'null']}, - 'ip': parameter_types.ip_address, - 'fixed_ip': parameter_types.ip_address - }, - 'additionalProperties': False, - 'required': ['id', 'pool', 'instance_id', - 'ip', 'fixed_ip'], - -} -list_floating_ips = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ips': { - 'type': 'array', - 'items': common_floating_ip_info - }, - }, - 'additionalProperties': False, - 'required': ['floating_ips'], - } -} - -create_get_floating_ip = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ip': common_floating_ip_info - }, - 'additionalProperties': False, - 'required': ['floating_ip'], - } -} - -list_floating_ip_pools = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ip_pools': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'name': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['name'], - } - } - }, - 'additionalProperties': False, - 'required': ['floating_ip_pools'], - } -} - -add_remove_floating_ip = { - 'status_code': [202] -} - -create_floating_ips_bulk = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ips_bulk_create': { - 'type': 'object', - 'properties': { - 'interface': {'type': ['string', 'null']}, - 'ip_range': {'type': 'string'}, - 'pool': {'type': ['string', 'null']}, - }, - 'additionalProperties': False, - 'required': ['interface', 'ip_range', 'pool'], - } - }, - 'additionalProperties': False, - 'required': ['floating_ips_bulk_create'], - } -} - -delete_floating_ips_bulk = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ips_bulk_delete': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['floating_ips_bulk_delete'], - } -} - -list_floating_ips_bulk = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'floating_ip_info': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'address': parameter_types.ip_address, - 'instance_uuid': {'type': ['string', 'null']}, - 'interface': {'type': ['string', 'null']}, - 'pool': {'type': ['string', 'null']}, - 'project_id': {'type': ['string', 'null']}, - 'fixed_ip': parameter_types.ip_address - }, - 'additionalProperties': False, - # NOTE: fixed_ip is introduced after JUNO release, - # So it is not defined as 'required'. - 'required': ['address', 'instance_uuid', 'interface', - 'pool', 'project_id'], - } - } - }, - 'additionalProperties': False, - 'required': ['floating_ip_info'], - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/hosts.py b/tempest_lib/api_schema/response/compute/v2_1/hosts.py deleted file mode 100644 index ae70ff1..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/hosts.py +++ /dev/null @@ -1,116 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - - -list_hosts = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hosts': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'host_name': {'type': 'string'}, - 'service': {'type': 'string'}, - 'zone': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['host_name', 'service', 'zone'] - } - } - }, - 'additionalProperties': False, - 'required': ['hosts'] - } -} - -get_host_detail = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'host': { - 'type': 'array', - 'item': { - 'type': 'object', - 'properties': { - 'resource': { - 'type': 'object', - 'properties': { - 'cpu': {'type': 'integer'}, - 'disk_gb': {'type': 'integer'}, - 'host': {'type': 'string'}, - 'memory_mb': {'type': 'integer'}, - 'project': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['cpu', 'disk_gb', 'host', - 'memory_mb', 'project'] - } - }, - 'additionalProperties': False, - 'required': ['resource'] - } - } - }, - 'additionalProperties': False, - 'required': ['host'] - } -} - -startup_host = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'host': {'type': 'string'}, - 'power_action': {'enum': ['startup']} - }, - 'additionalProperties': False, - 'required': ['host', 'power_action'] - } -} - -# The 'power_action' attribute of 'shutdown_host' API is 'shutdown' -shutdown_host = copy.deepcopy(startup_host) - -shutdown_host['response_body']['properties']['power_action'] = { - 'enum': ['shutdown'] -} - -# The 'power_action' attribute of 'reboot_host' API is 'reboot' -reboot_host = copy.deepcopy(startup_host) - -reboot_host['response_body']['properties']['power_action'] = { - 'enum': ['reboot'] -} - -update_host = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'host': {'type': 'string'}, - 'maintenance_mode': {'enum': ['on_maintenance', - 'off_maintenance']}, - 'status': {'enum': ['enabled', 'disabled']} - }, - 'additionalProperties': False, - 'required': ['host', 'maintenance_mode', 'status'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/hypervisors.py b/tempest_lib/api_schema/response/compute/v2_1/hypervisors.py deleted file mode 100644 index 32697db..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/hypervisors.py +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -get_hypervisor_statistics = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hypervisor_statistics': { - 'type': 'object', - 'properties': { - 'count': {'type': 'integer'}, - 'current_workload': {'type': 'integer'}, - 'disk_available_least': {'type': ['integer', 'null']}, - 'free_disk_gb': {'type': 'integer'}, - 'free_ram_mb': {'type': 'integer'}, - 'local_gb': {'type': 'integer'}, - 'local_gb_used': {'type': 'integer'}, - 'memory_mb': {'type': 'integer'}, - 'memory_mb_used': {'type': 'integer'}, - 'running_vms': {'type': 'integer'}, - 'vcpus': {'type': 'integer'}, - 'vcpus_used': {'type': 'integer'} - }, - 'additionalProperties': False, - 'required': ['count', 'current_workload', - 'disk_available_least', 'free_disk_gb', - 'free_ram_mb', 'local_gb', 'local_gb_used', - 'memory_mb', 'memory_mb_used', 'running_vms', - 'vcpus', 'vcpus_used'] - } - }, - 'additionalProperties': False, - 'required': ['hypervisor_statistics'] - } -} - - -hypervisor_detail = { - 'type': 'object', - 'properties': { - 'status': {'type': 'string'}, - 'state': {'type': 'string'}, - 'cpu_info': {'type': 'string'}, - 'current_workload': {'type': 'integer'}, - 'disk_available_least': {'type': ['integer', 'null']}, - 'host_ip': parameter_types.ip_address, - 'free_disk_gb': {'type': 'integer'}, - 'free_ram_mb': {'type': 'integer'}, - 'hypervisor_hostname': {'type': 'string'}, - 'hypervisor_type': {'type': 'string'}, - 'hypervisor_version': {'type': 'integer'}, - 'id': {'type': ['integer', 'string']}, - 'local_gb': {'type': 'integer'}, - 'local_gb_used': {'type': 'integer'}, - 'memory_mb': {'type': 'integer'}, - 'memory_mb_used': {'type': 'integer'}, - 'running_vms': {'type': 'integer'}, - 'service': { - 'type': 'object', - 'properties': { - 'host': {'type': 'string'}, - 'id': {'type': ['integer', 'string']}, - 'disabled_reason': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['host', 'id'] - }, - 'vcpus': {'type': 'integer'}, - 'vcpus_used': {'type': 'integer'} - }, - 'additionalProperties': False, - # NOTE: When loading os-hypervisor-status extension, - # a response contains status and state. So these params - # should not be required. - 'required': ['cpu_info', 'current_workload', - 'disk_available_least', 'host_ip', - 'free_disk_gb', 'free_ram_mb', - 'hypervisor_hostname', 'hypervisor_type', - 'hypervisor_version', 'id', 'local_gb', - 'local_gb_used', 'memory_mb', 'memory_mb_used', - 'running_vms', 'service', 'vcpus', 'vcpus_used'] -} - -list_hypervisors_detail = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hypervisors': { - 'type': 'array', - 'items': hypervisor_detail - } - }, - 'additionalProperties': False, - 'required': ['hypervisors'] - } -} - -get_hypervisor = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hypervisor': hypervisor_detail - }, - 'additionalProperties': False, - 'required': ['hypervisor'] - } -} - -list_search_hypervisors = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hypervisors': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'status': {'type': 'string'}, - 'state': {'type': 'string'}, - 'id': {'type': ['integer', 'string']}, - 'hypervisor_hostname': {'type': 'string'} - }, - 'additionalProperties': False, - # NOTE: When loading os-hypervisor-status extension, - # a response contains status and state. So these params - # should not be required. - 'required': ['id', 'hypervisor_hostname'] - } - } - }, - 'additionalProperties': False, - 'required': ['hypervisors'] - } -} - -get_hypervisor_uptime = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'hypervisor': { - 'type': 'object', - 'properties': { - 'status': {'type': 'string'}, - 'state': {'type': 'string'}, - 'id': {'type': ['integer', 'string']}, - 'hypervisor_hostname': {'type': 'string'}, - 'uptime': {'type': 'string'} - }, - 'additionalProperties': False, - # NOTE: When loading os-hypervisor-status extension, - # a response contains status and state. So these params - # should not be required. - 'required': ['id', 'hypervisor_hostname', 'uptime'] - } - }, - 'additionalProperties': False, - 'required': ['hypervisor'] - } -} - -get_hypervisors_servers = copy.deepcopy(list_search_hypervisors) -get_hypervisors_servers['response_body']['properties']['hypervisors']['items'][ - 'properties']['servers'] = { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'uuid': {'type': 'string'}, - 'name': {'type': 'string'} - }, - 'additionalProperties': False, - } - } -# In V2 API, if there is no servers (VM) on the Hypervisor host then 'servers' -# attribute will not be present in response body So it is not 'required'. diff --git a/tempest_lib/api_schema/response/compute/v2_1/images.py b/tempest_lib/api_schema/response/compute/v2_1/images.py deleted file mode 100644 index 41aceaf..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/images.py +++ /dev/null @@ -1,154 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -image_links = copy.deepcopy(parameter_types.links) -image_links['items']['properties'].update({'type': {'type': 'string'}}) - -common_image_schema = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'updated': {'type': 'string'}, - 'links': image_links, - 'name': {'type': ['string', 'null']}, - 'created': {'type': 'string'}, - 'minDisk': {'type': 'integer'}, - 'minRam': {'type': 'integer'}, - 'progress': {'type': 'integer'}, - 'metadata': {'type': 'object'}, - 'server': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': parameter_types.links - }, - 'additionalProperties': False, - 'required': ['id', 'links'] - }, - 'OS-EXT-IMG-SIZE:size': {'type': ['integer', 'null']}, - 'OS-DCF:diskConfig': {'type': 'string'} - }, - 'additionalProperties': False, - # 'server' attributes only comes in response body if image is - # associated with any server. 'OS-EXT-IMG-SIZE:size' & 'OS-DCF:diskConfig' - # are API extension, So those are not defined as 'required'. - 'required': ['id', 'status', 'updated', 'links', 'name', - 'created', 'minDisk', 'minRam', 'progress', - 'metadata'] -} - -get_image = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'image': common_image_schema - }, - 'additionalProperties': False, - 'required': ['image'] - } -} - -list_images = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'images': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': image_links, - 'name': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['id', 'links', 'name'] - } - }, - 'images_links': parameter_types.links - }, - 'additionalProperties': False, - # NOTE(gmann): images_links attribute is not necessary to be - # present always So it is not 'required'. - 'required': ['images'] - } -} - -create_image = { - 'status_code': [202], - 'response_header': { - 'type': 'object', - 'properties': parameter_types.response_header - } -} -create_image['response_header']['properties'].update( - {'location': { - 'type': 'string', - 'format': 'uri'} - } -) -create_image['response_header']['required'] = ['location'] - -delete = { - 'status_code': [204] -} - -image_metadata = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'metadata': {'type': 'object'} - }, - 'additionalProperties': False, - 'required': ['metadata'] - } -} - -image_meta_item = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'meta': {'type': 'object'} - }, - 'additionalProperties': False, - 'required': ['meta'] - } -} - -list_images_details = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'images': { - 'type': 'array', - 'items': common_image_schema - }, - 'images_links': parameter_types.links - }, - 'additionalProperties': False, - # NOTE(gmann): images_links attribute is not necessary to be - # present always So it is not 'required'. - 'required': ['images'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py b/tempest_lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py deleted file mode 100644 index c6c4deb..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/instance_usage_audit_logs.py +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -common_instance_usage_audit_log = { - 'type': 'object', - 'properties': { - 'hosts_not_run': { - 'type': 'array', - 'items': {'type': 'string'} - }, - 'log': {'type': 'object'}, - 'num_hosts': {'type': 'integer'}, - 'num_hosts_done': {'type': 'integer'}, - 'num_hosts_not_run': {'type': 'integer'}, - 'num_hosts_running': {'type': 'integer'}, - 'overall_status': {'type': 'string'}, - 'period_beginning': {'type': 'string'}, - 'period_ending': {'type': 'string'}, - 'total_errors': {'type': 'integer'}, - 'total_instances': {'type': 'integer'} - }, - 'additionalProperties': False, - 'required': ['hosts_not_run', 'log', 'num_hosts', 'num_hosts_done', - 'num_hosts_not_run', 'num_hosts_running', 'overall_status', - 'period_beginning', 'period_ending', 'total_errors', - 'total_instances'] -} - -get_instance_usage_audit_log = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'instance_usage_audit_log': common_instance_usage_audit_log - }, - 'additionalProperties': False, - 'required': ['instance_usage_audit_log'] - } -} - -list_instance_usage_audit_log = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'instance_usage_audit_logs': common_instance_usage_audit_log - }, - 'additionalProperties': False, - 'required': ['instance_usage_audit_logs'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/interfaces.py b/tempest_lib/api_schema/response/compute/v2_1/interfaces.py deleted file mode 100644 index 7d3750f..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/interfaces.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -interface_common_info = { - 'type': 'object', - 'properties': { - 'port_state': {'type': 'string'}, - 'fixed_ips': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'subnet_id': { - 'type': 'string', - 'format': 'uuid' - }, - 'ip_address': parameter_types.ip_address - }, - 'additionalProperties': False, - 'required': ['subnet_id', 'ip_address'] - } - }, - 'port_id': {'type': 'string', 'format': 'uuid'}, - 'net_id': {'type': 'string', 'format': 'uuid'}, - 'mac_addr': parameter_types.mac_address - }, - 'additionalProperties': False, - 'required': ['port_state', 'fixed_ips', 'port_id', 'net_id', 'mac_addr'] -} - -get_create_interfaces = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'interfaceAttachment': interface_common_info - }, - 'additionalProperties': False, - 'required': ['interfaceAttachment'] - } -} - -list_interfaces = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'interfaceAttachments': { - 'type': 'array', - 'items': interface_common_info - } - }, - 'additionalProperties': False, - 'required': ['interfaceAttachments'] - } -} - -delete_interface = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/keypairs.py b/tempest_lib/api_schema/response/compute/v2_1/keypairs.py deleted file mode 100644 index 9c04c79..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/keypairs.py +++ /dev/null @@ -1,107 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -get_keypair = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'keypair': { - 'type': 'object', - 'properties': { - 'public_key': {'type': 'string'}, - 'name': {'type': 'string'}, - 'fingerprint': {'type': 'string'}, - 'user_id': {'type': 'string'}, - 'deleted': {'type': 'boolean'}, - 'created_at': {'type': 'string'}, - 'updated_at': {'type': ['string', 'null']}, - 'deleted_at': {'type': ['string', 'null']}, - 'id': {'type': 'integer'} - - }, - 'additionalProperties': False, - # When we run the get keypair API, response body includes - # all the above mentioned attributes. - # But in Nova API sample file, response body includes only - # 'public_key', 'name' & 'fingerprint'. So only 'public_key', - # 'name' & 'fingerprint' are defined as 'required'. - 'required': ['public_key', 'name', 'fingerprint'] - } - }, - 'additionalProperties': False, - 'required': ['keypair'] - } -} - -create_keypair = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'keypair': { - 'type': 'object', - 'properties': { - 'fingerprint': {'type': 'string'}, - 'name': {'type': 'string'}, - 'public_key': {'type': 'string'}, - 'user_id': {'type': 'string'}, - 'private_key': {'type': 'string'} - }, - 'additionalProperties': False, - # When create keypair API is being called with 'Public key' - # (Importing keypair) then, response body does not contain - # 'private_key' So it is not defined as 'required' - 'required': ['fingerprint', 'name', 'public_key', 'user_id'] - } - }, - 'additionalProperties': False, - 'required': ['keypair'] - } -} - -delete_keypair = { - 'status_code': [202], -} - -list_keypairs = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'keypairs': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'keypair': { - 'type': 'object', - 'properties': { - 'public_key': {'type': 'string'}, - 'name': {'type': 'string'}, - 'fingerprint': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['public_key', 'name', 'fingerprint'] - } - }, - 'additionalProperties': False, - 'required': ['keypair'] - } - } - }, - 'additionalProperties': False, - 'required': ['keypairs'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/limits.py b/tempest_lib/api_schema/response/compute/v2_1/limits.py deleted file mode 100644 index 81f175f..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/limits.py +++ /dev/null @@ -1,106 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -get_limit = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'limits': { - 'type': 'object', - 'properties': { - 'absolute': { - 'type': 'object', - 'properties': { - 'maxTotalRAMSize': {'type': 'integer'}, - 'totalCoresUsed': {'type': 'integer'}, - 'maxTotalInstances': {'type': 'integer'}, - 'maxTotalFloatingIps': {'type': 'integer'}, - 'totalSecurityGroupsUsed': {'type': 'integer'}, - 'maxTotalCores': {'type': 'integer'}, - 'totalFloatingIpsUsed': {'type': 'integer'}, - 'maxSecurityGroups': {'type': 'integer'}, - 'maxServerMeta': {'type': 'integer'}, - 'maxPersonality': {'type': 'integer'}, - 'maxImageMeta': {'type': 'integer'}, - 'maxPersonalitySize': {'type': 'integer'}, - 'maxSecurityGroupRules': {'type': 'integer'}, - 'maxTotalKeypairs': {'type': 'integer'}, - 'totalRAMUsed': {'type': 'integer'}, - 'totalInstancesUsed': {'type': 'integer'}, - 'maxServerGroupMembers': {'type': 'integer'}, - 'maxServerGroups': {'type': 'integer'}, - 'totalServerGroupsUsed': {'type': 'integer'} - }, - 'additionalProperties': False, - # NOTE(gmann): maxServerGroupMembers, maxServerGroups - # and totalServerGroupsUsed are API extension, - # and some environments return a response without these - # attributes.So they are not 'required'. - 'required': ['maxImageMeta', - 'maxPersonality', - 'maxPersonalitySize', - 'maxSecurityGroupRules', - 'maxSecurityGroups', - 'maxServerMeta', - 'maxTotalCores', - 'maxTotalFloatingIps', - 'maxTotalInstances', - 'maxTotalKeypairs', - 'maxTotalRAMSize', - 'totalCoresUsed', - 'totalFloatingIpsUsed', - 'totalInstancesUsed', - 'totalRAMUsed', - 'totalSecurityGroupsUsed'] - }, - 'rate': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'limit': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'next-available': - {'type': 'string'}, - 'remaining': - {'type': 'integer'}, - 'unit': - {'type': 'string'}, - 'value': - {'type': 'integer'}, - 'verb': - {'type': 'string'} - }, - 'additionalProperties': False, - } - }, - 'regex': {'type': 'string'}, - 'uri': {'type': 'string'} - }, - 'additionalProperties': False, - } - } - }, - 'additionalProperties': False, - 'required': ['absolute', 'rate'] - } - }, - 'additionalProperties': False, - 'required': ['limits'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/migrations.py b/tempest_lib/api_schema/response/compute/v2_1/migrations.py deleted file mode 100644 index b7d66ea..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/migrations.py +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -list_migrations = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'migrations': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'integer'}, - 'status': {'type': ['string', 'null']}, - 'instance_uuid': {'type': ['string', 'null']}, - 'source_node': {'type': ['string', 'null']}, - 'source_compute': {'type': ['string', 'null']}, - 'dest_node': {'type': ['string', 'null']}, - 'dest_compute': {'type': ['string', 'null']}, - 'dest_host': {'type': ['string', 'null']}, - 'old_instance_type_id': {'type': ['integer', 'null']}, - 'new_instance_type_id': {'type': ['integer', 'null']}, - 'created_at': {'type': 'string'}, - 'updated_at': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': [ - 'id', 'status', 'instance_uuid', 'source_node', - 'source_compute', 'dest_node', 'dest_compute', - 'dest_host', 'old_instance_type_id', - 'new_instance_type_id', 'created_at', 'updated_at' - ] - } - } - }, - 'additionalProperties': False, - 'required': ['migrations'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/parameter_types.py b/tempest_lib/api_schema/response/compute/v2_1/parameter_types.py deleted file mode 100644 index 07cc890..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/parameter_types.py +++ /dev/null @@ -1,96 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -links = { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'href': { - 'type': 'string', - 'format': 'uri' - }, - 'rel': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['href', 'rel'] - } -} - -mac_address = { - 'type': 'string', - 'pattern': '(?:[a-f0-9]{2}:){5}[a-f0-9]{2}' -} - -ip_address = { - 'oneOf': [ - { - 'type': 'string', - 'oneOf': [ - {'format': 'ipv4'}, - {'format': 'ipv6'} - ] - }, - {'type': 'null'} - ] -} - -access_ip_v4 = { - 'type': 'string', - 'oneOf': [{'format': 'ipv4'}, {'enum': ['']}] -} - -access_ip_v6 = { - 'type': 'string', - 'oneOf': [{'format': 'ipv6'}, {'enum': ['']}] -} - -addresses = { - 'type': 'object', - 'patternProperties': { - # NOTE: Here is for 'private' or something. - '^[a-zA-Z0-9-_.]+$': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'version': {'type': 'integer'}, - 'addr': { - 'type': 'string', - 'oneOf': [ - {'format': 'ipv4'}, - {'format': 'ipv6'} - ] - } - }, - 'additionalProperties': False, - 'required': ['version', 'addr'] - } - } - } -} - -response_header = { - 'connection': {'type': 'string'}, - 'content-length': {'type': 'string'}, - 'content-type': {'type': 'string'}, - 'status': {'type': 'string'}, - 'x-compute-request-id': {'type': 'string'}, - 'vary': {'type': 'string'}, - 'x-openstack-nova-api-version': {'type': 'string'}, - 'date': { - 'type': 'string', - 'format': 'data-time' - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/quota_classes.py b/tempest_lib/api_schema/response/compute/v2_1/quota_classes.py deleted file mode 100644 index 5667c11..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/quota_classes.py +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright 2014 IBM Corporation. -# All rights reserved. -# -# 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 copy - -from tempest_lib.api_schema.response.compute.v2_1 import quotas - -# NOTE(mriedem): os-quota-class-sets responses are the same as os-quota-sets -# except for the key in the response body is quota_class_set instead of -# quota_set, so update this copy of the schema from os-quota-sets. -get_quota_class_set = copy.deepcopy(quotas.get_quota_set) -get_quota_class_set['response_body']['properties']['quota_class_set'] = ( - get_quota_class_set['response_body']['properties'].pop('quota_set')) -get_quota_class_set['response_body']['required'] = ['quota_class_set'] - -update_quota_class_set = copy.deepcopy(quotas.update_quota_set) -update_quota_class_set['response_body']['properties']['quota_class_set'] = ( - update_quota_class_set['response_body']['properties'].pop('quota_set')) -update_quota_class_set['response_body']['required'] = ['quota_class_set'] diff --git a/tempest_lib/api_schema/response/compute/v2_1/quotas.py b/tempest_lib/api_schema/response/compute/v2_1/quotas.py deleted file mode 100644 index 7953983..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/quotas.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -update_quota_set = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'quota_set': { - 'type': 'object', - 'properties': { - 'instances': {'type': 'integer'}, - 'cores': {'type': 'integer'}, - 'ram': {'type': 'integer'}, - 'floating_ips': {'type': 'integer'}, - 'fixed_ips': {'type': 'integer'}, - 'metadata_items': {'type': 'integer'}, - 'key_pairs': {'type': 'integer'}, - 'security_groups': {'type': 'integer'}, - 'security_group_rules': {'type': 'integer'}, - 'server_group_members': {'type': 'integer'}, - 'server_groups': {'type': 'integer'}, - 'injected_files': {'type': 'integer'}, - 'injected_file_content_bytes': {'type': 'integer'}, - 'injected_file_path_bytes': {'type': 'integer'} - }, - 'additionalProperties': False, - # NOTE: server_group_members and server_groups are represented - # when enabling quota_server_group extension. So they should - # not be required. - 'required': ['instances', 'cores', 'ram', - 'floating_ips', 'fixed_ips', - 'metadata_items', 'key_pairs', - 'security_groups', 'security_group_rules', - 'injected_files', 'injected_file_content_bytes', - 'injected_file_path_bytes'] - } - }, - 'additionalProperties': False, - 'required': ['quota_set'] - } -} - -get_quota_set = copy.deepcopy(update_quota_set) -get_quota_set['response_body']['properties']['quota_set']['properties'][ - 'id'] = {'type': 'string'} -get_quota_set['response_body']['properties']['quota_set']['required'].extend([ - 'id']) - -delete_quota = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/security_group_default_rule.py b/tempest_lib/api_schema/response/compute/v2_1/security_group_default_rule.py deleted file mode 100644 index 2ec2826..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/security_group_default_rule.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -common_security_group_default_rule_info = { - 'type': 'object', - 'properties': { - 'from_port': {'type': 'integer'}, - 'id': {'type': 'integer'}, - 'ip_protocol': {'type': 'string'}, - 'ip_range': { - 'type': 'object', - 'properties': { - 'cidr': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['cidr'], - }, - 'to_port': {'type': 'integer'}, - }, - 'additionalProperties': False, - 'required': ['from_port', 'id', 'ip_protocol', 'ip_range', 'to_port'], -} - -create_get_security_group_default_rule = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'security_group_default_rule': - common_security_group_default_rule_info - }, - 'additionalProperties': False, - 'required': ['security_group_default_rule'] - } -} - -delete_security_group_default_rule = { - 'status_code': [204] -} - -list_security_group_default_rules = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'security_group_default_rules': { - 'type': 'array', - 'items': common_security_group_default_rule_info - } - }, - 'additionalProperties': False, - 'required': ['security_group_default_rules'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/security_groups.py b/tempest_lib/api_schema/response/compute/v2_1/security_groups.py deleted file mode 100644 index 5ed5a5c..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/security_groups.py +++ /dev/null @@ -1,113 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -common_security_group_rule = { - 'from_port': {'type': ['integer', 'null']}, - 'to_port': {'type': ['integer', 'null']}, - 'group': { - 'type': 'object', - 'properties': { - 'tenant_id': {'type': 'string'}, - 'name': {'type': 'string'} - }, - 'additionalProperties': False, - }, - 'ip_protocol': {'type': ['string', 'null']}, - # 'parent_group_id' can be UUID so defining it as 'string' also. - 'parent_group_id': {'type': ['string', 'integer', 'null']}, - 'ip_range': { - 'type': 'object', - 'properties': { - 'cidr': {'type': 'string'} - }, - 'additionalProperties': False, - # When optional argument is provided in request body - # like 'group_id' then, attribute 'cidr' does not - # comes in response body. So it is not 'required'. - }, - 'id': {'type': ['string', 'integer']} -} - -common_security_group = { - 'type': 'object', - 'properties': { - 'id': {'type': ['integer', 'string']}, - 'name': {'type': 'string'}, - 'tenant_id': {'type': 'string'}, - 'rules': { - 'type': 'array', - 'items': { - 'type': ['object', 'null'], - 'properties': common_security_group_rule, - 'additionalProperties': False, - } - }, - 'description': {'type': 'string'}, - }, - 'additionalProperties': False, - 'required': ['id', 'name', 'tenant_id', 'rules', 'description'], -} - -list_security_groups = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'security_groups': { - 'type': 'array', - 'items': common_security_group - } - }, - 'additionalProperties': False, - 'required': ['security_groups'] - } -} - -get_security_group = create_security_group = update_security_group = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'security_group': common_security_group - }, - 'additionalProperties': False, - 'required': ['security_group'] - } -} - -delete_security_group = { - 'status_code': [202] -} - -create_security_group_rule = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'security_group_rule': { - 'type': 'object', - 'properties': common_security_group_rule, - 'additionalProperties': False, - 'required': ['from_port', 'to_port', 'group', 'ip_protocol', - 'parent_group_id', 'id', 'ip_range'] - } - }, - 'additionalProperties': False, - 'required': ['security_group_rule'] - } -} - -delete_security_group_rule = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/servers.py b/tempest_lib/api_schema/response/compute/v2_1/servers.py deleted file mode 100644 index 7db05fb..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/servers.py +++ /dev/null @@ -1,553 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -from tempest_lib.api_schema.response.compute.v2_1 import parameter_types - -create_server = { - 'status_code': [202], - 'response_body': { - 'type': 'object', - 'properties': { - 'server': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'security_groups': {'type': 'array'}, - 'links': parameter_types.links, - 'OS-DCF:diskConfig': {'type': 'string'} - }, - 'additionalProperties': False, - # NOTE: OS-DCF:diskConfig & security_groups are API extension, - # and some environments return a response without these - # attributes.So they are not 'required'. - 'required': ['id', 'links'] - } - }, - 'additionalProperties': False, - 'required': ['server'] - } -} - -create_server_with_admin_pass = copy.deepcopy(create_server) -create_server_with_admin_pass['response_body']['properties']['server'][ - 'properties'].update({'adminPass': {'type': 'string'}}) -create_server_with_admin_pass['response_body']['properties']['server'][ - 'required'].append('adminPass') - -list_servers = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'servers': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': parameter_types.links, - 'name': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['id', 'links', 'name'] - } - }, - 'servers_links': parameter_types.links - }, - 'additionalProperties': False, - # NOTE(gmann): servers_links attribute is not necessary to be - # present always So it is not 'required'. - 'required': ['servers'] - } -} - -delete_server = { - 'status_code': [204], -} - -common_show_server = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'name': {'type': 'string'}, - 'status': {'type': 'string'}, - 'image': {'oneOf': [ - {'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': parameter_types.links - }, - 'additionalProperties': False, - 'required': ['id', 'links']}, - {'type': ['string', 'null']} - ]}, - 'flavor': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': parameter_types.links - }, - 'additionalProperties': False, - 'required': ['id', 'links'] - }, - 'fault': { - 'type': 'object', - 'properties': { - 'code': {'type': 'integer'}, - 'created': {'type': 'string'}, - 'message': {'type': 'string'}, - 'details': {'type': 'string'}, - }, - 'additionalProperties': False, - # NOTE(gmann): 'details' is not necessary to be present - # in the 'fault'. So it is not defined as 'required'. - 'required': ['code', 'created', 'message'] - }, - 'user_id': {'type': 'string'}, - 'tenant_id': {'type': 'string'}, - 'created': {'type': 'string'}, - 'updated': {'type': 'string'}, - 'progress': {'type': 'integer'}, - 'metadata': {'type': 'object'}, - 'links': parameter_types.links, - 'addresses': parameter_types.addresses, - 'hostId': {'type': 'string'}, - 'OS-DCF:diskConfig': {'type': 'string'}, - 'accessIPv4': parameter_types.access_ip_v4, - 'accessIPv6': parameter_types.access_ip_v6 - }, - 'additionalProperties': False, - # NOTE(GMann): 'progress' attribute is present in the response - # only when server's status is one of the progress statuses - # ("ACTIVE","BUILD", "REBUILD", "RESIZE","VERIFY_RESIZE") - # 'fault' attribute is present in the response - # only when server's status is one of the "ERROR", "DELETED". - # OS-DCF:diskConfig and accessIPv4/v6 are API - # extensions, and some environments return a response - # without these attributes.So these are not defined as 'required'. - 'required': ['id', 'name', 'status', 'image', 'flavor', - 'user_id', 'tenant_id', 'created', 'updated', - 'metadata', 'links', 'addresses', 'hostId'] -} - -update_server = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'server': common_show_server - }, - 'additionalProperties': False, - 'required': ['server'] - } -} - -server_detail = copy.deepcopy(common_show_server) -server_detail['properties'].update({ - 'key_name': {'type': ['string', 'null']}, - 'security_groups': {'type': 'array'}, - - # NOTE: Non-admin users also can see "OS-SRV-USG" and "OS-EXT-AZ" - # attributes. - 'OS-SRV-USG:launched_at': {'type': ['string', 'null']}, - 'OS-SRV-USG:terminated_at': {'type': ['string', 'null']}, - 'OS-EXT-AZ:availability_zone': {'type': 'string'}, - - # NOTE: Admin users only can see "OS-EXT-STS" and "OS-EXT-SRV-ATTR" - # attributes. - 'OS-EXT-STS:task_state': {'type': ['string', 'null']}, - 'OS-EXT-STS:vm_state': {'type': 'string'}, - 'OS-EXT-STS:power_state': {'type': 'integer'}, - 'OS-EXT-SRV-ATTR:host': {'type': ['string', 'null']}, - 'OS-EXT-SRV-ATTR:instance_name': {'type': 'string'}, - 'OS-EXT-SRV-ATTR:hypervisor_hostname': {'type': ['string', 'null']}, - 'os-extended-volumes:volumes_attached': {'type': 'array'}, - 'config_drive': {'type': 'string'} -}) -server_detail['properties']['addresses']['patternProperties'][ - '^[a-zA-Z0-9-_.]+$']['items']['properties'].update({ - 'OS-EXT-IPS:type': {'type': 'string'}, - 'OS-EXT-IPS-MAC:mac_addr': parameter_types.mac_address}) -# NOTE(gmann): Update OS-EXT-IPS:type and OS-EXT-IPS-MAC:mac_addr -# attributes in server address. Those are API extension, -# and some environments return a response without -# these attributes. So they are not 'required'. - -get_server = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'server': server_detail - }, - 'additionalProperties': False, - 'required': ['server'] - } -} - -list_servers_detail = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'servers': { - 'type': 'array', - 'items': server_detail - }, - 'servers_links': parameter_types.links - }, - 'additionalProperties': False, - # NOTE(gmann): servers_links attribute is not necessary to be - # present always So it is not 'required'. - 'required': ['servers'] - } -} - -rebuild_server = copy.deepcopy(update_server) -rebuild_server['status_code'] = [202] - -rebuild_server_with_admin_pass = copy.deepcopy(rebuild_server) -rebuild_server_with_admin_pass['response_body']['properties']['server'][ - 'properties'].update({'adminPass': {'type': 'string'}}) -rebuild_server_with_admin_pass['response_body']['properties']['server'][ - 'required'].append('adminPass') - -rescue_server = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'adminPass': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['adminPass'] - } -} - -list_virtual_interfaces = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'virtual_interfaces': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'mac_address': parameter_types.mac_address, - 'OS-EXT-VIF-NET:net_id': {'type': 'string'} - }, - 'additionalProperties': False, - # 'OS-EXT-VIF-NET:net_id' is API extension So it is - # not defined as 'required' - 'required': ['id', 'mac_address'] - } - } - }, - 'additionalProperties': False, - 'required': ['virtual_interfaces'] - } -} - -common_attach_volume_info = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'device': {'type': 'string'}, - 'volumeId': {'type': 'string'}, - 'serverId': {'type': ['integer', 'string']} - }, - 'additionalProperties': False, - 'required': ['id', 'device', 'volumeId', 'serverId'] -} - -attach_volume = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'volumeAttachment': common_attach_volume_info - }, - 'additionalProperties': False, - 'required': ['volumeAttachment'] - } -} - -detach_volume = { - 'status_code': [202] -} - -show_volume_attachment = copy.deepcopy(attach_volume) -show_volume_attachment['response_body']['properties'][ - 'volumeAttachment']['properties'].update({'serverId': {'type': 'string'}}) - -list_volume_attachments = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'volumeAttachments': { - 'type': 'array', - 'items': common_attach_volume_info - } - }, - 'additionalProperties': False, - 'required': ['volumeAttachments'] - } -} -list_volume_attachments['response_body']['properties'][ - 'volumeAttachments']['items']['properties'].update( - {'serverId': {'type': 'string'}}) - -list_addresses_by_network = { - 'status_code': [200], - 'response_body': parameter_types.addresses -} - -list_addresses = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'addresses': parameter_types.addresses - }, - 'additionalProperties': False, - 'required': ['addresses'] - } -} - -common_server_group = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'name': {'type': 'string'}, - 'policies': { - 'type': 'array', - 'items': {'type': 'string'} - }, - # 'members' attribute contains the array of instance's UUID of - # instances present in server group - 'members': { - 'type': 'array', - 'items': {'type': 'string'} - }, - 'metadata': {'type': 'object'} - }, - 'additionalProperties': False, - 'required': ['id', 'name', 'policies', 'members', 'metadata'] -} - -create_show_server_group = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'server_group': common_server_group - }, - 'additionalProperties': False, - 'required': ['server_group'] - } -} - -delete_server_group = { - 'status_code': [204] -} - -list_server_groups = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'server_groups': { - 'type': 'array', - 'items': common_server_group - } - }, - 'additionalProperties': False, - 'required': ['server_groups'] - } -} - -instance_actions = { - 'type': 'object', - 'properties': { - 'action': {'type': 'string'}, - 'request_id': {'type': 'string'}, - 'user_id': {'type': 'string'}, - 'project_id': {'type': 'string'}, - 'start_time': {'type': 'string'}, - 'message': {'type': ['string', 'null']}, - 'instance_uuid': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['action', 'request_id', 'user_id', 'project_id', - 'start_time', 'message', 'instance_uuid'] -} - -instance_action_events = { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'event': {'type': 'string'}, - 'start_time': {'type': 'string'}, - 'finish_time': {'type': 'string'}, - 'result': {'type': 'string'}, - 'traceback': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['event', 'start_time', 'finish_time', 'result', - 'traceback'] - } -} - -list_instance_actions = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'instanceActions': { - 'type': 'array', - 'items': instance_actions - } - }, - 'additionalProperties': False, - 'required': ['instanceActions'] - } -} - -instance_actions_with_events = copy.deepcopy(instance_actions) -instance_actions_with_events['properties'].update({ - 'events': instance_action_events}) -# 'events' does not come in response body always so it is not -# defined as 'required' - -show_instance_action = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'instanceAction': instance_actions_with_events - }, - 'additionalProperties': False, - 'required': ['instanceAction'] - } -} - -show_password = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'password': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['password'] - } -} - -get_vnc_console = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'console': { - 'type': 'object', - 'properties': { - 'type': {'type': 'string'}, - 'url': { - 'type': 'string', - 'format': 'uri' - } - }, - 'additionalProperties': False, - 'required': ['type', 'url'] - } - }, - 'additionalProperties': False, - 'required': ['console'] - } -} - -get_console_output = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'output': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['output'] - } -} - -set_server_metadata = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'metadata': { - 'type': 'object', - 'patternProperties': { - '^.+$': {'type': 'string'} - } - } - }, - 'additionalProperties': False, - 'required': ['metadata'] - } -} - -list_server_metadata = copy.deepcopy(set_server_metadata) - -update_server_metadata = copy.deepcopy(set_server_metadata) - -delete_server_metadata_item = { - 'status_code': [204] -} - -set_show_server_metadata_item = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'meta': { - 'type': 'object', - 'patternProperties': { - '^.+$': {'type': 'string'} - } - } - }, - 'additionalProperties': False, - 'required': ['meta'] - } -} - -server_actions_common_schema = { - 'status_code': [202] -} - -server_actions_delete_password = { - 'status_code': [204] -} - -server_actions_confirm_resize = copy.deepcopy( - server_actions_delete_password) - -update_attached_volume = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/services.py b/tempest_lib/api_schema/response/compute/v2_1/services.py deleted file mode 100644 index ddef7b2..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/services.py +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -list_services = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'services': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': ['integer', 'string'], - 'pattern': '^[a-zA-Z!]*@[0-9]+$'}, - 'zone': {'type': 'string'}, - 'host': {'type': 'string'}, - 'state': {'type': 'string'}, - 'binary': {'type': 'string'}, - 'status': {'type': 'string'}, - 'updated_at': {'type': ['string', 'null']}, - 'disabled_reason': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['id', 'zone', 'host', 'state', 'binary', - 'status', 'updated_at', 'disabled_reason'] - } - } - }, - 'additionalProperties': False, - 'required': ['services'] - } -} - -enable_disable_service = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'service': { - 'type': 'object', - 'properties': { - 'status': {'type': 'string'}, - 'binary': {'type': 'string'}, - 'host': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['status', 'binary', 'host'] - } - }, - 'additionalProperties': False, - 'required': ['service'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/snapshots.py b/tempest_lib/api_schema/response/compute/v2_1/snapshots.py deleted file mode 100644 index 01a524b..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/snapshots.py +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright 2015 Fujitsu(fnst) Corporation -# All Rights Reserved. -# -# 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. - -common_snapshot_info = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'volumeId': {'type': 'string'}, - 'status': {'type': 'string'}, - 'size': {'type': 'integer'}, - 'createdAt': {'type': 'string'}, - 'displayName': {'type': ['string', 'null']}, - 'displayDescription': {'type': ['string', 'null']} - }, - 'additionalProperties': False, - 'required': ['id', 'volumeId', 'status', 'size', - 'createdAt', 'displayName', 'displayDescription'] -} - -create_get_snapshot = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'snapshot': common_snapshot_info - }, - 'additionalProperties': False, - 'required': ['snapshot'] - } -} - -list_snapshots = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'snapshots': { - 'type': 'array', - 'items': common_snapshot_info - } - }, - 'additionalProperties': False, - 'required': ['snapshots'] - } -} - -delete_snapshot = { - 'status_code': [202] -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py b/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py deleted file mode 100644 index ddfab96..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/tenant_networks.py +++ /dev/null @@ -1,53 +0,0 @@ -# Copyright 2015 NEC Corporation. All rights reserved. -# -# 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. - -param_network = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'cidr': {'type': ['string', 'null']}, - 'label': {'type': 'string'} - }, - 'additionalProperties': False, - 'required': ['id', 'cidr', 'label'] -} - - -list_tenant_networks = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'networks': { - 'type': 'array', - 'items': param_network - } - }, - 'additionalProperties': False, - 'required': ['networks'] - } -} - - -get_tenant_network = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'network': param_network - }, - 'additionalProperties': False, - 'required': ['network'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/tenant_usages.py b/tempest_lib/api_schema/response/compute/v2_1/tenant_usages.py deleted file mode 100644 index d51ef12..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/tenant_usages.py +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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 copy - -_server_usages = { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'ended_at': { - 'oneOf': [ - {'type': 'string'}, - {'type': 'null'} - ] - }, - 'flavor': {'type': 'string'}, - 'hours': {'type': 'number'}, - 'instance_id': {'type': 'string'}, - 'local_gb': {'type': 'integer'}, - 'memory_mb': {'type': 'integer'}, - 'name': {'type': 'string'}, - 'started_at': {'type': 'string'}, - 'state': {'type': 'string'}, - 'tenant_id': {'type': 'string'}, - 'uptime': {'type': 'integer'}, - 'vcpus': {'type': 'integer'}, - }, - 'required': ['ended_at', 'flavor', 'hours', 'instance_id', 'local_gb', - 'memory_mb', 'name', 'started_at', 'state', 'tenant_id', - 'uptime', 'vcpus'] - } -} - -_tenant_usage_list = { - 'type': 'object', - 'properties': { - 'server_usages': _server_usages, - 'start': {'type': 'string'}, - 'stop': {'type': 'string'}, - 'tenant_id': {'type': 'string'}, - 'total_hours': {'type': 'number'}, - 'total_local_gb_usage': {'type': 'number'}, - 'total_memory_mb_usage': {'type': 'number'}, - 'total_vcpus_usage': {'type': 'number'}, - }, - 'required': ['start', 'stop', 'tenant_id', - 'total_hours', 'total_local_gb_usage', - 'total_memory_mb_usage', 'total_vcpus_usage'] -} - -# 'required' of get_tenant is different from list_tenant's. -_tenant_usage_get = copy.deepcopy(_tenant_usage_list) -_tenant_usage_get['required'] = ['server_usages', 'start', 'stop', 'tenant_id', - 'total_hours', 'total_local_gb_usage', - 'total_memory_mb_usage', 'total_vcpus_usage'] - -list_tenant_usage = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'tenant_usages': { - 'type': 'array', - 'items': _tenant_usage_list - } - }, - 'required': ['tenant_usages'] - } -} - -get_tenant_usage = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'tenant_usage': _tenant_usage_get - }, - 'required': ['tenant_usage'] - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/versions.py b/tempest_lib/api_schema/response/compute/v2_1/versions.py deleted file mode 100644 index 08a9fab..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/versions.py +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright 2015 NEC Corporation. All rights reserved. -# -# 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 copy - - -_version = { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'links': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'href': {'type': 'string', 'format': 'uri'}, - 'rel': {'type': 'string'}, - 'type': {'type': 'string'}, - }, - 'required': ['href', 'rel'], - 'additionalProperties': False - } - }, - 'status': {'type': 'string'}, - 'updated': {'type': 'string', 'format': 'date-time'}, - 'version': {'type': 'string'}, - 'min_version': {'type': 'string'}, - 'media-types': { - 'type': 'array', - 'properties': { - 'base': {'type': 'string'}, - 'type': {'type': 'string'}, - } - }, - }, - # NOTE: version and min_version have been added since Kilo, - # so they should not be required. - # NOTE(sdague): media-types only shows up in single version requests. - 'required': ['id', 'links', 'status', 'updated'], - 'additionalProperties': False -} - -list_versions = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'versions': { - 'type': 'array', - 'items': _version - } - }, - 'required': ['versions'], - 'additionalProperties': False - } -} - - -_detail_get_version = copy.deepcopy(_version) -_detail_get_version['properties'].pop('min_version') -_detail_get_version['properties'].pop('version') -_detail_get_version['properties'].pop('updated') -_detail_get_version['properties']['media-types'] = { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'base': {'type': 'string'}, - 'type': {'type': 'string'} - } - } -} -_detail_get_version['required'] = ['id', 'links', 'status', 'media-types'] - -get_version = { - 'status_code': [300], - 'response_body': { - 'type': 'object', - 'properties': { - 'choices': { - 'type': 'array', - 'items': _detail_get_version - } - }, - 'required': ['choices'], - 'additionalProperties': False - } -} - -get_one_version = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'version': _version - }, - 'additionalProperties': False - } -} diff --git a/tempest_lib/api_schema/response/compute/v2_1/volumes.py b/tempest_lib/api_schema/response/compute/v2_1/volumes.py deleted file mode 100644 index bb34acb..0000000 --- a/tempest_lib/api_schema/response/compute/v2_1/volumes.py +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 2014 NEC Corporation. All rights reserved. -# -# 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. - -create_get_volume = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'volume': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'displayName': {'type': ['string', 'null']}, - 'availabilityZone': {'type': 'string'}, - 'createdAt': {'type': 'string'}, - 'displayDescription': {'type': ['string', 'null']}, - 'volumeType': {'type': ['string', 'null']}, - 'snapshotId': {'type': ['string', 'null']}, - 'metadata': {'type': 'object'}, - 'size': {'type': 'integer'}, - 'attachments': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'device': {'type': 'string'}, - 'volumeId': {'type': 'string'}, - 'serverId': {'type': 'string'} - }, - 'additionalProperties': False, - # NOTE- If volume is not attached to any server - # then, 'attachments' attributes comes as array - # with empty objects "[{}]" due to that elements - # of 'attachments' cannot defined as 'required'. - # If it would come as empty array "[]" then, - # those elements can be defined as 'required'. - } - } - }, - 'additionalProperties': False, - 'required': ['id', 'status', 'displayName', 'availabilityZone', - 'createdAt', 'displayDescription', 'volumeType', - 'snapshotId', 'metadata', 'size', 'attachments'] - } - }, - 'additionalProperties': False, - 'required': ['volume'] - } -} - -list_volumes = { - 'status_code': [200], - 'response_body': { - 'type': 'object', - 'properties': { - 'volumes': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'status': {'type': 'string'}, - 'displayName': {'type': ['string', 'null']}, - 'availabilityZone': {'type': 'string'}, - 'createdAt': {'type': 'string'}, - 'displayDescription': {'type': ['string', 'null']}, - 'volumeType': {'type': ['string', 'null']}, - 'snapshotId': {'type': ['string', 'null']}, - 'metadata': {'type': 'object'}, - 'size': {'type': 'integer'}, - 'attachments': { - 'type': 'array', - 'items': { - 'type': 'object', - 'properties': { - 'id': {'type': 'string'}, - 'device': {'type': 'string'}, - 'volumeId': {'type': 'string'}, - 'serverId': {'type': 'string'} - }, - 'additionalProperties': False, - # NOTE- If volume is not attached to any server - # then, 'attachments' attributes comes as array - # with empty object "[{}]" due to that elements - # of 'attachments' cannot defined as 'required' - # If it would come as empty array "[]" then, - # those elements can be defined as 'required'. - } - } - }, - 'additionalProperties': False, - 'required': ['id', 'status', 'displayName', - 'availabilityZone', 'createdAt', - 'displayDescription', 'volumeType', - 'snapshotId', 'metadata', 'size', - 'attachments'] - } - } - }, - 'additionalProperties': False, - 'required': ['volumes'] - } -} - -delete_volume = { - 'status_code': [202] -} |