Delete a temporary volume in DB with admin context

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
This commit is contained in:
Masaki Kanno 2015-10-04 15:57:22 +09:00
parent 049497e824
commit 1f546af6ff
1 changed files with 2 additions and 1 deletions

View 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'})