Source code for src.driver.drivercache
"""
.. module:: drivercache
:synopsis: caching layer for ep2
"""
[docs]class DriverCache(object):
"""Class to provide caching for ep2
The backends fetched in a given run is stored in memory.
The backends fetched in next run witll be compared to the ones already
held by this class (node_ips). If there is a mismatch, only then update
will be done
Args:
node_ips (list) : list of backend IPs
"""
def __init__(self, node_ips):
"""Init method
Method for initialising drivercache
Args:
node_ips (list) : list of backend IPs
"""
self.node_ips = set()
if node_ips:
self.node_ips = node_ips
[docs] def need_to_update(self, node_ips):
"""Method to check if haproxy needs to be updated
Args:
node_ips (list) : list of backend IPs
Returns:
bool: Whether to update haproxy or not
"""
if node_ips == self.node_ips:
return False
if node_ips != self.node_ips:
self.node_ips = node_ips
return True