Glare doesn't support python 3.7

Bug #1837778 reported by Corey Bryant
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glare
Fix Released
High
Kushal Agrawal

Bug Description

Hi,

Please can glare be fixed up to provide Python 3.7 support? Here are the unit test failures that I hit with py37. Note that all OpenStack projects are providing Python 3.7 support in Train. Train offically supports Python 2.7, 3.6 and 3.7.

Thanks,
Corey

======================================================================
FAIL: glare.tests.unit.test_unpacking.TestArtifactHooks.test_unpacking_big_archive
glare.tests.unit.test_unpacking.TestArtifactHooks.test_unpacking_big_archive
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 522, in __iter__
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 581, in upload_blob
    context, af, field_name, blob_key, fd)
  File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 129, in execute
    six.reraise(c, e, tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 83, in tworker
    rv = meth(*args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/tests/unpacking_artifact.py", line 53, in pre_upload_hook
    context, af, zip_ref, 'content')
  File "/<<PKGBUILDDIR>>/glare/objects/meta/file_utils.py", line 111, in unpack_zip_archive_to_artifact_folder
    af.update_blob(context, af.id, folder_name, None)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/objects/meta/file_utils.py", line 98, in unpack_zip_archive_to_artifact_folder
    default_store)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 445, in new_function
    return f(*args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/common/store_api.py", line 115, in save_blobs_to_store
    CONF, blob_data_id, data, 0, store_type, context, verifier)
  File "/usr/lib/python3/dist-packages/glance_store/backend.py", line 532, in add_to_backend
    verifier)
  File "/usr/lib/python3/dist-packages/glance_store/backend.py", line 481, in store_add_to_backend
    verifier=verifier)
  File "/usr/lib/python3/dist-packages/glance_store/driver.py", line 274, in add_adapter
    metadata_dict) = store_add_fun(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/glance_store/capabilities.py", line 225, in op_checker
    return store_op_fun(store, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/glance_store/_drivers/filesystem.py", line 732, in add
    self._delete_partial(filepath, image_id)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/glance_store/_drivers/filesystem.py", line 716, in add
    self.WRITE_CHUNKSIZE):
  File "/usr/lib/python3/dist-packages/glance_store/common/utils.py", line 67, in chunkiter
    chunk = fp.read(chunk_size)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 197, in read
    res = self.data.read() if length is None else self.data.read(length)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 160, in read
    self.buffer = next(self.iterator)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 67, in cooperative_iter
    LOG.error("Error: cooperative_iter exception %s", err)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 62, in cooperative_iter
    for chunk in iter:
RuntimeError: generator raised StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_unpacking.py", line 62, in test_unpacking_big_archive
    'zip', data, 'application/octet-stream')
  File "/<<PKGBUILDDIR>>/glare/api/v1/resource.py", line 265, in log_decorator
    result = f(self, req, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/api/v1/resource.py", line 423, in upload_blob
    content_type, content_length, blob_key)
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 604, in upload_blob
    context, af, field_name, blob_key, None)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 585, in upload_blob
    raise exception.BadRequest(message=str(e))
glare.common.exception.BadRequest: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_utils.TestReaders.test_blob_iterator
glare.tests.unit.test_utils.TestReaders.test_blob_iterator
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 522, in __iter__
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 236, in test_blob_iterator
    for chunk in utils.BlobIterator(stream, 64):
RuntimeError: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_less_then_read
glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_less_then_read
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 159, in _create_generator
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 179, in test_cooperative_reader_preserves_size_chunk_less_then_read
    self._test_reader_chunked(43, 101)
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 166, in _test_reader_chunked
    data = reader.read(read_size)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 160, in read
    self.buffer = next(self.iterator)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 67, in cooperative_iter
    LOG.error("Error: cooperative_iter exception %s", err)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 62, in cooperative_iter
    for chunk in iter:
RuntimeError: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_wsgi.RequestTest.test_best_match_language_unknown
glare.tests.unit.test_wsgi.RequestTest.test_best_match_language_unknown
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1322, in patched
    arg = patching.__enter__()
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1394, in __enter__
    original, local = self.get_original()
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1368, in get_original
    "{} does not have the attribute {!r}".format(target, name)
AttributeError: <class 'webob.acceptparse.AcceptLanguage'> does not have the attribute 'best_match'

