# Pastebin 1iJcMF5N diff --git a/cinder/api/contrib/volume_actions.py b/cinder/api/contrib/volume_actions.py index 71123bf..dab7f53 100644 --- a/cinder/api/contrib/volume_actions.py +++ b/cinder/api/contrib/volume_actions.py @@ -75,6 +75,18 @@ class VolumeActionsController(wsgi.Controller): super(VolumeActionsController, self).__init__(*args, **kwargs) self.volume_api = volume.API() + @wsgi.Controller.api_version("2.0", "2.1") + def _attach_volume(self, req, context, volume, instance_uuid, host_name, + mountpoint, mode): + self.volume_api.attach(context, volume, instance_uuid, host_name, + mountpoint, mode, no_locks=False) + + @wsgi.Controller.api_version("2.2") + def _attach_volume(self, req, context, volume, instance_uuid, host_name, + mountpoint, mode): + self.volume_api.attach(context, volume, instance_uuid, host_name, + mountpoint, mode, no_locks=True) + @wsgi.action('os-attach') def _attach(self, req, id, body): """Add attachment metadata.""" @@ -115,9 +127,10 @@ class VolumeActionsController(wsgi.Controller): "Attaching mode should be 'rw' or 'ro'") raise webob.exc.HTTPBadRequest(explanation=msg) try: - self.volume_api.attach(context, volume, - instance_uuid, host_name, mountpoint, mode) + self._attach_volume(req, context, volume, instance_uuid, host_name, + mountpoint, mode):