def get_levels(version=None): '''get_levels returns a dictionary of levels (key) and values (dictionaries with descriptions and regular expressions for files) for the user. :param version: the version of singularity to use (default is 2.2) :param include_files: files to add to the level, only relvant if ''' valid_versions = ['2.3', '2.2'] if version is None: version = "2.3" version = str(version) if version not in valid_versions: bot.logger.error("Unsupported version %s, valid versions are %s", version, ",".join(valid_versions)) levels_file = os.path.abspath( os.path.join(get_installdir(), 'hub', 'data', 'reproduce_levels.json')) levels = read_json(levels_file) if version == "2.2": # Labels not added until 2.3 del levels['LABELS'] levels = make_levels_set(levels) return levels
def get_levels(version=None): '''get_levels returns a dictionary of levels (key) and values (dictionaries with descriptions and regular expressions for files) for the user. :param version: the version of singularity to use (default is 2.2) :param include_files: files to add to the level, only relvant if ''' valid_versions = ['2.3','2.2'] if version is None: version = "2.3" version = str(version) if version not in valid_versions: bot.error("Unsupported version %s, valid versions are %s" %(version, ",".join(valid_versions))) levels_file = os.path.abspath(os.path.join(get_installdir(), 'analysis', 'reproduce', 'data', 'reproduce_levels.json')) levels = read_json(levels_file) if version == "2.2": # Labels not added until 2.3 del levels['LABELS'] levels = make_levels_set(levels) return levels
def get_nightly_comparisons(date=None): '''load the latest nightly comparisons. :param date: if provided, will load specified date instead of latest. ''' root = os.path.abspath(os.path.join(MEDIA_ROOT, 'trees', 'nightly')) base_name = "%s/container-tree" % (root) if date == None: date = "latest" base_name = "%s-%s.json" % (base_name, date) if os.path.exists(base_name): return read_json(base_name) return None
def read_client_secrets(secrets=None,required=True): # If token file not provided, check environment if secrets is None: secrets = os.environ.get("SREGISTRY_CLIENT_SECRETS") # Fall back to default if secrets is None: userhome = pwd.getpwuid(os.getuid())[5] secrets = "%s/.sregistry" % (userhome) if secrets is not None: if os.path.exists(secrets): return read_json(secrets) message = 'Client secrets file not found at %s or $SREGISTRY_CLIENT_SECRETS.' %secrets if required: bot.error(message) sys.exit(1) bot.warning(message) return None