示例#1
0
def add_saved_job():
    engine_class = 'backup'
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    available_backup_sets = backup_sets_interface.get_backup_sets_tuple()
    if len(available_backup_sets) < 1:
        available_backup_sets = [('-1', 'None Available')]
    form = AddBackupJobForm()
    form.repository.choices = available_repositories
    form.backup_set.choices = available_backup_sets
    if form.validate_on_submit():
        new_info = dict(name=form.name.data,
                        notes=form.description.data,
                        engine_class=engine_class)
        param_dict = {}
        credential_dict = {}
        for item in form:
            if item.id != 'csrf_token' and item.id != 'submit' and item.id != 'name' and item.id != 'description':
                if item.type == 'RWCredentialField':
                    credential_dict[item.id] = item.data
                else:
                    param_dict[item.id] = item.data
        if len(credential_dict) > 0:
            # credentials_id = credential_manager.add_credentials_from_dict('_'.join(['Job', engine_name, engine_class, form.ub_name.data]), credential_dict)
            credentials_id = credential_manager.add_credentials_from_dict(
                'BackupJob', new_info['name'], credential_dict)
            param_dict['credentials_id'] = credentials_id
        new_info['params'] = param_dict
        saved_backup_jobs_interface.add_job(new_info)
        flash("Job has been saved.", category='success')
        return redirect(url_for('backup.saved_jobs'))
    # we can use the same template as it's just going to be the same fields
    # as the fields in the edit form
    return render_template(f"backup/saved_jobs_add.html", form=form)
示例#2
0
def edit_saved_job_backup(saved_job):
    saved_job = SavedJobs.query.filter_by(id=saved_job).first()
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    available_backup_sets = backup_sets_interface.get_backup_sets_tuple()
    if len(available_backup_sets) < 1:
        available_backup_sets = [('-1', 'None Available')]
    form = EditBackupJobForm()
    form.repository.choices = available_repositories
    form.backup_set.choices = available_backup_sets
    form.saved_job_id.data = saved_job.id
    if form.validate_on_submit():
        new_info = dict(name=form.name.data,
                        notes=form.description.data,
                        params=dict(repository=form.repository.data,
                                    backup_set=form.backup_set.data),
                        saved_job_id=form.saved_job_id.data)
        saved_jobs_interface.update_job(new_info)
        flash("Backup job successfully edited.", category='success')
        return redirect(url_for('backup.saved_jobs'))
    else:
        for param in saved_job.parameters:
            if param.param_name == "repository":
                form.repository.default = param.param_value
            if param.param_name == 'backup_set':
                form.backup_set.default = param.param_value
        form.process()
        for param in saved_job.parameters:
            if param.param_name == 'additional_params':
                form.additional_params.data = param.param_value
        form.description.data = saved_job.notes
        form.name.data = saved_job.name
        form.saved_job_id.data = saved_job.id
    return render_template("backup/saved_jobs_add.html", form=form)
