Set default value for 'metadata' of cinder volume

Set default value of 'metadata' to {}, to make sure
update cinder volume success when observe_on_update
is enabled.

Change-Id: I006d8612f4d9fd0633695a17ad3c8f0ca37dbb97
Closes-Bug: #1635164
This commit is contained in:
huangtianhua 2016-10-20 17:53:33 +08:00
parent c38f68e745
commit 5cf81b2ae3
2 changed files with 22 additions and 10 deletions

View File

@ -117,6 +117,7 @@ class CinderVolume(vb.BaseVolume, sh.SchedulerHintsMixin):
properties.Schema.MAP, properties.Schema.MAP,
_('Key/value pairs to associate with the volume.'), _('Key/value pairs to associate with the volume.'),
update_allowed=True, update_allowed=True,
default={}
), ),
IMAGE_REF: properties.Schema( IMAGE_REF: properties.Schema(
properties.Schema.STRING, properties.Schema.STRING,

View File

@ -166,7 +166,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
description='ImageVolumeDescription', description='ImageVolumeDescription',
name='ImageVolume', name='ImageVolume',
imageRef=image_id, imageRef=image_id,
multiattach=False).AndReturn(fv) multiattach=False,
metadata={}).AndReturn(fv)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
fv_ready = vt_base.FakeVolume('available', id=fv.id) fv_ready = vt_base.FakeVolume('available', id=fv.id)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv_ready) self.cinder_fc.volumes.get(fv.id).AndReturn(fv_ready)
@ -195,7 +196,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, availability_zone='nova', size=1, availability_zone='nova',
description='ImageVolumeDescription', description='ImageVolumeDescription',
name='ImageVolume', name='ImageVolume',
multiattach=False).AndReturn(fv) multiattach=False,
metadata={}).AndReturn(fv)
update_readonly_mock = self.patchobject(self.cinder_fc.volumes, update_readonly_mock = self.patchobject(self.cinder_fc.volumes,
'update_readonly_flag') 'update_readonly_flag')
@ -230,7 +232,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, availability_zone='nova', size=1, availability_zone='nova',
description=None, description=None,
name=vol_name, name=vol_name,
multiattach=False multiattach=False,
metadata={}
).AndReturn(fv) ).AndReturn(fv)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
fv_ready = vt_base.FakeVolume('available', id=fv.id) fv_ready = vt_base.FakeVolume('available', id=fv.id)
@ -633,7 +636,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=2, availability_zone='nova', size=2, availability_zone='nova',
description=None, description=None,
name=vol_name, name=vol_name,
multiattach=False multiattach=False,
metadata={}
).AndReturn(fv) ).AndReturn(fv)
fv_ready = vt_base.FakeVolume('available', id=fv.id, size=2, fv_ready = vt_base.FakeVolume('available', id=fv.id, size=2,
@ -747,7 +751,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, availability_zone=None, size=1, availability_zone=None,
description='test_description', description='test_description',
name='test_name', name='test_name',
multiattach=False multiattach=False,
metadata={}
).AndReturn(vt_base.FakeVolume('creating')) ).AndReturn(vt_base.FakeVolume('creating'))
fv = vt_base.FakeVolume('available') fv = vt_base.FakeVolume('available')
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
@ -786,7 +791,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, availability_zone=None, size=1, availability_zone=None,
description='test_description', description='test_description',
name='test_name', name='test_name',
multiattach=False multiattach=False,
metadata={}
).AndReturn(vt_base.FakeVolume('creating')) ).AndReturn(vt_base.FakeVolume('creating'))
fv = vt_base.FakeVolume('available') fv = vt_base.FakeVolume('available')
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
@ -875,7 +881,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=2, availability_zone='nova', size=2, availability_zone='nova',
description=None, description=None,
name=vol2_name, name=vol2_name,
multiattach=False multiattach=False,
metadata={}
).AndReturn(fv2) ).AndReturn(fv2)
self.cinder_fc.volumes.get(fv2.id).AndReturn(fv2) self.cinder_fc.volumes.get(fv2.id).AndReturn(fv2)
fv2 = vt_base.FakeVolume('available', id=fv2.id) fv2 = vt_base.FakeVolume('available', id=fv2.id)
@ -992,7 +999,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, name='test_name', description=None, size=1, name='test_name', description=None,
availability_zone='nova', availability_zone='nova',
scheduler_hints={'hint1': 'good_advice'}, scheduler_hints={'hint1': 'good_advice'},
multiattach=False multiattach=False,
metadata={}
).AndReturn(fv) ).AndReturn(fv)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
fv_ready = vt_base.FakeVolume('available', id=fv.id) fv_ready = vt_base.FakeVolume('available', id=fv.id)
@ -1014,7 +1022,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
self.cinder_fc.volumes.create( self.cinder_fc.volumes.create(
size=1, name='test_name', description=None, size=1, name='test_name', description=None,
availability_zone='nova', availability_zone='nova',
multiattach=True).AndReturn(fv) multiattach=True,
metadata={}).AndReturn(fv)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)
fv_ready = vt_base.FakeVolume('available', id=fv.id) fv_ready = vt_base.FakeVolume('available', id=fv.id)
self.cinder_fc.volumes.get(fv.id).AndReturn(fv_ready) self.cinder_fc.volumes.get(fv.id).AndReturn(fv_ready)
@ -1047,6 +1056,7 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
self.cinder_fc.volumes.create( self.cinder_fc.volumes.create(
size=1, name='test_name', description='test_description', size=1, name='test_name', description='test_description',
availability_zone=None, availability_zone=None,
metadata={},
multiattach=False, multiattach=False,
scheduler_hints={shm.HEAT_ROOT_STACK_ID: stack.root_stack_id(), scheduler_hints={shm.HEAT_ROOT_STACK_ID: stack.root_stack_id(),
shm.HEAT_STACK_ID: stack.id, shm.HEAT_STACK_ID: stack.id,
@ -1201,7 +1211,8 @@ class CinderVolumeTest(vt_base.BaseVolumeTest):
size=1, availability_zone=None, size=1, availability_zone=None,
description='test_description', description='test_description',
name='test_name', name='test_name',
multiattach=False multiattach=False,
metadata={}
).AndReturn(vt_base.FakeVolume('creating')) ).AndReturn(vt_base.FakeVolume('creating'))
fv = vt_base.FakeVolume('available') fv = vt_base.FakeVolume('available')
self.cinder_fc.volumes.get(fv.id).AndReturn(fv) self.cinder_fc.volumes.get(fv.id).AndReturn(fv)