diff options
-rw-r--r-- | ironic/common/hash_ring.py | 4 | ||||
-rw-r--r-- | ironic/tests/unit/common/test_hash_ring.py | 2 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/network/test_common.py | 4 |
3 files changed, 7 insertions, 3 deletions
diff --git a/ironic/common/hash_ring.py b/ironic/common/hash_ring.py index 1f1107008..8986d5bd2 100644 --- a/ironic/common/hash_ring.py +++ b/ironic/common/hash_ring.py @@ -40,7 +40,7 @@ class HashRingManager(object): @property def ring(self): interval = CONF.hash_ring_reset_interval - limit = time.time() - interval + limit = time.monotonic() - interval if not self.cache: return self._load_hash_rings() @@ -56,7 +56,7 @@ class HashRingManager(object): if hash_rings is None or updated_at < limit: LOG.debug('Rebuilding cached hash rings') hash_rings = self._load_hash_rings() - self.__class__._hash_rings = hash_rings, time.time() + self.__class__._hash_rings = hash_rings, time.monotonic() LOG.debug('Finished rebuilding hash rings, available drivers ' 'are %s', ', '.join(hash_rings)) return hash_rings diff --git a/ironic/tests/unit/common/test_hash_ring.py b/ironic/tests/unit/common/test_hash_ring.py index 9ecf34562..a84b9ffcf 100644 --- a/ironic/tests/unit/common/test_hash_ring.py +++ b/ironic/tests/unit/common/test_hash_ring.py @@ -129,7 +129,7 @@ class HashRingManagerTestCase(db_base.DbTestCase): self.ring_manager.__class__._hash_rings = ( self.ring_manager.__class__._hash_rings[0], - time.time() - 31 + time.monotonic() - 31 ) ring = self.ring_manager.get_ring('hardware-type', '') self.assertEqual(2, len(ring)) diff --git a/ironic/tests/unit/drivers/modules/network/test_common.py b/ironic/tests/unit/drivers/modules/network/test_common.py index 48be8ceae..e58fcaa20 100644 --- a/ironic/tests/unit/drivers/modules/network/test_common.py +++ b/ironic/tests/unit/drivers/modules/network/test_common.py @@ -1065,10 +1065,14 @@ class TestNeutronVifPortIDMixin(db_base.DbTestCase): expected_dhcp_opts = [{'opt_name': '61', 'opt_value': 'fake2'}] self.port.extra = expected_extra self.port.internal_info = expected_ii + what_changed_mock = mock.Mock() + what_changed_mock.return_value = ['extra', 'internal_info'] + self.port.obj_what_changed = what_changed_mock with task_manager.acquire(self.context, self.node.id) as task: self.interface.port_changed(task, self.port) dhcp_update_mock.assert_called_once_with( mock.ANY, 'fake-id', expected_dhcp_opts, context=task.context) + self.assertEqual(2, what_changed_mock.call_count) @mock.patch('ironic.dhcp.neutron.NeutronDHCPApi.update_port_dhcp_opts', autospec=True) |