On 07/09/2013 12:46 PM, Thomas Goirand wrote:
On 07/08/2013 08:32 PM, Sean Dague wrote:
On 07/08/2013 04:50 AM, Mark McLoughlin wrote:
On Mon, 2013-07-08 at 15:53 +0800, Thomas Goirand wrote:
Hi,
Since python-sqlalchemy 0.8.2 has been uploaded to Sid, Quantum is
uninstallable there right now (see #715294).
I am wondering: what's wrong with sqlalchemy >= 0.8, so that it is
written explicitly in the requirements that we shouldn't use it? Is
there a chance that having such a version of sqlalchemy will make all of
OpenStack grizzly fail? What are the consequences? Would it be safe to
simply patch the requirements file and ignore this?
Don't really have a comment on the specifics, but ...
The history of the 0.8 cap was the fact that 0.8beta1 (or something
equiv) was uploaded near a freeze point. <0.8 didn't stop 0.8beta1 from
being used (go version numbers).
Also in 0.8 a piece was spun out as a separate library (I don't remember
exactly which), which causes some build fails. Because it was around a
freeze the cap was the right approach.
However, projects really should be getting themselves on 0.8 in the
Havana time frame. AFAIK it's really minor changes to work, so should be
a simple review to bump it up.
-Sean
Indeed, most projects seem to work with the new SQLAlchemy. Though heat
fails with a python crash dump:
File
"/home/zigo/sources/openstack/grizzly/heat/build-area/heat-2013.1.2/heat/db/sqlalchemy/models.py",
line 32, in <module>
class Json(types.TypeDecorator, types.MutableType):
AttributeError: 'module' object has no attribute 'MutableType'
Indeed, MutableType is gone in SQLAlchemy >= 0.8. I'm therefore unsure
what to do to fix the heat package in Sid... :(
Any help would be appreciated.
Yeah, someone who understands the Heat model code well needs to make
class Json no longer inherit from MutableType. I hope it would be
possible to do that in a backward-compatible way so it kept working with
SQLAlchemy 0.7 in addition to working with 0.8.
There's also a big problem with Cinder:
File "/usr/lib/python2.7/dist-packages/migrate/versioning/schema.py",
line 91, in runchange
change.run(self.engine, step)
File
"/usr/lib/python2.7/dist-packages/migrate/versioning/script/py.py", line
145, in run
script_func(engine)
File
"/root/src/cinder/build-area/cinder-2013.1.2/cinder/db/sqlalchemy/migrate_repo/versions/002_quota_class.py",
line 42, in upgrade
_warn_on_bytestring=False),
TypeError: __init__() got an unexpected keyword argument 'assert_unicode'
Unit tests aren't run at all, and cinder refuses to install (because I'm
doing the db_sync in the postinst, which fails).
Help there would also be appreciated.
AFAICT, these are the only packages affected by the SQLAlchemy upgrade.
Old openstack DB migrations contained a lot of "convert_unicode=True",
"unicode_error=None" and "_warn_on_bytestring=False" in the Column
creation code. Dan Prince removed these from the Nova migrations in
commit 93dec58156e , when he squashed all the migrations for Grizzly.
Other projects still have them here and there, and that appears to be
what is causing the above error.
I suspect, but haven't proven, that it's possible to get rid of them
(because Nova did) and that getting rid of them will fix this problem
(because Nova doesn't have the problem.) Note that we don't like to
modify database migrations because of compatibility concerns, so a
change like this would need to receive a extra review scrutiny to prove
it couldn't break anything.
I threw up a patch to excise these arguments from Cinder DB migrations.
https://review.openstack.org/36302 I will add some comments about how
scary this type of change is to the review.
--
David Ripton Red Hat [email protected]
_______________________________________________
OpenStack-dev mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev