SQLAlchemy requires date column to be a datetime object

Bug #693471 reported by Rick Harris
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Glance
Fix Released
High
Rick Harris

Bug Description

When datetime columns are serialized they are converted to a string; before we persist the object, we need to make sure that any datetime columns are converted back to a datetime object that SQLAlchemy requires.

 File "/home/rick/openstack/glance/api-add-image/glance/registry/db/sqlalchemy/api.py", line 120, in image_update
    image_ref.save(session=session)
  File "/home/rick/openstack/glance/api-add-image/glance/registry/db/sqlalchemy/models.py", line 101, in save
    session.flush()
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/session.py", line 1346, in flush
    self._flush(objects)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/session.py", line 1427, in _flush
    flush_context.execute()
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/unitofwork.py", line 299, in execute
    rec.execute(self)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/unitofwork.py", line 443, in execute
    uow
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/orm/mapper.py", line 1800, in _save_obj
    execute(statement, params)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line 1157, in execute
    params)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line 1235, in _execute_clauseelement
    parameters=params
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/base.py", line 1343, in __create_execution_context
    connection=self, **kwargs)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/default.py", line 384, in __init__
    self.parameters = self.__convert_compiled_params(self.compiled_parameters)
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/engine/default.py", line 495, in __convert_compiled_params
    param.append(processors[key](compiled_params[key]))
  File "/usr/lib/python2.6/dist-packages/sqlalchemy/dialects/sqlite/base.py", line 100, in process
    raise TypeError("SQLite DateTime type only accepts Python "
TypeError: SQLite DateTime type only accepts Python datetime and date objects as input.

Related branches

Changed in glance:
assignee: nobody → Rick Harris (rconradharris)
importance: Undecided → High
Thierry Carrez (ttx)
Changed in glance:
status: New → In Progress
Jay Pipes (jaypipes)
Changed in glance:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in glance:
milestone: none → 0.1.7
status: Fix Committed → 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.