Exemplo n.º 1
0
def do_edit(request):
    if request.method == "POST":
        data = request.POST
        if data.has_key("main"):
            s = get_object_or_404(Schedule, pk=int(data["id"]))
            s.name = data["name"]
            s.save()
            return HttpResponse('{"status": "ok", "new_id": %s}' % s.id)
        elif data.has_key("schedule_id"):
            s = get_object_or_404(Schedule, pk=int(data["schedule_id"]))
            if data["status"] == "deleted":
                r = get_object_or_404(Run, pk=int(data["id"]))
                r.delete()
            try:
                if data["status"] == "new":
                    run = Run()
                    run.schedule = s
                    run.level = BackupLevel.objects.get(id=int(data["level_id"]))
                    run.kind = BackupKind.objects.get(id=int(data["kind_id"]))
                    run.hour = data["hour"]
                    run.minute = data["minute"]
                    run.day = int(data["day_num"])
                    run.save()

                call_reload_baculadir()
                return HttpResponse('{"status": "ok"}')
            except:
                return HttpResponse('{"status": "error"}')
Exemplo n.º 2
0
def do_delete(request, schedule_id):
    s = get_object_or_404(Schedule, pk=schedule_id)
    if s.is_model:
        for procedure in s.procedures.all():
            new_schedule = Schedule()
            new_schedule.name = 'Agendamentos de %s' % procedure.name
            new_schedule.is_model = False
            new_schedule.save()
            for run in s.runs.all():
                new_run = Run()
                new_run.schedule = new_schedule
                new_run.level = run.level
                new_run.kind = run.kind
                new_run.day = run.day
                new_run.hour = run.hour
                new_run.minute = run.minute
                new_run.save()
            procedure.schedule = new_schedule
            procedure.save()
    name = s.name
    s.delete()
    call_reload_baculadir()
    messages.success(
        request, u"Perfil de agendamento '%s' removido com sucesso." % name)
    return redirect('/procedures/profile/list')
Exemplo n.º 3
0
def create_database():
    u"""Cria a base de dados do nimbus"""
    call_command('syncdb',verbosity=0,interactive=False)
    if len(User.objects.all()) == 0:
        u = User(username = "******",
                 is_superuser=True,
                 is_staff=True,
                 email = "*****@*****.**")
        u.set_password("admin")
        u.save()

        call_command('loaddata', settings.INITIALDATA_FILE)
        # FIX: LOADDATA nao eh invocado em um dpkg update


        config = Config.get_instance()
        config.director_password = utils.random_password()
        config.save()

        storage = Storage.objects.get(id=1)
        storage.password =  utils.random_password()
        storage.save()

        computer = Computer.objects.get(id=1)
        computer.activate()

        register_administrative_nimbus_models()

        call_reload_baculadir()
    else:
        force_unlock_bacula_and_start()
Exemplo n.º 4
0
def create_database():
    u"""Cria a base de dados do nimbus"""
    call_command('syncdb', verbosity=0, interactive=False)
    if len(User.objects.all()) == 0:
        u = User(username="******",
                 is_superuser=True,
                 is_staff=True,
                 email="*****@*****.**")
        u.set_password("admin")
        u.save()

        call_command('loaddata', settings.INITIALDATA_FILE)
        # FIX: LOADDATA nao eh invocado em um dpkg update

        config = Config.get_instance()
        config.director_password = utils.random_password()
        config.save()

        storage = Storage.objects.get(id=1)
        storage.password = utils.random_password()
        storage.save()

        computer = Computer.objects.get(id=1)
        computer.activate()

        register_administrative_nimbus_models()

        call_reload_baculadir()
    else:
        force_unlock_bacula_and_start()
Exemplo n.º 5
0
def edit(request, procedure_id):
    p = get_object_or_404(Procedure, pk=procedure_id)
    title = u"Editando '%s'" % p.name
    partial_form = ProcedureForm(prefix="procedure", instance=p)
    content = {'title': title,
              'form': partial_form,
              'id': procedure_id,
              'procedure': p,
              'schedule': p.schedule,
              'fileset': p.fileset,
              'retention_time': p.pool_retention_time}
    if request.method == "POST":
        data = copy(request.POST)
        if data['procedure-schedule'] == u"":
            data['procedure-schedule'] = u"%d" % p.schedule.id
        if data['procedure-fileset'] == u"":
            data['procedure-fileset'] = u"%d" % p.fileset.id
        procedure_form = ProcedureForm(data, instance=p, prefix="procedure")
        if procedure_form.is_valid():
            procedure_form.save()
            messages.success(request, "Procedimento '%s' alterado com sucesso" % p.name)
            call_reload_baculadir()
            return redirect('/procedures/list')
        else:
            messages.error(request, "O procedimento de backup não foi criado devido aos seguintes erros")
            content['forms'] = [procedure_form]
            return render_to_response(request, "edit_procedure.html", content)
    return render_to_response(request, 'edit_procedure.html', content)
