]> xenbits.xensource.com Git - osstest/openstack-nova.git/commitdiff
Don't use 'updated_at' to check service's status
authorChangBo Guo(gcb) <eric.guo@easystack.cn>
Thu, 24 Mar 2016 12:33:50 +0000 (20:33 +0800)
committerStephen Finucane <sfinucan@redhat.com>
Thu, 8 Dec 2016 09:51:03 +0000 (09:51 +0000)
Commit b9bae02af2168ad64d3b3d28c97c3853cee73272 introduced
'last_seen_up' to check service in Liberty. Nova use 'updated_at'
to check that before Liberty. So we can remove legacy item now.
Note: 'last_seen_up' may be null at the beginning. so we still
need 'created_at' in this case.

Change-Id: I5a273c294341027fba66a54a540182fc890522db

nova/servicegroup/drivers/db.py
nova/tests/unit/servicegroup/test_db_servicegroup.py

index ff41ad0c4f4977c7714aa118c769b01f53de17ee..63d94f461e1470d938c8f41dd1e6ab031d62798e 100644 (file)
@@ -57,10 +57,8 @@ class DbDriver(base.Driver):
         """Moved from nova.utils
         Check whether a service is up based on last heartbeat.
         """
-        # Keep checking 'updated_at' if 'last_seen_up' isn't set.
-        # Should be able to use only 'last_seen_up' in the M release
         last_heartbeat = (service_ref.get('last_seen_up') or
-            service_ref['updated_at'] or service_ref['created_at'])
+            service_ref['created_at'])
         if isinstance(last_heartbeat, six.string_types):
             # NOTE(russellb) If this service_ref came in over rpc via
             # conductor, then the timestamp will be a string and needs to be
index f2bc7d4b1c68cfd2405de9e18089d10ad3d1bf1a..4c2810194502ff1c02fb24cac4fc05077eed7f50 100644 (file)
@@ -64,6 +64,13 @@ class DBServiceGroupTestCase(test.NoDBTestCase):
         result = self.servicegroup_api.service_is_up(service)
         self.assertFalse(result)
 
+        # "last_seen_up" is none before compute node reports its status,
+        # just use 'created_at' as last_heartbeat.
+        service.last_seen_up = None
+        service.created_at = timeutils.utcnow()
+        result = self.servicegroup_api.service_is_up(service)
+        self.assertTrue(result)
+
     def test_join(self):
         service = mock.MagicMock(report_interval=1)