]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Report RPC and objects versions
authorMichał Dulko <michal.dulko@intel.com>
Thu, 14 Jan 2016 18:37:18 +0000 (19:37 +0100)
committerMichał Dulko <michal.dulko@intel.com>
Fri, 29 Jan 2016 13:35:13 +0000 (08:35 -0500)
commit4226d372723808e58d7b9311165d9717fe2b2936
treea53fda2126d076b94bd72abebd98e228b4687761
parent45145e596960f963a65d8706d0664facc2677a86
Report RPC and objects versions

While doing a rolling upgrade we will have services running in various
versions. In order to determine how to downgrade the RPC request and
payload (objects) to the lowest common version we need to actually
report versions of RPC servers (managers).

This commit implements such reporting in generic cinder.service module.
It is using DB columns that were merged in Liberty to save this
information.

To have a single version string identify a set of o.vo versions we need
to have dictionary with objects versions history. In that purpose a
dict-like CinderObjectVersionsHistory class and OBJ_VERSIONS instance of
it is added to cinder.objects.base. A unit test enforcing bumping the
versions is also included with the patch.

Change-Id: Ic3b57450e9d6f155a7eb805d224389f5f09eae18
Partial-Implements: blueprint rpc-object-compatibility
cinder/objects/base.py
cinder/objects/service.py
cinder/service.py
cinder/tests/unit/objects/test_objects.py