Fix wrong filter of backups in db api
The function _process_backups_filters aims to filter backups. So fix the model and metadata attribute. Change-Id: Ie6807745fa89731b9db3bc29da653db269219bce Closes-Bug: #1791003
This commit is contained in:
parent
9da2a3363b
commit
18570a716c
|
@ -5192,7 +5192,7 @@ def _process_backups_filters(query, filters):
|
|||
filters_dict = {}
|
||||
for key, value in filters.items():
|
||||
if key == 'metadata':
|
||||
col_attr = getattr(models.Snapshot, 'snapshot_metadata')
|
||||
col_attr = getattr(models.Backup, 'backup_metadata')
|
||||
for k, v in value.items():
|
||||
query = query.filter(col_attr.any(key=k, value=v))
|
||||
else:
|
||||
|
|
|
@ -2794,6 +2794,17 @@ class DBAPIBackupTestCase(BaseTest):
|
|||
filtered_backups = db.backup_get_all(self.ctxt, filters=filters)
|
||||
self._assertEqualListsOfObjects([], filtered_backups)
|
||||
|
||||
def tests_backup_get_all_by_filter_metadata(self):
|
||||
backups = self._get_values()
|
||||
for i in range(3):
|
||||
backup = backups[i]
|
||||
backup['metadata'] = {'fake_key': 'fake' + str(i)}
|
||||
created = [db.backup_create(self.ctxt, values)
|
||||
for values in backups]
|
||||
filters = {'metadata': created[1]['metadata']}
|
||||
filtered_backups = db.backup_get_all(self.ctxt, filters=filters)
|
||||
self.assertEqual(len([created[1]]), len(filtered_backups))
|
||||
|
||||
def test_backup_get_all_by_host(self):
|
||||
byhost = db.backup_get_all_by_host(self.ctxt,
|
||||
self.created[1]['host'])
|
||||
|
|
Loading…
Reference in New Issue