Exemplo n.º 6
0
def edit(request, procedure_id):
    p = get_object_or_404(Procedure, pk=procedure_id)
    title = u"Editando '%s'" % p.name
    partial_form = ProcedureForm(prefix="procedure", instance=p)
    content = {
        'title': title,
        'form': partial_form,
        'id': procedure_id,
        'procedure': p,
        'schedule': p.schedule,
        'fileset': p.fileset,
        'retention_time': p.pool_retention_time
    }
    if request.method == "POST":
        data = copy(request.POST)
        if data['procedure-schedule'] == u"":
            data['procedure-schedule'] = u"%d" % p.schedule.id
        if data['procedure-fileset'] == u"":
            data['procedure-fileset'] = u"%d" % p.fileset.id
        procedure_form = ProcedureForm(data, instance=p, prefix="procedure")
        if procedure_form.is_valid():
            procedure_form.save()
            messages.success(request,
                             "Procedimento '%s' alterado com sucesso" % p.name)
            call_reload_baculadir()
            return redirect('/procedures/list')
        else:
            messages.error(
                request,
                "O procedimento de backup não foi criado devido aos seguintes erros"
            )
            content['forms'] = [procedure_form]
            return render_to_response(request, "edit_procedure.html", content)
    return render_to_response(request, 'edit_procedure.html', content)
Exemplo n.º 7
0
def do_edit(request):
    if request.method == 'POST':
        data = request.POST
        if data.has_key('main'):
            s = get_object_or_404(Schedule, pk=int(data['id']))
            s.name = data['name']
            s.save()
            return HttpResponse('{"status": "ok", "new_id": %s}' % s.id)
        elif data.has_key('schedule_id'):
            s = get_object_or_404(Schedule, pk=int(data['schedule_id']))
            if data['status'] == 'deleted':
                r = get_object_or_404(Run, pk=int(data['id']))
                r.delete()
            try:
                if data['status'] == 'new':
                    run = Run()
                    run.schedule = s
                    run.level = BackupLevel.objects.get(
                        id=int(data['level_id']))
                    run.kind = BackupKind.objects.get(id=int(data['kind_id']))
                    run.hour = data['hour']
                    run.minute = data['minute']
                    run.day = int(data['day_num'])
                    run.save()

                call_reload_baculadir()
                return HttpResponse('{"status": "ok"}')
            except:
                return HttpResponse('{"status": "error"}')
Exemplo n.º 8
0
def do_delete(request, fileset_id):
    f = get_object_or_404(FileSet, pk=fileset_id)
    if f.is_model:
        for procedure in f.procedures.all():
            novo_fileset = FileSet()
            novo_fileset.name = 'Arquivos de %s' % procedure.name
            novo_fileset.save()
            for file in f.files.all():
                novo_arquivo = FilePath()
                novo_arquivo.fileset = novo_fileset
                novo_arquivo.path = file.path
                novo_arquivo.save()
            for w in f.wildcards.all():
                novo_wildcard = Wildcard()
                novo_wildcard.expression = w.expression
                novo_wildcard.kind = w.kind
                novo_wildcard.fileset = novo_fileset
                novo_wildcard.save()
            procedure.fileset = novo_fileset
            procedure.save()
    name = f.name
    f.delete()
    call_reload_baculadir()
    messages.success(request, u"Perfil de conjunto de arquivos '%s' removido com sucesso." % name)
    return redirect('/procedures/profile/list')
Exemplo n.º 9
0
def deactivate(request, object_id):
    if request.method == "POST":
        procedure = Procedure.objects.get(id=object_id)
        procedure.active = False
        procedure.save()
        call_reload_baculadir()
        messages.success(request, "Procedimento desativado com sucesso")
    return redirect('/procedures/list')
Exemplo n.º 10
0
def deactivate(request, object_id):
    if request.method == "POST":
        procedure = Procedure.objects.get(id=object_id)
        procedure.active = False
        procedure.save()
        call_reload_baculadir()
        messages.success(request, "Procedimento desativado com sucesso")
    return redirect('/procedures/list')
Exemplo n.º 11
0
def deactivate(request, object_id):
    try:
        computer = Computer.objects.get(id=object_id)
        computer.deactivate()
        call_reload_baculadir()
    except Computer.DoesNotExist, error:
        messages.error(request, u'Impossível desativar computador, computador inexistente')
        return redirect('nimbus.computers.views.list')
