Make EC2 update_instance() only update updatable_fields, rather than all

fields. Patch courtesy of Vladimir Popovski.
This commit is contained in:
Thierry Carrez 2011-06-17 20:47:23 +00:00 committed by Tarmac
commit a854d4e172
2 changed files with 5 additions and 2 deletions

View File

@ -974,7 +974,8 @@ class CloudController(object):
changes[field] = kwargs[field]
if changes:
instance_id = ec2utils.ec2_id_to_id(instance_id)
self.compute_api.update(context, instance_id=instance_id, **kwargs)
self.compute_api.update(context, instance_id=instance_id,
**changes)
return True
@staticmethod

View File

@ -544,7 +544,9 @@ class CloudTestCase(test.TestCase):
def test_update_of_instance_wont_update_private_fields(self):
inst = db.instance_create(self.context, {})
self.cloud.update_instance(self.context, inst['id'],
ec2_id = ec2utils.id_to_ec2_id(inst['id'])
self.cloud.update_instance(self.context, ec2_id,
display_name='c00l 1m4g3',
mac_address='DE:AD:BE:EF')
inst = db.instance_get(self.context, inst['id'])
self.assertEqual(None, inst['mac_address'])