Example #1
0
def pkg_new():
    packageName = json.loads(request.data)['packageName']
    
    if docker_interface.file_exists(session['user_container_name'], packageName):
        raise PackageError("A package with the name '"+packageName+"' already exists.")
    
    # Make sure templates are available
    templatePath = '/opt/webapp/webrob/templates/package'
    if not os.path.exists(templatePath):
        raise PackageError("Package template could not be found.")

    try:
        with LFTransfer(session['user_container_name']) as lft:
            pkgPath = os.path.join(lft.get_filetransfer_folder(), packageName)
            
            # Copy package template to user_data container while replacing some keywords
            for root, dirs, files in os.walk(templatePath):
                for f in files:
                    abs_p = os.path.join(root, f)
                    rel_p = os.path.relpath(abs_p, templatePath)
                    user_p = os.path.join(pkgPath, rel_p)
                    copy_template_file(abs_p, user_p, {
                        "pkgName": packageName,
                        "userName": session['user_container_name']
                    })
            lft.to_container(packageName, packageName)
    except:  # catch *all* exceptions
        app.logger.error("Unable to create package.")
        app.logger.error(str(sys.exc_info()[0]))
        app.logger.error(str(traceback.format_exc()))
        pkg_del(packageName)
        raise PackageError("An internal error occurred.")
    
    return jsonify(success=1)
Example #2
0
def pkg_new():
    packageName = json.loads(request.data)['packageName']

    # Create package root directory
    if docker_interface.file_exists(session['user_container_name'], packageName):
        app.logger.warning("Package already exists.")
        return jsonify(result=None)

    # Make sure templates are available
    templatePath = os.path.abspath('webrob/templates/package')
    if not os.path.exists(templatePath):
        app.logger.warning("Package templates missing at " + templatePath + ".")
        return jsonify(result=None)

    try:
        with LFTransfer(session['user_container_name']) as lft:
            pkgPath = os.path.join(lft.get_filetransfer_folder(), packageName)
            # Copy package template to user_data container while replacing some keywords
            for root, dirs, files in os.walk(templatePath):
                for f in files:
                    abs_p = os.path.join(root, f)
                    rel_p = os.path.relpath(abs_p, templatePath)
                    user_p = os.path.join(pkgPath, rel_p)
                    copy_template_file(abs_p, user_p, {
                        "pkgName": packageName,
                        "userName": session['user_container_name']
                    })
            lft.to_container(packageName, packageName)
    except:  # catch *all* exceptions
        app.logger.error("Unable to create package.")
        app.logger.error(str(sys.exc_info()[0]))
        app.logger.error(str(traceback.format_exc()))
        pkg_del(packageName)

    return jsonify(result=None)
Example #3
0
def pkg_new():
    packageName = json.loads(request.data)['packageName']

    # Create package root directory
    if docker_interface.file_exists(session['user_container_name'],
                                    packageName):
        app.logger.warning("Package already exists.")
        return jsonify(result=None)

    # Make sure templates are available
    templatePath = os.path.abspath('webrob/templates/package')
    if not os.path.exists(templatePath):
        app.logger.warning("Package templates missing at " + templatePath +
                           ".")
        return jsonify(result=None)

    try:
        with LFTransfer(session['user_container_name']) as lft:
            pkgPath = os.path.join(lft.get_filetransfer_folder(), packageName)
            # Copy package template to user_data container while replacing some keywords
            for root, dirs, files in os.walk(templatePath):
                for f in files:
                    abs_p = os.path.join(root, f)
                    rel_p = os.path.relpath(abs_p, templatePath)
                    user_p = os.path.join(pkgPath, rel_p)
                    copy_template_file(
                        abs_p, user_p, {
                            "pkgName": packageName,
                            "userName": session['user_container_name']
                        })
            lft.to_container(packageName, packageName)
    except:  # catch *all* exceptions
        app.logger.error("Unable to create package.")
        app.logger.error(str(sys.exc_info()[0]))
        app.logger.error(str(traceback.format_exc()))
        pkg_del(packageName)

    return jsonify(result=None)
Example #4
0
def pkg_new():
    packageName = json.loads(request.data)['packageName']

    if docker_interface.file_exists(session['user_container_name'],
                                    packageName):
        raise PackageError("A package with the name '" + packageName +
                           "' already exists.")

    # Make sure templates are available
    templatePath = '/opt/webapp/webrob/templates/package'
    if not os.path.exists(templatePath):
        raise PackageError("Package template could not be found.")

    try:
        with LFTransfer(session['user_container_name']) as lft:
            pkgPath = os.path.join(lft.get_filetransfer_folder(), packageName)

            # Copy package template to user_data container while replacing some keywords
            for root, dirs, files in os.walk(templatePath):
                for f in files:
                    abs_p = os.path.join(root, f)
                    rel_p = os.path.relpath(abs_p, templatePath)
                    user_p = os.path.join(pkgPath, rel_p)
                    copy_template_file(
                        abs_p, user_p, {
                            "pkgName": packageName,
                            "userName": session['user_container_name']
                        })
            lft.to_container(packageName, packageName)
    except:  # catch *all* exceptions
        app.logger.error("Unable to create package.")
        app.logger.error(str(sys.exc_info()[0]))
        app.logger.error(str(traceback.format_exc()))
        pkg_del(packageName)
        raise PackageError("An internal error occurred.")

    return jsonify(success=1)