when use db2 as the database, ceilometer-dbsync can not work with sqlalchemy

Bug #1225914 reported by Chen Xiao
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ceilometer
Won't Fix
Low
Unassigned

Bug Description

After creating a db2 database
then config ceilometer.conf
 sql_connection = ibm_db_sa://stack:password@$IP:50000/stack?charset=utf8

ceilometer-dbsync
2013-09-06 01:35:26.157 27539 CRITICAL ceilometer [-] No 'ceilometer.storage' driver found, looking for ''
2013-09-06 01:35:26.157 27539 TRACE ceilometer Traceback (most recent call last):
2013-09-06 01:35:26.157 27539 TRACE ceilometer File "/usr/bin/ceilometer-dbsync", line 10, in <module>
2013-09-06 01:35:26.157 27539 TRACE ceilometer sys.exit(dbsync())
2013-09-06 01:35:26.157 27539 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/__init__.py", line 141, in dbsync
2013-09-06 01:35:26.157 27539 TRACE ceilometer get_connection(cfg.CONF).upgrade()
2013-09-06 01:35:26.157 27539 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/__init__.py", line 83, in get_connection
2013-09-06 01:35:26.157 27539 TRACE ceilometer return get_engine(conf).get_connection(conf)
2013-09-06 01:35:26.157 27539 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/__init__.py", line 77, in get_engine
2013-09-06 01:35:26.157 27539 TRACE ceilometer invoke_on_load=True)
2013-09-06 01:35:26.157 27539 TRACE ceilometer File "/usr/lib/python2.6/site-packages/stevedore/driver.py", line 35, in __init__
2013-09-06 01:35:26.157 27539 TRACE ceilometer (namespace, name))
2013-09-06 01:35:26.157 27539 TRACE ceilometer RuntimeError: No 'ceilometer.storage' driver found, looking for ''
2013-09-06 01:35:26.157 27539 TRACE ceilometer

For get the engine_name, I comment 'engine_name = urlparse.urlparse(conf.database.connection).scheme' , and add 'engine_name ='ibm_db_sa' ' in usr/lib/python2.6/site-packages/ceilometer/storage/__init__.py,

Then modify entry_points.txt
Add ibm_db_sa = ceilometer.storage.impl_sqlalchemy:SQLAlchemyStorage at the last

then execute ceilometer-dbsync

