]> review.fuel-infra Code Review - openstack-build/neutron-build.git/commitdiff
Updates clear_db() to unregister models and close session.
authorIryoung Jeong <iryoung@gmail.com>
Thu, 15 Nov 2012 06:23:12 +0000 (15:23 +0900)
committerGary Kotton <gkotton@redhat.com>
Fri, 16 Nov 2012 02:27:19 +0000 (02:27 +0000)
fixes bug 1080988

This change fixes the bug by ensuring the metadata and session objects
are properly cleaned up by clear_db(). Using the proper calls reduces
the memory required by unit tests.

Change-Id: I1d1802b642eff83b7f96211608195afaf68e855a

quantum/db/api.py

index 4c0de4cdbff94f1f64648d432c94444bba16ba6f..cd3163340b41ce53fdbec26486d60f2b5f65b15c 100644 (file)
@@ -85,13 +85,15 @@ def configure_db(options):
 
 
 def clear_db(base=BASE):
-    global _ENGINE
+    global _ENGINE, _MAKER
     assert _ENGINE
-    for table in reversed(base.metadata.sorted_tables):
-        try:
-            _ENGINE.execute(table.delete())
-        except Exception as e:
-            LOG.info("Unable to delete table. %s.", e)
+
+    unregister_models(base)
+    if _MAKER:
+        _MAKER.close_all()
+        _MAKER = None
+    _ENGINE.dispose()
+    _ENGINE = None
 
 
 def get_session(autocommit=True, expire_on_commit=False):