Merge "Adds validation schema for compute"
This commit is contained in:
commit
06831f9811
40
tempest/lib/api_schema/response/compute/v2_80/migrations.py
Normal file
40
tempest/lib/api_schema/response/compute/v2_80/migrations.py
Normal file
@ -0,0 +1,40 @@
|
||||
# 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_59 import migrations
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# 2.80:
|
||||
#
|
||||
# The user_id and project_id value is now returned in the response body in
|
||||
# addition to the migration id for the following API responses:
|
||||
#
|
||||
# - GET /os-migrations
|
||||
#
|
||||
###########################################################################
|
||||
|
||||
user_id = {'type': 'string'}
|
||||
project_id = {'type': 'string'}
|
||||
|
||||
list_migrations = copy.deepcopy(migrations.list_migrations)
|
||||
|
||||
list_migrations['response_body']['properties']['migrations']['items'][
|
||||
'properties'].update({
|
||||
'user_id': user_id,
|
||||
'project_id': project_id
|
||||
})
|
||||
|
||||
list_migrations['response_body']['properties']['migrations']['items'][
|
||||
'required'].extend(['user_id', 'project_id'])
|
84
tempest/lib/api_schema/response/compute/v2_89/servers.py
Normal file
84
tempest/lib/api_schema/response/compute/v2_89/servers.py
Normal file
@ -0,0 +1,84 @@
|
||||
# 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_79 import servers as servers279
|
||||
|
||||
|
||||
###########################################################################
|
||||
#
|
||||
# 2.89:
|
||||
#
|
||||
# The attachment_id and bdm_uuid parameter is now returned in the response body
|
||||
# of the following calls:
|
||||
#
|
||||
# - GET /servers/{server_id}/os-volume_attachments
|
||||
# - GET /servers/{server_id}/os-volume_attachments/{volume_id}
|
||||
# - POST /servers/{server_id}/os-volume_attachments
|
||||
###########################################################################
|
||||
|
||||
attach_volume = copy.deepcopy(servers279.attach_volume)
|
||||
|
||||
show_volume_attachment = copy.deepcopy(servers279.show_volume_attachment)
|
||||
|
||||
list_volume_attachments = copy.deepcopy(servers279.list_volume_attachments)
|
||||
|
||||
# Remove properties
|
||||
# 'id' is available unti v2.88
|
||||
show_volume_attachment['response_body']['properties'][
|
||||
'volumeAttachment']['properties'].pop('id')
|
||||
show_volume_attachment['response_body']['properties'][
|
||||
'volumeAttachment']['required'].remove('id')
|
||||
list_volume_attachments['response_body']['properties'][
|
||||
'volumeAttachments']['items']['properties'].pop('id')
|
||||
list_volume_attachments['response_body']['properties'][
|
||||
'volumeAttachments']['items']['required'].remove('id')
|
||||
|
||||
|
||||
# Add new properties
|
||||
new_properties = {
|
||||
'attachment_id': {'type': 'string', 'format': 'uuid'},
|
||||
'bdm_uuid': {'type': 'string', 'format': 'uuid'}
|
||||
}
|
||||
|
||||
show_volume_attachment['response_body']['properties'][
|
||||
'volumeAttachment']['properties'].update(new_properties)
|
||||
show_volume_attachment['response_body']['properties'][
|
||||
'volumeAttachment']['required'].extend(new_properties.keys())
|
||||
list_volume_attachments['response_body']['properties'][
|
||||
'volumeAttachments']['items']['properties'].update(new_properties)
|
||||
list_volume_attachments['response_body']['properties'][
|
||||
'volumeAttachments']['items']['required'].extend(new_properties.keys())
|
||||
|
||||
|
||||
# NOTE(zhufl): Below are the unchanged schema in this microversion. We
|
||||
# need to keep this schema in this file to have the generic way to select the
|
||||
# right schema based on self.schema_versions_info mapping in service client.
|
||||
# ****** Schemas unchanged since microversion 2.75 ***
|
||||
rebuild_server = copy.deepcopy(servers279.rebuild_server)
|
||||
rebuild_server_with_admin_pass = copy.deepcopy(
|
||||
servers279.rebuild_server_with_admin_pass)
|
||||
update_server = copy.deepcopy(servers279.update_server)
|
||||
get_server = copy.deepcopy(servers279.get_server)
|
||||
list_servers_detail = copy.deepcopy(servers279.list_servers_detail)
|
||||
list_servers = copy.deepcopy(servers279.list_servers)
|
||||
show_server_diagnostics = copy.deepcopy(servers279.show_server_diagnostics)
|
||||
get_remote_consoles = copy.deepcopy(servers279.get_remote_consoles)
|
||||
list_tags = copy.deepcopy(servers279.list_tags)
|
||||
update_all_tags = copy.deepcopy(servers279.update_all_tags)
|
||||
delete_all_tags = copy.deepcopy(servers279.delete_all_tags)
|
||||
check_tag_existence = copy.deepcopy(servers279.check_tag_existence)
|
||||
update_tag = copy.deepcopy(servers279.update_tag)
|
||||
delete_tag = copy.deepcopy(servers279.delete_tag)
|
||||
show_instance_action = copy.deepcopy(servers279.show_instance_action)
|
||||
create_backup = copy.deepcopy(servers279.create_backup)
|
@ -21,6 +21,8 @@ from tempest.lib.api_schema.response.compute.v2_23 import migrations \
|
||||
as schemav223
|
||||
from tempest.lib.api_schema.response.compute.v2_59 import migrations \
|
||||
as schemav259
|
||||
from tempest.lib.api_schema.response.compute.v2_80 import migrations \
|
||||
as schemav280
|
||||
from tempest.lib.common import rest_client
|
||||
from tempest.lib.services.compute import base_compute_client
|
||||
|
||||
@ -29,7 +31,8 @@ class MigrationsClient(base_compute_client.BaseComputeClient):
|
||||
schema_versions_info = [
|
||||
{'min': None, 'max': '2.22', 'schema': schema},
|
||||
{'min': '2.23', 'max': '2.58', 'schema': schemav223},
|
||||
{'min': '2.59', 'max': None, 'schema': schemav259}]
|
||||
{'min': '2.59', 'max': '2.79', 'schema': schemav259},
|
||||
{'min': '2.80', 'max': None, 'schema': schemav280}]
|
||||
|
||||
def list_migrations(self, **params):
|
||||
"""List all migrations.
|
||||
|
@ -43,6 +43,7 @@ from tempest.lib.api_schema.response.compute.v2_73 import servers as schemav273
|
||||
from tempest.lib.api_schema.response.compute.v2_75 import servers as schemav275
|
||||
from tempest.lib.api_schema.response.compute.v2_79 import servers as schemav279
|
||||
from tempest.lib.api_schema.response.compute.v2_8 import servers as schemav28
|
||||
from tempest.lib.api_schema.response.compute.v2_89 import servers as schemav289
|
||||
from tempest.lib.api_schema.response.compute.v2_9 import servers as schemav29
|
||||
from tempest.lib.common import rest_client
|
||||
from tempest.lib.services.compute import base_compute_client
|
||||
@ -73,7 +74,8 @@ class ServersClient(base_compute_client.BaseComputeClient):
|
||||
{'min': '2.71', 'max': '2.72', 'schema': schemav271},
|
||||
{'min': '2.73', 'max': '2.74', 'schema': schemav273},
|
||||
{'min': '2.75', 'max': '2.78', 'schema': schemav275},
|
||||
{'min': '2.79', 'max': None, 'schema': schemav279}]
|
||||
{'min': '2.79', 'max': '2.88', 'schema': schemav279},
|
||||
{'min': '2.89', 'max': None, 'schema': schemav289}]
|
||||
|
||||
def __init__(self, auth_provider, service, region,
|
||||
enable_instance_password=True, **kwargs):
|
||||
@ -896,7 +898,11 @@ class ServersClient(base_compute_client.BaseComputeClient):
|
||||
API reference:
|
||||
https://docs.openstack.org/api-ref/compute/#evacuate-server-evacuate-action
|
||||
"""
|
||||
if self.enable_instance_password:
|
||||
api_version = self.get_headers().get(self.api_microversion_header_name)
|
||||
|
||||
if not api_version and self.enable_instance_password:
|
||||
evacuate_schema = schema.evacuate_server_with_admin_pass
|
||||
elif api_version < '2.14':
|
||||
evacuate_schema = schema.evacuate_server_with_admin_pass
|
||||
else:
|
||||
evacuate_schema = schema.evacuate_server
|
||||
|
Loading…
Reference in New Issue
Block a user