Merge "Use plain routes list for image-metadata instead of stevedore"
This commit is contained in:
commit
f5a07291ed
@ -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']
|
||||
}),
|
||||
|
@ -76,7 +76,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