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 _
|
from nova.i18n import _
|
||||||
import nova.image
|
import nova.image
|
||||||
|
|
||||||
ALIAS = 'image-metadata'
|
|
||||||
|
|
||||||
|
|
||||||
class ImageMetadataController(wsgi.Controller):
|
class ImageMetadataController(wsgi.Controller):
|
||||||
"""The image metadata API controller for the OpenStack API."""
|
"""The image metadata API controller for the OpenStack API."""
|
||||||
@ -134,36 +132,3 @@ class ImageMetadataController(wsgi.Controller):
|
|||||||
purge_props=True)
|
purge_props=True)
|
||||||
except exception.ImageNotAuthorized as e:
|
except exception.ImageNotAuthorized as e:
|
||||||
raise exc.HTTPForbidden(explanation=e.format_message())
|
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 hide_server_addresses
|
||||||
from nova.api.openstack.compute import hosts
|
from nova.api.openstack.compute import hosts
|
||||||
from nova.api.openstack.compute import hypervisors
|
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 image_size
|
||||||
from nova.api.openstack.compute import images
|
from nova.api.openstack.compute import images
|
||||||
from nova.api.openstack.compute import instance_actions
|
from nova.api.openstack.compute import instance_actions
|
||||||
@ -202,6 +203,11 @@ images_controller = functools.partial(
|
|||||||
[image_size.ImageSizeController], [])
|
[image_size.ImageSizeController], [])
|
||||||
|
|
||||||
|
|
||||||
|
image_metadata_controller = functools.partial(
|
||||||
|
_create_controller, image_metadata.ImageMetadataController,
|
||||||
|
[], [])
|
||||||
|
|
||||||
|
|
||||||
instance_actions_controller = functools.partial(_create_controller,
|
instance_actions_controller = functools.partial(_create_controller,
|
||||||
instance_actions.InstanceActionsController, [], [])
|
instance_actions.InstanceActionsController, [], [])
|
||||||
|
|
||||||
@ -391,6 +397,16 @@ ROUTE_LIST = (
|
|||||||
'GET': [images_controller, 'show'],
|
'GET': [images_controller, 'show'],
|
||||||
'DELETE': [images_controller, 'delete']
|
'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', {
|
('/limits', {
|
||||||
'GET': [limits_controller, 'index']
|
'GET': [limits_controller, 'index']
|
||||||
}),
|
}),
|
||||||
|
@ -76,7 +76,6 @@ wsgi_scripts =
|
|||||||
nova.api.v21.extensions =
|
nova.api.v21.extensions =
|
||||||
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
|
baremetal_nodes = nova.api.openstack.compute.baremetal_nodes:BareMetalNodes
|
||||||
extension_info = nova.api.openstack.compute.extension_info:ExtensionInfo
|
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_group_default_rules = nova.api.openstack.compute.security_group_default_rules:SecurityGroupDefaultRules
|
||||||
security_groups = nova.api.openstack.compute.security_groups:SecurityGroups
|
security_groups = nova.api.openstack.compute.security_groups:SecurityGroups
|
||||||
versions = nova.api.openstack.compute.versionsV21:Versions
|
versions = nova.api.openstack.compute.versionsV21:Versions
|
||||||
|
Loading…
x
Reference in New Issue
Block a user