Exemplo n.º 12
0
def activate(request, object_id):
    try:
        computer = Computer.objects.get(id=object_id)
        computer.activate()
        call_reload_baculadir()
    except Computer.DoesNotExist, error:
        messages.error(
            request, u'Impossível ativar computador, computador inexistente')
        return redirect('nimbus.computers.views.add')
Exemplo n.º 13
0
def do_delete(request, object_id):
    procedure = Procedure.objects.get(id=object_id)
    if not procedure.schedule.is_model:
        procedure.schedule.delete()
    if not procedure.fileset.is_model:
        procedure.fileset.delete()
    procedure.delete()
    call_reload_baculadir()
    messages.success(request, u"Procedimento removido com sucesso.")
    return redirect('/procedures/list')
Exemplo n.º 14
0
def do_delete(request, object_id):
    procedure = Procedure.objects.get(id=object_id)
    if not procedure.schedule.is_model:
        procedure.schedule.delete()
    if not procedure.fileset.is_model:
        procedure.fileset.delete()
    procedure.delete()
    call_reload_baculadir()
    messages.success(request, u"Procedimento removido com sucesso.")
    return redirect('/procedures/list')
Exemplo n.º 15
0
def edit(request, object_id):
    extra_context = {'title': u"Editar computador"}
    r = create_update.update_object(request,
                                    object_id=object_id,
                                    model=Computer,
                                    form_class=form(Computer),
                                    template_name="base_computers.html",
                                    extra_context=extra_context,
                                    post_save_redirect="/computers/")
    call_reload_baculadir()
    return r
Exemplo n.º 16
0
def edit(request, object_id):
    extra_context = {'title': u"Editar armazenamento"}
    r =  create_update.update_object( request,
                                      object_id = object_id,
                                      model = Storage,
                                      form_class = form(Storage),
                                      template_name = "storages_edit.html",
                                      extra_context = extra_context,
                                      post_save_redirect = "/storages/list")
    call_reload_baculadir()
    return r
Exemplo n.º 17
0
def edit(request, object_id):
    extra_context = {'title': u"Editar computador"}
    r = create_update.update_object(request, 
                                    object_id = object_id,
                                    model = Computer,
                                    form_class = form(Computer),
                                    template_name = "base_computers.html",
                                    extra_context = extra_context,
                                    post_save_redirect = "/computers/")
    call_reload_baculadir()
    return r
Exemplo n.º 18
0
def add(request, teste=None):

    initial = {}
    if request.method == "GET":
        computer = request.GET.get("comp_id", 0)

        if computer:
            initial = {"computer": computer}
        else:
            initial = {}

    title = u"Adicionar backup"
    form = ProcedureForm(initial=initial, prefix="procedure")
    tasks = JobTask.objects.all()
    content = {'title': title, 'form': form, 'tasks': tasks}
    if request.method == "POST":
        data = copy(request.POST)
        if data["procedure-fileset"]:
            fileset = FileSet.objects.get(id=data['procedure-fileset'])
            content['fileset'] = fileset
        if data["procedure-schedule"]:
            schedule = Schedule.objects.get(id=data['procedure-schedule'])
            content['schedule'] = schedule
        procedure_form = ProcedureForm(data, prefix="procedure")
        if procedure_form.is_valid():
            procedure = procedure_form.save()
            call_reload_baculadir()
            messages.success(
                request, "Procedimento de backup '%s' criado com sucesso" %
                procedure.name)
            return redirect('/procedures/list')
        else:
            messages.error(
                request,
                "O procedimento de backup não foi criado devido aos seguintes erros"
            )
            content['form'] = procedure_form
            return render_to_response(request, "add_procedure.html", content)
    return render_to_response(request, "add_procedure.html", content)
Exemplo n.º 19
0
def do_edit(request, fileset_id):
    f = FileSet.objects.get(id=fileset_id)
    if request.method == 'POST':
        data = request.POST
        fileset_form = forms.FileSetForm(data, prefix="fileset", instance=f)
        if fileset_form.is_valid():
            new_fileset = fileset_form.save()
            filepaths_form = forms.FilesToDeleteForm(data, instance=new_fileset)
            if filepaths_form.is_valid():
                filepaths_form.save()
                wildcards_form = forms.WildcardsFormSet(data, instance=new_fileset)
                if wildcards_form.is_valid():
                    for wildcard in new_fileset.wildcards.all():
                        wildcard.delete()
                    new_fileset.save()
                    wildcards_form.save()
                call_reload_baculadir()
                return HttpResponse('{"status":true,"fileset_id":"%s","fileset_name":"%s","message":"Conjunto de arquivos \'%s\' foi atualizado com sucesso"}' % (new_fileset.id, new_fileset.name, new_fileset.name))
            else:
                new_fileset.delete()
                return HttpResponse('{"status":false,"fileset_id":"none","message":"Erro nos arquivos","error":1}')
        else:
            return HttpResponse('{"status":false,"fileset_id":"none","message":"Erro nos fileset","error":0}')
