Revision 16234b27
Added by Daniel Lobato Garcia over 8 years ago
app/models/container.rb | ||
---|---|---|
1 | 1 |
class Container < ActiveRecord::Base |
2 | 2 |
include Authorizable |
3 | 3 |
include Taxonomix |
4 |
include ForemanTasks::Concerns::ActionSubject |
|
4 | 5 |
|
5 | 6 |
belongs_to :compute_resource |
6 | 7 |
belongs_to :registry, :class_name => "DockerRegistry", :foreign_key => :registry_id |
app/models/service/actions/compute_resource/pull.rb | ||
---|---|---|
1 |
module Service |
|
2 |
module Actions |
|
3 |
module ComputeResource |
|
4 |
class Pull < ::Actions::EntryAction |
|
5 |
def plan(container) |
|
6 |
#container.disable_auto_reindex! |
|
7 |
action_subject(container) |
|
8 |
container.compute_resource.create_image(:fromImage => container.repository_pull_url) |
|
9 |
end |
|
10 |
|
|
11 |
def humanized_name |
|
12 |
_('Pull') |
|
13 |
end |
|
14 |
|
|
15 |
def finalize |
|
16 |
logger.info('Finished pulling Docker image') |
|
17 |
end |
|
18 |
end |
|
19 |
end |
|
20 |
end |
|
21 |
end |
app/models/service/containers.rb | ||
---|---|---|
25 | 25 |
end |
26 | 26 |
|
27 | 27 |
def self.pull_image(container) |
28 |
container.compute_resource.create_image(:fromImage => container.repository_pull_url)
|
|
28 |
ForemanTasks.async_task(::Service::Actions::ComputeResource::Pull, container)
|
|
29 | 29 |
end |
30 | 30 |
|
31 | 31 |
def self.start_container(container) |
foreman_docker.gemspec | ||
---|---|---|
20 | 20 |
|
21 | 21 |
s.add_dependency 'docker-api', '~> 1.13' |
22 | 22 |
s.add_dependency 'wicked', '~> 1.1' |
23 |
s.add_dependency 'foreman-tasks' |
|
23 | 24 |
s.add_development_dependency 'rubocop', '~> 0.26' |
24 | 25 |
end |
lib/foreman_docker/engine.rb | ||
---|---|---|
14 | 14 |
config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"] |
15 | 15 |
config.autoload_paths += Dir["#{config.root}/app/models/concerns"] |
16 | 16 |
|
17 |
initializer "foreman_docker.require_dynflow", |
|
18 |
:before => "foreman_tasks.initialize_dynflow" do |app| |
|
19 |
ForemanTasks.dynflow.require! |
|
20 |
end |
|
21 |
|
|
17 | 22 |
initializer 'foreman_docker.load_app_instance_data' do |app| |
18 | 23 |
app.config.paths['db/migrate'] += ForemanDocker::Engine.paths['db/migrate'].existent |
19 | 24 |
end |
Also available in: Unified diff
Fixes #8409 - Pull docker image asynchronously