1+ # frozen_string_literal: true
2+
13require 'rest_client'
24require 'submission_packager'
35
@@ -17,18 +19,18 @@ def initialize(baseurl)
1719 def self . try_to_send_submission_to_free_server ( submission , notify_url )
1820 dir = ExerciseDir . get ( submission . exercise . clone_path )
1921 servers = if submission . exercise && dir . safe_for_experimental_sandbox
20- if dir . type == " java_maven"
21- all_experimental . shuffle
22- else
23- all_experimental . shuffle + all . shuffle
24- end
25- else
26- all . shuffle
22+ if dir . type == ' java_maven'
23+ all_experimental . shuffle
24+ else
25+ all_experimental . shuffle + all . shuffle
26+ end
27+ else
28+ all . shuffle
2729 end
2830 for server in servers # could be smarter about this
2931 begin
3032 server . send_submission ( submission , notify_url )
31- rescue SandboxUnavailableError => e
33+ rescue SandboxUnavailableError => e
3234 Rails . logger . warn e
3335 # ignore
3436 else
@@ -44,42 +46,38 @@ def self.try_to_send_submission_to_free_server(submission, notify_url)
4446 def send_submission ( submission , notify_url )
4547 exercise = submission . exercise
4648
47- fail 'Submission has no secret token' if submission . secret_token . blank?
48- fail "Exercise #{ submission . exercise_name } for submission gone. Cannot resubmit." if exercise . nil?
49+ raise 'Submission has no secret token' if submission . secret_token . blank?
50+ raise "Exercise #{ submission . exercise_name } for submission gone. Cannot resubmit." if exercise . nil?
4951
5052 Dir . mktmpdir do |tmpdir |
51- begin
52- zip_path = "#{ tmpdir } /submission.zip"
53- tar_path = "#{ tmpdir } /submission.tar"
54- File . open ( zip_path , 'wb' ) { |f | f . write ( submission . return_file ) }
55- SubmissionPackager . get ( exercise ) . package_submission ( exercise , zip_path , tar_path , submission . params )
56-
57- File . open ( tar_path , 'r' ) do |tar_file |
58- begin
59- RestClient . post post_url , file : tar_file , notify : notify_url , token : submission . secret_token
60- submission . sandbox = post_url
61- submission . save!
62- rescue => e
63- puts e
64- raise SandboxUnavailableError . new
65- end
66- end
67- rescue SandboxUnavailableError
68- raise
69- rescue
70- Rails . logger . info "Submission #{ submission . id } could not be packaged: #{ $1} "
71- Rails . logger . info "Marking submission #{ submission . id } as failed."
72- submission . pretest_error = 'Failed to process submission. Likely sent in incorrect format.'
73- submission . processed = true
53+ zip_path = "#{ tmpdir } /submission.zip"
54+ tar_path = "#{ tmpdir } /submission.tar"
55+ File . open ( zip_path , 'wb' ) { |f | f . write ( submission . return_file ) }
56+ SubmissionPackager . get ( exercise ) . package_submission ( exercise , zip_path , tar_path , submission . params )
57+
58+ File . open ( tar_path , 'r' ) do |tar_file |
59+ RestClient . post post_url , file : tar_file , notify : notify_url , token : submission . secret_token
60+ submission . sandbox = post_url
7461 submission . save!
75- raise
62+ rescue StandardError => e
63+ puts e
64+ raise SandboxUnavailableError
7665 end
66+ rescue SandboxUnavailableError
67+ raise
68+ rescue StandardError
69+ Rails . logger . info "Submission #{ submission . id } could not be packaged: #{ Regexp . last_match ( 1 ) } "
70+ Rails . logger . info "Marking submission #{ submission . id } as failed."
71+ submission . pretest_error = 'Failed to process submission. Likely sent in incorrect format.'
72+ submission . processed = true
73+ submission . save!
74+ raise
7775 end
7876 end
7977
8078 def try_to_seed_maven_cache ( file_path )
8179 seed_maven_cache ( file_path )
82- rescue
80+ rescue StandardError
8381 Rails . logger . warn "Failed to seed maven cache: #{ $!} "
8482 end
8583
@@ -104,19 +102,16 @@ def self.total_capacity
104102 def capacity
105103 @capacity ||= begin
106104 get_status [ 'total_instances' ]
107- rescue
105+ rescue StandardError
108106 nil
109107 end
110108 @capacity || 0
111109 end
112110
113111 def busy_instances
114- @busy_instances ||= begin
115- get_status [ 'busy_instances' ]
116- rescue
117- nil
118- end
119- @busy_instances || 0
112+ get_status [ 'busy_instances' ]
113+ rescue StandardError
114+ 0
120115 end
121116
122117 private
0 commit comments