diff options
-rw-r--r-- | nova/objects/base.py | 2 | ||||
-rw-r--r-- | nova/objects/instance.py | 1 | ||||
-rw-r--r-- | nova/tests/objects/test_instance.py | 1 |
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() |