diff --git a/nova/api/openstack/compute/routes.py b/nova/api/openstack/compute/routes.py index 3b45823b79..12eaa8dad7 100644 --- a/nova/api/openstack/compute/routes.py +++ b/nova/api/openstack/compute/routes.py @@ -350,6 +350,10 @@ server_tags_controller = functools.partial(_create_controller, server_tags.ServerTagsController, [], []) +server_volume_attachments_controller = functools.partial(_create_controller, + volumes.VolumeAttachmentController, [], []) + + services_controller = functools.partial(_create_controller, services.ServiceController, [], []) @@ -800,6 +804,15 @@ ROUTE_LIST = ( ('/servers/{server_id}/os-virtual-interfaces', { 'GET': [virtual_interfaces_controller, 'index'] }), + ('/servers/{server_id}/os-volume_attachments', { + 'GET': [server_volume_attachments_controller, 'index'], + 'POST': [server_volume_attachments_controller, 'create'], + }), + ('/servers/{server_id}/os-volume_attachments/{id}', { + 'GET': [server_volume_attachments_controller, 'show'], + 'PUT': [server_volume_attachments_controller, 'update'], + 'DELETE': [server_volume_attachments_controller, 'delete'] + }), ('/servers/{server_id}/remote-consoles', { 'POST': [server_remote_consoles_controller, 'create'] }), diff --git a/nova/api/openstack/compute/volumes.py b/nova/api/openstack/compute/volumes.py index 107b9e634e..2a50d1704b 100644 --- a/nova/api/openstack/compute/volumes.py +++ b/nova/api/openstack/compute/volumes.py @@ -602,13 +602,6 @@ class Volumes(extensions.V21APIExtensionBase): def get_resources(self): resources = [] - res = extensions.ResourceExtension('os-volume_attachments', - VolumeAttachmentController(), - parent=dict( - member_name='server', - collection_name='servers')) - resources.append(res) - res = extensions.ResourceExtension( 'os-snapshots', SnapshotController(), collection_actions={'detail': 'GET'})