コード例 #1
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def add_new_fix(rack, task, failure):
    #
    #  If the input is less than 20 characters, create the FIX and render the rack_tasks again
    #
    if request.method == 'POST':
        if len(request.form["text"]) < 20:
            return render_template('fixes/wrong_fix_description.jinja2',
                                   task=task,
                                   rack=rack,
                                   failure=failure)
        fix = Fix(rack=rack,
                  failure=failure,
                  task=task,
                  category=Task.get_task_by_id(task).category,
                  description=request.form["text"],
                  started_at=Utils.get_utc_time(),
                  start_user=session['email'])
        fix.save_to_db()
        failure_to_update = Failure.get_failure_by_id(failure)
        failure_to_update.add_fix(fix._id)
        #  If the fix was added successfuly, render again the rack_tasks
        rack_look_up = Rack.get_rack_by_id(rack)
        taskid_list = rack_look_up.tasks
        tasks = []
        for elem in taskid_list:
            tasks.append(Task.get_task_by_id(elem))
        return redirect(url_for('tasks.continue_test', rack=rack))
    #  This is for GET requests...to create create an aditional fix
    return render_template('fixes/add_fix.jinja2',
                           failure=failure,
                           rack=rack,
                           task=task)
コード例 #2
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def feedback(fix):
    if request.method == 'POST':
        if (len(request.form["textFeedback"]) < 20) or (len(
                request.form["textNewTask"]) < 20):
            return render_template('fixes/wrong_feedback.jinja2', fix=fix)
        else:
            # Update feedback and create new fix
            # --- Updating feedback for current failed fix
            old_fix = Fix.get_fix_by_id(fix)
            old_fix.failed(request.form["textFeedback"])
            # --- Creating new fix, add it to failure list
            new_fix = Fix(rack=old_fix.rack,
                          failure=old_fix.failure,
                          task=old_fix.task,
                          category=Task.get_task_by_id(old_fix.task).category,
                          description=request.form["textNewTask"],
                          started_at=Utils.get_utc_time(),
                          start_user=session['email'])
            new_fix.save_to_db()
            Failure.get_failure_by_id(old_fix.failure).add_fix(new_fix._id)
            tasks = []  # Empty list of task Object
            tasksid_list = Rack.get_rack_by_id(old_fix.rack).tasks
            for elem in tasksid_list:
                tasks.append(Task.get_task_by_id(elem))
            return redirect(url_for('tasks.continue_test', rack=old_fix.rack))
    else:
        actual_fix = Fix.get_fix_by_id(fix)
        return render_template('fixes/feedback.jinja2', fix=actual_fix)
コード例 #3
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def start_test(rack):
    rack_to_test = Rack.get_rack_by_id(rack)
    rack_to_test.start_rack(session['email'])
    tasks_idlist = rack_to_test.tasks
    first_task = Task.get_task_by_id(tasks_idlist[0])
    first_task.start(session['email'])
    tasks = []
    for taskid in tasks_idlist:
        tasks.append(Task.get_task_by_id(taskid))
    return render_template('tasks/rack_tasks.jinja2', tasks=tasks)
コード例 #4
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def ms_rack_monitor_details(rack):
    rack_to_test = Rack.get_rack_by_id(rack)
    tasks_idlist = rack_to_test.tasks
    tasks = []
    for taskid in tasks_idlist:
        tasks.append(Task.get_task_by_id(taskid))
    return render_template('tasks/ms_rack_details.jinja2', tasks=tasks)
コード例 #5
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def feedback(frecord):
    failure_record = FRecord.get_frecord_by_id(frecord)
    if request.method == 'POST':
        feedback_from_form = request.form['feedback']
        failure_record.finish_feedback(feedback=feedback_from_form,
                                       user=session['email'])

        if FRecord.get_number_of_frecords_nofeedback(failure_record.task) == 0:
            Task.get_task_by_id(failure_record.task).not_failed_frecord()
            return redirect(
                url_for('tasks.continue_test', rack=failure_record.rack))
        return redirect(
            url_for('tasks.continue_test', rack=failure_record.rack))
    return render_template('frecords/feedback_form.jinja2',
                           frecord=failure_record,
                           rack=failure_record.rack)
コード例 #6
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def continue_test(rack):
    rack_to_test = Rack.get_rack_by_id(rack)
    tasks_idlist = rack_to_test.tasks
    tasks = []
    for taskid in tasks_idlist:
        tasks.append(Task.get_task_by_id(taskid))
    return render_template('tasks/rack_tasks.jinja2', tasks=tasks)
コード例 #7
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def adding_tasks(_id):
    rack = Rack.get_rack_by_id(_id)
    tasks_list = []
    for elem in rack.tasks:
        tasks_list.append(Task.get_task_by_id(elem))
    return render_template('racks/edit_tasks.jinja2',
                           rack=rack,
                           tasks=tasks_list)
