Loading changes/bug24953 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor bugfixes (fallback scripts): - In updateFallbackDirs.py, call the filter file a "fallback list" instead of a "whitelist" in check_existing mode. Fixes bug 24953; bugfix on 0.3.0.3-alpha. scripts/maint/updateFallbackDirs.py +31 −12 Original line number Diff line number Diff line Loading @@ -1594,7 +1594,11 @@ class CandidateList(dict): """ Apply the fallback whitelist_obj to this fallback list, passing exact to is_in_whitelist(). """ excluded_count = 0 logging.debug('Applying whitelist') list_type = 'whitelist' if whitelist_obj['check_existing']: list_type = 'fallback list' logging.debug('Applying {}'.format(list_type)) # parse the whitelist whitelist = self.load_relaylist(whitelist_obj) filtered_fallbacks = [] Loading @@ -1609,14 +1613,18 @@ class CandidateList(dict): else: # exclude excluded_count += 1 log_excluded('Excluding %s: not in whitelist.', f._fpr) log_excluded('Excluding %s: not in %s.', f._fpr, list_type) self.fallbacks = filtered_fallbacks return excluded_count @staticmethod def summarise_filters(initial_count, excluded_count): return '/* Whitelist excluded %d of %d candidates. */'%( def summarise_filters(initial_count, excluded_count, check_existing): list_type = 'Whitelist' if check_existing: list_type = 'Fallback list' return '/* %s excluded %d of %d candidates. */'%(list_type, excluded_count, initial_count) # calculate each fallback's measured bandwidth based on the median Loading Loading @@ -2146,7 +2154,7 @@ class CandidateList(dict): fallback_count))) def summarise_fallbacks(self, eligible_count, operator_count, failed_count, guard_count, target_count): guard_count, target_count, check_existing): s = '' # Report: # whether we checked consensus download times Loading Loading @@ -2198,12 +2206,15 @@ class CandidateList(dict): s += '\n' s += '*/' if fallback_count < MIN_FALLBACK_COUNT: list_type = 'whitelist' if check_existing: list_type = 'fallback list' # We must have a minimum number of fallbacks so they are always # reachable, and are in diverse locations s += '\n' s += '#error Fallback Count %d is too low. '%(fallback_count) s += 'Must be at least %d for diversity. '%(MIN_FALLBACK_COUNT) s += 'Try adding entries to the whitelist, ' s += 'Try adding entries to %s, '%(list_type) s += 'or setting INCLUDE_UNLISTED_ENTRIES = True.' return s Loading @@ -2211,14 +2222,16 @@ def process_existing(): logging.basicConfig(level=logging.INFO) logging.getLogger('stem').setLevel(logging.INFO) whitelist = {'data': parse_fallback_file(FALLBACK_FILE_NAME), 'name': FALLBACK_FILE_NAME} 'name': FALLBACK_FILE_NAME, 'check_existing' : True} list_fallbacks(whitelist, exact=True) def process_default(): logging.basicConfig(level=logging.WARNING) logging.getLogger('stem').setLevel(logging.WARNING) whitelist = {'data': read_from_file(WHITELIST_FILE_NAME, MAX_LIST_FILE_SIZE), 'name': WHITELIST_FILE_NAME} 'name': WHITELIST_FILE_NAME, 'check_existing': False} list_fallbacks(whitelist, exact=False) ## Main Function Loading @@ -2244,7 +2257,11 @@ def list_fallbacks(whitelist, exact=False): """ Fetches required onionoo documents and evaluates the fallback directory criteria for each of the relays, passing exact to apply_filter_lists(). """ if whitelist['check_existing']: print "/* type=fallback */" else: print "/* type=whitelist */" print ("/* version={} */" .format(cleanse_c_multiline_comment(FALLBACK_FORMAT_VERSION))) now = datetime.datetime.utcnow() Loading Loading @@ -2284,7 +2301,8 @@ def list_fallbacks(whitelist, exact=False): # instead, there will be an info-level log during the eligibility check. initial_count = len(candidates.fallbacks) excluded_count = candidates.apply_filter_lists(whitelist, exact=exact) print candidates.summarise_filters(initial_count, excluded_count) print candidates.summarise_filters(initial_count, excluded_count, whitelist['check_existing']) eligible_count = len(candidates.fallbacks) # calculate the measured bandwidth of each relay, Loading Loading @@ -2337,7 +2355,8 @@ def list_fallbacks(whitelist, exact=False): if len(candidates.fallbacks) > 0: print candidates.summarise_fallbacks(eligible_count, operator_count, failed_count, guard_count, target_count) target_count, whitelist['check_existing']) else: print '/* No Fallbacks met criteria */' Loading Loading
changes/bug24953 0 → 100644 +4 −0 Original line number Diff line number Diff line o Minor bugfixes (fallback scripts): - In updateFallbackDirs.py, call the filter file a "fallback list" instead of a "whitelist" in check_existing mode. Fixes bug 24953; bugfix on 0.3.0.3-alpha.
scripts/maint/updateFallbackDirs.py +31 −12 Original line number Diff line number Diff line Loading @@ -1594,7 +1594,11 @@ class CandidateList(dict): """ Apply the fallback whitelist_obj to this fallback list, passing exact to is_in_whitelist(). """ excluded_count = 0 logging.debug('Applying whitelist') list_type = 'whitelist' if whitelist_obj['check_existing']: list_type = 'fallback list' logging.debug('Applying {}'.format(list_type)) # parse the whitelist whitelist = self.load_relaylist(whitelist_obj) filtered_fallbacks = [] Loading @@ -1609,14 +1613,18 @@ class CandidateList(dict): else: # exclude excluded_count += 1 log_excluded('Excluding %s: not in whitelist.', f._fpr) log_excluded('Excluding %s: not in %s.', f._fpr, list_type) self.fallbacks = filtered_fallbacks return excluded_count @staticmethod def summarise_filters(initial_count, excluded_count): return '/* Whitelist excluded %d of %d candidates. */'%( def summarise_filters(initial_count, excluded_count, check_existing): list_type = 'Whitelist' if check_existing: list_type = 'Fallback list' return '/* %s excluded %d of %d candidates. */'%(list_type, excluded_count, initial_count) # calculate each fallback's measured bandwidth based on the median Loading Loading @@ -2146,7 +2154,7 @@ class CandidateList(dict): fallback_count))) def summarise_fallbacks(self, eligible_count, operator_count, failed_count, guard_count, target_count): guard_count, target_count, check_existing): s = '' # Report: # whether we checked consensus download times Loading Loading @@ -2198,12 +2206,15 @@ class CandidateList(dict): s += '\n' s += '*/' if fallback_count < MIN_FALLBACK_COUNT: list_type = 'whitelist' if check_existing: list_type = 'fallback list' # We must have a minimum number of fallbacks so they are always # reachable, and are in diverse locations s += '\n' s += '#error Fallback Count %d is too low. '%(fallback_count) s += 'Must be at least %d for diversity. '%(MIN_FALLBACK_COUNT) s += 'Try adding entries to the whitelist, ' s += 'Try adding entries to %s, '%(list_type) s += 'or setting INCLUDE_UNLISTED_ENTRIES = True.' return s Loading @@ -2211,14 +2222,16 @@ def process_existing(): logging.basicConfig(level=logging.INFO) logging.getLogger('stem').setLevel(logging.INFO) whitelist = {'data': parse_fallback_file(FALLBACK_FILE_NAME), 'name': FALLBACK_FILE_NAME} 'name': FALLBACK_FILE_NAME, 'check_existing' : True} list_fallbacks(whitelist, exact=True) def process_default(): logging.basicConfig(level=logging.WARNING) logging.getLogger('stem').setLevel(logging.WARNING) whitelist = {'data': read_from_file(WHITELIST_FILE_NAME, MAX_LIST_FILE_SIZE), 'name': WHITELIST_FILE_NAME} 'name': WHITELIST_FILE_NAME, 'check_existing': False} list_fallbacks(whitelist, exact=False) ## Main Function Loading @@ -2244,7 +2257,11 @@ def list_fallbacks(whitelist, exact=False): """ Fetches required onionoo documents and evaluates the fallback directory criteria for each of the relays, passing exact to apply_filter_lists(). """ if whitelist['check_existing']: print "/* type=fallback */" else: print "/* type=whitelist */" print ("/* version={} */" .format(cleanse_c_multiline_comment(FALLBACK_FORMAT_VERSION))) now = datetime.datetime.utcnow() Loading Loading @@ -2284,7 +2301,8 @@ def list_fallbacks(whitelist, exact=False): # instead, there will be an info-level log during the eligibility check. initial_count = len(candidates.fallbacks) excluded_count = candidates.apply_filter_lists(whitelist, exact=exact) print candidates.summarise_filters(initial_count, excluded_count) print candidates.summarise_filters(initial_count, excluded_count, whitelist['check_existing']) eligible_count = len(candidates.fallbacks) # calculate the measured bandwidth of each relay, Loading Loading @@ -2337,7 +2355,8 @@ def list_fallbacks(whitelist, exact=False): if len(candidates.fallbacks) > 0: print candidates.summarise_fallbacks(eligible_count, operator_count, failed_count, guard_count, target_count) target_count, whitelist['check_existing']) else: print '/* No Fallbacks met criteria */' Loading