summaryrefslogtreecommitdiff
path: root/ironic/common/hash_ring.py
diff options
context:
space:
mode:
authorKaifeng Wang <kaifeng.w@gmail.com>2023-05-07 15:09:50 +0800
committerKaifeng Wang <kaifeng.w@gmail.com>2023-05-07 15:09:50 +0800
commitb48dfd44c7dedd5e55f27d3692db82ce89c35b97 (patch)
tree90086a49fa31e6630e27c04cc263672dd9089425 /ironic/common/hash_ring.py
parent7f281392c219decdfc1a34dc672a86e360230ac9 (diff)
downloadironic-b48dfd44c7dedd5e55f27d3692db82ce89c35b97.tar.gz
Use monotonic time for hashring reset
hashring use time.time() to calculate intervals, replace with monotonic so it will not be affected by system time jump. Change-Id: I17569359f4d2c0f2f24ca8b50773c4d210ed8deb
Diffstat (limited to 'ironic/common/hash_ring.py')
-rw-r--r--ironic/common/hash_ring.py4
1 files changed, 2 insertions, 2 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