Delegate initialization to Runner::Strategy

This commit is contained in:
Sebastian Serth
2021-10-24 11:39:19 +02:00
parent 2b98905acb
commit e33af5760d
5 changed files with 16 additions and 5 deletions

View File

@ -9,6 +9,10 @@ class Runner::Strategy
raise NotImplementedError
end
def self.initialize_environment
raise NotImplementedError
end
def self.available_images
raise NotImplementedError
end

View File

@ -8,6 +8,10 @@ class Runner::Strategy::DockerContainerPool < Runner::Strategy
@config ||= CodeOcean::Config.new(:docker).read(erb: true)
end
def self.initialize_environment
DockerClient.initialize_environment unless Rails.env.test? && `which docker`.blank?
end
def self.available_images
DockerClient.check_availability!
DockerClient.image_tags

View File

@ -13,6 +13,11 @@ class Runner::Strategy::Poseidon < Runner::Strategy
@config ||= CodeOcean::Config.new(:code_ocean).read[:runner_management] || {}
end
def self.initialize_environment
# There is no additional initialization required for Poseidon
nil
end
def self.available_images
# Images are pulled when needed for a new execution environment
# and cleaned up automatically if no longer in use.