api: Remove unnecessary 'base_' prefix from schemas

A base is something that it's inherited by other things. If everything
is a base, nothing is. This is just noise so remove it.

Change-Id: I9e2d3c37650465d0748852f8cdb82fbeba7b3f4c
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane 2021-08-06 11:18:39 +01:00
parent 0942163c82
commit e3fa6859f9
2 changed files with 76 additions and 85 deletions

View File

@ -146,7 +146,7 @@ _hints = {
'additionalProperties': True
}
base_create = {
create = {
'type': 'object',
'properties': {
'server': {
@ -225,33 +225,31 @@ base_create = {
'additionalProperties': False,
}
base_create_v20 = copy.deepcopy(base_create)
base_create_v20['properties']['server'][
create_v20 = copy.deepcopy(create)
create_v20['properties']['server'][
'properties']['name'] = parameter_types.name_with_leading_trailing_spaces
base_create_v20['properties']['server']['properties'][
create_v20['properties']['server']['properties'][
'availability_zone'] = parameter_types.name_with_leading_trailing_spaces
base_create_v20['properties']['server']['properties'][
create_v20['properties']['server']['properties'][
'key_name'] = parameter_types.name_with_leading_trailing_spaces
base_create_v20['properties']['server']['properties'][
create_v20['properties']['server']['properties'][
'security_groups']['items']['properties']['name'] = (
parameter_types.name_with_leading_trailing_spaces)
base_create_v20['properties']['server']['properties'][
'user_data'] = {
'oneOf': [{'type': 'string', 'format': 'base64', 'maxLength': 65535},
{'type': 'null'},
],
}
create_v20['properties']['server']['properties']['user_data'] = {
'oneOf': [{'type': 'string', 'format': 'base64', 'maxLength': 65535},
{'type': 'null'},
],
}
base_create_v219 = copy.deepcopy(base_create)
base_create_v219['properties']['server'][
create_v219 = copy.deepcopy(create)
create_v219['properties']['server'][
'properties']['description'] = parameter_types.description
base_create_v232 = copy.deepcopy(base_create_v219)
base_create_v232['properties']['server'][
create_v232 = copy.deepcopy(create_v219)
create_v232['properties']['server'][
'properties']['networks']['items'][
'properties']['tag'] = parameter_types.tag
base_create_v232['properties']['server'][
create_v232['properties']['server'][
'properties']['block_device_mapping_v2']['items'][
'properties']['tag'] = parameter_types.tag
@ -262,15 +260,15 @@ base_create_v232['properties']['server'][
# in version 2.32 only. Since we need a new microversion to add request
# body attributes, tags have been re-added in version 2.42.
# NOTE(gmann) Below schema 'base_create_v233' is added (builds on 2.19 schema)
# NOTE(gmann) Below schema 'create_v233' is added (builds on 2.19 schema)
# to keep the above mentioned behavior while merging the extension schema code
# into server schema file. Below is the ref code where BDM tag was originally
# got added for 2.32 microversion *only*.
# Ref- https://opendev.org/openstack/nova/src/commit/
# 9882a60e69a5ab8da314a199a56defc05098b743/nova/api/
# openstack/compute/block_device_mapping.py#L71
base_create_v233 = copy.deepcopy(base_create_v219)
base_create_v233['properties']['server'][
create_v233 = copy.deepcopy(create_v219)
create_v233['properties']['server'][
'properties']['networks']['items'][
'properties']['tag'] = parameter_types.tag
@ -278,9 +276,9 @@ base_create_v233['properties']['server'][
# 1. server.networks is required
# 2. server.networks is now either an enum or a list
# 3. server.networks.uuid is now required to be a uuid
base_create_v237 = copy.deepcopy(base_create_v233)
base_create_v237['properties']['server']['required'].append('networks')
base_create_v237['properties']['server']['properties']['networks'] = {
create_v237 = copy.deepcopy(create_v233)
create_v237['properties']['server']['required'].append('networks')
create_v237['properties']['server']['properties']['networks'] = {
'oneOf': [
{'type': 'array',
'items': {
@ -299,11 +297,10 @@ base_create_v237['properties']['server']['properties']['networks'] = {
{'type': 'string', 'enum': ['none', 'auto']},
]}
# 2.42 builds on 2.37 and re-introduces the tag field to the list of network
# objects.
base_create_v242 = copy.deepcopy(base_create_v237)
base_create_v242['properties']['server']['properties']['networks'] = {
create_v242 = copy.deepcopy(create_v237)
create_v242['properties']['server']['properties']['networks'] = {
'oneOf': [
{'type': 'array',
'items': {
@ -322,49 +319,44 @@ base_create_v242['properties']['server']['properties']['networks'] = {
},
{'type': 'string', 'enum': ['none', 'auto']},
]}
base_create_v242['properties']['server'][
create_v242['properties']['server'][
'properties']['block_device_mapping_v2']['items'][
'properties']['tag'] = parameter_types.tag
# 2.52 builds on 2.42 and makes the following changes:
# Allowing adding tags to instances when booting
base_create_v252 = copy.deepcopy(base_create_v242)
base_create_v252['properties']['server']['properties']['tags'] = {
create_v252 = copy.deepcopy(create_v242)
create_v252['properties']['server']['properties']['tags'] = {
"type": "array",
"items": parameter_types.tag,
"maxItems": instance.MAX_TAG_COUNT
}
# 2.57 builds on 2.52 and removes the personality parameter.
base_create_v257 = copy.deepcopy(base_create_v252)
base_create_v257['properties']['server']['properties'].pop('personality')
create_v257 = copy.deepcopy(create_v252)
create_v257['properties']['server']['properties'].pop('personality')
# 2.63 builds on 2.57 and makes the following changes:
# Allowing adding trusted certificates to instances when booting
base_create_v263 = copy.deepcopy(base_create_v257)
base_create_v263['properties']['server']['properties'][
create_v263 = copy.deepcopy(create_v257)
create_v263['properties']['server']['properties'][
'trusted_image_certificates'] = parameter_types.trusted_certs
# Add volume type in block_device_mapping_v2.
base_create_v267 = copy.deepcopy(base_create_v263)
base_create_v267['properties']['server']['properties'][
create_v267 = copy.deepcopy(create_v263)
create_v267['properties']['server']['properties'][
'block_device_mapping_v2']['items'][
'properties']['volume_type'] = parameter_types.volume_type
# Add host and hypervisor_hostname in server
base_create_v274 = copy.deepcopy(base_create_v267)
base_create_v274['properties']['server'][
create_v274 = copy.deepcopy(create_v267)
create_v274['properties']['server'][
'properties']['host'] = parameter_types.fqdn
base_create_v274['properties']['server'][
create_v274['properties']['server'][
'properties']['hypervisor_hostname'] = parameter_types.fqdn
base_update = {
update = {
'type': 'object',
'properties': {
'server': {
@ -382,16 +374,16 @@ base_update = {
'additionalProperties': False,
}
base_update_v20 = copy.deepcopy(base_update)
base_update_v20['properties']['server'][
update_v20 = copy.deepcopy(update)
update_v20['properties']['server'][
'properties']['name'] = parameter_types.name_with_leading_trailing_spaces
base_update_v219 = copy.deepcopy(base_update)
base_update_v219['properties']['server'][
update_v219 = copy.deepcopy(update)
update_v219['properties']['server'][
'properties']['description'] = parameter_types.description
base_rebuild = {
rebuild = {
'type': 'object',
'properties': {
'rebuild': {
@ -415,25 +407,24 @@ base_rebuild = {
'additionalProperties': False,
}
base_rebuild_v20 = copy.deepcopy(base_rebuild)
base_rebuild_v20['properties']['rebuild'][
rebuild_v20 = copy.deepcopy(rebuild)
rebuild_v20['properties']['rebuild'][
'properties']['name'] = parameter_types.name_with_leading_trailing_spaces
base_rebuild_v219 = copy.deepcopy(base_rebuild)
base_rebuild_v219['properties']['rebuild'][
rebuild_v219 = copy.deepcopy(rebuild)
rebuild_v219['properties']['rebuild'][
'properties']['description'] = parameter_types.description
base_rebuild_v254 = copy.deepcopy(base_rebuild_v219)
base_rebuild_v254['properties']['rebuild'][
rebuild_v254 = copy.deepcopy(rebuild_v219)
rebuild_v254['properties']['rebuild'][
'properties']['key_name'] = parameter_types.name_or_none
# 2.57 builds on 2.54 and makes the following changes:
# 1. Remove the personality parameter.
# 2. Add the user_data parameter which is nullable so user_data can be reset.
base_rebuild_v257 = copy.deepcopy(base_rebuild_v254)
base_rebuild_v257['properties']['rebuild']['properties'].pop('personality')
base_rebuild_v257['properties']['rebuild']['properties']['user_data'] = ({
rebuild_v257 = copy.deepcopy(rebuild_v254)
rebuild_v257['properties']['rebuild']['properties'].pop('personality')
rebuild_v257['properties']['rebuild']['properties']['user_data'] = ({
'oneOf': [
{'type': 'string', 'format': 'base64', 'maxLength': 65535},
{'type': 'null'}
@ -442,10 +433,11 @@ base_rebuild_v257['properties']['rebuild']['properties']['user_data'] = ({
# 2.63 builds on 2.57 and makes the following changes:
# Allowing adding trusted certificates to instances when rebuilding
base_rebuild_v263 = copy.deepcopy(base_rebuild_v257)
base_rebuild_v263['properties']['rebuild']['properties'][
rebuild_v263 = copy.deepcopy(rebuild_v257)
rebuild_v263['properties']['rebuild']['properties'][
'trusted_image_certificates'] = parameter_types.trusted_certs
resize = {
'type': 'object',
'properties': {
@ -480,7 +472,6 @@ create_image = {
'additionalProperties': False
}
create_image_v20 = copy.deepcopy(create_image)
create_image_v20['properties']['createImage'][
'properties']['name'] = parameter_types.name_with_leading_trailing_spaces

View File

@ -654,18 +654,18 @@ class ServersController(wsgi.Controller):
@wsgi.response(202)
@wsgi.expected_errors((400, 403, 409))
@validation.schema(schema_servers.base_create_v20, '2.0', '2.0')
@validation.schema(schema_servers.base_create, '2.1', '2.18')
@validation.schema(schema_servers.base_create_v219, '2.19', '2.31')
@validation.schema(schema_servers.base_create_v232, '2.32', '2.32')
@validation.schema(schema_servers.base_create_v233, '2.33', '2.36')
@validation.schema(schema_servers.base_create_v237, '2.37', '2.41')
@validation.schema(schema_servers.base_create_v242, '2.42', '2.51')
@validation.schema(schema_servers.base_create_v252, '2.52', '2.56')
@validation.schema(schema_servers.base_create_v257, '2.57', '2.62')
@validation.schema(schema_servers.base_create_v263, '2.63', '2.66')
@validation.schema(schema_servers.base_create_v267, '2.67', '2.73')
@validation.schema(schema_servers.base_create_v274, '2.74')
@validation.schema(schema_servers.create_v20, '2.0', '2.0')
@validation.schema(schema_servers.create, '2.1', '2.18')
@validation.schema(schema_servers.create_v219, '2.19', '2.31')
@validation.schema(schema_servers.create_v232, '2.32', '2.32')
@validation.schema(schema_servers.create_v233, '2.33', '2.36')
@validation.schema(schema_servers.create_v237, '2.37', '2.41')
@validation.schema(schema_servers.create_v242, '2.42', '2.51')
@validation.schema(schema_servers.create_v252, '2.52', '2.56')
@validation.schema(schema_servers.create_v257, '2.57', '2.62')
@validation.schema(schema_servers.create_v263, '2.63', '2.66')
@validation.schema(schema_servers.create_v267, '2.67', '2.73')
@validation.schema(schema_servers.create_v274, '2.74')
def create(self, req, body):
"""Creates a new server for a given user."""
context = req.environ['nova.context']
@ -883,9 +883,9 @@ class ServersController(wsgi.Controller):
self.compute_api.delete(context, instance)
@wsgi.expected_errors(404)
@validation.schema(schema_servers.base_update_v20, '2.0', '2.0')
@validation.schema(schema_servers.base_update, '2.1', '2.18')
@validation.schema(schema_servers.base_update_v219, '2.19')
@validation.schema(schema_servers.update_v20, '2.0', '2.0')
@validation.schema(schema_servers.update, '2.1', '2.18')
@validation.schema(schema_servers.update_v219, '2.19')
def update(self, req, id, body):
"""Update server then pass on to version-specific controller."""
@ -1116,12 +1116,12 @@ class ServersController(wsgi.Controller):
@wsgi.response(202)
@wsgi.expected_errors((400, 403, 404, 409))
@wsgi.action('rebuild')
@validation.schema(schema_servers.base_rebuild_v20, '2.0', '2.0')
@validation.schema(schema_servers.base_rebuild, '2.1', '2.18')
@validation.schema(schema_servers.base_rebuild_v219, '2.19', '2.53')
@validation.schema(schema_servers.base_rebuild_v254, '2.54', '2.56')
@validation.schema(schema_servers.base_rebuild_v257, '2.57', '2.62')
@validation.schema(schema_servers.base_rebuild_v263, '2.63')
@validation.schema(schema_servers.rebuild_v20, '2.0', '2.0')
@validation.schema(schema_servers.rebuild, '2.1', '2.18')
@validation.schema(schema_servers.rebuild_v219, '2.19', '2.53')
@validation.schema(schema_servers.rebuild_v254, '2.54', '2.56')
@validation.schema(schema_servers.rebuild_v257, '2.57', '2.62')
@validation.schema(schema_servers.rebuild_v263, '2.63')
def _action_rebuild(self, req, id, body):
"""Rebuild an instance with the given attributes."""
rebuild_dict = body['rebuild']