You missed Tempest. Excerpt from RDO trunk logs (which uses the master branch 
of oslo.config, not the released version like - iirc - tox):
https://trunk.rdoproject.org/centos7-master-head/64/55/6455980e71abd2300f3ef15400593f479122de83_f98deee5/rpmbuild.log

DEBUG: FAIL: 
tempest.tests.test_config.TestServiceClientConfig.test_service_client_config_no_service
DEBUG: tags: worker-7
DEBUG: ----------------------------------------------------------------------
DEBUG: Empty attachments:
DEBUG:   stderr
DEBUG:   stdout
DEBUG: Traceback (most recent call last):
DEBUG:   File "tempest/tests/test_config.py", line 32, in setUp
DEBUG:     self.useFixture(fake_config.ServiceClientsConfigFixture())
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
679, in useFixture
DEBUG:     reraise(*exc_info)
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
666, in useFixture
DEBUG:     fixture.setUp()
DEBUG:   File "tempest/tests/fake_config.py", line 97, in setUp
DEBUG:     self.conf.set_default('v3_endpoint_type', 'fake_v3_uri', 'identity')
DEBUG:   File "/usr/lib/python2.7/site-packages/debtcollector/removals.py", 
line 261, in wrapper
DEBUG:     return f(*args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2312, 
in __inner
DEBUG:     result = f(self, *args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2659, 
in set_default
DEBUG:     opt_info['opt'], default, enforce_type)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2665, 
in _get_enforced_type_value
DEBUG:     converted = self._convert_value(value, opt)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2943, 
in _convert_value
DEBUG:     return opt.type(value)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/types.py", line 
156, in __call__
DEBUG:     repr(value)))
DEBUG: ValueError: Valid values are [public, admin, internal, publicURL, 
adminURL, internalURL], but found 'fake_v3_uri'
DEBUG: ======================================================================
DEBUG: FAIL: 
tempest.tests.test_config.TestServiceClientConfig.test_service_client_config_service_all
DEBUG: tags: worker-7
DEBUG: ----------------------------------------------------------------------
DEBUG: Empty attachments:
DEBUG:   stderr
DEBUG:   stdout
DEBUG: Traceback (most recent call last):
DEBUG:   File "tempest/tests/test_config.py", line 32, in setUp
DEBUG:     self.useFixture(fake_config.ServiceClientsConfigFixture())
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
679, in useFixture
DEBUG:     reraise(*exc_info)
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
666, in useFixture
DEBUG:     fixture.setUp()
DEBUG:   File "tempest/tests/fake_config.py", line 97, in setUp
DEBUG:     self.conf.set_default('v3_endpoint_type', 'fake_v3_uri', 'identity')
DEBUG:   File "/usr/lib/python2.7/site-packages/debtcollector/removals.py", 
line 261, in wrapper
DEBUG:     return f(*args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2312, 
in __inner
DEBUG:     result = f(self, *args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2659, 
in set_default
DEBUG:     opt_info['opt'], default, enforce_type)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2665, 
in _get_enforced_type_value
DEBUG:     converted = self._convert_value(value, opt)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2943, 
in _convert_value
DEBUG:     return opt.type(value)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/types.py", line 
156, in __call__
DEBUG:     repr(value)))
DEBUG: ValueError: Valid values are [public, admin, internal, publicURL, 
adminURL, internalURL], but found 'fake_v3_uri'
DEBUG: ======================================================================
DEBUG: FAIL: 
tempest.tests.test_config.TestServiceClientConfig.test_service_client_config_service_minimal
DEBUG: tags: worker-7
DEBUG: ----------------------------------------------------------------------
DEBUG: Empty attachments:
DEBUG:   stderr
DEBUG:   stdout
DEBUG: Traceback (most recent call last):
DEBUG:   File "tempest/tests/test_config.py", line 32, in setUp
DEBUG:     self.useFixture(fake_config.ServiceClientsConfigFixture())
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
679, in useFixture
DEBUG:     reraise(*exc_info)
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
666, in useFixture
DEBUG:     fixture.setUp()
DEBUG:   File "tempest/tests/fake_config.py", line 97, in setUp
DEBUG:     self.conf.set_default('v3_endpoint_type', 'fake_v3_uri', 'identity')
DEBUG:   File "/usr/lib/python2.7/site-packages/debtcollector/removals.py", 
line 261, in wrapper
DEBUG:     return f(*args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2312, 
in __inner
DEBUG:     result = f(self, *args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2659, 
in set_default
DEBUG:     opt_info['opt'], default, enforce_type)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2665, 
in _get_enforced_type_value
DEBUG:     converted = self._convert_value(value, opt)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2943, 
in _convert_value
DEBUG:     return opt.type(value)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/types.py", line 
156, in __call__
DEBUG:     repr(value)))
DEBUG: ValueError: Valid values are [public, admin, internal, publicURL, 
adminURL, internalURL], but found 'fake_v3_uri'
DEBUG: ======================================================================
DEBUG: FAIL: 
tempest.tests.test_config.TestServiceClientConfig.test_service_client_config_service_unknown
DEBUG: tags: worker-7
DEBUG: ----------------------------------------------------------------------
DEBUG: Empty attachments:
DEBUG:   stderr
DEBUG:   stdout
DEBUG: Traceback (most recent call last):
DEBUG:   File "tempest/tests/test_config.py", line 32, in setUp
DEBUG:     self.useFixture(fake_config.ServiceClientsConfigFixture())
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
679, in useFixture
DEBUG:     reraise(*exc_info)
DEBUG:   File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 
666, in useFixture
DEBUG:     fixture.setUp()
DEBUG:   File "tempest/tests/fake_config.py", line 97, in setUp
DEBUG:     self.conf.set_default('v3_endpoint_type', 'fake_v3_uri', 'identity')
DEBUG:   File "/usr/lib/python2.7/site-packages/debtcollector/removals.py", 
line 261, in wrapper
DEBUG:     return f(*args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2312, 
in __inner
DEBUG:     result = f(self, *args, **kwargs)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2659, 
in set_default
DEBUG:     opt_info['opt'], default, enforce_type)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2665, 
in _get_enforced_type_value
DEBUG:     converted = self._convert_value(value, opt)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/cfg.py", line 2943, 
in _convert_value
DEBUG:     return opt.type(value)
DEBUG:   File "/usr/lib/python2.7/site-packages/oslo_config/types.py", line 
156, in __call__
DEBUG:     repr(value)))
DEBUG: ValueError: Valid values are [public, admin, internal, publicURL, 
adminURL, internalURL], but found 'fake_v3_uri'

** Also affects: tempest
   Importance: Undecided
       Status: New

-- 
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 tempest:
  Confirmed
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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to