diff options
author | Pavlo Shchelokovskyy <pshchelokovskyy@mirantis.com> | 2014-08-12 19:12:48 +0300 |
---|---|---|
committer | Pavlo Shchelokovskyy <pshchelokovskyy@mirantis.com> | 2014-08-27 16:29:28 +0300 |
commit | 40f168cf58bb8ca244d8a2567ea77372e62dfa2e (patch) | |
tree | c3168643999e5dc847bc3e49a5c64221dda7409e /heat/tests/test_volume.py | |
parent | 1f72cf8e24777322ca46312c6e3f7f045d9df4bb (diff) | |
download | heat-40f168cf58bb8ca244d8a2567ea77372e62dfa2e.tar.gz |
Deny updates to AWS::EC2::VolumeAttachment
In accordance with AWS docs [1] AWS VolumeAttachment does not support
updates of any of its properties.
[1] http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-ebs-volumeattachment.html
Change-Id: I6d79536c68bed60d9b86c662147e35a9b2da6c1c
Closes-Bug: #1340096
Diffstat (limited to 'heat/tests/test_volume.py')
-rw-r--r-- | heat/tests/test_volume.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/heat/tests/test_volume.py b/heat/tests/test_volume.py index 596decc52..57a53cd32 100644 --- a/heat/tests/test_volume.py +++ b/heat/tests/test_volume.py @@ -662,6 +662,36 @@ class VolumeTest(BaseVolumeTest): "Property error : DataVolume: Size 0 is out of " "range (min: 1, max: None)", six.text_type(error)) + def test_volume_attachment_updates_not_supported(self): + fv = FakeVolume('creating', 'available') + fva = FakeVolume('attaching', 'in-use') + stack_name = 'test_volume_attach_stack' + + self._mock_create_volume(fv, stack_name) + self._mock_create_server_volume_script(fva) + + self.m.ReplayAll() + + stack = utils.parse_stack(self.t, stack_name=stack_name) + + self.create_volume(self.t, stack, 'DataVolume') + self.assertEqual('available', fv.status) + rsrc = self.create_attachment(self.t, stack, 'MountPoint') + + props = copy.deepcopy(rsrc.properties.data) + props['InstanceId'] = 'some_other_instance_id' + props['VolumeId'] = 'some_other_volume_id' + props['Device'] = '/dev/vdz' + after = rsrc_defn.ResourceDefinition(rsrc.name, rsrc.type(), props) + + update_task = scheduler.TaskRunner(rsrc.update, after) + ex = self.assertRaises(exception.ResourceFailure, update_task) + self.assertIn('NotSupported: Update to properties Device, InstanceId, ' + 'VolumeId of MountPoint (AWS::EC2::VolumeAttachment)', + six.text_type(ex)) + self.assertEqual((rsrc.UPDATE, rsrc.FAILED), rsrc.state) + self.m.VerifyAll() + class CinderVolumeTest(BaseVolumeTest): |