I think this is a bug on frontend/afe/readonly_connection for a long time.
Maybe there is nobody really looked at it. In short, the readonly connection
never talked to the readonly databased based on global_config.ini 's
readonly db configuration.
This patch should fix it properly.
index 7d59aae..12d325d 100644 (file)
--- a/frontend/afe/readonly_connection.py
+++ b/frontend/afe/readonly_connection.py
@@ -1,4 +1,4 @@
-from django.db import connection as django_connection
+from django import db as django_db
from django.conf import settings
from django.core import signals
@@ -44,14 +44,14 @@ class ReadOnlyConnection(object):
def _save_django_state(self):
- self._old_connection = django_connection.connection
+ self._old_connection = django_db.connection.connection
self._old_host = settings.DATABASE_HOST
self._old_username = settings.DATABASE_USER
self._old_password = settings.DATABASE_PASSWORD
def _restore_django_state(self):
- django_connection.connection = self._old_connection
+ django_db.connection.connection = self._old_connection
settings.DATABASE_HOST = self._old_host
settings.DATABASE_USER = self._old_username
settings.DATABASE_PASSWORD = self._old_password
@@ -61,25 +61,25 @@ class ReadOnlyConnection(object):
settings.DATABASE_HOST = settings.DATABASE_READONLY_HOST
settings.DATABASE_USER = settings.DATABASE_READONLY_USER
settings.DATABASE_PASSWORD = settings.DATABASE_READONLY_PASSWORD
- django_connection.connection = None
+ reload(django_db)
# cursor() causes a new connection to be created
- cursor = django_connection.cursor()
- assert django_connection.connection is not None
- return django_connection.connection
+ cursor = django_db.connection.cursor()
+ assert django_db.connection.connection is not None
+ return django_db.connection.connection
def set_django_connection(self):
- assert (django_connection.connection != self._connection or
+ assert (django_db.connection.connection != self._connection or
self._connection is None)
self._open_connection()
- self._old_connection = django_connection.connection
- django_connection.connection = self._connection
+ self._old_connection = django_db.connection.connection
+ django_db.connection.connection = self._connection
def unset_django_connection(self):
assert self._connection is not None
- assert django_connection.connection == self._connection
- django_connection.connection = self._old_connection
+ assert django_db.connection.connection == self._connection
+ django_db.connection.connection = self._old_connection
def cursor(self):
@@ -89,7 +89,7 @@ class ReadOnlyConnection(object):
def close(self):
if self._connection is not None:
- assert django_connection != self._connection
+ assert django_db.connection != self._connection
self._connection.close()
self._connection = None
@@ -115,7 +115,7 @@ class DummyReadOnlyConnection(object):
def cursor(self):
- return django_connection.cursor()
+ return django_db.connection.cursor()
def close(self):
--
Eric Li
李咏竹
Google Kirkland
index 7d59aae..12d325d 100644 (file)
--- a/frontend/afe/readonly_connection.py
+++ b/frontend/afe/readonly_connection.py
@@ -1,4 +1,4 @@
-from django.db import connection as django_connection
+from django import db as django_db
from django.conf import settings
from django.core import signals
@@ -44,14 +44,14 @@ class ReadOnlyConnection(object):
def _save_django_state(self):
- self._old_connection = django_connection.connection
+ self._old_connection = django_db.connection.connection
self._old_host = settings.DATABASE_HOST
self._old_username = settings.DATABASE_USER
self._old_password = settings.DATABASE_PASSWORD
def _restore_django_state(self):
- django_connection.connection = self._old_connection
+ django_db.connection.connection = self._old_connection
settings.DATABASE_HOST = self._old_host
settings.DATABASE_USER = self._old_username
settings.DATABASE_PASSWORD = self._old_password
@@ -61,25 +61,25 @@ class ReadOnlyConnection(object):
settings.DATABASE_HOST = settings.DATABASE_READONLY_HOST
settings.DATABASE_USER = settings.DATABASE_READONLY_USER
settings.DATABASE_PASSWORD = settings.DATABASE_READONLY_PASSWORD
- django_connection.connection = None
+ reload(django_db)
# cursor() causes a new connection to be created
- cursor = django_connection.cursor()
- assert django_connection.connection is not None
- return django_connection.connection
+ cursor = django_db.connection.cursor()
+ assert django_db.connection.connection is not None
+ return django_db.connection.connection
def set_django_connection(self):
- assert (django_connection.connection != self._connection or
+ assert (django_db.connection.connection != self._connection or
self._connection is None)
self._open_connection()
- self._old_connection = django_connection.connection
- django_connection.connection = self._connection
+ self._old_connection = django_db.connection.connection
+ django_db.connection.connection = self._connection
def unset_django_connection(self):
assert self._connection is not None
- assert django_connection.connection == self._connection
- django_connection.connection = self._old_connection
+ assert django_db.connection.connection == self._connection
+ django_db.connection.connection = self._old_connection
def cursor(self):
@@ -89,7 +89,7 @@ class ReadOnlyConnection(object):
def close(self):
if self._connection is not None:
- assert django_connection != self._connection
+ assert django_db.connection != self._connection
self._connection.close()
self._connection = None
@@ -115,7 +115,7 @@ class DummyReadOnlyConnection(object):
def cursor(self):
- return django_connection.cursor()
+ return django_db.connection.cursor()
def close(self):
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest