Reviewed: https://review.openstack.org/328692 Committed: https://git.openstack.org/cgit/openstack/oslo.config/commit/?id=3a8ba0f8ea5a691cc0cb4cd83f07feb26b4d1267 Submitter: Jenkins Branch: master
commit 3a8ba0f8ea5a691cc0cb4cd83f07feb26b4d1267 Author: ChangBo Guo(gcb) <eric....@easystack.cn> Date: Sun Jun 12 13:18:05 2016 +0800 Make set_override/set_default with enforce_type=True by default Consuming projects usually don't set enforce_type=True by default, and that will lead some invalid tests which don't honour Config options' type and value limits. We began to warn user about the change since Sep, 2016 in I438aeb766d663dbfe5dbd263fd166c25814204e8. This change will notify consuming project to write correct test cases with config options. This commit also fixes violations in oslo.config test: config option 'namespace' is MultiStrOpt, need pass list to conf.set_default(). Closes-Bug: #1517839 Change-Id: Ifa552de0a994e40388cbc9f7dbaa55700ca276b0 ** Changed in: oslo.config Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to neutron. https://bugs.launchpad.net/bugs/1517839 Title: Make CONF.set_override with parameter enforce_type=True by default Status in Cinder: In Progress Status in cloudkitty: Fix Released Status in Designate: Fix Released Status in Freezer: In Progress Status in Glance: Invalid Status in heat: Fix Released Status in Ironic: Triaged Status in Karbor: Fix Released Status in OpenStack Identity (keystone): Fix Released Status in kolla: Confirmed Status in Magnum: In Progress Status in Manila: Fix Released Status in Murano: Fix Released Status in neutron: Won't Fix Status in OpenStack Compute (nova): Fix Released Status in octavia: New Status in oslo.config: Fix Released Status in oslo.messaging: Fix Released Status in Quark: Money Reinvented: New Status in Rally: Fix Released Status in senlin: Fix Released Status in tacker: In Progress Status in watcher: Fix Released Bug description: 1. Problems : oslo_config provides method CONF.set_override[1] , developers usually use it to change config option's value in tests. That's convenient . By default parameter enforce_type=False, it doesn't check any type or value of override. If set enforce_type=True , will check parameter override's type and value. In production code(running time code), oslo_config always checks config option's value. In short, we test and run code in different ways. so there's gap: config option with wrong type or invalid value can pass tests when parameter enforce_type = False in consuming projects. that means some invalid or wrong tests are in our code base. [1] https://github.com/openstack/oslo.config/blob/master/oslo_config/cfg.py#L2173 2. Proposal 1) Fix violations when enforce_type=True in each project. 2) Make method CONF.set_override with enforce_type=True by default in oslo_config You can find more details and comments in https://etherpad.openstack.org/p/enforce_type_true_by_default 3. How to find violations in your projects. 1. Run tox -e py27 2. then modify oslo.config with enforce_type=True cd .tox/py27/lib64/python2.7/site-packages/oslo_config edit cfg.py with enforce_type=True - def set_override(self, name, override, group=None, enforce_type=False): + def set_override(self, name, override, group=None, enforce_type=True): 3. Run tox -e py27 again, you will find violations. To manage notifications about this bug go to: https://bugs.launchpad.net/cinder/+bug/1517839/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp