Fix modify_fields_from_db for vif_details empty str
vif_details is represented as an empty string in our DB schema when it's not defined. The 'modify_fields_from_db' method was incorrectly attempting to feed this directly into the json decoder. Closes-Bug: #1638703 Change-Id: I7b13fb30de71bb4dce4dbab4ffe430e1d0ef8f3a
This commit is contained in:
parent
d400c04095
commit
660946a921
|
@ -63,7 +63,8 @@ class PortBindingBase(base.NeutronDbObject):
|
|||
def modify_fields_from_db(cls, db_obj):
|
||||
fields = super(PortBindingBase, cls).modify_fields_from_db(db_obj)
|
||||
if 'vif_details' in fields:
|
||||
fields['vif_details'] = jsonutils.loads(fields['vif_details'])
|
||||
if fields['vif_details']:
|
||||
fields['vif_details'] = jsonutils.loads(fields['vif_details'])
|
||||
if not fields['vif_details']:
|
||||
fields['vif_details'] = None
|
||||
return fields
|
||||
|
|
|
@ -137,6 +137,17 @@ class PortBindingVifDetailsTestCase(testscenarios.WithScenarios,
|
|||
self.context, **obj._get_composite_keys())
|
||||
self.assertIsNone(obj.vif_details)
|
||||
|
||||
def test_null_vif_details_in_db(self):
|
||||
# the null case for vif_details in our db model is an
|
||||
# empty string. add that here to simulate it correctly
|
||||
# in the tests
|
||||
kwargs = self.get_random_fields()
|
||||
kwargs['vif_details'] = ''
|
||||
db_obj = self._test_class.db_model(**kwargs)
|
||||
obj_fields = self._test_class.modify_fields_from_db(db_obj)
|
||||
obj = self._test_class(self.context, **obj_fields)
|
||||
self.assertIsNone(obj.vif_details)
|
||||
|
||||
|
||||
class IPAllocationIfaceObjTestCase(obj_test_base.BaseObjectIfaceTestCase):
|
||||
|
||||
|
|
Loading…
Reference in New Issue