diff --git a/Gemfile b/Gemfile index f9f6e208..8ff54445 100644 --- a/Gemfile +++ b/Gemfile @@ -60,7 +60,7 @@ group :test do gem 'nyan-cat-formatter' gem 'rake' gem 'rspec-autotest' - gem 'rspec-rails', '~> 3.1.0' + gem 'rspec-rails' gem 'selenium-webdriver' gem 'simplecov', require: false end diff --git a/Gemfile.lock b/Gemfile.lock index bde8fa1b..ef54d806 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -363,7 +363,7 @@ DEPENDENCIES rake ransack rspec-autotest - rspec-rails (~> 3.1.0) + rspec-rails rubocop rubocop-rspec rubytree diff --git a/app/models/exercise.rb b/app/models/exercise.rb index 6e7e090a..152d79bf 100644 --- a/app/models/exercise.rb +++ b/app/models/exercise.rb @@ -23,7 +23,7 @@ class Exercise < ActiveRecord::Base validates :token, presence: true, uniqueness: true def average_percentage - (average_score / maximum_score * 100).round if average_score + (average_score/ maximum_score * 100).round if average_score end def average_score diff --git a/lib/docker_client.rb b/lib/docker_client.rb index e5224236..f0799d8f 100644 --- a/lib/docker_client.rb +++ b/lib/docker_client.rb @@ -172,7 +172,12 @@ class DockerClient rescue Timeout::Error {status: :timeout} ensure - Concurrent::Future.execute { self.class.destroy_container(container) } + Concurrent::Future.execute { + #self.class.destroy_container(container) + FileUtils.rm_rf(local_workspace_path(container)) if local_workspace_path(container) + FileUtils.mkdir(local_workspace_path) + DockerContainerPool.return_container(container, @execution_environment) + } end private :send_command diff --git a/lib/docker_container_pool.rb b/lib/docker_container_pool.rb index c1d16c0a..3ca644df 100644 --- a/lib/docker_container_pool.rb +++ b/lib/docker_container_pool.rb @@ -20,6 +20,11 @@ class DockerContainerPool DockerClient.create_container(execution_environment) end + def self.return_container(container, execution_environment) + #container.start() + @containers[execution_environment.id].push(container) + end + def self.get_container(execution_environment) if config[:active] @containers[execution_environment.id].try(:shift) || create_container(execution_environment)