def get_config_limit(activity, rse_id, logger=logging.log): """ Get RSE transfer limits in strict mode. :param activity: The activity. :param rse_id: The RSE id. :param logger: Optional decorated logger that can be passed from the calling daemons or servers. :returns: max_transfers if exists else None. """ result = NoValue() key = 'config_limits' if using_memcache: result = REGION_SHORT.get(key) if type(result) is NoValue: try: logger(logging.DEBUG, "Refresh rse config limits") result = get_config_limits() REGION_SHORT.set(key, result) except: logger( logging.WARNING, "Failed to retrieve rse transfer limits: %s" % (traceback.format_exc())) result = None threshold = None if result: if activity in result.keys(): if rse_id in result[activity].keys(): threshold = result[activity][rse_id] elif 'all_rses' in result[activity].keys(): threshold = result[activity]['all_rses'] if not threshold and 'all_activities' in result.keys(): if rse_id in result['all_activities'].keys(): threshold = result['all_activities'][rse_id] elif 'all_rses' in result['all_activities'].keys(): threshold = result['all_activities']['all_rses'] return threshold
def get_config_limit(activity, rse_id): """ Get RSE transfer limits in strict mode. :param activity: The activity. :param rse_id: The RSE id. :returns: max_transfers if exists else None. """ result = NoValue() key = 'config_limits' if using_memcache: result = REGION_SHORT.get(key) if type(result) is NoValue: try: logging.debug("Refresh rse config limits") result = get_config_limits() REGION_SHORT.set(key, result) except: logging.warning("Failed to retrieve rse transfer limits: %s" % (traceback.format_exc())) result = None threshold = None if result: if activity in result.keys(): if rse_id in result[activity].keys(): threshold = result[activity][rse_id] elif 'all_rses' in result[activity].keys(): threshold = result[activity]['all_rses'] if not threshold and 'all_activities' in result.keys(): if rse_id in result['all_activities'].keys(): threshold = result['all_activities'][rse_id] elif 'all_rses' in result['all_activities'].keys(): threshold = result['all_activities']['all_rses'] return threshold