Пример #1
0
def updateContainer():
    input = request.get_json(silent=True)
    validation = doValidate(input)
    if validation:
        return response.reply(message=validation.message, status=403)

    try:
        client = LXCContainer(input)
        return response.reply(client.update())
    except ValueError as ex:
        return response.reply(message=ex.__str__(), status=403)
Пример #2
0
def createContainer():
    input = request.get_json(silent=True)
    validation = doValidate(input)
    if validation:
        return response.reply(message=validation.message, status=403)

    input = [input] if not isinstance(input, list) else input

    try:
        result = []
        for container in input:
            client = LXCContainer(container)
            result.append(client.create())
        return response.reply(result)
    except ValueError as ex:
        return response.reply(message=ex.__str__(), status=403)
Пример #3
0
def list(name):
    path = request.args.get('path')
    if path == None:
        return jsonify([])
        #return response.replyFailed('Path is missing')

    input = {}
    input['name'] = name
    input['path'] = path

    try:
        fileManager = LXCFileManager(input)
        try:
            results = []
            #Folder
            items = json.loads(fileManager.download().decode('utf-8'))['metadata']
            for item in items:
                input['path'] = path + '/' + item
                results.append({
                    'title': item,
                    'key': item,
                    'folder': isFolder(LXCFileManager(input)),
                    'lazy': isFolder(LXCFileManager(input)),
                })

            return jsonify(results)
            return response.reply(results)
        except:
            #File
            return jsonify([])
            return response.replyFailed('Please enter a valid directory path')
            #result = fileManager.download()

    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #4
0
def delete_profile(name):
    try:
        profile = LXCProfile({'name': name})
        profile.deleteProfile()
        return response.reply()
    except ValueError as ex:
        return response.replyFailed(message=ex.__str__())
Пример #5
0
def containers():
    client = LXDModule()
    result = []
    containers = client.listContainers()
    for container in containers:
        c = LXCContainer({'name': container.get('name')})
        result.append(c.info())
    return response.reply(result)
Пример #6
0
def deleteContainer(name):
    input = request.get_json(silent=True)
    force = False if input == None else input.get('force')
    try:
        container = LXCContainer({'name': name})
        container.delete(force)
        return response.reply(None)
    except ValueError as ex:
        return response.replyFailed(message=ex.__str__())
Пример #7
0
def containers():
    client = LXDModule()
    result = []
    containers = client.listContainers()
    result = []
    for container in containers:
        result.append(getContainerDetails(container))

    return response.reply(result)
Пример #8
0
def download(name):
    input = request.get_json(silent=True)
    input['name'] = name

    try:
        fileManager = LXCFileManager(input)
        return response.reply(fileManager.download())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #9
0
def edit_file(name):
    input = request.get_json(silent=True)

    input['name'] = name

    try:
        fileManager = LXCFileManager(input)
        fileManager.delete()
        return response.reply(fileManager.push())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #10
0
def update_profile(name):
    data = request.get_json()
    data['name'] = name
    validation = doValidate(data)
    if validation:
        return response.replyFailed(message=validation.message)
    try:
        profile = LXCProfile(data)
        return response.reply(profile.updateProfile())
    except ValueError as ex:
        return response.replyFailed(message=ex.__str__())
Пример #11
0
def moveContainer(name):
    input = request.get_json(silent=True)
    validation = doValidateCloneMove(input)
    if validation:
        return response.reply(message=validation.message, status=403)

    input['name'] = name
    try:
        container = LXCContainer(input)
        return response.replySuccess(container.move())
    except ValueError as e:
        return response.replyFailed(message=e.__str__())
Пример #12
0
def exportContainer(name):
    input = request.get_json(silent=True)
    validation = doValidateImageExport(input)
    if validation:
        return response.reply(message=validation.message, status=403)

    force = False if input.get('force') == None else input.get('force')
    input['name'] = name
    try:
        container = LXCContainer(input)
        return response.replySuccess(container.export(force))
    except ValueError as e:
        return response.replyFailed(message=e.__str__())
Пример #13
0
def createContainerSnapshot(name, container):
    input = request.get_json(silent=True)
    validation = doValidateCloneMove(input)
    if validation:
        return response.reply(message=validation.message, status=403)

    input['name'] = name
    input['container'] = container
    try:
        snapshot = LXCSnapshot(input)
        return response.replySuccess(snapshot.snapshotCreateContainer(), message='Container {} created from {} snapshot successfully.'.format(input['newContainer'], name))
    except ValueError as e:
        return response.replyFailed(message=e.__str__())
Пример #14
0
def upload_file(name):
    input = request.get_json(silent=True)
    #validation = doValidate(input)
    # if validation:
    #     return response.replyFailed(message=validation.message)

    input['name'] = name

    try:
        fileManager = LXCFileManager(input)
        return response.reply(fileManager.push())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #15
0
def upload_file(name):
    input = None
    try:
        file = request.files.get('file')
        input = {
            'name':name,
            'path':request.form.get('path')+file.filename,
            'file':file
        }
    except:
        return  response.replyFailed(message='Missing one the required fields: [path,file]')

    try:
        fileManager = LXCFileManager(input)
        return response.reply(fileManager.push())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #16
0
def download(name):
    input = request.get_json(silent=True)
    input['name'] = name

    try:
        fileManager = LXCFileManager(input)

        try:
            # Folder
            result = json.loads(fileManager.download().decode('utf-8'))['metadata']
        except:
            # File
            result = fileManager.download()

        return response.reply(result)
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #17
0
def content(name):
    path = request.args.get('path')
    if path == None:
        return jsonify([])
        #return response.replyFailed('Path is missing')

    input = {}
    input['name'] = name
    input['path'] = path

    try:

        try:
            #Folder
            fileManager = LXCFileManager(input)
            items = json.loads(fileManager.download().decode('utf-8'))['metadata']
            return response.replyFailed('Please enter a valid file path')
        except:
            #File
            result = fileManager.download().decode('utf-8')
            return response.reply(result)

    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #18
0
def storagePools():
    try:
        client = LXDModule()
        return response.reply(client.listStoragePools())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #19
0
def get_profile(name):
    try:
        profile = LXCProfile({'name': name})
        return response.reply(profile.info(name))
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #20
0
def profiles():
    try:
        client = LXDModule()
        return response.reply(client.listProfiles())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #21
0
def list():
    try:
        fileManager = LXCFileManager()
        return response.reply(fileManager.list())
    except ValueError as ex:
        return response.replyFailed(ex.__str__())
Пример #22
0
def get_storage_pool(name):
    try:
        storagePool = LXCStoragePool({'name': name})
        return response.reply(storagePool.info(name))
    except ValueError as ex:
        return response.replyFailed(ex.__str__())