コード例 #8
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def show_test_report(rack):
    rack_report = Rack.get_rack_by_id(rack)
    tasks = []
    for elem in rack_report.tasks:
        tasks.append(Task.get_task_by_id(elem))
    return render_template('racks/test_report.jinja2',
                           rack=rack_report,
                           tasks=tasks)
コード例 #9
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def passed(task):
    if request.method == 'POST':
        task_to_finish = Task.get_task_by_id(task)
        rack_look_up = Rack.get_rack_by_id(task_to_finish.rack)
        taskid_list = rack_look_up.tasks
        task_to_finish = Task.get_task_by_id(taskid_list[taskid_list.index(task)])
        task_to_finish.finish(session['email'])
        tasks = []
        for elem in taskid_list:
            if elem == task:
                if elem != taskid_list[-1]:
                    next_task = Task.get_task_by_id(taskid_list[taskid_list.index(elem)+1])
                    next_task.start(session['email'])
                else:
                    rack_look_up.finish_rack(session['email'])
            tasks.append(Task.get_task_by_id(elem))
        return redirect(url_for('.continue_test', rack=task_to_finish.rack))
    return render_template('tasks/confirm_pass.jinja2', task=task)
コード例 #10
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def passed(fix):
    fix_pass = Fix.get_fix_by_id(fix)
    fix_pass.passed(session['email'])
    Task.get_task_by_id(fix_pass.task).finish(session['email'])
    Failure.get_failure_by_id(fix_pass.failure).finish(session['email'])
    rack_in_test = Rack.get_rack_by_id(fix_pass.rack)
    rack_in_test.fix_rack()
    taskid_list = rack_in_test.tasks
    tasks = []  # Empty list of task Object
    # iterating the tasks list of the rack to put the next task running
    for elem in taskid_list:
        if elem == Task.get_task_by_id(fix_pass.task)._id:
            if elem != taskid_list[-1]:
                next_task = Task.get_task_by_id(
                    taskid_list[taskid_list.index(elem) + 1])
                next_task.start(
                    session['email'])  # Setting the next task in "running"
            else:
                rack_in_test.finish_rack(
                    session['email'])  # If it's last task, rack pass
        tasks.append(Task.get_task_by_id(elem))
    return redirect(url_for('tasks.continue_test', rack=fix_pass.rack))
コード例 #11
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def create_report(rack, task):
    if request.method == 'POST':
        rack_to_test = Rack.get_rack_by_id(rack)
        node_number = request.form['node_number']
        node_sn = request.form['node_sn']

        chassis_number = request.form['chassis_number']
        chassis_sn = request.form['chassis_sn']

        failed_step = request.form['failed_step']
        description = request.form['description']

        badcomponent_sn = request.form['badcomponent_sn']
        badcomponent_device = request.form['badcomponent_device']
        badcomponent_replacement = request.form['badcomponent_replacement']

        frecord = FRecord(rack=rack,
                          task=task,
                          start_user=session['email'],
                          started_at=Utils.get_utc_time(),
                          description=description,
                          badcomponent_device=badcomponent_device,
                          badcomponent_sn=badcomponent_sn,
                          badcomponent_replacement=badcomponent_replacement,
                          node_number=node_number,
                          node_sn=node_sn,
                          chassis_number=chassis_number,
                          chassis_sn=chassis_sn,
                          failed_step=failed_step)
        frecord.save_to_db()
        Task.get_task_by_id(task).failed(True)
        rack_to_test.failed_rack()
        return redirect(url_for('tasks.continue_test', rack=rack))
    return render_template('frecords/create_report.jinja2',
                           rack=rack,
                           task=task)
コード例 #12
0
def report(rack, task):
    if request.method == 'POST':
        if len(request.form["text"]) < 20:
            return render_template('failures/wrong_failure_description.jinja2',
                                   task=task,
                                   rack=rack)
        failure = Failure(rack=rack,
                          category=Task.get_task_by_id(task).category,
                          description=request.form["text"],
                          task=task,
                          started_at=Utils.get_utc_time(),
                          start_user=session['email'])
        failure.save_to_db()
        rackobject = Rack.get_rack_by_id(rack)
        rackobject.failed_rack()
        taskobject = Task.get_task_by_id(task)
        taskobject.failed(failure._id)
        return redirect(
            url_for('fixes.add_new_fix',
                    rack=rack,
                    task=task,
                    failure=failure._id))

    return render_template('failures/report.jinja2', task=task, rack=rack)
コード例 #13
0
ファイル: views.py プロジェクト: ObedEG/complex_web
def removing_task(_id, task):
    rack = Rack.get_rack_by_id(_id)
    rack.tasks.remove(task)
    rack.update_tasks(rack.tasks)
    Task.get_task_by_id(task).delete_task()
    return redirect(url_for('racks.adding_tasks', _id=_id))
コード例 #14
0
ファイル: views.py プロジェクト: ObedEG/complex_web
 def get_task_by_id(task):
     return Task.get_task_by_id(task)
コード例 #15
0
def cancel(task):
    rack_task = Task.get_task_by_id(task)
    rackid = rack_task.rack
    return redirect(url_for('tasks.start_test', rack=rackid))