2013-09-09 04:50:03.517 21830 INFO migrate.versioning.api [-] 0 -> 1...
2013-09-09 04:50:03.962 21830 CRITICAL ceilometer [-] ibm_db_dbi::Warning: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXZ64] SQL0605W The index was not created because an index "SYSIBM.SQL130909045003830" with a matching definition already exists. SQLSTATE=01550 SQLCODE=605
2013-09-09 04:50:03.962 21830 TRACE ceilometer Traceback (most recent call last):
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/bin/ceilometer-dbsync", line 10, in <module>
2013-09-09 04:50:03.962 21830 TRACE ceilometer sys.exit(dbsync())
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/__init__.py", line 140, in dbsync
2013-09-09 04:50:03.962 21830 TRACE ceilometer get_connection(cfg.CONF).upgrade()
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/impl_sqlalchemy.py", line 152, in upgrade
2013-09-09 04:50:03.962 21830 TRACE ceilometer migration.db_sync(session.get_bind())
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/sqlalchemy/migration.py", line 68, in db_sync
2013-09-09 04:50:03.962 21830 TRACE ceilometer versioning_api.upgrade(engine, repository)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/migrate/versioning/api.py", line 186, in upgrade
2013-09-09 04:50:03.962 21830 TRACE ceilometer return _migrate(url, repository, version, upgrade=True, err=err, **opts)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "<string>", line 2, in _migrate
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/sqlalchemy/migration.py", line 42, in patched_with_engine
2013-09-09 04:50:03.962 21830 TRACE ceilometer return f(*a, **kw)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/migrate/versioning/api.py", line 366, in _migrate
2013-09-09 04:50:03.962 21830 TRACE ceilometer schema.runchange(ver, change, changeset.step)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/migrate/versioning/schema.py", line 91, in runchange
2013-09-09 04:50:03.962 21830 TRACE ceilometer change.run(self.engine, step)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/migrate/versioning/script/py.py", line 145, in run
2013-09-09 04:50:03.962 21830 TRACE ceilometer script_func(engine)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ceilometer/storage/sqlalchemy/migrate_repo/versions/001_add_meter_table.py", line 90, in upgrade
2013-09-09 04:50:03.962 21830 TRACE ceilometer i.create()
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/schema.py", line 593, in create
2013-09-09 04:50:03.962 21830 TRACE ceilometer checkfirst=checkfirst)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 2302, in _run_visitor
2013-09-09 04:50:03.962 21830 TRACE ceilometer conn._run_visitor(visitorcallable, element, **kwargs)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1972, in _run_visitor
2013-09-09 04:50:03.962 21830 TRACE ceilometer **kwargs).traverse_single(element)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/sql/visitors.py", line 106, in traverse_single
2013-09-09 04:50:03.962 21830 TRACE ceilometer return meth(obj, **kw)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/ddl.py", line 90, in visit_table
2013-09-09 04:50:03.962 21830 TRACE ceilometer self.traverse_single(index)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/sql/visitors.py", line 106, in traverse_single
2013-09-09 04:50:03.962 21830 TRACE ceilometer return meth(obj, **kw)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/ddl.py", line 102, in visit_index
2013-09-09 04:50:03.962 21830 TRACE ceilometer self.connection.execute(schema.CreateIndex(index))
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1449, in execute
2013-09-09 04:50:03.962 21830 TRACE ceilometer params)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1542, in _execute_ddl
2013-09-09 04:50:03.962 21830 TRACE ceilometer compiled
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/sqlalchemy/engine/base.py", line 1691, in _execute_context
2013-09-09 04:50:03.962 21830 TRACE ceilometer context)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib/python2.6/site-packages/ibm_db_sa/ibm_db.py", line 104, in do_execute
2013-09-09 04:50:03.962 21830 TRACE ceilometer cursor.execute(statement, parameters)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/ibm_db_dbi.py", line 1332, in execute
2013-09-09 04:50:03.962 21830 TRACE ceilometer self._execute_helper(parameters)
2013-09-09 04:50:03.962 21830 TRACE ceilometer File "/usr/lib64/python2.6/site-packages/ibm_db_dbi.py", line 1244, in _execute_helper
2013-09-09 04:50:03.962 21830 TRACE ceilometer raise self.messages[len(self.messages) - 1]
2013-09-09 04:50:03.962 21830 TRACE ceilometer Warning: ibm_db_dbi::Warning: Statement Execute Failed: [IBM][CLI Driver][DB2/LINUXZ64] SQL0605W The index was not created because an index "SYSIBM.SQL130909045003830" with a matching definition already exists. SQLSTATE=01550 SQLCODE=605
2013-09-09 04:50:03.962 21830 TRACE ceilometer

and I can see another problem like the error when change the type of some column.

Chen Xiao (chenxiao)
Changed in ceilometer:
assignee: nobody → Chen Xiao (chenxiao)
status: New → In Progress
Julien Danjou (jdanjou)
Changed in ceilometer:
milestone: none → havana-rc1
importance: Undecided → Medium
milestone: havana-rc1 → none
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ceilometer (master)

Fix proposed to branch: master
Review: https://review.openstack.org/46974

Revision history for this message
gordon chung (chungg) wrote :

i assume this is still a bug and just requires a new entry in setup.cfg to catch ibm_db2?

Changed in ceilometer:
status: In Progress → Triaged
importance: Medium → Low
assignee: Chen Xiao (chenxiao) → nobody
Revision history for this message
gordon chung (chungg) wrote :

trivial fix but db2 is not something we're targetting

Changed in ceilometer:
status: Triaged → Won't Fix
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.