Use plain routes list for image-metadata instead of stevedore
This patch adds image-metadata related routes by a plain list, instead of using stevedore. After all the Nova API endpoints moves to the plain routes list, the usage of stevedore for API loading will be removed from Nova. Partial-implement-blueprint api-no-more-extensions-pike Change-Id: I466d2e1693f56ee32fa32fd74789f88c1d0a1f7c
This commit is contained in:
parent
d0093c5cc3
commit
25e9b0129a
@ -27,8 +27,6 @@ from nova import exception
|
||||
from nova.i18n import _
|
||||
import nova.image
|
||||
|
||||
ALIAS = 'image-metadata'
|
||||
|
||||
|
||||
class ImageMetadataController(wsgi.Controller):
|
||||
"""The image metadata API controller for the OpenStack API."""
|
||||
@ -134,36 +132,3 @@ class ImageMetadataController(wsgi.Controller):
|
||||
purge_props=True)
|
||||
except exception.ImageNotAuthorized as e:
|
||||
raise exc.HTTPForbidden(explanation=e.format_message())
|
||||
|
||||
|
||||
class ImageMetadata(extensions.V21APIExtensionBase):
|
||||
"""Image Metadata API."""
|
||||
name = "ImageMetadata"
|
||||
alias = ALIAS
|
||||
version = 1
|
||||
|
||||
def get_resources(self):
|
||||
parent = {'member_name': 'image',
|
||||
'collection_name': 'images'}
|
||||
resources = [extensions.ResourceExtension('metadata',
|
||||
ImageMetadataController(),
|
||||
member_name='image_meta',
|
||||
parent=parent,
|
||||
custom_routes_fn=
|
||||
self.image_metadata_map
|
||||
)]
|
||||
return resources
|
||||
|
||||
def get_controller_extensions(self):
|
||||
return []
|
||||
|
||||
def image_metadata_map(self, mapper, wsgi_resource):
|
||||
mapper.connect("metadata",
|
||||
"/{project_id}/images/{image_id}/metadata",
|
||||
controller=wsgi_resource,
|
||||
action='update_all', conditions={"method": ['PUT']})
|
||||
# Also connect the non project_id route
|
||||
mapper.connect("metadata",
|
||||
"/images/{image_id}/metadata",
|
||||
controller=wsgi_resource,
|
||||
action='update_all', conditions={"method": ['PUT']})
|
||||
|
@ -53,6 +53,7 @@ from nova.api.openstack.compute import fping
|
||||
from nova.api.openstack.compute import hide_server_addresses
|
||||
from nova.api.openstack.compute import hosts
|
||||
from nova.api.openstack.compute import hypervisors
|
||||
from nova.api.openstack.compute import image_metadata
|
||||
from nova.api.openstack.compute import image_size
|
||||
from nova.api.openstack.compute import images
|
||||
from nova.api.openstack.compute import instance_actions
|
||||
@ -202,6 +203,11 @@ images_controller = functools.partial(
|
||||
[image_size.ImageSizeController], [])
|
||||
|
||||
|
||||
image_metadata_controller = functools.partial(
|
||||
_create_controller, image_metadata.ImageMetadataController,
|
||||
[], [])
|
||||
|
||||
|
||||
instance_actions_controller = functools.partial(_create_controller,
|
||||
instance_actions.InstanceActionsController, [], [])
|
||||
|
||||
@ -391,6 +397,16 @@ ROUTE_LIST = (
|
||||
'GET': [images_controller, 'show'],
|
||||
'DELETE': [images_controller, 'delete']
|
||||
}),
|
||||
('/images/{image_id}/metadata', {
|
||||
'GET': [image_metadata_controller, 'index'],
|
||||
'POST': [image_metadata_controller, 'create'],
|
||||
'PUT': [image_metadata_controller, 'update_all']
|
||||
}),
|
||||
('/images/{image_id}/metadata/{id}', {
|
||||
'GET': [image_metadata_controller, 'show'],
|
||||
'PUT': [image_metadata_controller, 'update'],
|
||||
'DELETE': [image_metadata_controller, 'delete']
|
||||
}),
|
||||
('/limits', {
|
||||
'GET': [limits_controller, 'index']
|
||||
}),
|
||||
|
@ -74,7 +74,6 @@ wsgi_scripts =
|
||||
nova.api.v21.extensions =
|
||||
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
|
||||
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
|
||||
image_metadata = nova.api.openstack.compute.image_metadata:ImageMetadata
|
||||
security_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules
|
||||
security_groups = nova.api.openstack.compute.security_groups:SecurityGroups
|
||||
versions = nova.api.openstack.compute.versionsV21:Versions
|
||||
|
Loading…
x
Reference in New Issue
Block a user