Delegate initialization to Runner::Strategy
This commit is contained in:
@ -49,6 +49,9 @@ module CodeOcean
|
|||||||
config.after_initialize do
|
config.after_initialize do
|
||||||
# Initialize the counters according to the db
|
# Initialize the counters according to the db
|
||||||
Prometheus::Controller.initialize_metrics
|
Prometheus::Controller.initialize_metrics
|
||||||
|
|
||||||
|
# Initialize the runner environment
|
||||||
|
Runner.strategy_class.initialize_environment
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -1,5 +0,0 @@
|
|||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require 'docker_client'
|
|
||||||
|
|
||||||
DockerClient.initialize_environment unless Rails.env.test? && `which docker`.blank?
|
|
@ -9,6 +9,10 @@ class Runner::Strategy
|
|||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.initialize_environment
|
||||||
|
raise NotImplementedError
|
||||||
|
end
|
||||||
|
|
||||||
def self.available_images
|
def self.available_images
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
end
|
end
|
||||||
|
@ -8,6 +8,10 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy
|
|||||||
@config ||= CodeOcean::Config.new(:docker).read(erb: true)
|
@config ||= CodeOcean::Config.new(:docker).read(erb: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.initialize_environment
|
||||||
|
DockerClient.initialize_environment unless Rails.env.test? && `which docker`.blank?
|
||||||
|
end
|
||||||
|
|
||||||
def self.available_images
|
def self.available_images
|
||||||
DockerClient.check_availability!
|
DockerClient.check_availability!
|
||||||
DockerClient.image_tags
|
DockerClient.image_tags
|
||||||
|
@ -13,6 +13,11 @@ class Runner::Strategy::Poseidon < Runner::Strategy
|
|||||||
@config ||= CodeOcean::Config.new(:code_ocean).read[:runner_management] || {}
|
@config ||= CodeOcean::Config.new(:code_ocean).read[:runner_management] || {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.initialize_environment
|
||||||
|
# There is no additional initialization required for Poseidon
|
||||||
|
nil
|
||||||
|
end
|
||||||
|
|
||||||
def self.available_images
|
def self.available_images
|
||||||
# Images are pulled when needed for a new execution environment
|
# Images are pulled when needed for a new execution environment
|
||||||
# and cleaned up automatically if no longer in use.
|
# and cleaned up automatically if no longer in use.
|
||||||
|
Reference in New Issue
Block a user