Use oslo-versioned-objects to help with dealing with upgrades.

Registered by Angus Salkeld

We are looking to improve the way we deal with versioning (of all sorts db/rpc/rest/templates/plugins). Nova has come up with the idea of versioned objects, that Ironic has also now used. This has now been proposed as an oslo library: https://review.openstack.org/#/c/127532/

https://etherpad.openstack.org/p/kilo-crossproject-upgrades-and-versioning

Versioned-objects will help us deal with DB schema being at a different version than the code expects. This will allow Heat to be operated safely during upgrades.

Looking forward as we pass more and more data over RPC we can make use of versioned-objects to ensure upgrades happen without spreading the version dependant code across the code base.

Blueprint information

Status:
Complete
Approver:
Angus Salkeld
Priority:
Medium
Drafter:
Angus Salkeld
Direction:
Approved
Assignee:
Michał Jastrzębski
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Angus Salkeld
Completed by
Angus Salkeld

Related branches

Sprints

Whiteboard

https://review.openstack.org/#/q/project:openstack/heat+status:open+branch:master+topic:bp/132157,n,z

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

Addressed by: https://review.openstack.org/146841
    First objects - stack and raw template

Addressed by: https://review.openstack.org/149166
    Versioned objects - UserCreds

Gerrit topic: https://review.openstack.org/#q,topic:bp/132157,n,z

Gerrit topic: https://review.openstack.org/#q,topic:stack-objectV6,n,z

Addressed by: https://review.openstack.org/150797
    Versioned objects - Resource

Addressed by: https://review.openstack.org/152429
    Versioned object - SoftwareDeployment

Addressed by: https://review.openstack.org/149926
    Versioned objects - Event

Addressed by: https://review.openstack.org/151556
    Versioned objects - Snapshot

Addressed by: https://review.openstack.org/150238
    Versioned objects - ResourceData

Addressed by: https://review.openstack.org/153487
    Versioned object - WatchRule and WatchData

Addressed by: https://review.openstack.org/152415
    Versioned object - SoftwareConfig

Addressed by: https://review.openstack.org/164135
    Versioned object Service

Addressed by: https://review.openstack.org/164591
    Versioned-object SyncPoint

Addressed by: https://review.openstack.org/165349
    Fixes StackWatchService to use objects in place of db

Addressed by: https://review.openstack.org/165363
    Versioned-object StackLock

Addressed by: https://review.openstack.org/165342
    Fixes SoftwareConfigService to use Resource object

Addressed by: https://review.openstack.org/166176
    Unit test case migration for Resource object

Addressed by: https://review.openstack.org/166177
    Unit test case migration for Event object

Addressed by: https://review.openstack.org/166178
    Unit test case migration for Watch data and Rule object

Addressed by: https://review.openstack.org/166179
    Unit test case migration for Stack object

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

Addressed by: https://review.openstack.org/190183
    Register all objects

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.