Use oslo.versionedobjects to help with dealing with upgrades

Registered by Grzegorz Grasza

A port of versionedobjects is already present in the project tree. oslo.versionedobjects is now a separate library, used in Heat and added to global requirements.

oslo.versionedobjects library deals with DB schema being at different versions than the code expects, allowing services to be operated safely during upgrades. It enables DB independent schema by providing an abstraction layer, which allows us to support SQL and NoSQL Databases. oslo.versionedobjects is also used in RPC APIs, to ensure upgrades happen without spreading version dependent code across different services and projects.

Blueprint information

Status:
Complete
Approver:
Steven Dake
Priority:
Medium
Drafter:
Grzegorz Grasza
Direction:
Approved
Assignee:
Grzegorz Grasza
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
None
Started by
Grzegorz Grasza
Completed by
Grzegorz Grasza

Related branches

Sprints

Whiteboard

Gerrit topic: https://review.openstack.org/#/q/topic:bp/versioned-objects+project:openstack/magnum,n,z

Addressed by: https://review.openstack.org/174386
    Move our ObjectListBase to subclass from the Oslo one

Addressed by: https://review.openstack.org/174366
    Start the conversion to oslo.versionedobjects

Gerrit topic: https://review.openstack.org/#q,topic:bp/versioned-objects,n,z

Addressed by: https://review.openstack.org/178718
    Move our ObjectSerializer to subclass from the Oslo one

Addressed by: https://review.openstack.org/180133
    Make MagnumObject a subclass of Oslo VersionedObject

Addressed by: https://review.openstack.org/180577
    Move VersionedObject registration to the new scheme

Addressed by: https://review.openstack.org/181853
    Use oslo.versionedobjects remotable decorators

Addressed by: https://review.openstack.org/184448
    Remove unused methods and functions

Addressed by: https://review.openstack.org/184450
    Remove objects unit tests together with the old object utils module

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.