def __init__(self, app_data_folder, poll_period_sec): super().__init__() self.app_data_folder = app_data_folder self.exit_event = threading.Event() self.event_table = TableEvents() self.node_table = TableNodes() self.poll_period_sec = poll_period_sec pref = preferences.Preferences(self.app_data_folder) self.s3 = latus.aws.LatusS3(pref) latus.logger.log.info('poll period : %f sec' % float(self.poll_period_sec))
def run(self): pref = preferences.Preferences(self.app_data_folder) while not self.exit_event.is_set(): latus.logger.log.info('starting poll') self._sync_with_aws(pref) latus.logger.log.info('poll complete') self.exit_event.wait(timeout=self.poll_period_sec) self.event_filter.request_exit() self.event_filter.join(latus.const.LONG_TIME_OUT) if self.event_filter.isAlive(): logger.log.warn('g_event_filter is still alive') logger.log.info('exiting node "%s"' % pref.get_node_id())
def __init__(self, app_data_folder, poll_period_sec, use_aws_local, event_filter): super().__init__() self.app_data_folder = app_data_folder self.event_filter = event_filter self.exit_event = threading.Event() pref = preferences.Preferences(self.app_data_folder) self.active_timer = activity_timer.ActivityTimer(pref.get_node_id() + '_' + self.get_type()) self.aws_event_table = TableEvents(use_aws_local) self.node_table = TableNodes(use_aws_local) self.poll_period_sec = poll_period_sec self.s3 = latus.aws.aws_access.LatusS3(pref, use_aws_local) latus.logger.log.info('poll period : %f sec' % float(self.poll_period_sec))
def __init__(self, app_data_folder, use_aws_local): # there is no "super().__init__()" self.app_data_folder = app_data_folder self.use_aws_local = use_aws_local pref = preferences.Preferences(app_data_folder) self.active_timer = activity_timer.ActivityTimer(pref.get_node_id() + '_' + self.get_type()) self.event_filter = EventFilter() self.event_filter.start() if pref.get_upload_logs(): self.usage_uploader = latus.usage.LatusUsageUploader(60*60) # todo: make usage upload period a preference variable latus.logger.add_http_handler() else: self.usage_uploader = None self.s3 = latus.aws.aws_access.LatusS3(pref, use_aws_local) self.table_node = TableNodes(use_aws_local) self.table_node.register(pref.get_node_id()) self.latus_folder = pref.get_latus_folder() util.make_dir(self.latus_folder) self.observer = watchdog.observers.Observer() self.observer.schedule(self, self.latus_folder, recursive=True) latus.nodedb.NodeDB(self.app_data_folder, pref.get_node_id(), True) # make DB if doesn't already exist self.fs_scan(DetectionSource.initial_scan) # todo: this needs to be in a separate class so that we can have a test value and a value from advanced preferences if use_aws_local: poll_period = latus.const.POLL_PERIOD else: poll_period = 10*60 # should be from advanced preferences self.aws_db_sync = AWSDBSync(self.app_data_folder, poll_period, use_aws_local, self.event_filter)
def __init__(self, app_data_folder): # there is no "super().__init__()" self.app_data_folder = app_data_folder pref = preferences.Preferences(app_data_folder) self.active_timer = activity_timer.ActivityTimer(3, pref.get_node_id() + '_' + self.get_type()) if pref.get_upload_logs(): self.usage_uploader = latus.usage.LatusUsageUploader(60*60) # todo: make usage upload period a preference variable latus.logger.add_http_handler() else: self.usage_uploader = None if pref.get_aws_local(): latus.aws.local_testing() latus.aws.init() self.s3 = latus.aws.LatusS3(pref) self.table_node = TableNodes() self.table_node.register(pref.get_node_id()) self.latus_folder = pref.get_latus_folder() util.make_dir(self.latus_folder) self.observer = watchdog.observers.Observer() self.observer.schedule(self, self.latus_folder, recursive=True) latus.nodedb.NodeDB(self.app_data_folder, pref.get_node_id(), True) # make DB if doesn't already exist self.fs_scan(DetectionSource.initial_scan) if pref.get_aws_local(): poll_period = latus.const.FILTER_TIME_OUT * 2 else: poll_period = 10*60 self.aws_db_sync = AWSDBSync(self.app_data_folder, poll_period)
def run(self): pref = preferences.Preferences(self.app_data_folder) while not self.exit_event.is_set(): self._pull_down_new_db_entries(pref) self._sync(pref) self.exit_event.wait(timeout=self.poll_period_sec)