summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--nova/objects/base.py2
-rw-r--r--nova/objects/instance.py1
-rw-r--r--nova/tests/objects/test_instance.py1
3 files changed, 3 insertions, 1 deletions
diff --git a/nova/objects/base.py b/nova/objects/base.py
index 2e0797477..ec1ada6aa 100644
--- a/nova/objects/base.py
+++ b/nova/objects/base.py
@@ -311,7 +311,7 @@ class NovaObject(object):
raise NotImplementedError('Cannot save anything in the base class')
def obj_what_changed(self):
- """Returns a list of fields that have been modified."""
+ """Returns a set of fields that have been modified."""
return self._changed_fields
def obj_reset_changes(self, fields=None):
diff --git a/nova/objects/instance.py b/nova/objects/instance.py
index aec6fe968..cd08c4c4f 100644
--- a/nova/objects/instance.py
+++ b/nova/objects/instance.py
@@ -256,6 +256,7 @@ class Instance(base.NovaObject):
if (hasattr(self, base.get_attrname(field)) and
self[field] != current[field]):
self[field] = current[field]
+ self.obj_reset_changes()
def obj_load_attr(self, attrname):
extra = []
diff --git a/nova/tests/objects/test_instance.py b/nova/tests/objects/test_instance.py
index a9238a924..efd0bcdf9 100644
--- a/nova/tests/objects/test_instance.py
+++ b/nova/tests/objects/test_instance.py
@@ -163,6 +163,7 @@ class _TestInstanceObject(object):
inst.refresh()
self.assertEqual(inst.host, 'new-host')
self.assertRemotes()
+ self.assertEqual(set([]), inst.obj_what_changed())
def test_save(self):
ctxt = context.get_admin_context()