Comment 0 for bug 1517839

Revision history for this message
ChangBo Guo(gcb) (glongwave) wrote : Make CONF.set_override with paramter enforce_type=True by default

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] https://github.com/openstack/oslo.config/blob/master/oslo_config/cfg.py#L2173
   [2] http://logs.openstack.org/16/242416/1/check/gate-nova-python27/97b5eff/testr_results.html.gz
   [3] https://review.openstack.org/#/c/242416/ https://review.openstack.org/#/c/242717/ https://review.openstack.org/#/c/243061/

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