Disable DCP if other strategy class is chosen
This commit is contained in:
@ -230,7 +230,7 @@ class DockerClient
|
||||
Rails.logger.info("destroying container #{container}")
|
||||
|
||||
# Checks only if container assignment is not nil and not whether the container itself is still present.
|
||||
if container && !DockerContainerPool.config[:active]
|
||||
if container && !DockerContainerPool.active?
|
||||
container.kill
|
||||
container.port_bindings.each_value {|port| PortPool.release(port) }
|
||||
begin
|
||||
@ -355,7 +355,7 @@ container_execution_time: nil}
|
||||
exit_thread_if_alive
|
||||
@socket.close
|
||||
# if we use pooling and recylce the containers, put it back. otherwise, destroy it.
|
||||
if DockerContainerPool.config[:active] && RECYCLE_CONTAINERS
|
||||
if DockerContainerPool.active? && RECYCLE_CONTAINERS
|
||||
self.class.return_container(container,
|
||||
@execution_environment)
|
||||
else
|
||||
@ -493,7 +493,7 @@ container_execution_time: nil}
|
||||
end
|
||||
|
||||
# if we use pooling and recylce the containers, put it back. otherwise, destroy it.
|
||||
if DockerContainerPool.config[:active] && RECYCLE_CONTAINERS
|
||||
if DockerContainerPool.active? && RECYCLE_CONTAINERS
|
||||
self.class.return_container(container, @execution_environment)
|
||||
else
|
||||
self.class.destroy_container(container)
|
||||
|
@ -9,6 +9,11 @@ require 'concurrent/timer_task'
|
||||
# dump_info and quantities are still in use.
|
||||
|
||||
class DockerContainerPool
|
||||
def self.active?
|
||||
# TODO: Refactor config and merge with code_ocean.yml
|
||||
config[:active] && Runner.management_active? && Runner.strategy_class == Runner::Strategy::DockerContainerPool
|
||||
end
|
||||
|
||||
def self.config
|
||||
# TODO: Why erb?
|
||||
@config ||= CodeOcean::Config.new(:docker).read(erb: true)[:pool]
|
||||
@ -39,7 +44,7 @@ class DockerContainerPool
|
||||
|
||||
def self.get_container(execution_environment)
|
||||
# if pooling is active, do pooling, otherwise just create an container and return it
|
||||
if config[:active]
|
||||
if active?
|
||||
begin
|
||||
container_id = JSON.parse(Faraday.get("#{config[:location]}/docker_container_pool/get_container/#{execution_environment.id}").body)['id']
|
||||
Docker::Container.get(container_id) if container_id.present?
|
||||
|
Reference in New Issue
Block a user