[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