Exemple #1
0
def main():
    '''main is a wrapper for the client to hand the parser
    to the executable functions
    This makes it possible to set up a parser in test cases
    '''
    bot.debug("\n*** STARTING SINGULARITY PYTHON PULL ****")
    from defaults import LAYERFILE, DISABLE_CACHE, getenv

    # What image is the user asking for?
    container = getenv("SINGULARITY_CONTAINER", required=True)
    pull_folder = getenv("SINGULARITY_PULLFOLDER")

    image_uri = get_image_uri(container)
    container = remove_image_uri(container, quiet=True)

    if image_uri == "shub://":

        from shub.main import PULL
        manifest = PULL(image=container,
                        download_folder=pull_folder,
                        layerfile=LAYERFILE)

    else:
        bot.error("uri %s is not supported for pull. Exiting." % (image_uri))
        sys.exit(1)
Exemple #2
0
def main():
    '''main is a wrapper for the client to hand the parser
    to the executable functions
    This makes it possible to set up a parser in test cases
    '''
    bot.debug("\n*** STARTING SINGULARITY PYTHON PULL ****")
    from defaults import LAYERFILE, DISABLE_CACHE, getenv

    # What image is the user asking for?
    container = getenv("SINGULARITY_CONTAINER", required=True)
    pull_folder = getenv("SINGULARITY_PULLFOLDER")

    image_uri = get_image_uri(container)
    container = remove_image_uri(container, quiet=True)

    if image_uri == "shub://":

        from shub.main import PULL
        manifest = PULL(image=container,
                        download_folder=pull_folder,
                        layerfile=LAYERFILE)

    else:
        bot.error("uri %s is not supported for pull. Exiting." % (image_uri))
        sys.exit(1)
Exemple #3
0
def main():
    '''this function will run a docker import, returning a list of layers
    and environmental variables and metadata to the metadata base
    '''

    container = getenv("SINGULARITY_CONTAINER", required=True)
    image_uri = get_image_uri(container, quiet=True)
    container = remove_image_uri(container)

    ########################################################################
    # Docker Image #########################################################
    ########################################################################

    if image_uri == "docker://":

        bot.debug("\n*** STARTING DOCKER IMPORT PYTHON  ****")

        from sutils import basic_auth_header
        from defaults import LAYERFILE

        bot.debug("Docker layers and metadata will be written to: %s"
                  % (LAYERFILE))

        username = getenv("SINGULARITY_DOCKER_USERNAME")
        password = getenv("SINGULARITY_DOCKER_PASSWORD",
                          silent=True)

        auth = None
        if username is not None and password is not None:
            auth = basic_auth_header(username, password)

        from docker.main import IMPORT

        manifest = IMPORT(auth=auth,
                          image=container,
                          layerfile=LAYERFILE)

    ########################################################################
    # Singularity Hub ######################################################
    ########################################################################

    elif image_uri == "shub://":

        bot.debug("\n*** STARTING SINGULARITY HUB IMPORT PYTHON  ****")

        from defaults import LAYERFILE, LABELFILE
        from shub.main import IMPORT
        IMPORT(image=container,
               layerfile=LAYERFILE,
               labelfile=LABELFILE)

    else:
        bot.error("uri %s is not supported for import. Exiting."
                  % (image_uri))
        sys.exit(1)
