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')
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')
def _get_downloaded_size_from_procedure(self, procedure): volumes = set(procedure.volume_names) local_volumes = offsite.get_all_bacula_volumes() size = 0 for fullpath in local_volumes: filename = os.path.basename(fullpath) if filename in volumes: volume_size = os.path.getsize(fullpath) size += volume_size return size