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.
There is nova POC result when I enable "enforce_type=true" [2], and I must fix them in [3]
1. Problems : override[ 1] , developers usually use it to change config option's value in tests. That's convenient .
oslo_config provides method CONF.set_
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.
There is nova POC result when I enable "enforce_type=true" [2], and I must fix them in [3]
[1] https:/ /github. com/openstack/ oslo.config/ blob/master/ oslo_config/ cfg.py# L2173 logs.openstack. org/16/ 242416/ 1/check/ gate-nova- python27/ 97b5eff/ testr_results. html.gz /review. openstack. org/#/c/ 242416/ https:/ /review. openstack. org/#/c/ 242717/ https:/ /review. openstack. org/#/c/ 243061/
[2] http://
[3] https:/
2. Proposal
1) Make method CONF.set_override with enforce_type=True in consuming projects. and fix violations when enforce_type=True in each project.
2) Make method CONF.set_override with enforce_type=True by default in oslo_config
Hope some one from consuming projects can help make enforce_type=True in consuming projects and fix violations,
You can find more details and comments in https:/ /etherpad. openstack. org/p/enforce_ type_true_ by_default