Reviewed: https://review.openstack.org/365569 Committed: https://git.openstack.org/cgit/openstack/karbor/commit/?id=97ac0819756fe0a37efeaa32521f0964f5e1f5ac Submitter: Jenkins Branch: master
commit 97ac0819756fe0a37efeaa32521f0964f5e1f5ac Author: Ji-Wei <ji.w...@zte.com.cn> Date: Mon Sep 5 20:28:10 2016 +0800 test: make enforce_type=True in CONF.set_override Each config option has limitation for type and value. In production code, oslo.conf can ensure user's input is valid, but in unit test, test methods can pass if we use method CONF.set_override without parameter enforce_type=True even we pass wrong type or wrong value to config option. This commit makes sure calling method CONF.set_override with enforce_type=True Change-Id: I2ec6f354e43ccbe5e9f0e3907d558673ac88c860 Closes-Bug: #1517839 ** Changed in: karbor 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 Aodh: In Progress Status in Ceilometer: In Progress 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 glance_store: In Progress Status in Gnocchi: In Progress Status in heat: Fix Released Status in Ironic: Triaged Status in Karbor: Fix Released Status in OpenStack Identity (keystone): Fix Released Status in kolla: New Status in Magnum: New 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: In Progress Status in oslo.messaging: Fix Released Status in Panko: In Progress Status in Quark: Money Reinvented: New Status in Rally: Fix Released Status in senlin: New 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/aodh/+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