======================================================================
FAIL: glare.tests.unit.test_unpacking.TestArtifactHooks.test_unpacking
glare.tests.unit.test_unpacking.TestArtifactHooks.test_unpacking
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 522, in __iter__
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 581, in upload_blob
    context, af, field_name, blob_key, fd)
  File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 129, in execute
    six.reraise(c, e, tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/eventlet/tpool.py", line 83, in tworker
    rv = meth(*args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/tests/unpacking_artifact.py", line 53, in pre_upload_hook
    context, af, zip_ref, 'content')
  File "/<<PKGBUILDDIR>>/glare/objects/meta/file_utils.py", line 111, in unpack_zip_archive_to_artifact_folder
    af.update_blob(context, af.id, folder_name, None)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/objects/meta/file_utils.py", line 98, in unpack_zip_archive_to_artifact_folder
    default_store)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 445, in new_function
    return f(*args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/common/store_api.py", line 115, in save_blobs_to_store
    CONF, blob_data_id, data, 0, store_type, context, verifier)
  File "/usr/lib/python3/dist-packages/glance_store/backend.py", line 532, in add_to_backend
    verifier)
  File "/usr/lib/python3/dist-packages/glance_store/backend.py", line 481, in store_add_to_backend
    verifier=verifier)
  File "/usr/lib/python3/dist-packages/glance_store/driver.py", line 274, in add_adapter
    metadata_dict) = store_add_fun(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/glance_store/capabilities.py", line 225, in op_checker
    return store_op_fun(store, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/glance_store/_drivers/filesystem.py", line 732, in add
    self._delete_partial(filepath, image_id)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/glance_store/_drivers/filesystem.py", line 716, in add
    self.WRITE_CHUNKSIZE):
  File "/usr/lib/python3/dist-packages/glance_store/common/utils.py", line 67, in chunkiter
    chunk = fp.read(chunk_size)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 197, in read
    res = self.data.read() if length is None else self.data.read(length)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 160, in read
    self.buffer = next(self.iterator)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 67, in cooperative_iter
    LOG.error("Error: cooperative_iter exception %s", err)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 62, in cooperative_iter
    for chunk in iter:
RuntimeError: generator raised StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_unpacking.py", line 36, in test_unpacking
    'zip', data, 'application/octet-stream')
  File "/<<PKGBUILDDIR>>/glare/api/v1/resource.py", line 265, in log_decorator
    result = f(self, req, *args, **kwargs)
  File "/<<PKGBUILDDIR>>/glare/api/v1/resource.py", line 423, in upload_blob
    content_type, content_length, blob_key)
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 604, in upload_blob
    context, af, field_name, blob_key, None)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/engine.py", line 585, in upload_blob
    raise exception.BadRequest(message=str(e))
glare.common.exception.BadRequest: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_more_then_read
glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_more_then_read
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 159, in _create_generator
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 187, in test_cooperative_reader_preserves_size_chunk_more_then_read
    self._test_reader_chunked(chunk_size, read_size)
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 166, in _test_reader_chunked
    data = reader.read(read_size)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 160, in read
    self.buffer = next(self.iterator)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 67, in cooperative_iter
    LOG.error("Error: cooperative_iter exception %s", err)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 62, in cooperative_iter
    for chunk in iter:
RuntimeError: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_equals_read
glare.tests.unit.test_utils.TestReaders.test_cooperative_reader_preserves_size_chunk_equals_read
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 159, in _create_generator
    raise StopIteration()
StopIteration

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 182, in test_cooperative_reader_preserves_size_chunk_equals_read
    self._test_reader_chunked(1024, 1024)
  File "/<<PKGBUILDDIR>>/glare/tests/unit/test_utils.py", line 166, in _test_reader_chunked
    data = reader.read(read_size)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 160, in read
    self.buffer = next(self.iterator)
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 67, in cooperative_iter
    LOG.error("Error: cooperative_iter exception %s", err)
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 220, in __exit__
    self.force_reraise()
  File "/usr/lib/python3/dist-packages/oslo_utils/excutils.py", line 196, in force_reraise
    six.reraise(self.type_, self.value, self.tb)
  File "/usr/lib/python3/dist-packages/six.py", line 693, in reraise
    raise value
  File "/<<PKGBUILDDIR>>/glare/common/utils.py", line 62, in cooperative_iter
    for chunk in iter:
RuntimeError: generator raised StopIteration

======================================================================
FAIL: glare.tests.unit.test_wsgi.ResourceTest.test_translate_exception
glare.tests.unit.test_wsgi.ResourceTest.test_translate_exception
----------------------------------------------------------------------
_StringException: Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1322, in patched
    arg = patching.__enter__()
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1394, in __enter__
    original, local = self.get_original()
  File "/usr/lib/python3/dist-packages/mock/mock.py", line 1368, in get_original
    "{} does not have the attribute {!r}".format(target, name)
AttributeError: <class 'webob.acceptparse.AcceptLanguage'> does not have the attribute 'best_match'

----------------------------------------------------------------------
Ran 250 tests in 12.667s

FAILED (failures=8, skipped=2)
make[1]: *** [debian/rules:31: override_dh_install] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:6: binary] Error 2
dpkg-buildpackage: error: fakeroot debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 20190724-1340

Finished

description: updated
Changed in glare:
assignee: nobody → Kushal Agrawal (kushal2605)
importance: Undecided → High
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to glare (master)

Fix proposed to branch: master
Review: https://review.opendev.org/673531

Changed in glare:
status: New → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to glare (master)

Reviewed: https://review.opendev.org/673531
Committed: https://git.openstack.org/cgit/x/glare/commit/?id=5815d9478116cfa01509242232fd197aa5021c9f
Submitter: Zuul
Branch: master

commit 5815d9478116cfa01509242232fd197aa5021c9f
Author: kushalagrawal <email address hidden>
Date: Tue Jul 30 16:40:26 2019 +0530

    Made it compatible to python3.7

    Due to https://www.python.org/dev/peps/pep-0479/ stopIteration
    will not be caught anymore and needs to be use return instead.
    updated with relevant changes.

    Change-Id: If25b6ccecd46fed0225a230096041996fb91c0c5
    closes-bug: #1837778

Changed in glare:
status: In Progress → Fix Released
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.