]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Delete a temporary volume in DB with admin context
authorMasaki Kanno <kanno.masaki@jp.fujitsu.com>
Sun, 4 Oct 2015 06:57:22 +0000 (15:57 +0900)
committerMasaki Kanno <kanno.masaki@jp.fujitsu.com>
Sun, 4 Oct 2015 06:57:22 +0000 (15:57 +0900)
Non-disruptive backup creates a temporary volume. Information
of the volume will be deleted from DB if the volume cannot be
created by drivers. volume_destroy method is used in order to
delete the information. We must elevate the context to admin
context because the method requests admin context.

Change-Id: Ie5cd935cdd9e13c261708e504fa6fb2622a8aebb
Closes-Bug: 1502460

cinder/volume/driver.py

index fe45be1a2dee6cbbe4523be166e419ab7fd6196a..901f9450c7316b011595575d55f74b38fcb9cd6a 100644 (file)
@@ -1234,7 +1234,8 @@ class BaseVD(object):
             self.create_cloned_volume(temp_vol_ref, volume)
         except Exception:
             with excutils.save_and_reraise_exception():
-                self.db.volume_destroy(context, temp_vol_ref['id'])
+                self.db.volume_destroy(context.elevated(),
+                                       temp_vol_ref['id'])
 
         self.db.volume_update(context, temp_vol_ref['id'],
                               {'status': 'available'})