Bug 1384064

Summary: In Newton python-webob 1.6.1 is required
Product: Red Hat OpenStack Reporter: Michal Pryc <mpryc>
Component: python-webobAssignee: Jon Schlueter <jschluet>
Status: CLOSED ERRATA QA Contact: Mike Burns <mburns>
Severity: high Docs Contact:
Priority: unspecified    
Version: 10.0 (Newton)CC: apevec, jschluet, lhh, mburns, rhos-maint, srevivo
Target Milestone: rcKeywords: Rebase, Triaged
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-webob-1.6.1-2.el7ost Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1384058 Environment:
Last Closed: 2016-12-14 16:16:55 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1384058    
Bug Blocks:    

Description Michal Pryc 2016-10-12 12:58:05 UTC
This is same as RDO issue, but for RHOS10 release.
Note that webob is runtime dependency for other components, meaning that it may be problematic for not only test scenarios.

+++ This bug was initially created as a clone of Bug #1384058 +++

Description of problem:

python-webob 1.4.1 is available, however upper-constraints.txt specifies 1.6.1 as minimum for Newton:

https://github.com/openstack/requirements/blob/stable/newton/upper-constraints.txt#L30

Without 1.6.1 unit some unit tests are failing.

--- Additional comment from Michal Pryc on 2016-10-12 08:51:50 EDT ---

Failed tests:

nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type
----------------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_util.py", line 163, in test_fail_no_content_type
        self.handler, req)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/util.py", line 115, in decorated_function
        json_formatter=json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x781bf50>
   
 
nova.tests.unit.api.openstack.placement.test_handler.DispatchTest.test_no_match_with_map
----------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_handler.py", line 58, in test_no_match_with_map
        self.mapper)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/handler.py", line 94, in dispatch
        json_formatter=util.json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050>
   
 
nova.tests.unit.api.openstack.placement.test_util.TestCheckAccept.test_fail_complex_no_match
--------------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_util.py", line 50, in test_fail_complex_no_match
        self.handler, req)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/util.py", line 56, in decorated_function
        json_formatter=json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050>
   
 
nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_wrong_content_type
-------------------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_util.py", line 173, in test_fail_wrong_content_type
        self.handler, req)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/util.py", line 115, in decorated_function
        json_formatter=json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8b9b050>
   
 
nova.tests.unit.api.openstack.placement.test_handler.DispatchTest.test_no_match_null_map
----------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_handler.py", line 51, in test_no_match_null_map
        self.mapper)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/handler.py", line 94, in dispatch
        json_formatter=util.json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8ae9050>
   
 
nova.tests.unit.api.openstack.placement.test_util.TestCheckAccept.test_fail_no_match
------------------------------------------------------------------------------------
 
Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_util.py", line 40, in test_fail_no_match
        self.handler, req)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match
        reraise(*matchee)
      File "/usr/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/usr/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/util.py", line 56, in decorated_function
        json_formatter=json_error_formatter)
      File "/usr/lib/python2.7/site-packages/webob/exc.py", line 255, in __init__
        **kw)
      File "/usr/lib/python2.7/site-packages/webob/response.py", line 155, in __init__
        "Unexpected keyword: %s=%r" % (name, value))
    TypeError: Unexpected keyword: json_formatter=<function json_error_formatter at 0x8ae9050>

Comment 2 Mike Burns 2016-10-13 13:00:43 UTC
upper-contraints is not a minimum, it's a max.  A fix is happening upstream to bump the requirements.txt which is the minimum.  In parallel, we'll work on getting the newer webob

Comment 6 errata-xmlrpc 2016-12-14 16:16:55 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHEA-2016-2948.html