import json import os import shutil from django.http import HttpResponse from Tierra_2.core.comun import saveFtp from django.views.decorators.csrf import csrf_exempt from django.conf import settings from monitorT.task import Task class CustomTask(Task): CONTROL = True def cancel(self): pass def pause(self): pass @csrf_exempt @settings.MASTER_TASK_LIST.as_decorator @CustomTask.as_decorator def saveRaster(task, request=None): result = '' if request.method == "GET": raise Exception("Petición GET no soportada") elif request.method == "POST": data = json.loads(request.body.decode("utf-8")) mission = data["mission"] source = data["source"] destiny = data["destination"] params = data["ftp"] if "ftp" in data else None if mission == ' ': result = 'Insertar nombre o código de misión' elif source == '': result = 'Insertar origen para los datos' elif destiny == '': result = 'Insertar destino para los datos' else: if destiny[:3] == 'ftp': result = saveFtp(params, mission, source, 'raster', task) else: try: if os.path.exists(destiny): names = os.listdir(source) for name in names: shutil.copy(source + '/' + name, destiny) else: shutil.copytree(source, destiny) except: result = "No se ha podido copiar la carpeta de imágenes al directorio remoto" print(result) if result == '': task.set_progress(100) return HttpResponse('Ficheros subidos correctamente!') else: return HttpResponse(result)