]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Make objects behave more like our old dictionaries
authorJohn Griffith <john.griffith@solidfire.com>
Tue, 3 Mar 2015 21:27:27 +0000 (21:27 +0000)
committerJohn Griffith <john.griffith@solidfire.com>
Thu, 5 Mar 2015 16:01:36 +0000 (09:01 -0700)
commite8d18a8714674c4f494ed7c8089fbf11b751d7aa
tree6df64d5eab0303df5eaf4f1576cdba0906d23ea0
parenta4abf28b5859660753d724b86631bf5b29055cc7
Make objects behave more like our old dictionaries

Prior to Cinder Objects we passed a dictionary representation
of a Cinder resource around. There are a few places where we
abuse this a bit and do things like "ref_dict.get('some-key', None)"
to reuse some code and determine if for example the object is
a snapshot or a volume (based on it's keys). This is probably
a pretty lazy/bad idea, but we have cases where we do it,
such as in the SolidFire driver and it looks like maybe some
calls in the profiler.

For now, we just make the compatibility shim in Object base truly
compatible and return None for non-existent attributes rather
than raising. Follow up work would be to clean up all of our
usage to strictly use objects and get rid of the compatibility
shim altogether.

Change-Id: Ia640c912700d9569c6b522b77fc357fb026269b1
Closes-Bug: #1427851
cinder/objects/base.py
cinder/tests/objects/test_objects.py