diff --git a/manila/db/sqlalchemy/api.py b/manila/db/sqlalchemy/api.py index 0790b62626..349aa5df14 100644 --- a/manila/db/sqlalchemy/api.py +++ b/manila/db/sqlalchemy/api.py @@ -6450,6 +6450,11 @@ def purge_deleted_records(context, age_in_days): metadata = MetaData() metadata.reflect(get_engine()) + tables = metadata.sorted_tables + if not tables: + msg = 'No tables found, check database connection' + raise exception.InvalidResults(msg) + deleted_age = timeutils.utcnow() - datetime.timedelta(days=age_in_days) # Deleting rows in share_network_security_service_association @@ -6464,7 +6469,7 @@ def purge_deleted_records(context, age_in_days): with context.session.begin_nested(): context.session.delete(assoc) - for table in reversed(metadata.sorted_tables): + for table in reversed(tables): if 'deleted' not in table.columns.keys(): continue diff --git a/releasenotes/notes/bug-2124043-db-purge-raise-on-missing-tables-22eb3c30ee2ab29c.yaml b/releasenotes/notes/bug-2124043-db-purge-raise-on-missing-tables-22eb3c30ee2ab29c.yaml new file mode 100644 index 0000000000..5ad60dd1f4 --- /dev/null +++ b/releasenotes/notes/bug-2124043-db-purge-raise-on-missing-tables-22eb3c30ee2ab29c.yaml @@ -0,0 +1,6 @@ +--- +fixes: + - | + Purge DB records is fixed to raise error in case of missing or invalid + db config. For more details, please check + `launchpad bug #2124043 `_