示例#3
0
def edit_saved_job_prune(saved_job):
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    form = EditPruneJobForm()
    form.repository.choices = available_repositories
    form.saved_job_id.data = saved_job.id
    if form.validate_on_submit():
        new_info = dict(name=form.name.data,
                        notes=form.description.data,
                        params=dict(
                            repository=form.repository.data,
                            additional_params=form.additional_params.data),
                        saved_job_id=form.saved_job_id.data)
        saved_jobs_interface.update_job(new_info)
        flash("Prune job has been saved.", category='success')
        return redirect(url_for('jobs.saved_jobs'))
    else:
        for param in saved_job.parameters:
            if param.param_name == "repository":
                form.repository.default = param.param_value
                form.process()
        for param in saved_job.parameters:
            if param.param_name == 'additional_params':
                form.additional_params.data = param.param_value
        form.description.data = saved_job.notes
        form.name.data = saved_job.name
        form.saved_job_id.data = saved_job.id
    return render_template("jobs/saved_jobs_add_prune.html", form=form)
    '''
示例#4
0
def add_saved_job_forget():
    engine_class = 'forget_policy'
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    available_backup_sets = backup_sets_interface.get_backup_sets_tuple()
    if len(available_backup_sets) < 1:
        available_backup_sets = [('-1', 'None Available')]
    form = AddForgetJobForm()
    form.repository.choices = available_repositories
    form.backup_set.choices = available_backup_sets
    if form.validate_on_submit():
        new_info = dict(name=form.name.data,
                        notes=form.description.data,
                        engine_class=engine_class)
        param_dict = {}
        for item in form:
            if item.id != 'csrf_token' and item.id != 'submit' and item.id != 'name' and item.id != 'description':
                param_dict[item.id] = item.data
        new_info['params'] = param_dict
        saved_jobs_interface.add_job(new_info)
        flash("Job has been saved.", category='success')
        return redirect(url_for('jobs.saved_jobs'))
    # we can use the same template as it's just going to be the same fields
    # as the fields in the edit form
    return render_template(f"jobs/saved_jobs_add_forget.html", form=form)
示例#5
0
def edit_saved_job_forget(saved_job):
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    available_backup_sets = backup_sets_interface.get_backup_sets_tuple()
    if len(available_backup_sets) < 1:
        available_backup_sets = [('-1', 'None Available')]
    form = EditForgetJobForm()
    form.repository.choices = available_repositories
    form.backup_set.choices = available_backup_sets
    form.saved_job_id.data = saved_job.id
    if form.validate_on_submit():
        new_info = dict(
            name=form.name.data,
            notes=form.description.data,
            #params=dict(repository=form.repository.data, backup_set=form.backup_set.data),
            saved_job_id=form.saved_job_id.data)
        param_dict = {}
        for item in form:
            if item.id != 'csrf_token' and item.id != 'submit' and item.id != 'name' and item.id != 'description':
                param_dict[item.id] = item.data
        new_info['params'] = param_dict
        saved_jobs_interface.update_job(new_info)
        flash("Forget job successfully edited.", category='success')
        return redirect(url_for('jobs.saved_jobs'))
    else:
        for param in saved_job.parameters:
            if param.param_name == "repository":
                form.repository.default = param.param_value
            if param.param_name == 'backup_set':
                form.backup_set.default = param.param_value
        form.process()
        for param in saved_job.parameters:
            if param.param_name == 'additional_params':
                form.additional_params.data = param.param_value
            if param.param_name == 'keep_last':
                form.keep_last.data = param.param_value
            if param.param_name == 'keep_hourly':
                form.keep_hourly.data = param.param_value
            if param.param_name == 'keep_daily':
                form.keep_daily.data = param.param_value
            if param.param_name == 'keep_weekly':
                form.keep_weekly.data = param.param_value
            if param.param_name == 'keep_monthly':
                form.keep_monthly.data = param.param_value
            if param.param_name == 'keep_yearly':
                form.keep_yearly.data = param.param_value
            if param.param_name == 'keep_within':
                form.keep_within.data = param.param_value
            if param.param_name == 'prune':
                if int(param.param_value) > 0:
                    form.prune.data = True
                else:
                    form.prune.data = False
        form.description.data = saved_job.notes
        form.name.data = saved_job.name
        form.saved_job_id.data = saved_job.id
    return render_template("jobs/saved_jobs_add_forget.html", form=form)
示例#6
0
def add_saved_job_prune():
    engine_class = 'prune'
    available_repositories = repository_interface.get_engine_repositories()
    if len(available_repositories) < 1:
        available_repositories = [('-1', 'None Available')]
    form = AddPruneJobForm()
    form.repository.choices = available_repositories
    if form.validate_on_submit():
        new_info = dict(name=form.name.data,
                        notes=form.description.data,
                        engine_class=engine_class,
                        params=dict(
                            repository=form.repository.data,
                            additional_params=form.additional_params.data))
        saved_jobs_interface.add_job(new_info)
        flash("Prune job has been saved.", category='success')
        return redirect(url_for('jobs.saved_jobs'))
    return render_template("jobs/saved_jobs_add_prune.html", form=form)