
This adds a button to the execution environment index page that, when clicked, causes all execution environments to be synchronized to the runner management (Poseidon) by creating or replacing them. CodeOcean does not synchronize it's execution environments on startup or when a new runner management configuration is used for the first time. The administrator has to manually start this process by pressing this button. The equivalent for syncing just one execution environment is updating it.
169 lines
5.1 KiB
Ruby
169 lines
5.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
FILENAME_REGEXP = /[\w.]+/.freeze unless Kernel.const_defined?(:FILENAME_REGEXP)
|
|
|
|
Rails.application.routes.draw do
|
|
resources :error_template_attributes
|
|
resources :error_templates do
|
|
member do
|
|
put 'attribute', to: 'error_templates#add_attribute'
|
|
delete 'attribute', to: 'error_templates#remove_attribute'
|
|
end
|
|
end
|
|
resources :file_templates do
|
|
collection do
|
|
get 'by_file_type/:file_type_id', as: :by_file_type, action: :by_file_type
|
|
end
|
|
end
|
|
resources :codeharbor_links, only: %i[new create edit update destroy]
|
|
resources :request_for_comments, except: %i[edit destroy] do
|
|
member do
|
|
get :mark_as_solved, defaults: {format: :json}
|
|
post :set_thank_you_note, defaults: {format: :json}
|
|
end
|
|
end
|
|
resources :comments, defaults: {format: :json}
|
|
get '/my_request_for_comments', as: 'my_request_for_comments', to: 'request_for_comments#my_comment_requests'
|
|
get '/my_rfc_activity', as: 'my_rfc_activity', to: 'request_for_comments#rfcs_with_my_comments'
|
|
get '/exercises/:exercise_id/request_for_comments', as: 'rfcs_for_exercise', to: 'request_for_comments#rfcs_for_exercise'
|
|
|
|
delete '/comment_by_id', to: 'comments#destroy_by_id'
|
|
put '/comments', to: 'comments#update', defaults: {format: :json}
|
|
|
|
resources :subscriptions, only: %i[create destroy] do
|
|
member do
|
|
get :unsubscribe, to: 'subscriptions#destroy'
|
|
end
|
|
end
|
|
|
|
root to: 'application#welcome'
|
|
|
|
namespace :admin do
|
|
get 'dashboard', to: 'dashboard#show'
|
|
get 'dashboard/dump_docker', to: 'dashboard#dump_docker'
|
|
end
|
|
|
|
get '/insights', to: 'flowr#insights'
|
|
|
|
get 'statistics/', to: 'statistics#show'
|
|
get 'statistics/graphs', to: 'statistics#graphs'
|
|
get 'statistics/graphs/user-activity', to: 'statistics#user_activity'
|
|
get 'statistics/graphs/user-activity-history', to: 'statistics#user_activity_history'
|
|
get 'statistics/graphs/rfc-activity', to: 'statistics#rfc_activity'
|
|
get 'statistics/graphs/rfc-activity-history', to: 'statistics#rfc_activity_history'
|
|
|
|
concern :statistics do
|
|
member do
|
|
get :statistics
|
|
end
|
|
end
|
|
|
|
resources :consumers
|
|
|
|
resources :execution_environments do
|
|
member do
|
|
get :shell
|
|
post 'shell', as: :execute_command, action: :execute_command
|
|
get :statistics
|
|
end
|
|
|
|
post :synchronize_all_to_poseidon, on: :collection
|
|
end
|
|
|
|
post '/import_exercise' => 'exercises#import_exercise'
|
|
post '/import_uuid_check' => 'exercises#import_uuid_check'
|
|
|
|
resources :exercises do
|
|
collection do
|
|
match '', to: 'exercises#batch_update', via: %i[patch put]
|
|
end
|
|
|
|
member do
|
|
post :clone
|
|
get :implement
|
|
get :working_times
|
|
post :intervention
|
|
post :search
|
|
get :statistics
|
|
get :feedback
|
|
get :reload
|
|
post :submit
|
|
get 'study_group_dashboard/:study_group_id', to: 'exercises#study_group_dashboard'
|
|
post :export_external_check
|
|
post :export_external_confirm
|
|
end
|
|
end
|
|
|
|
resources :exercise_collections do
|
|
member do
|
|
get :statistics
|
|
end
|
|
end
|
|
|
|
resources :proxy_exercises do
|
|
member do
|
|
post :clone
|
|
get :reload
|
|
end
|
|
end
|
|
|
|
resources :tags
|
|
|
|
resources :tips
|
|
|
|
resources :user_exercise_feedbacks, except: %i[show index]
|
|
|
|
resources :external_users, only: %i[index show], concerns: :statistics do
|
|
resources :exercises, concerns: :statistics
|
|
member do
|
|
get :tag_statistics
|
|
end
|
|
end
|
|
|
|
namespace :code_ocean do
|
|
resources :files, only: %i[create destroy]
|
|
end
|
|
|
|
resources :file_types
|
|
|
|
resources :internal_users do
|
|
member do
|
|
match 'activate', to: 'internal_users#activate', via: %i[get patch put]
|
|
match 'reset_password', to: 'internal_users#reset_password', via: %i[get patch put]
|
|
end
|
|
end
|
|
|
|
match '/forgot_password', as: 'forgot_password', to: 'internal_users#forgot_password', via: %i[get post]
|
|
|
|
resources :sessions, only: %i[create destroy new]
|
|
|
|
post '/lti/launch', as: 'lti_launch', to: 'sessions#create_through_lti'
|
|
get '/lti/return', as: 'lti_return', to: 'sessions#destroy_through_lti'
|
|
get '/sign_in', as: 'sign_in', to: 'sessions#new'
|
|
match '/sign_out', as: 'sign_out', to: 'sessions#destroy', via: %i[get delete]
|
|
|
|
resources :submissions, only: %i[create index show] do
|
|
member do
|
|
get 'download', as: :download, action: :download
|
|
get 'download/:filename', as: :download_file, constraints: {filename: FILENAME_REGEXP}, action: :download_file
|
|
get 'render/:filename', as: :render, constraints: {filename: FILENAME_REGEXP}, action: :render_file
|
|
get 'run/:filename', as: :run, constraints: {filename: FILENAME_REGEXP}, action: :run
|
|
get :score
|
|
get :statistics
|
|
get 'test/:filename', as: :test, constraints: {filename: FILENAME_REGEXP}, action: :test
|
|
end
|
|
end
|
|
|
|
resources :study_groups, only: %i[index show edit destroy update]
|
|
|
|
resources :events, only: [:create]
|
|
|
|
post '/evaluate', to: 'remote_evaluation#evaluate', via: [:post]
|
|
post '/submit', to: 'remote_evaluation#submit', via: [:post]
|
|
|
|
resources :ping, only: :index, defaults: {format: :json}
|
|
|
|
mount ActionCable.server => '/cable'
|
|
mount RailsAdmin::Engine => '/rails_admin', as: 'rails_admin'
|
|
end
|