Show More
Commit Description:
change logger to be limited by file size
Commit Description:
change logger to be limited by file size
References:
File last commit:
Show/Diff file:
Action:
app/controllers/graders_controller.rb | 86 lines | 2.2 KiB | text/x-ruby | RubyLexer |
class GradersController < ApplicationController
before_action :admin_authorization
def index
redirect_to :action => 'list'
end
def list
@grader_processes = GraderProcess.find_running_graders
@stalled_processes = GraderProcess.find_stalled_process
@terminated_processes = GraderProcess.find_terminated_graders
@last_task = Task.last
@last_test_request = TestRequest.last
@submission = Submission.order("id desc").limit(20)
@backlog_submission = Submission.where('graded_at is null')
end
def clear
grader_proc = GraderProcess.find(params[:id])
grader_proc.destroy if grader_proc!=nil
redirect_to :action => 'list'
end
def clear_terminated
GraderProcess.find_terminated_graders.each do |p|
p.destroy
end
redirect_to :action => 'list'
end
def clear_all
GraderProcess.all.each do |p|
p.destroy
end
redirect_to :action => 'list'
end
def view
if params[:type]=='Task'
redirect_to :action => 'task', :id => params[:id]
else
redirect_to :action => 'test_request', :id => params[:id]
end
end
def test_request
@test_request = TestRequest.find(params[:id])
end
def task
@task = Task.find(params[:id])
end
# various grader controls
def stop
grader_proc = GraderProcess.find(params[:id])
GraderScript.stop_grader(grader_proc.pid)
flash[:notice] = 'Grader stopped. It may not disappear now, but it should disappear shortly.'
redirect_to :action => 'list'
end
def stop_all
GraderScript.stop_graders(GraderProcess.find_running_graders +
GraderProcess.find_stalled_process)
flash[:notice] = 'Graders stopped. They may not disappear now, but they should disappear shortly.'
redirect_to :action => 'list'
end
def start_grading
GraderScript.start_grader('grading')
flash[:notice] = '2 graders in grading env started, one for grading queue tasks, another for grading test request'
redirect_to :action => 'list'
end
def start_exam
GraderScript.start_grader('exam')
flash[:notice] = '2 graders in grading env started, one for grading queue tasks, another for grading test request'
redirect_to :action => 'list'
end
end