Traceback in barbican/model/repositories.py

Bug #1498542 reported by Ollie Leahy
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Barbican
Fix Released
Critical
Dave McCowan

Bug Description

I'm seeing this treaceback repeatedly in barbican-svc.log on devstack:

2015-09-22 08:02:08.949 ^[[00;36mINFO alembic.runtime.migration [^[[00;36m-^[[00;36m] ^[[01;35m^[[00;36mWill assume non-transactional DDL.^[[00m
2015-09-22 08:02:09.349 ^[[01;31mCRITICAL barbican [^[[00;36m-^[[01;31m] ^[[01;35m^[[01;31mAttributeError: 'datetime.datetime' object has no attribute 'strip'
^[[00m
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00mTraceback (most recent call last):
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in loadapp
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return loadobj(APP, uri, name=name, **kw)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in loadobj
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return context.create()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return self.object_type.invoke(self)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144, in invoke
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m **context.local_conf)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/util.py", line 55, in fix_call
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m val = callable(*args, **kw)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/urlmap.py", line 31, in urlmap_factory
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m app = loader.get_app(app_name, global_conf=global_conf)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350, in get_app
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m name=name, global_conf=global_conf).create()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return self.object_type.invoke(self)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 203, in invoke
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m app = context.app_context.create()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in create
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return self.object_type.invoke(self)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 146, in invoke
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return fix_call(context.object, context.global_conf, **context.local_conf)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/usr/local/lib/python2.7/dist-packages/paste/deploy/util.py", line 55, in fix_call
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m val = callable(*args, **kw)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/api/app.py", line 78, in _wrapper
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m wsgi_app = func(global_config, **local_conf)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/api/app.py", line 92, in create_main_app
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m return build_wsgi_app(versions.V1Controller(), transactional=True)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/api/controllers/versions.py", line 95, in __init__
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m self.cas = cas.CertificateAuthoritiesController()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/api/controllers/cas.py", line 260, in __init__
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m cert_resources.refresh_certificate_resources()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/tasks/certificate_resources.py", line 70, in refresh_certificate_resources
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m cert.CertificatePluginManager().refresh_ca_table()
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/plugin/interface/certificate_manager.py", line 637, in refresh_ca_table
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m self.update_ca_info(plugin, session=session)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/plugin/interface/certificate_manager.py", line 665, in update_ca_info
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m session=session)
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m File "/opt/stack/barbican/barbican/model/repositories.py", line 1428, in update_entity
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m expiration_iso = timeutils.parse_isotime(expiration.strip())
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00mAttributeError: 'datetime.datetime' object has no attribute 'strip'
^[[01;31m2015-09-22 08:02:09.349 TRACE barbican ^[[01;35m^[[00m
OOPS ! failed loading app in worker 1 (pid 14969) :( trying again...
Respawned uWSGI worker 1 (new pid: 14976)

Revision history for this message
Dave McCowan (dave-mccowan) wrote :

https://review.openstack.org/#/c/226372/

String method being called on datetime object

The method strip() was being called on a datetime object, convert it to
a string first.

Change-Id: I271cff2fc32c51157e2237a504dc5dce075f367c
Closes-Bug: #1498542

Changed in barbican:
status: New → Confirmed
status: Confirmed → In Progress
Changed in barbican:
milestone: none → liberty-rc1
importance: Undecided → Critical
Changed in barbican:
assignee: nobody → Dave McCowan (dave-mccowan)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to barbican (master)

Reviewed: https://review.openstack.org/226372
Committed: https://git.openstack.org/cgit/openstack/barbican/commit/?id=ae37c32e019720a3d63987fd95c5e827246d7137
Submitter: Jenkins
Branch: master

commit ae37c32e019720a3d63987fd95c5e827246d7137
Author: Ollie Leahy <email address hidden>
Date: Tue Sep 22 15:16:37 2015 +0000

    Fix Snakeoil to return expiration timestamp in string format

    The method strip() was being called on a datetime object.
    The Snakeoil plugin was passing in a timestamp object, instead of
    a string. This commit fixes the plugin to use the correct format.

    Co-Authored-By: Dave McCowan <email address hidden>
    Change-Id: I271cff2fc32c51157e2237a504dc5dce075f367c
    Closes-Bug: #1498542

Changed in barbican:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in barbican:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in barbican:
milestone: liberty-rc1 → 1.0.0
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.