]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Fix backup import
authorlisali <xiaoyan.li@intel.com>
Mon, 7 Mar 2016 14:24:15 +0000 (14:24 +0000)
committerlisali <xiaoyan.li@intel.com>
Mon, 7 Mar 2016 14:39:05 +0000 (14:39 +0000)
During importing backup, Cinder finds out the backup
with same id, including deleted backup. There is problems
in current codes to get backup.

This patch is to transfer read_deleted parameter in
backup_get.

Change-Id: Ie13dfe5980b1c60b44e03267b88cfc056b30043b
Closes-bug: #1554055

cinder/db/sqlalchemy/api.py
cinder/tests/unit/test_db_api.py

index 1d78151892d7784d11ea30351303e87f6e216c34..10c5b39fbf2c14f35db8375d63b1dc85520d24ba 100644 (file)
@@ -3664,7 +3664,9 @@ def volume_glance_metadata_delete_by_snapshot(context, snapshot_id):
 
 @require_context
 def backup_get(context, backup_id, read_deleted=None, project_only=True):
-    return _backup_get(context, backup_id)
+    return _backup_get(context, backup_id,
+                       read_deleted=read_deleted,
+                       project_only=project_only)
 
 
 def _backup_get(context, backup_id, session=None, read_deleted=None,
index f96ced30fb791e9ce20a906bca11e513be27b272..87b658b623ec939b501c8e51ffb12a378c52d4e1 100644 (file)
@@ -26,8 +26,10 @@ from cinder import context
 from cinder import db
 from cinder.db.sqlalchemy import api as sqlalchemy_api
 from cinder import exception
+from cinder import objects
 from cinder import quota
 from cinder import test
+from cinder.tests.unit import fake_constants
 
 THREE = 3
 THREE_HUNDREDS = 300
@@ -2010,6 +2012,18 @@ class DBAPIBackupTestCase(BaseTest):
             backup_get = db.backup_get(self.ctxt, backup['id'])
             self._assertEqualObjects(backup, backup_get)
 
+    def test_backup_get_deleted(self):
+        backup_dic = {'user_id': 'user',
+                      'project_id': 'project',
+                      'volume_id': fake_constants.volume_id,
+                      'size': 1,
+                      'object_count': 1}
+        backup = objects.Backup(self.ctxt, **backup_dic)
+        backup.create()
+        backup.destroy()
+        backup_get = db.backup_get(self.ctxt, backup.id, read_deleted='yes')
+        self.assertEqual(backup.id, backup_get.id)
+
     def tests_backup_get_all(self):
         all_backups = db.backup_get_all(self.ctxt)
         self._assertEqualListsOfObjects(self.created, all_backups)