示例#1
0
def import_quicktime(request):
    if request.method != "POST":
        return HttpResponseRedirect("/cuit/")
    operations = []
    params = []
    try:
        s = Collection.objects.get(id=settings.QUICKTIME_IMPORT_COLLECTION_ID)
        server = Server.objects.get(id=settings.QUICKTIME_IMPORT_SERVER_ID)

        for filename in list_all_cuit_files():
            if not filename.endswith(".mov"):
                continue
            vuuid = uuid.uuid4()
            # make db entry
            v = Video.objects.create(collection=s,
                                     title=os.path.basename(filename),
                                     creator=request.user.username,
                                     uuid=vuuid)
            cuit_file = File.objects.create(video=v,
                                            label="cuit file",
                                            filename=filename,
                                            location_type='cuit')
            ServerFile.objects.create(server=server, file=cuit_file)
            v.make_source_file("")
            o, p = v.make_import_from_cuit_operation(v.id, request.user)
            operations.append(o)
            params.append(p)
    except:
        transaction.rollback()
        raise
    else:
        transaction.commit()
        for o, p in zip(operations, params):
            process_operation.delay(o.id, p)
        return HttpResponse("database entries created. import has begun.")
示例#2
0
def import_retry(request):
    failed = Operation.objects.filter(action="import from CUIT",
                                      status="failed")
    if request.method != "POST":
        return dict(failed=failed)
    for operation in failed:
        # try again
        process_operation.delay(operation.id, operation.params)
    return HttpResponse("retry has begun.")