New WebOb minimum version requirement of >=1.6.1

Bug #1632723 reported by Lee Yarwood
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Matt Riedemann
Newton
Fix Committed
Medium
Matt Riedemann

Bug Description

Description
===========
I385c36e0af1a8a785c02e21ba4efa6046cde6366 introduced a new requirement of WebOb>=1.6.1 that has not been reflected in requirements.txt either globally or within Nova.

Steps to reproduce
==================
# tox -e py27 nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type
[..]
Slowest Tests
Test id Runtime (s)
---------------------------------------------------------------------------------------------- -----------
nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type 0.130

======
Totals
======
Ran: 1 tests in 15.0000 sec.
 - Passed: 1
 - Skipped: 0
 - Expected Fail: 0
 - Unexpected Success: 0
 - Failed: 0
Sum of execute time for each test: 0.1295 sec.

==============
Worker Balance
==============
 - Worker 0 (1 tests) => 0:00:00.129534
[..]
# . .tox/py27/bin/activate
(py27)# pip list | grep -i webob
WebOb (1.6.1)
(py27)# pip install WebOb==1.2.3
Collecting WebOb==1.2.3
  Downloading WebOb-1.2.3.tar.gz (191kB)
    100% |████████████████████████████████| 194kB 319kB/s
Building wheels for collected packages: WebOb
  Running setup.py bdist_wheel for WebOb ... done
  Stored in directory: /home/lyarwood/.cache/pip/wheels/41/d1/c9/fd5b1a17465c81580c3b5c8876a4611c8c677b81a94dad8f72
Successfully built WebOb
Installing collected packages: WebOb
  Found existing installation: WebOb 1.6.1
    Uninstalling WebOb-1.6.1:
      Successfully uninstalled WebOb-1.6.1
Successfully installed WebOb-1.2.3
(py27)# deactivate
# tox -e py27 nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type
[..]
{0} nova.tests.unit.api.openstack.placement.test_util.TestRequireContent.test_fail_no_content_type [0.133657s] ... FAILED

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    Traceback (most recent call last):
      File "nova/tests/unit/api/openstack/placement/test_util.py", line 229, in test_fail_no_content_type
        self.handler, req)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 485, in assertRaises
        self.assertThat(our_callable, matcher)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 496, in assertThat
        mismatch_error = self._matchHelper(matchee, matcher, message, verbose)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 547, in _matchHelper
        mismatch = matcher.match(matchee)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match
        mismatch = self.exception_matcher.match(exc_info)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match
        mismatch = matcher.match(matchee)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 475, in match
        reraise(*matchee)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match
        result = matchee()
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/testtools/testcase.py", line 1049, in __call__
        return self._callable_object(*self._args, **self._kwargs)
      File "nova/api/openstack/placement/util.py", line 131, in decorated_function
        json_formatter=json_error_formatter)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/lib/python2.7/site-packages/webob/exc.py", line 263, in __init__
        **kw)
      File "/home/lyarwood/redhat/devel/src/openstack/nova/.tox/py27/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 0x7fc28376c848>
[..]

Expected result
===============

Actual result
=============

Environment
===========
1. Exact version of OpenStack you are running. See the following
  list for all releases: http://docs.openstack.org/releases/

# git rev-parse HEAD
2669f1c73b7dee923c399729d95eee4d83c7ea56

2. Which hypervisor did you use?
   (For example: Libvirt + KVM, Libvirt + XEN, Hyper-V, PowerKVM, ...)
   What's the version of that?
N/A

2. Which storage type did you use?
   (For example: Ceph, LVM, GPFS, ...)
   What's the version of that?
N/A

3. Which networking type did you use?
   (For example: nova-network, Neutron with OpenVSwitch, ...)
N/A

Logs & Configs
==============
N/A

Revision history for this message
Matt Riedemann (mriedem) wrote :
Revision history for this message
Lee Yarwood (lyarwood) wrote :

Apologies, I forgot to note that the corresponding change in WebOb 1.6.0 required by the changes made in I385c36e0af1a8a785c02e21ba4efa6046cde6366 is :

https://github.com/Pylons/webob/commit/87c8749a57c1ff2442db2d74d9fb86935b7b201e

Revision history for this message
Matt Riedemann (mriedem) wrote :

Here is the g-r bump for master: https://review.openstack.org/#/c/385495/

To fix newton, we'll need to either patch the newton code to handle webob<1.6.0, or just put out a release note saying the placement API requires webob>=1.6.0.

Matt Riedemann (mriedem)
Changed in nova:
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Matt Riedemann (mriedem)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/385499

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/385499
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=41adb9f0394cd3115e620def803d18a1719791c9
Submitter: Jenkins
Branch: master

commit 41adb9f0394cd3115e620def803d18a1719791c9
Author: Matt Riedemann <email address hidden>
Date: Wed Oct 12 10:25:09 2016 -0400

    Require WebOb>=1.6.0

    Nova change 4e923eb9a660593b8a7d2522992700182978a54c started
    using the json_formatter kwarg which was introduced in WebOb
    1.6.0:

    https://github.com/Pylons/webob/commit/87c8749a57c1ff2442db2d74d9fb86935b7b201e

    So we need to raise the minimum required version for nova to use.

    Change-Id: Ia778a11afb03b6d4b57dbd55a801a5a28b10541d
    Depends-On: I2bbad0c059cc514ba0be1d42c061056a342caadc
    Closes-Bug: #1632723

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/newton)

Fix proposed to branch: stable/newton
Review: https://review.openstack.org/386000

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/newton)

Reviewed: https://review.openstack.org/386000
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=92ca31b27d892e5aa9a6ffb990c7ea17b26fa991
Submitter: Jenkins
Branch: stable/newton

commit 92ca31b27d892e5aa9a6ffb990c7ea17b26fa991
Author: Lee Yarwood <email address hidden>
Date: Thu Oct 13 14:52:58 2016 +0100

    releasenote: WebOb<1.6.0 placement API known issue

    4e923eb9a660593b8a7d2522992700182978a54c introduced a new requirement
    for WebOb>=1.6.0 that was not reflected in requirements.txt until after
    the release of Newton.

    As a result we can only releasenote this as a known issue and direct
    users to ensure they meet this requirement when using the optional
    placement API.

    Change-Id: I8c1d8df513c109ebdbdad5deca070fbbe9ac1947
    Closes-bug: #1632723

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 14.0.2

This issue was fixed in the openstack/nova 14.0.2 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 15.0.0.0b1

This issue was fixed in the openstack/nova 15.0.0.0b1 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 14.0.2

This issue was fixed in the openstack/nova 14.0.2 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.