cinder/cinder/objects
Gorka Eguileor f0d34b7d9b Use manifest to backport OVOs during upgrades
To make objects that have other objects as fields compatible to an
earlier version, oslo versioned objects uses either a manifest passed to
obj_to_primitive or the object's obj_relationships mapping.

Which means that if we don't have any of those mechanisms in place our
rolling upgrades mechanism will fail whenever we try to backport a
Versioned Object that has set an ObjectField field because Oslo
Versioned Object will not know how to backport that related object.

This patch introduces the usage of manifests on backports when we are
doing rolling upgrades.

For the manifest, we use the data in our Objects History.  Which means
that as long as we keep history in OBJ_VERSIONS right we will not have
to create and worry about keeping lists' child_versions field or our
versioned object's obj_relationships for fields with types
ListOfObjectsField and ObjectField.

We also don't have to worry about cascade version bumping, as in
changing the List OVO version whenever the OVO it contains gets bumped,
or bumping our OVO whenever one of the related OVO fields is bumped.

Closes-Bug: #1571566
Change-Id: Ibc1a1257830c925c10696c0b5aedd5f471c538d0
2016-06-12 13:49:01 +02:00
..
__init__.py Add backref relationships to ConsistencyGroup obj 2015-12-29 16:09:40 +01:00
backup.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
base.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
cgsnapshot.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
consistencygroup.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
fields.py Remove IN_USE from ConsistencyGroupStatus enum 2016-06-03 15:57:36 +02:00
service.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
snapshot.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
volume.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
volume_attachment.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00
volume_type.py Use manifest to backport OVOs during upgrades 2016-06-12 13:49:01 +02:00