foreman_docker 0.2.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +10 -3
- data/app/assets/javascripts/foreman_docker/image_step.js +44 -5
- data/app/controllers/concerns/foreman_docker/find_container.rb +19 -0
- data/app/controllers/containers/steps_controller.rb +25 -39
- data/app/controllers/containers_controller.rb +10 -43
- data/app/controllers/image_search_controller.rb +88 -0
- data/app/controllers/registries_controller.rb +47 -0
- data/app/helpers/container_steps_helper.rb +21 -4
- data/app/helpers/containers_helper.rb +19 -7
- data/app/models/concerns/foreman_docker/parameter_validators.rb +11 -0
- data/app/models/container.rb +20 -7
- data/app/models/docker_container_wizard_state.rb +30 -0
- data/app/models/docker_container_wizard_states/configuration.rb +7 -0
- data/app/models/docker_container_wizard_states/environment.rb +21 -0
- data/app/models/docker_container_wizard_states/environment_variable.rb +7 -0
- data/app/models/docker_container_wizard_states/image.rb +11 -0
- data/app/models/docker_container_wizard_states/preliminary.rb +11 -0
- data/app/models/docker_registry.rb +28 -0
- data/app/models/environment_variable.rb +5 -0
- data/app/models/foreman_docker/docker.rb +22 -3
- data/app/models/service/containers.rb +38 -0
- data/app/models/service/registry_api.rb +26 -0
- data/app/views/containers/_list.html.erb +19 -18
- data/app/views/containers/index.html.erb +11 -6
- data/app/views/containers/show.html.erb +26 -7
- data/app/views/containers/steps/_form_buttons.html.erb +1 -1
- data/app/views/containers/steps/configuration.html.erb +2 -2
- data/app/views/containers/steps/environment.html.erb +19 -6
- data/app/views/containers/steps/image.html.erb +58 -39
- data/app/views/containers/steps/preliminary.html.erb +21 -4
- data/app/views/foreman_docker/common_parameters/_environment_variable.html.erb +18 -0
- data/app/views/image_search/_repository_search_results.html.erb +12 -0
- data/app/views/registries/_form.html.erb +26 -0
- data/app/views/registries/edit.html.erb +3 -0
- data/app/views/registries/index.html.erb +28 -0
- data/app/views/registries/new.html.erb +3 -0
- data/config/routes.rb +11 -2
- data/db/migrate/20141024163003_create_docker_registries.rb +22 -0
- data/db/migrate/20141120123003_add_user_credentials_to_docker_registries.rb +6 -0
- data/db/migrate/20141209182008_remove_docker_tables.rb +72 -0
- data/db/migrate/20141222113313_create_wizard_states.rb +42 -0
- data/lib/foreman_docker/engine.rb +25 -5
- data/lib/foreman_docker/version.rb +1 -1
- data/test/factories/containers.rb +2 -0
- data/test/factories/docker_registry.rb +16 -0
- data/test/functionals/containers_steps_controller_test.rb +7 -40
- data/test/integration/container_steps_test.rb +24 -0
- data/test/integration/container_test.rb +18 -0
- data/test/units/container_test.rb +0 -7
- data/test/units/containers_service_test.rb +21 -0
- data/test/units/docker_registry_test.rb +24 -0
- metadata +45 -22
- data/app/models/docker_image.rb +0 -9
- data/app/models/docker_tag.rb +0 -8
- data/test/factories/docker_image.rb +0 -5
- data/test/factories/docker_tag.rb +0 -6
- data/test/units/docker_image_test.rb +0 -23
- data/test/units/docker_tag_test.rb +0 -35
@@ -0,0 +1,42 @@
|
|
1
|
+
class CreateWizardStates < ActiveRecord::Migration
|
2
|
+
# rubocop:disable Metrics/MethodLength
|
3
|
+
def change
|
4
|
+
create_table :docker_container_wizard_states do |t|
|
5
|
+
t.timestamps
|
6
|
+
end
|
7
|
+
|
8
|
+
create_table :docker_container_wizard_states_preliminaries do |t|
|
9
|
+
t.integer :compute_resource_id, :null => false
|
10
|
+
t.references :docker_container_wizard_state, :null => false
|
11
|
+
t.timestamps
|
12
|
+
end
|
13
|
+
|
14
|
+
create_table :docker_container_wizard_states_images do |t|
|
15
|
+
t.integer :registry_id
|
16
|
+
t.string :repository_name, :null => false
|
17
|
+
t.string :tag, :null => false
|
18
|
+
t.references :docker_container_wizard_state, :null => false
|
19
|
+
t.timestamps
|
20
|
+
end
|
21
|
+
|
22
|
+
create_table :docker_container_wizard_states_configurations do |t|
|
23
|
+
t.string :name
|
24
|
+
t.string :command
|
25
|
+
t.string :entrypoint
|
26
|
+
t.integer :cpu_set
|
27
|
+
t.float :cpu_shares
|
28
|
+
t.string :memory
|
29
|
+
t.references :docker_container_wizard_state, :null => false
|
30
|
+
t.timestamps
|
31
|
+
end
|
32
|
+
|
33
|
+
create_table :docker_container_wizard_states_environments do |t|
|
34
|
+
t.boolean :tty
|
35
|
+
t.boolean :attach_stdin, :default => true
|
36
|
+
t.boolean :attach_stdout, :default => true
|
37
|
+
t.boolean :attach_stderr, :default => true
|
38
|
+
t.references :docker_container_wizard_state, :null => false
|
39
|
+
t.timestamps
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -11,17 +11,23 @@ module ForemanDocker
|
|
11
11
|
class Engine < ::Rails::Engine
|
12
12
|
engine_name 'foreman_docker'
|
13
13
|
|
14
|
+
config.autoload_paths += Dir["#{config.root}/app/controllers/concerns"]
|
15
|
+
config.autoload_paths += Dir["#{config.root}/app/models/concerns"]
|
16
|
+
|
14
17
|
initializer 'foreman_docker.load_app_instance_data' do |app|
|
15
18
|
app.config.paths['db/migrate'] += ForemanDocker::Engine.paths['db/migrate'].existent
|
16
19
|
end
|
17
20
|
|
18
21
|
initializer "foreman_docker.assets.precompile" do |app|
|
19
|
-
app.config.assets.precompile += %w(foreman_docker/
|
22
|
+
app.config.assets.precompile += %w(foreman_docker/autocomplete.css
|
23
|
+
foreman_docker/terminal.css
|
24
|
+
foreman_docker/image_step.js)
|
20
25
|
end
|
21
26
|
|
22
27
|
initializer 'foreman_docker.configure_assets', :group => :assets do
|
23
28
|
SETTINGS[:foreman_docker] =
|
24
|
-
{ :assets => { :precompile => ['foreman_docker/
|
29
|
+
{ :assets => { :precompile => ['foreman_docker/autocomplete.css',
|
30
|
+
'foreman_docker/terminal.css',
|
25
31
|
'foreman_docker/image_step.js'] } }
|
26
32
|
end
|
27
33
|
|
@@ -45,17 +51,31 @@ module ForemanDocker
|
|
45
51
|
menu :top_menu, :new_container, :caption => N_('New container'),
|
46
52
|
:url_hash => { :controller => :containers,
|
47
53
|
:action => :new }
|
54
|
+
menu :top_menu, :registries, :caption => N_('Registries'),
|
55
|
+
:url_hash => { :controller => :registries,
|
56
|
+
:action => :index }
|
48
57
|
end
|
49
58
|
|
50
59
|
security_block :containers do
|
51
|
-
permission :view_containers, :containers => [:index, :show
|
52
|
-
:auto_complete_image,
|
53
|
-
:auto_complete_image_tags]
|
60
|
+
permission :view_containers, :containers => [:index, :show]
|
54
61
|
permission :commit_containers, :containers => [:commit]
|
55
62
|
permission :create_containers, :'containers/steps' => [:show, :update],
|
56
63
|
:containers => [:new]
|
57
64
|
permission :destroy_containers, :containers => [:destroy]
|
58
65
|
end
|
66
|
+
|
67
|
+
security_block :registries do
|
68
|
+
permission :view_registries, :registries => [:index, :show]
|
69
|
+
permission :create_registries, :registries => [:new, :create, :update, :edit]
|
70
|
+
permission :destroy_registries, :registries => [:destroy]
|
71
|
+
end
|
72
|
+
|
73
|
+
security_block :image_search do
|
74
|
+
permission :search_repository_image_search,
|
75
|
+
:image_search => [:auto_complete_repository_name,
|
76
|
+
:auto_complete_image_tag,
|
77
|
+
:search_repository]
|
78
|
+
end
|
59
79
|
end
|
60
80
|
|
61
81
|
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
FactoryGirl.define do
|
2
|
+
factory :docker_registry do
|
3
|
+
sequence(:name) { |n| "hub#{n}" }
|
4
|
+
sequence(:url) { |n| "http://localhost/#{n}" }
|
5
|
+
sequence(:username) { |n| "username#{n}" }
|
6
|
+
sequence(:password) { |n| "password#{n}" }
|
7
|
+
end
|
8
|
+
|
9
|
+
trait :with_location do
|
10
|
+
locations { [FactoryGirl.build(:location)] }
|
11
|
+
end
|
12
|
+
|
13
|
+
trait :with_organization do
|
14
|
+
organizations { [FactoryGirl.build(:organization)] }
|
15
|
+
end
|
16
|
+
end
|
@@ -6,47 +6,14 @@ module Containers
|
|
6
6
|
@container = FactoryGirl.create(:container)
|
7
7
|
end
|
8
8
|
|
9
|
-
test 'sets a docker image and tag for a new container' do
|
10
|
-
put :update, { :id => :image,
|
11
|
-
:container_id => @container.id,
|
12
|
-
:image => 'centos',
|
13
|
-
:container => { :tag => 'latest' } }, set_session_user
|
14
|
-
assert_response :found
|
15
|
-
assert_redirected_to container_step_path(:container_id => @container.id,
|
16
|
-
:id => :configuration)
|
17
|
-
assert_equal DockerImage.find_by_image_id('centos'), @container.reload.image
|
18
|
-
assert_equal DockerTag.find_by_tag('latest'), @container.tag
|
19
|
-
end
|
20
|
-
|
21
|
-
context 'container creation' do
|
22
|
-
setup do
|
23
|
-
@container.update_attribute(:image, (image = FactoryGirl.create(:docker_image,
|
24
|
-
:image_id => 'centos')))
|
25
|
-
@container.update_attribute(:tag, FactoryGirl.create(:docker_tag, :image => image,
|
26
|
-
:tag => 'latest'))
|
27
|
-
end
|
28
|
-
|
29
|
-
test 'uuid of the created container is saved at the end of the wizard' do
|
30
|
-
Fog.mock!
|
31
|
-
fake_container = @container.compute_resource.send(:client).servers.first
|
32
|
-
ForemanDocker::Docker.any_instance.expects(:create_container).returns(fake_container)
|
33
|
-
put :update, { :id => :environment,
|
34
|
-
:container_id => @container.id }, set_session_user
|
35
|
-
assert_equal fake_container.id, Container.find(@container.id).uuid
|
36
|
-
end
|
37
|
-
|
38
|
-
test 'errors are displayed when container creation fails' do
|
39
|
-
Docker::Container.expects(:create).raises(Docker::Error::DockerError, 'some error')
|
40
|
-
put :update, { :id => :environment,
|
41
|
-
:container_id => @container.id }, set_session_user
|
42
|
-
assert_template 'environment'
|
43
|
-
assert_match(/some error/, flash[:error])
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
9
|
test 'wizard finishes with a redirect to the managed container' do
|
48
|
-
|
49
|
-
|
10
|
+
state = DockerContainerWizardState.create!
|
11
|
+
Service::Containers.expects(:start_container!).with(equals(state)).returns(@container)
|
12
|
+
put :update, { :wizard_state_id => state.id,
|
13
|
+
:id => :environment,
|
14
|
+
:docker_container_wizard_states_environment => { :tty => false } },
|
15
|
+
set_session_user
|
16
|
+
|
50
17
|
assert_redirected_to container_path(:id => @container.id)
|
51
18
|
end
|
52
19
|
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ContainerStepsTest < ActionDispatch::IntegrationTest
|
4
|
+
test 'shows a link to a new compute resource if none is available' do
|
5
|
+
visit new_container_path
|
6
|
+
assert has_selector?("div.alert", :text => 'Please add a new one')
|
7
|
+
end
|
8
|
+
|
9
|
+
test 'shows taxonomies tabs' do
|
10
|
+
visit new_container_path
|
11
|
+
assert has_selector?("a", :text => 'Locations')
|
12
|
+
assert has_selector?("a", :text => 'Organizations')
|
13
|
+
end
|
14
|
+
# test 'clicking on search loads repositories' do
|
15
|
+
# Capybara.javascript_driver = :webkit
|
16
|
+
# container = FactoryGirl.create(:container)
|
17
|
+
# visit container_step_path(:container_id => container.id, :id => :repository)
|
18
|
+
# ComputeResource.any_instance.expects(:search).returns([{'name' => 'my_fake_repository_result',
|
19
|
+
# 'star_count' => 300,
|
20
|
+
# 'description' => 'fake repository'}])
|
21
|
+
# click_button 'search_repository'
|
22
|
+
# assert has_link? 'my_fake_repository_result'
|
23
|
+
# end
|
24
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class ContainerIntegrationTest < ActionDispatch::IntegrationTest
|
4
|
+
test 'redirects to a new compute resource if none is available' do
|
5
|
+
visit containers_path
|
6
|
+
assert_equal current_path, new_compute_resource_path
|
7
|
+
end
|
8
|
+
|
9
|
+
context 'available compute resource' do
|
10
|
+
test 'shows containers list if compute resource is available' do
|
11
|
+
ComputeResource.any_instance.stubs(:vms).returns([])
|
12
|
+
FactoryGirl.create(:docker_cr)
|
13
|
+
visit containers_path
|
14
|
+
assert page.has_link? 'New container'
|
15
|
+
refute_equal current_path, new_compute_resource_path
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -1,11 +1,4 @@
|
|
1
1
|
require 'test_plugin_helper'
|
2
2
|
|
3
3
|
class ContainerTest < ActiveSupport::TestCase
|
4
|
-
test 'validations do not happen if inactive' do
|
5
|
-
FactoryGirl.build(:container)
|
6
|
-
end
|
7
|
-
|
8
|
-
test 'attributes are validated when active' do
|
9
|
-
FactoryGirl.build(:container)
|
10
|
-
end
|
11
4
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_plugin_helper'
|
2
|
+
|
3
|
+
class ContainersServiceTest < ActiveSupport::TestCase
|
4
|
+
setup do
|
5
|
+
@state = DockerContainerWizardState.create! do |s|
|
6
|
+
s.build_preliminary(:compute_resource_id => FactoryGirl.create(:docker_cr).id,
|
7
|
+
:locations => [taxonomies(:location1)],
|
8
|
+
:organizations => [taxonomies(:organization1)])
|
9
|
+
s.build_image(:repository_name => 'test', :tag => 'test')
|
10
|
+
s.build_configuration(:name => 'test')
|
11
|
+
s.build_environment(:tty => false)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
test 'removes current state after successful container creation' do
|
16
|
+
ForemanDocker::Docker.any_instance.expects(:create_container)
|
17
|
+
.returns(OpenStruct.new(:uuid => 1))
|
18
|
+
Service::Containers.start_container!(@state)
|
19
|
+
assert_equal DockerContainerWizardState.where(:id => @state.id).count, 0
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'test_plugin_helper'
|
2
|
+
|
3
|
+
class DockerRegistryTest < ActiveSupport::TestCase
|
4
|
+
test 'used_location_ids should return correct location ids' do
|
5
|
+
location = FactoryGirl.build(:location)
|
6
|
+
r = as_admin do
|
7
|
+
FactoryGirl.create(:docker_registry, :locations => ([location]))
|
8
|
+
end
|
9
|
+
assert r.used_location_ids.include?(location.id)
|
10
|
+
end
|
11
|
+
|
12
|
+
test 'used_organization_ids should return correct organization ids' do
|
13
|
+
organization = FactoryGirl.build(:organization)
|
14
|
+
r = as_admin do
|
15
|
+
FactoryGirl.create(:docker_registry, :organizations => ([organization]))
|
16
|
+
end
|
17
|
+
assert r.used_organization_ids.include?(organization.id)
|
18
|
+
end
|
19
|
+
|
20
|
+
test 'password is stored encrypted' do
|
21
|
+
r = as_admin { FactoryGirl.create(:docker_registry) }
|
22
|
+
assert r.is_decryptable?(r.password_in_db)
|
23
|
+
end
|
24
|
+
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_docker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lobato, Amos Benari
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docker-api
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.13'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.13'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: wicked
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '1.1'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '1.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rubocop
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.26'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.26'
|
55
55
|
description: Provision and manage Docker containers and images from Foreman.
|
@@ -65,16 +65,28 @@ files:
|
|
65
65
|
- app/assets/javascripts/foreman_docker/image_step.js
|
66
66
|
- app/assets/stylesheets/foreman_docker/autocomplete.css.scss
|
67
67
|
- app/assets/stylesheets/foreman_docker/terminal.css.scss
|
68
|
+
- app/controllers/concerns/foreman_docker/find_container.rb
|
68
69
|
- app/controllers/containers/steps_controller.rb
|
69
70
|
- app/controllers/containers_controller.rb
|
71
|
+
- app/controllers/image_search_controller.rb
|
72
|
+
- app/controllers/registries_controller.rb
|
70
73
|
- app/helpers/container_steps_helper.rb
|
71
74
|
- app/helpers/containers_helper.rb
|
72
75
|
- app/models/concerns/fog_extensions/fogdocker/image.rb
|
73
76
|
- app/models/concerns/fog_extensions/fogdocker/server.rb
|
77
|
+
- app/models/concerns/foreman_docker/parameter_validators.rb
|
74
78
|
- app/models/container.rb
|
75
|
-
- app/models/
|
76
|
-
- app/models/
|
79
|
+
- app/models/docker_container_wizard_state.rb
|
80
|
+
- app/models/docker_container_wizard_states/configuration.rb
|
81
|
+
- app/models/docker_container_wizard_states/environment.rb
|
82
|
+
- app/models/docker_container_wizard_states/environment_variable.rb
|
83
|
+
- app/models/docker_container_wizard_states/image.rb
|
84
|
+
- app/models/docker_container_wizard_states/preliminary.rb
|
85
|
+
- app/models/docker_registry.rb
|
86
|
+
- app/models/environment_variable.rb
|
77
87
|
- app/models/foreman_docker/docker.rb
|
88
|
+
- app/models/service/containers.rb
|
89
|
+
- app/models/service/registry_api.rb
|
78
90
|
- app/views/api/v1/compute_resources/docker.json
|
79
91
|
- app/views/api/v2/compute_resources/docker.json
|
80
92
|
- app/views/compute_resources/form/_docker.html.erb
|
@@ -91,7 +103,13 @@ files:
|
|
91
103
|
- app/views/containers/steps/environment.html.erb
|
92
104
|
- app/views/containers/steps/image.html.erb
|
93
105
|
- app/views/containers/steps/preliminary.html.erb
|
106
|
+
- app/views/foreman_docker/common_parameters/_environment_variable.html.erb
|
107
|
+
- app/views/image_search/_repository_search_results.html.erb
|
94
108
|
- app/views/images/form/_docker.html.erb
|
109
|
+
- app/views/registries/_form.html.erb
|
110
|
+
- app/views/registries/edit.html.erb
|
111
|
+
- app/views/registries/index.html.erb
|
112
|
+
- app/views/registries/new.html.erb
|
95
113
|
- config/routes.rb
|
96
114
|
- db/migrate/20140930175337_add_email_to_compute_resource.rb
|
97
115
|
- db/migrate/20141005233312_create_containers.rb
|
@@ -100,8 +118,12 @@ files:
|
|
100
118
|
- db/migrate/20141009011026_add_attributes_to_container.rb
|
101
119
|
- db/migrate/20141010173220_create_docker_images.rb
|
102
120
|
- db/migrate/20141018110810_add_uuid_to_containers.rb
|
121
|
+
- db/migrate/20141024163003_create_docker_registries.rb
|
103
122
|
- db/migrate/20141028164206_change_memory_in_container.rb
|
104
123
|
- db/migrate/20141028164633_change_cpuset_in_container.rb
|
124
|
+
- db/migrate/20141120123003_add_user_credentials_to_docker_registries.rb
|
125
|
+
- db/migrate/20141209182008_remove_docker_tables.rb
|
126
|
+
- db/migrate/20141222113313_create_wizard_states.rb
|
105
127
|
- lib/foreman_docker.rb
|
106
128
|
- lib/foreman_docker/engine.rb
|
107
129
|
- lib/foreman_docker/tasks/test.rake
|
@@ -109,14 +131,15 @@ files:
|
|
109
131
|
- locale/Makefile
|
110
132
|
- test/factories/compute_resources.rb
|
111
133
|
- test/factories/containers.rb
|
112
|
-
- test/factories/
|
113
|
-
- test/factories/docker_tag.rb
|
134
|
+
- test/factories/docker_registry.rb
|
114
135
|
- test/functionals/container_controller_test.rb
|
115
136
|
- test/functionals/containers_steps_controller_test.rb
|
137
|
+
- test/integration/container_steps_test.rb
|
138
|
+
- test/integration/container_test.rb
|
116
139
|
- test/test_plugin_helper.rb
|
117
140
|
- test/units/container_test.rb
|
118
|
-
- test/units/
|
119
|
-
- test/units/
|
141
|
+
- test/units/containers_service_test.rb
|
142
|
+
- test/units/docker_registry_test.rb
|
120
143
|
homepage: http://github.com/theforeman/foreman-docker
|
121
144
|
licenses:
|
122
145
|
- GPL-3
|
@@ -127,29 +150,29 @@ require_paths:
|
|
127
150
|
- lib
|
128
151
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
152
|
requirements:
|
130
|
-
- -
|
153
|
+
- - ">="
|
131
154
|
- !ruby/object:Gem::Version
|
132
155
|
version: '0'
|
133
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
157
|
requirements:
|
135
|
-
- -
|
158
|
+
- - ">="
|
136
159
|
- !ruby/object:Gem::Version
|
137
160
|
version: '0'
|
138
161
|
requirements: []
|
139
162
|
rubyforge_project:
|
140
|
-
rubygems_version: 2.
|
163
|
+
rubygems_version: 2.4.5
|
141
164
|
signing_key:
|
142
165
|
specification_version: 4
|
143
166
|
summary: Provision and manage Docker containers and images from Foreman
|
144
167
|
test_files:
|
145
168
|
- test/functionals/containers_steps_controller_test.rb
|
146
169
|
- test/functionals/container_controller_test.rb
|
147
|
-
- test/factories/
|
170
|
+
- test/factories/docker_registry.rb
|
148
171
|
- test/factories/compute_resources.rb
|
149
|
-
- test/factories/docker_tag.rb
|
150
172
|
- test/factories/containers.rb
|
151
|
-
- test/units/docker_image_test.rb
|
152
173
|
- test/units/container_test.rb
|
153
|
-
- test/units/
|
174
|
+
- test/units/docker_registry_test.rb
|
175
|
+
- test/units/containers_service_test.rb
|
154
176
|
- test/test_plugin_helper.rb
|
155
|
-
|
177
|
+
- test/integration/container_steps_test.rb
|
178
|
+
- test/integration/container_test.rb
|