<div dir="ltr"><div><div><div>Hi ALL,<br><br></div><div>1. Problems :<br></div><span class="">   oslo_config provides method CONF.set_override[1] , developers usually use it to change config option's value in tests. That's convenient .<br></span></div><span class="">   By default  </span><span class="">parameter enforce_type=False,  it doesn't check any type or value of </span><span class=""><span class="">override</span>. I</span><span class="">f set enforce_type=True , will check parameter<br>   override's type and 
value.  In production code(running time code),  oslo_config</span><span class=""></span><span class="">  always checks  config option's value.<br></span></div><span class="">   In short, we test and run code in different ways.</span> so there's  gap:  config option with wrong type or invalid value can pass tests when<span class=""></span><div><span class=""></span><div><div class="" id="magicdomid6"><span class="">   parameter enforce_type = False in consuming projects.  that means some invalid or wrong tests are in our code base.</span></div><div class="" id="magicdomid7"><span class="">   There is nova POC result when I enable "enforce_type=true" [2],  and I must fix them in [3]</span></div><div class="" id="magicdomid8"><br></div><div class="" id="magicdomid9"><span class="">   [1] </span><span class=""><a href="https://github.com/openstack/oslo.config/blob/master/oslo_config/cfg.py#L2173">https://github.com/openstack/oslo.config/blob/master/oslo_config/cfg.py#L2173</a></span></div><div class="" id="magicdomid10"><span class="">   [2] </span><span class=""><a href="http://logs.openstack.org/16/242416/1/check/gate-nova-python27/97b5eff/testr_results.html.gz">http://logs.openstack.org/16/242416/1/check/gate-nova-python27/97b5eff/testr_results.html.gz</a></span></div><div class="" id="magicdomid11"><span class="">   [3]  </span><span class=""><a href="https://review.openstack.org/#/c/242416/">https://review.openstack.org/#/c/242416/</a></span><span class="">  </span><span class=""><a href="https://review.openstack.org/#/c/242717/">https://review.openstack.org/#/c/242717/</a></span><span class="">  </span><span class=""><a href="https://review.openstack.org/#/c/243061/">https://review.openstack.org/#/c/243061/</a></span></div><div class="" id="magicdomid12"><br></div><div class="" id="magicdomid13"><span class="">2. Proposal </span></div><div class="" id="magicdomid15"><span class="">   1) Make  method CONF.set_override with  enforce_type=True  in consuming projects. and  fix violations when  enforce_type=True in each project.</span></div><br><div class="" id="magicdomid19"><span class="">  2) Make  method CONF.set_override with  enforce_type=True by default in oslo_config</span></div><br></div><div>   Hope some one from consuming projects can help make  <span class=""> enforce_type=True in consuming projects and fix violations,<br><br>   You can find more details and comments  in  <a href="https://etherpad.openstack.org/p/enforce_type_true_by_default">https://etherpad.openstack.org/p/enforce_type_true_by_default</a><br></span></div><div><div><div><br><div>-- <br><div class="gmail_signature"><div dir="ltr"><div>ChangBo Guo(gcb)</div></div></div>
</div></div></div></div></div></div>