def __init__(self, node, job_finder, couple_record_finder=None, prepare_namespaces_states=False, prepare_flow_stats=False, statistics=None): logger.info("Created NodeInfoUpdater") self.__node = node self.statistics = statistics self.job_finder = job_finder self.couple_record_finder = couple_record_finder self._namespaces_states = CachedGzipResponse() self._flow_stats = {} self.__tq = timed_queue.TimedQueue() self.__session = elliptics.Session(self.__node) wait_timeout = config.get('elliptics', {}).get('wait_timeout') or config.get( 'wait_timeout', 5) self.__session.set_timeout(wait_timeout) self.__nodeUpdateTimestamps = (time.time(), time.time()) self.__cluster_update_lock = threading.Lock() if prepare_namespaces_states and statistics is None: raise AssertionError( 'Statistics is required for namespaces states calculation') if prepare_flow_stats and statistics is None: raise AssertionError( 'Statistics is required for flow stats calculation') self._prepare_namespaces_states = prepare_namespaces_states self._prepare_flow_stats = prepare_flow_stats