Merge "Use plain routes list for server-metadata endpoint instead of stevedore"
This commit is contained in:
@@ -206,7 +206,10 @@ hardcoded_extensions = [
|
||||
'alias': 'os-floating-ips'},
|
||||
{'name': 'Keypairs',
|
||||
'description': 'Keypair Support.',
|
||||
'alias': 'os-keypairs'}
|
||||
'alias': 'os-keypairs'},
|
||||
{'name': 'ServerMetadata',
|
||||
'description': 'Server metadata Support.',
|
||||
'alias': 'server-metadata'},
|
||||
]
|
||||
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ from nova.api.openstack.compute import pause_server
|
||||
from nova.api.openstack.compute import remote_consoles
|
||||
from nova.api.openstack.compute import rescue
|
||||
from nova.api.openstack.compute import security_groups
|
||||
from nova.api.openstack.compute import server_metadata
|
||||
from nova.api.openstack.compute import server_usage
|
||||
from nova.api.openstack.compute import servers
|
||||
from nova.api.openstack.compute import shelve
|
||||
@@ -139,6 +140,9 @@ server_controller = functools.partial(_create_controller,
|
||||
)
|
||||
|
||||
|
||||
server_metadata_controller = functools.partial(_create_controller,
|
||||
server_metadata.ServerMetadataController, [], [])
|
||||
|
||||
# NOTE(alex_xu): This is structure of this route list as below:
|
||||
# (
|
||||
# ('Route path': {
|
||||
@@ -240,7 +244,17 @@ ROUTE_LIST = (
|
||||
}),
|
||||
('/servers/{id}/action', {
|
||||
'POST': [server_controller, 'action']
|
||||
})
|
||||
}),
|
||||
('/servers/{server_id}/metadata', {
|
||||
'GET': [server_metadata_controller, 'index'],
|
||||
'POST': [server_metadata_controller, 'create'],
|
||||
'PUT': [server_metadata_controller, 'update_all'],
|
||||
}),
|
||||
('/servers/{server_id}/metadata/{id}', {
|
||||
'GET': [server_metadata_controller, 'show'],
|
||||
'PUT': [server_metadata_controller, 'update'],
|
||||
'DELETE': [server_metadata_controller, 'delete'],
|
||||
}),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -26,8 +26,6 @@ from nova import exception
|
||||
from nova.i18n import _
|
||||
from nova.policies import server_metadata as sm_policies
|
||||
|
||||
ALIAS = 'server-metadata'
|
||||
|
||||
|
||||
class ServerMetadataController(wsgi.Controller):
|
||||
"""The server metadata API controller for the OpenStack API."""
|
||||
@@ -163,36 +161,3 @@ class ServerMetadataController(wsgi.Controller):
|
||||
except exception.InstanceInvalidState as state_error:
|
||||
common.raise_http_conflict_for_instance_invalid_state(state_error,
|
||||
'delete metadata', server_id)
|
||||
|
||||
|
||||
class ServerMetadata(extensions.V21APIExtensionBase):
|
||||
"""Server Metadata API."""
|
||||
name = "ServerMetadata"
|
||||
alias = ALIAS
|
||||
version = 1
|
||||
|
||||
def get_resources(self):
|
||||
parent = {'member_name': 'server',
|
||||
'collection_name': 'servers'}
|
||||
resources = [extensions.ResourceExtension('metadata',
|
||||
ServerMetadataController(),
|
||||
member_name='server_meta',
|
||||
parent=parent,
|
||||
custom_routes_fn=
|
||||
self.server_metadata_map
|
||||
)]
|
||||
return resources
|
||||
|
||||
def get_controller_extensions(self):
|
||||
return []
|
||||
|
||||
def server_metadata_map(self, mapper, wsgi_resource):
|
||||
mapper.connect("metadata",
|
||||
"/{project_id}/servers/{server_id}/metadata",
|
||||
controller=wsgi_resource,
|
||||
action='update_all', conditions={"method": ['PUT']})
|
||||
# Also connect the non project_id routes
|
||||
mapper.connect("metadata",
|
||||
"/servers/{server_id}/metadata",
|
||||
controller=wsgi_resource,
|
||||
action='update_all', conditions={"method": ['PUT']})
|
||||
|
||||
@@ -109,7 +109,6 @@ nova.api.v21.extensions =
|
||||
security_groups = nova.api.openstack.compute.security_groups:SecurityGroups
|
||||
server_diagnostics = nova.api.openstack.compute.server_diagnostics:ServerDiagnostics
|
||||
server_external_events = nova.api.openstack.compute.server_external_events:ServerExternalEvents
|
||||
server_metadata = nova.api.openstack.compute.server_metadata:ServerMetadata
|
||||
server_migrations = nova.api.openstack.compute.server_migrations:ServerMigrations
|
||||
server_password = nova.api.openstack.compute.server_password:ServerPassword
|
||||
server_tags = nova.api.openstack.compute.server_tags:ServerTags
|
||||
|
||||
Reference in New Issue
Block a user