Exemple #4
0
def main():
    '''this function will run a docker import, returning a list of layers 
    and environmental variables and metadata to the metadata base
    '''

    container = getenv("SINGULARITY_CONTAINER", required=True)
    image_uri = get_image_uri(container, quiet=True)
    container = remove_image_uri(container)

    ##############################################################################
    # Docker Image ###############################################################
    ##############################################################################

    if image_uri == "docker://":

        bot.debug("\n*** STARTING DOCKER IMPORT PYTHON  ****")

        from sutils import basic_auth_header
        from defaults import LAYERFILE

        bot.debug(
            "Docker layers and (env,labels,runscript) will be written to: %s" %
            LAYERFILE)
        username = getenv("SINGULARITY_DOCKER_USERNAME")
        password = getenv("SINGULARITY_DOCKER_PASSWORD", silent=True)

        auth = None
        if username is not None and password is not None:
            auth = basic_auth_header(username, password)

        from docker.main import IMPORT

        manifest = IMPORT(auth=auth, image=container, layerfile=LAYERFILE)

    ##############################################################################
    # Singularity Hub ############################################################
    ##############################################################################

    elif image_uri == "shub://":

        bot.debug("\n*** STARTING SINGULARITY HUB IMPORT PYTHON  ****")

        from defaults import LAYERFILE, LABELFILE
        from shub.main import IMPORT
        IMPORT(image=container, layerfile=LAYERFILE, labelfile=LABELFILE)

    else:
        bot.error(
            "uri %s is not a currently supported uri for import. Exiting." %
            image_uri)
        sys.exit(1)
Exemple #5
0
def main():
    '''this function will run the main size functions and call shub clients 
    '''

    container = getenv("SINGULARITY_CONTAINER",required=True)
    image_uri = get_image_uri(container)    
    container = remove_image_uri(container)
    from defaults import LAYERFILE

    ##############################################################################
    # Singularity Hub ############################################################
    ##############################################################################

    if image_uri == "shub://":

        bot.debug("\n*** STARTING SINGULARITY HUB SIZE PYTHON  ****")    
        from shub.main import SIZE
        SIZE(image=container,
             contentfile=LAYERFILE)

    elif image_uri == "docker://":

        from sutils import basic_auth_header
        from docker.main import SIZE

        bot.debug("Docker sizes will be written to: %s" %LAYERFILE)
        username = getenv("SINGULARITY_DOCKER_USERNAME") 
        password = getenv("SINGULARITY_DOCKER_PASSWORD",silent=True)

        auth = None
        if username is not None and password is not None:
            auth = basic_auth_header(username, password)

        SIZE(image=container,
             auth=auth,
             contentfile=LAYERFILE)

    else:
        bot.error("uri %s is not a currently supported uri for size. Exiting." %image_uri)
        sys.exit(1)
Exemple #6
0
def main():
    '''this function will run the main inspect function
    '''
    labels = getenv("SINGULARITY_INSPECT_LABELS", None)
    deffile = getenv("SINGULARITY_INSPECT_DEFFILE", None)
    runscript = getenv("SINGULARITY_INSPECT_RUNSCRIPT", None)
    test = getenv("SINGULARITY_INSPECT_TEST", None)
    environment = getenv("SINGULARITY_INSPECT_ENVIRONMENT", None)
    helpfile = getenv("SINGULARITY_INSPECT_HELP", None)
    structured = getenv("SINGULARITY_PRINT_STRUCTURED", None)
    app = getenv("SINGULARITY_APPNAME", None)

    pretty_print = True
    if structured is not None:
        pretty_print = False

    INSPECT(inspect_app=app,
            inspect_labels=labels,
            inspect_def=deffile,
            inspect_runscript=runscript,
            inspect_test=test,
            inspect_help=helpfile,
            inspect_env=environment,
            pretty_print=pretty_print)
Exemple #7
0
def main():
    '''this function will run the main inspect function
    '''
    labels = getenv("SINGULARITY_INSPECT_LABELS", None)
    deffile = getenv("SINGULARITY_INSPECT_DEFFILE", None)
    runscript = getenv("SINGULARITY_INSPECT_RUNSCRIPT", None)
    test = getenv("SINGULARITY_INSPECT_TEST", None)
    environment = getenv("SINGULARITY_INSPECT_ENVIRONMENT", None)
    helpfile = getenv("SINGULARITY_INSPECT_HELP", None)
    structured = getenv("SINGULARITY_PRINT_STRUCTURED", None)
    app = getenv("SINGULARITY_APPNAME", None)

    pretty_print = True
    if structured is not None:
        pretty_print = False

    INSPECT(inspect_app=app,
            inspect_labels=labels,
            inspect_def=deffile,
            inspect_runscript=runscript,
            inspect_test=test,
            inspect_help=helpfile,
            inspect_env=environment,
            pretty_print=pretty_print)