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)
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)
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__())
def delete_profile(name): try: profile = LXCProfile({'name': name}) profile.deleteProfile() return response.reply() except ValueError as ex: return response.replyFailed(message=ex.__str__())
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)
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__())
def containers(): client = LXDModule() result = [] containers = client.listContainers() result = [] for container in containers: result.append(getContainerDetails(container)) return response.reply(result)
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__())
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__())
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__())
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__())
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__())
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__())
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__())
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__())
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__())
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__())
def storagePools(): try: client = LXDModule() return response.reply(client.listStoragePools()) except ValueError as ex: return response.replyFailed(ex.__str__())
def get_profile(name): try: profile = LXCProfile({'name': name}) return response.reply(profile.info(name)) except ValueError as ex: return response.replyFailed(ex.__str__())
def profiles(): try: client = LXDModule() return response.reply(client.listProfiles()) except ValueError as ex: return response.replyFailed(ex.__str__())
def list(): try: fileManager = LXCFileManager() return response.reply(fileManager.list()) except ValueError as ex: return response.replyFailed(ex.__str__())
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__())