<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>