Exemplo n.º 20
0
def do_delete(request, schedule_id):
    s = get_object_or_404(Schedule, pk=schedule_id)
    if s.is_model:
        for procedure in s.procedures.all():
            new_schedule = Schedule()
            new_schedule.name = "Agendamentos de %s" % procedure.name
            new_schedule.is_model = False
            new_schedule.save()
            for run in s.runs.all():
                new_run = Run()
                new_run.schedule = new_schedule
                new_run.level = run.level
                new_run.kind = run.kind
                new_run.day = run.day
                new_run.hour = run.hour
                new_run.minute = run.minute
                new_run.save()
            procedure.schedule = new_schedule
            procedure.save()
    name = s.name
    s.delete()
    call_reload_baculadir()
    messages.success(request, u"Perfil de agendamento '%s' removido com sucesso." % name)
    return redirect("/procedures/profile/list")
Exemplo n.º 21
0
def add(request, teste=None):

    initial = {}
    if request.method == "GET":
        computer = request.GET.get("comp_id", 0)

        if computer:
            initial = {"computer" : computer}
        else:
            initial = {}

    title = u"Adicionar backup"
    form = ProcedureForm(initial=initial, prefix="procedure")
    tasks = JobTask.objects.all()
    content = {'title': title,
                'form':form,
                'tasks': tasks}
    if request.method == "POST":
        data = copy(request.POST)
        if data["procedure-fileset"]:
            fileset = FileSet.objects.get(id=data['procedure-fileset'])
            content['fileset'] = fileset
        if data["procedure-schedule"]:
            schedule = Schedule.objects.get(id=data['procedure-schedule'])
            content['schedule'] = schedule
        procedure_form = ProcedureForm(data, prefix="procedure")
        if procedure_form.is_valid():
            procedure = procedure_form.save()
            call_reload_baculadir()
            messages.success(request, "Procedimento de backup '%s' criado com sucesso" % procedure.name)
            return redirect('/procedures/list')
        else:
            messages.error(request, "O procedimento de backup não foi criado devido aos seguintes erros")
            content['form'] = procedure_form
            return render_to_response(request, "add_procedure.html", content)
    return render_to_response(request, "add_procedure.html", content)
Exemplo n.º 22
0
def do_delete(request, object_id):
    computer = Computer.objects.get(id=object_id)
    computer.delete()
    call_reload_baculadir()
    messages.success(request, u"Computador removido com sucesso.")
    return redirect('nimbus.computers.views.list')
Exemplo n.º 23
0
def do_delete(request, object_id):
    computer = Computer.objects.get(id=object_id)
    computer.delete()
    call_reload_baculadir()
    messages.success(request, u"Computador removido com sucesso.")
    return redirect('nimbus.computers.views.list')
Exemplo n.º 24
0
    if not '/' in redirect_to:
        redirect_to = reverse(redirect_to)

    if not formclass and model:
        formclass = forms.form(model)
    try:
        r = update_object( request, object_id=1,
                           form_class = formclass,
                           model = model,
                           template_name = templatename,
                           post_save_redirect = redirect_to,
                           extra_context = extra_context )
    except Http404, error:
        r = create_object( request,
                           form_class = formclass,
                           model = model,
                           template_name = templatename,
                           post_save_redirect = redirect_to,
                           extra_context = extra_context )

    if request.method == "POST" and reload_bacula:
        call_reload_baculadir()
    return r

def render_to_response(request, template, dictionary):
    return _render_to_response( template, dictionary,
                                context_instance=RequestContext(request))


Exemplo n.º 25
0
    if not '/' in redirect_to:
        redirect_to = reverse(redirect_to)

    if not formclass and model:
        formclass = forms.form(model)
    try:
        r = update_object(request,
                          object_id=1,
                          form_class=formclass,
                          model=model,
                          template_name=templatename,
                          post_save_redirect=redirect_to,
                          extra_context=extra_context)
    except Http404, error:
        r = create_object(request,
                          form_class=formclass,
                          model=model,
                          template_name=templatename,
                          post_save_redirect=redirect_to,
                          extra_context=extra_context)

    if request.method == "POST" and reload_bacula:
        call_reload_baculadir()
    return r


def render_to_response(request, template, dictionary):
    return _render_to_response(template,
                               dictionary,
                               context_instance=RequestContext(request))