[openstack-dev] Recent oslo.config/Quantum changes [was Re: For those using Quantum with devstack]
Mark McLoughlin
markmc at redhat.com
Thu May 23 11:28:27 UTC 2013
Hey
Let me try and summarize a few things about this:
- a change went into oslo.config master (what will be 1.2.0) to
normalize config file section names to lowercase
the compat concerns are pretty subtle here:
1) the only way this change would have (intentionally) caused
breakage is where a project was doing something like this:
[foo]
bar = blaa
[FOO]
bar = boo
and expected to see CONF.foo == blaa and CONF.FOO.bar == boo.
That's incredibly unlikely, but if it turns out that a project
was doing that, we will have to revert the change. That's why
we don't publish dev release to pypi - we want to give
ourselves a chance to find these issues on the dev branch
before breaking stable pypi-based deployments. Again, I
sincerely doubt this case is going to be a problem.
2) there was some confusion in Quantum and some interpreted this
change as meaning that they would need to replace e.g. CONF.OVS
to CONF.ovs in the codebase in order to upgrade to latest
oslo.config.
If that was true, this would have been a massively
incompatible change and would completely hose Grizzly
deployments if you upgraded oslo.config. All the noise I make
about API compatibility is about avoiding that exact situation.
We do not (intentionally) make those kind of incompatible
changes in oslo.config.
In order to change the case of the references in the code
base, you have to explicitly opt-in by doing:
-CONF.register_opts(opts, group='OVS')
+CONF.register_opts(opts, group='ovs')
and you can do that group-by-group.
Summary: Quantum could have upgraded to latest oslo.config
with *zero* code changes.
3) we did actually make an incompatible change to a part of the
oslo.config API that we thought no-one was using. As soon as
it became apparent that one of the Quantum drivers was using
it, we jumped on the issue and restored the previous API
semantics:
https://review.openstack.org/30250
- These changes to Quantum:
b8b2c4e Reference OVS OptGoup names in lowercase
2f13345 Reference DEFAULT_SERVICETYPE OptGoup names in lowercase
362bd7f Reference QUOTA OptGoup names in lowercase
require latest oslo.config. They should not have been merged before
we changed pip-requires to use the latest oslo.config:
https://review.openstack.org/30094
I don't fully understand yet how these changes got through the gate
before the newer version of oslo.config was even available.
- I've tagged oslo.config-1.2.0a1 yesterday and I'll tag 1.2.0a2
later today hopefully. The 1.2.0 release won't be pushed to pypi
until Havana is almost ready to be released. This is to give us a
chance to catch issues like the MultiConfigParser breakage above.
In the meantime, all Havana development and testing should be using
the oslo.config 1.2.0 branch (i.e. master) - currently the only way
we have of doing that is to update each project's pip-requires file
to point to the oslo.config tarball on tarballs.openstack.org
Hope that helps,
Mark.
More information about the OpenStack-dev
mailing list