Add missing 'obj_make_compatible' in RequestSpec object

RequestSpec is converted to OVO, thus need to add the
'obj_make_compatible' to support backward compatibility.

Change-Id: Ifbb5248e3ad5bad4b8fb6957156540cdf97babde
This commit is contained in:
TommyLike 2017-11-13 14:26:33 +08:00
parent 1491af0f95
commit 945a2754a9
1 changed files with 12 additions and 0 deletions

View File

@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
from oslo_utils import versionutils
from oslo_versionedobjects import fields
from cinder import objects
@ -88,6 +89,17 @@ class RequestSpec(base.CinderObject, base.CinderObjectDictCompat,
return spec_obj
def obj_make_compatible(self, primitive, target_version):
"""Make an object representation compatible with target version."""
super(RequestSpec, self).obj_make_compatible(primitive, target_version)
target_version = versionutils.convert_version_to_tuple(target_version)
added_fields = (((1, 1), ('group_id', 'group_backend')),
((1, 2), ('resource_backend')))
for version, remove_fields in added_fields:
if target_version < version:
for obj_field in remove_fields:
primitive.pop(obj_field, None)
@base.CinderObjectRegistry.register
class VolumeProperties(base.CinderObject, base.CinderObjectDictCompat):