Ejemplo n.º 1
0
def copy_files(request):

    if request.method == "POST":
        error = None
        device = request.POST.get("device")

        if not device:
            raise Http404()

        try:
            manager = StorageDeviceManager(device)
            manager.mount()
        except (MountError, OSError), e:
            error = e
            messages.error(request, "Impossível montar dispositivo. Sistema de arquivo inadequado")
            return redirect('nimbus.system.views.select_storage')


        sizes = [ getsize( dev) for dev in offsite.get_all_bacula_volumes() ]
        required_size = sum( sizes )


        if required_size <  manager.available_size:
            systemprocesses.min_priority_job("Nimbus upload volumes",
                                             upload_volumes_worker, manager)
            messages.success(request, u"O processo foi iniciado com sucesso.")
            return redirect('nimbus.offsite.views.list_uploadrequest')
        else:
            required_size = utils.bytes_to_mb(required_size)
            available_size = utils.bytes_to_mb(manager.available_size)
            manager.umount()
            error_msg = u"Espaço necessário é de %.3fMB, somente %.3fMB disponível em %s" %\
                    (required_size, available_size, device)
            messages.error(request, error_msg)
            return redirect('nimbus.system.views.select_storage')
Ejemplo n.º 2
0
def copy_files(request):

    if request.method == "POST":
        error = None
        device = request.POST.get("device")

        if not device:
            raise Http404()

        try:
            manager = StorageDeviceManager(device)
            manager.mount()
        except (MountError, OSError), e:
            error = e
            messages.error(
                request,
                "Impossível montar dispositivo. Sistema de arquivo inadequado")
            return redirect('nimbus.system.views.select_storage')

        sizes = [getsize(dev) for dev in offsite.get_all_bacula_volumes()]
        required_size = sum(sizes)

        if required_size < manager.available_size:
            systemprocesses.min_priority_job("Nimbus upload volumes",
                                             upload_volumes_worker, manager)
            messages.success(request, u"O processo foi iniciado com sucesso.")
            return redirect('nimbus.offsite.views.list_uploadrequest')
        else:
            required_size = utils.bytes_to_mb(required_size)
            available_size = utils.bytes_to_mb(manager.available_size)
            manager.umount()
            error_msg = u"Espaço necessário é de %.3fMB, somente %.3fMB disponível em %s" %\
                    (required_size, available_size, device)
            messages.error(request, error_msg)
            return redirect('nimbus.system.views.select_storage')
Ejemplo n.º 3
0
def detail(request):
    offsite = Offsite.get_instance()
    uploads = list(LocalUploadRequest.objects.all()) + list(
        RemoteUploadRequest.objects.all())
    content = []
    for upload in uploads:
        content.append({
            'type':
            'ok',
            'date':
            upload.last_attempt or upload.created_at,
            'label':
            upload.volume.filename,
            'message':
            "%.2f MB" % utils.bytes_to_mb(upload.volume.size)
        })
    transferencias_em_execucao = [{
        'title': u'Transferências em execução',
        'content': content
    }]

    if offsite.active:
        graphic = Graphics()
        graph_block = graphic.data_to_template()[0]
    else:
        ocupacao_offsite = 0.0
        messages.error(request, "Offsite desativado")
    return render_to_response(request, "detail.html", locals())
Ejemplo n.º 4
0
def detail(request):
    offsite = Offsite.get_instance()
    uploads = list(LocalUploadRequest.objects.all()) + list(RemoteUploadRequest.objects.all())
    content = []
    for upload in uploads:
        content.append({'type' : 'ok',
                        'date' : upload.last_attempt or upload.created_at,
                        'label' : upload.volume.filename,
                        'message' : "%.2f MB" % utils.bytes_to_mb(upload.volume.size)
                       })
    transferencias_em_execucao = [{'title': u'Transferências em execução',
                                   'content': content}]

    if offsite.active:
        graphic = Graphics()
        graph_block = graphic.data_to_template()[0]
    else:
        ocupacao_offsite = 0.0
        messages.error(request, "Offsite desativado")
    return render_to_response(request, "detail.html", locals())