← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1517839] Re: Make CONF.set_override with parameter enforce_type=True by default

 

Reviewed:  https://review.openstack.org/328692
Committed: https://git.openstack.org/cgit/openstack/oslo.config/commit/?id=3a8ba0f8ea5a691cc0cb4cd83f07feb26b4d1267
Submitter: Jenkins
Branch:    master

commit 3a8ba0f8ea5a691cc0cb4cd83f07feb26b4d1267
Author: ChangBo Guo(gcb) <eric.guo@xxxxxxxxxxxx>
Date:   Sun Jun 12 13:18:05 2016 +0800

    Make set_override/set_default with enforce_type=True by default
    
    Consuming projects usually  don't set enforce_type=True by default,
    and that will lead some invalid tests which don't honour Config options'
    type and value limits. We began to warn user about the change since Sep,
    2016 in I438aeb766d663dbfe5dbd263fd166c25814204e8. This change will
    notify consuming project to write correct test cases with config
    options.
    
    This commit also fixes violations in oslo.config test:
    config option 'namespace' is MultiStrOpt, need pass list
    to conf.set_default().
    
    Closes-Bug: #1517839
    
    Change-Id: Ifa552de0a994e40388cbc9f7dbaa55700ca276b0


** Changed in: oslo.config
       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 Cinder:
  In Progress
Status in cloudkitty:
  Fix Released
Status in Designate:
  Fix Released
Status in Freezer:
  In Progress
Status in Glance:
  Invalid
Status in heat:
  Fix Released
Status in Ironic:
  Triaged
Status in Karbor:
  Fix Released
Status in OpenStack Identity (keystone):
  Fix Released
Status in kolla:
  Confirmed
Status in Magnum:
  In Progress
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:
  Fix Released
Status in oslo.messaging:
  Fix Released
Status in Quark: Money Reinvented:
  New
Status in Rally:
  Fix Released
Status in senlin:
  Fix Released
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/cinder/+bug/1517839/+subscriptions