summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-03-05 04:08:25 +0000
committerGerrit Code Review <review@openstack.org>2013-03-05 04:08:25 +0000
commitdbf5e13c3a914b7a7a685f551c782d130a1e7da7 (patch)
tree3d5a3608fb9bda3ada88493279e572606ed54c58
parent6072ddab97236fa488e78e6755e0167aea7ab710 (diff)
parent5d83d23cb7f7e95fedbd339405d93bc3841049ea (diff)
downloadnova-dbf5e13c3a914b7a7a685f551c782d130a1e7da7.tar.gz
nova-dbf5e13c3a914b7a7a685f551c782d130a1e7da7.tar.xz
nova-dbf5e13c3a914b7a7a685f551c782d130a1e7da7.zip
Merge "Bump instance updated_at on network change."
-rwxr-xr-xnova/compute/manager.py8
-rw-r--r--nova/conductor/manager.py4
-rw-r--r--nova/tests/compute/test_compute.py24
3 files changed, 34 insertions, 2 deletions
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index 224ac01e0..7e2fb1c0d 100755
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -2355,6 +2355,10 @@ class ComputeManager(manager.SchedulerDependentManager):
network_info = self._inject_network_info(context, instance=instance)
self.reset_network(context, instance)
+ # NOTE(russellb) We just want to bump updated_at. See bug 1143466.
+ self._instance_update(context, instance['uuid'],
+ updated_at=timeutils.utcnow())
+
self._notify_about_instance_usage(
context, instance, "create_ip.end", network_info=network_info)
@@ -2376,6 +2380,10 @@ class ComputeManager(manager.SchedulerDependentManager):
instance=instance)
self.reset_network(context, instance)
+ # NOTE(russellb) We just want to bump updated_at. See bug 1143466.
+ self._instance_update(context, instance['uuid'],
+ updated_at=timeutils.utcnow())
+
self._notify_about_instance_usage(
context, instance, "delete_ip.end", network_info=network_info)
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index 9d6ac31e7..2a0853491 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -39,11 +39,11 @@ allowed_updates = ['task_state', 'vm_state', 'expected_task_state',
'instance_type_id', 'root_device_name', 'launched_on',
'progress', 'vm_mode', 'default_ephemeral_device',
'default_swap_device', 'root_device_name',
- 'system_metadata',
+ 'system_metadata', 'updated_at'
]
# Fields that we want to convert back into a datetime object.
-datetime_fields = ['launched_at', 'terminated_at']
+datetime_fields = ['launched_at', 'terminated_at', 'updated_at']
class ConductorManager(manager.SchedulerDependentManager):
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index 7f85eee49..f389b3bc2 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -3773,6 +3773,30 @@ class ComputeTestCase(BaseTestCase):
self.mox.ReplayAll()
self.compute._instance_usage_audit(self.context)
+ def test_add_remove_fixed_ip_updates_instance_updated_at(self):
+ def _noop(*args, **kwargs):
+ pass
+
+ self.stubs.Set(self.compute.network_api,
+ 'add_fixed_ip_to_instance', _noop)
+ self.stubs.Set(self.compute.network_api,
+ 'remove_fixed_ip_from_instance', _noop)
+
+ instance = self._create_fake_instance()
+ updated_at_1 = instance['updated_at']
+
+ self.compute.add_fixed_ip_to_instance(self.context, 'fake', instance)
+ instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ updated_at_2 = instance['updated_at']
+
+ self.compute.remove_fixed_ip_from_instance(self.context, 'fake',
+ instance)
+ instance = db.instance_get_by_uuid(self.context, instance['uuid'])
+ updated_at_3 = instance['updated_at']
+
+ updated_ats = (updated_at_1, updated_at_2, updated_at_3)
+ self.assertEqual(len(updated_ats), len(set(updated_ats)))
+
class ComputeAPITestCase(BaseTestCase):