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

Registered by lvmxh

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/
And it has be accepted. https://github.com/openstack/oslo.versionedobjects
Also heat's versioned objects is base on oslo. oslo.versionedobjects

Versioned-objects will help us deal with DB schema being at a different version than the code expects. This will allow Neutron 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:
None
Priority:
Undefined
Drafter:
Ihar Hrachyshka
Direction:
Needs approval
Assignee:
None
Definition:
Obsolete
Series goal:
None
Implementation:
Unknown
Milestone target:
milestone icon next
Completed by
Armando Migliaccio

Related branches

Sprints

Whiteboard

Nov-09-2015(armax): If someone is interested in pursuing it, this must be re-submitted according to guidelines defined in [1]

[1] http://docs.openstack.org/developer/neutron/policies/blueprints.html

To be rebooted.

-----------------

Oct-19-2015(armax): This will have to looked into. Assigning to Ihar for further triaging.

@Ihar: do we have an RFE for this? I recall you mentioned interest in this area.

Mere introduction of oslo.versionedobjects is not going to fix upgrades or RPC versioning. Of course we should expand on existing versionedobjects work (the library is already consumed by neutron QoS service plugin), but generally it's not a very actionable blueprint.

We probably need more fine grained RFEs reported in LP for each aspect of upgrade story. We'll have upgrade discussions on summit next week and afterwards we'll come up with more specific requests.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.