Fix MySQL charset error.

If using MySQL, there's a bug with the charset setting which is declared as
a variable whereas it should be a string. This fixes bug #1092856 and adds
a test for this.

Change-Id: I76e19e2dd86f920aa7c9f792da7057d42ed3e9c9
This commit is contained in:
Brooklyn Chen 2012-12-25 20:02:49 +08:00
parent 29f5edad8e
commit 1ae26a4592
2 changed files with 8 additions and 3 deletions

View File

@ -42,7 +42,7 @@ def table_args():
engine_name = urlparse(cfg.CONF.database_connection).scheme
if engine_name == 'mysql':
return {'mysql_engine': cfg.CONF.mysql_engine,
'mysql_charset': utf8}
'mysql_charset': "utf8"}
return None

View File

@ -28,8 +28,8 @@ from ceilometer import counter
from ceilometer import storage
from ceilometer.openstack.common import cfg
from ceilometer.storage import impl_sqlalchemy
from ceilometer.storage.sqlalchemy.models import Meter, Project, Resource
from ceilometer.storage.sqlalchemy.models import User
from ceilometer.storage.sqlalchemy.models import Meter, Project, Resource, User
from ceilometer.storage.sqlalchemy.models import table_args
LOG = logging.getLogger(__name__)
@ -721,3 +721,8 @@ class MaxResourceTest(SQLAlchemyEngineSubBase):
results = list(self.conn.get_volume_max(f))
assert results == expected
def test_model_table_args():
cfg.CONF.database_connection = 'mysql://localhost'
assert table_args()