foreman_docker 0.0.3 → 0.1.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.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -2
  3. data/Rakefile +13 -2
  4. data/app/assets/stylesheets/foreman_docker/terminal.css.scss +85 -0
  5. data/app/controllers/containers/steps_controller.rb +55 -0
  6. data/app/controllers/containers_controller.rb +62 -0
  7. data/app/helpers/container_steps_helper.rb +11 -0
  8. data/app/helpers/containers_helper.rb +54 -0
  9. data/app/models/concerns/fog_extensions/fogdocker/image.rb +1 -2
  10. data/app/models/concerns/fog_extensions/fogdocker/server.rb +18 -8
  11. data/app/models/container.rb +29 -0
  12. data/app/models/docker_image.rb +7 -0
  13. data/app/models/docker_tag.rb +7 -0
  14. data/app/models/foreman_docker/docker.rb +22 -16
  15. data/app/views/api/v1/compute_resources/docker.json +1 -0
  16. data/app/views/api/v2/compute_resources/docker.json +1 -0
  17. data/app/views/compute_resources/form/_docker.html.erb +8 -1
  18. data/app/views/compute_resources_vms/show/_docker.html.erb +4 -0
  19. data/app/views/containers/_list.html.erb +35 -0
  20. data/app/views/containers/index.html.erb +31 -0
  21. data/app/views/containers/show.html.erb +104 -0
  22. data/app/views/containers/steps/_form_buttons.html.erb +20 -0
  23. data/app/views/containers/steps/_title.html.erb +3 -0
  24. data/app/views/containers/steps/configuration.html.erb +14 -0
  25. data/app/views/containers/steps/environment.html.erb +9 -0
  26. data/app/views/containers/steps/image.html.erb +33 -0
  27. data/app/views/containers/steps/preliminary.html.erb +18 -0
  28. data/config/routes.rb +5 -0
  29. data/db/migrate/20140930175337_add_email_to_compute_resource.rb +5 -0
  30. data/db/migrate/20141005233312_create_containers.rb +11 -0
  31. data/db/migrate/20141007225130_add_compute_resource_id_to_container.rb +5 -0
  32. data/db/migrate/20141009001613_add_tag_to_container.rb +5 -0
  33. data/db/migrate/20141009011026_add_attributes_to_container.rb +12 -0
  34. data/db/migrate/20141010173220_create_docker_images.rb +36 -0
  35. data/db/migrate/20141018110810_add_uuid_to_containers.rb +6 -0
  36. data/lib/foreman_docker/engine.rb +38 -6
  37. data/lib/foreman_docker/tasks/test.rake +44 -0
  38. data/lib/foreman_docker/version.rb +1 -1
  39. data/test/factories/compute_resources.rb +15 -0
  40. data/test/factories/containers.rb +6 -0
  41. data/test/factories/docker_image.rb +5 -0
  42. data/test/factories/docker_tag.rb +6 -0
  43. data/test/functionals/container_controller_test.rb +27 -0
  44. data/test/functionals/containers_steps_controller_test.rb +39 -0
  45. data/test/models/container_test.rb +36 -0
  46. data/test/models/docker_image_test.rb +12 -0
  47. data/test/models/docker_tag_test.rb +17 -0
  48. data/test/test_plugin_helper.rb +14 -0
  49. metadata +95 -85
  50. data/lib/tasks/foreman_docker_tasks.rake +0 -4
  51. data/test/dummy/README.rdoc +0 -28
  52. data/test/dummy/Rakefile +0 -6
  53. data/test/dummy/app/assets/javascripts/application.js +0 -13
  54. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  55. data/test/dummy/app/controllers/application_controller.rb +0 -5
  56. data/test/dummy/app/helpers/application_helper.rb +0 -2
  57. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  58. data/test/dummy/bin/bundle +0 -3
  59. data/test/dummy/bin/rails +0 -4
  60. data/test/dummy/bin/rake +0 -4
  61. data/test/dummy/config.ru +0 -4
  62. data/test/dummy/config/application.rb +0 -23
  63. data/test/dummy/config/boot.rb +0 -5
  64. data/test/dummy/config/database.yml +0 -25
  65. data/test/dummy/config/environment.rb +0 -5
  66. data/test/dummy/config/environments/development.rb +0 -29
  67. data/test/dummy/config/environments/production.rb +0 -80
  68. data/test/dummy/config/environments/test.rb +0 -36
  69. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  70. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  71. data/test/dummy/config/initializers/inflections.rb +0 -16
  72. data/test/dummy/config/initializers/mime_types.rb +0 -5
  73. data/test/dummy/config/initializers/secret_token.rb +0 -12
  74. data/test/dummy/config/initializers/session_store.rb +0 -3
  75. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  76. data/test/dummy/config/locales/en.yml +0 -23
  77. data/test/dummy/config/routes.rb +0 -56
  78. data/test/dummy/public/404.html +0 -58
  79. data/test/dummy/public/422.html +0 -58
  80. data/test/dummy/public/500.html +0 -57
  81. data/test/dummy/public/favicon.ico +0 -0
  82. data/test/foreman_docker_test.rb +0 -7
  83. data/test/test_helper.rb +0 -15
@@ -0,0 +1,44 @@
1
+ require File.expand_path("../engine", File.dirname(__FILE__))
2
+ namespace :test do
3
+ desc "Run the plugin unit test suite."
4
+ task :docker => ['db:test:prepare'] do
5
+ test_task = Rake::TestTask.new('docker_test_task') do |t|
6
+ t.libs << ["test", "#{ForemanDocker::Engine.root}/test"]
7
+ t.test_files = [
8
+ "#{ForemanDocker::Engine.root}/test/**/*_test.rb"
9
+ ]
10
+ t.verbose = true
11
+ end
12
+
13
+ Rake::Task[test_task.name].invoke
14
+ end
15
+ end
16
+
17
+ namespace :docker do
18
+ task :rubocop do
19
+ begin
20
+ require 'rubocop/rake_task'
21
+ RuboCop::RakeTask.new(:rubocop_docker) do |task|
22
+ task.patterns = ["#{ForemanDocker::Engine.root}/app/**/*.rb",
23
+ "#{ForemanDocker::Engine.root}/lib/**/*.rb",
24
+ "#{ForemanDocker::Engine.root}/test/**/*.rb"]
25
+ end
26
+ rescue
27
+ puts "Rubocop not loaded."
28
+ end
29
+
30
+ Rake::Task['rubocop_docker'].invoke
31
+ end
32
+ end
33
+
34
+ Rake::Task[:test].enhance do
35
+ Rake::Task['test:docker'].invoke
36
+ end
37
+
38
+ load 'tasks/jenkins.rake'
39
+ if Rake::Task.task_defined?(:'jenkins:unit')
40
+ Rake::Task["jenkins:unit"].enhance do
41
+ Rake::Task['test:docker'].invoke
42
+ Rake::Task['docker:rubocop'].invoke
43
+ end
44
+ end
@@ -1,3 +1,3 @@
1
1
  module ForemanDocker
2
- VERSION = "0.0.3"
2
+ VERSION = '0.1.0'
3
3
  end
@@ -0,0 +1,15 @@
1
+ FactoryGirl.define do
2
+ factory :container_resource, :class => ComputeResource do
3
+ sequence(:name) { |n| "compute_resource#{n}" }
4
+
5
+ trait :docker do
6
+ provider 'Docker'
7
+ user 'dockeruser'
8
+ password 'dockerpassword'
9
+ email 'container@containerization.com'
10
+ url 'unix:///var/run/docker.sock'
11
+ end
12
+
13
+ factory :docker_cr, :class => ForemanDocker::Docker, :traits => [:docker]
14
+ end
15
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :container do
3
+ sequence(:name) { |n| "container_#{n}" }
4
+ association :compute_resource, :factory => :docker_cr
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ FactoryGirl.define do
2
+ factory :docker_image do
3
+ sequence(:image_id) { |n| "image#{n}" }
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ FactoryGirl.define do
2
+ factory :docker_tag do
3
+ sequence(:tag) { |n| "tag#{n}" }
4
+ association :image, :factory => :docker_image
5
+ end
6
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ContainersControllerTest < ActionController::TestCase
4
+ test 'redirect if Docker provider is not available' do
5
+ get :index, {}, set_session_user
6
+ assert_redirected_to new_compute_resource_path
7
+ end
8
+
9
+ test 'index if Docker resource is available' do
10
+ Fog.mock!
11
+ # Avoid rendering errors by not retrieving any container
12
+ ComputeResource.any_instance.stubs(:vms).returns([])
13
+ FactoryGirl.create(:docker_cr)
14
+ get :index, {}, set_session_user
15
+ assert_template 'index'
16
+ end
17
+
18
+ test 'deleting a container in compute resource redirects to containers index' do
19
+ Fog.mock!
20
+ container_resource = FactoryGirl.create(:docker_cr)
21
+ container = container_resource.vms.first
22
+ container.class.any_instance.expects(:destroy).returns(true)
23
+ delete :destroy, { :compute_resource_id => container_resource,
24
+ :id => container.id }, set_session_user
25
+ assert_redirected_to containers_path
26
+ end
27
+ end
@@ -0,0 +1,39 @@
1
+ require 'test_plugin_helper'
2
+
3
+ module Containers
4
+ class StepsControllerTest < ActionController::TestCase
5
+ setup do
6
+ @container = FactoryGirl.create(:container)
7
+ end
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
+ test 'uuid of the created container is saved at the end of the wizard' do
22
+ Fog.mock!
23
+ @container.update_attribute(:image, 'centos')
24
+ @container.update_attribute(:tag, 'latest')
25
+ fake_container = @container.compute_resource.create_vm
26
+ fake_container.id = SecureRandom.uuid
27
+ ForemanDocker::Docker.any_instance.expects(:create_vm).returns(fake_container)
28
+ put :update, { :id => :environment,
29
+ :container_id => @container.id }, set_session_user
30
+ assert_equal fake_container.id, Container.find(@container.id).uuid
31
+ end
32
+
33
+ test 'wizard finishes with a redirect to the managed container' do
34
+ get :show, { :id => :wicked_finish,
35
+ :container_id => @container.id }, set_session_user
36
+ assert_redirected_to container_path(:id => @container.id)
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,36 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class ContainerTest < ActiveSupport::TestCase
4
+ context 'update attributes' do
5
+ setup do
6
+ @container = FactoryGirl.create(:container)
7
+ end
8
+
9
+ test 'update image reuses previously created image' do
10
+ assert_difference('DockerImage.count', 1) do
11
+ @container.update_attribute(:image, "centos")
12
+ end
13
+ assert_equal "centos", @container.image.image_id
14
+ refute_nil DockerImage.find_by_image_id("centos")
15
+
16
+ assert_difference('DockerImage.count', 1) do
17
+ @container.update_attribute(:image, "redis")
18
+ end
19
+ assert_equal "redis", @container.image.image_id
20
+
21
+ assert_difference('DockerImage.count', 0) do
22
+ @container.update_attribute(:image, "centos")
23
+ end
24
+ end
25
+
26
+ test "update tag uses container's associated image" do
27
+ @container.update_attribute(:image, 'centos')
28
+ assert_difference('DockerTag.count', 1) do
29
+ @container.update_attribute(:tag, 'latest')
30
+ end
31
+
32
+ assert_equal 'latest', @container.tag.tag
33
+ assert_equal @container.tag.image, @container.image
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,12 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class DockerImageTest < ActiveSupport::TestCase
4
+ test 'destroy docker image with tags is successful' do
5
+ tag = FactoryGirl.create(:docker_tag)
6
+ image = FactoryGirl.create(:docker_image)
7
+ image.tags << tag
8
+ assert image.destroy
9
+ refute DockerImage.exists?(image.id)
10
+ refute DockerTag.exists?(tag.id)
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_plugin_helper'
2
+
3
+ class DockerTagTest < ActiveSupport::TestCase
4
+ test 'creating fails if no image is provided' do
5
+ tag = DockerTag.new(FactoryGirl.attributes_for(:docker_tag))
6
+ refute tag.valid?
7
+ assert tag.errors.size >= 1
8
+ end
9
+
10
+ test 'creating succeeds if an image is provided' do
11
+ tag = FactoryGirl.build(:docker_tag)
12
+ tag.image = FactoryGirl.create(:docker_image)
13
+
14
+ assert tag.valid?
15
+ assert tag.save
16
+ end
17
+ end
@@ -0,0 +1,14 @@
1
+ # This calls the main test_helper in Foreman-core
2
+ require 'test_helper'
3
+
4
+ def assert_row_button(index_path, link_text, button_text, dropdown = false)
5
+ visit index_path
6
+ within(:xpath, "//tr[contains(.,'#{link_text}')]") do
7
+ find("i.caret").click if dropdown
8
+ click_link(button_text)
9
+ end
10
+ end
11
+
12
+ # Add plugin to FactoryGirl's paths
13
+ FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
14
+ FactoryGirl.reload
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_docker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
- - Amos Beanri
7
+ - Daniel Lobato, Amos Benari
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-09 00:00:00.000000000 Z
11
+ date: 2014-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -44,71 +44,103 @@ dependencies:
44
44
  requirements:
45
45
  - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: 1.8.0
47
+ version: 1.13.6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: 1.8.0
54
+ version: 1.13.6
55
+ - !ruby/object:Gem::Dependency
56
+ name: wicked
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 0.26.1
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.26.1
55
83
  description: Provision and manage Docker containers and images from Foreman.
56
84
  email:
57
- - abenari@redhat.com
85
+ - dlobatog@redhat.com, abenari@redhat.com
58
86
  executables: []
59
87
  extensions: []
60
88
  extra_rdoc_files: []
61
89
  files:
62
- - app/views/images/form/_docker.html.erb
63
- - app/views/compute_resources_vms/form/_docker.html.erb
64
- - app/views/compute_resources_vms/show/_docker.html.erb
65
- - app/views/compute_resources_vms/index/_docker.html.erb
90
+ - LICENSE
91
+ - README.md
92
+ - Rakefile
93
+ - app/assets/stylesheets/foreman_docker/terminal.css.scss
94
+ - app/controllers/containers/steps_controller.rb
95
+ - app/controllers/containers_controller.rb
96
+ - app/helpers/container_steps_helper.rb
97
+ - app/helpers/containers_helper.rb
98
+ - app/models/concerns/fog_extensions/fogdocker/image.rb
99
+ - app/models/concerns/fog_extensions/fogdocker/server.rb
100
+ - app/models/container.rb
101
+ - app/models/docker_image.rb
102
+ - app/models/docker_tag.rb
103
+ - app/models/foreman_docker/docker.rb
104
+ - app/views/api/v1/compute_resources/docker.json
105
+ - app/views/api/v2/compute_resources/docker.json
66
106
  - app/views/compute_resources/form/_docker.html.erb
67
107
  - app/views/compute_resources/show/_docker.html.erb
68
- - app/models/foreman_docker/docker.rb
69
- - app/models/concerns/fog_extensions/fogdocker/server.rb
70
- - app/models/concerns/fog_extensions/fogdocker/image.rb
108
+ - app/views/compute_resources_vms/form/_docker.html.erb
109
+ - app/views/compute_resources_vms/index/_docker.html.erb
110
+ - app/views/compute_resources_vms/show/_docker.html.erb
111
+ - app/views/containers/_list.html.erb
112
+ - app/views/containers/index.html.erb
113
+ - app/views/containers/show.html.erb
114
+ - app/views/containers/steps/_form_buttons.html.erb
115
+ - app/views/containers/steps/_title.html.erb
116
+ - app/views/containers/steps/configuration.html.erb
117
+ - app/views/containers/steps/environment.html.erb
118
+ - app/views/containers/steps/image.html.erb
119
+ - app/views/containers/steps/preliminary.html.erb
120
+ - app/views/images/form/_docker.html.erb
121
+ - config/routes.rb
122
+ - db/migrate/20140930175337_add_email_to_compute_resource.rb
123
+ - db/migrate/20141005233312_create_containers.rb
124
+ - db/migrate/20141007225130_add_compute_resource_id_to_container.rb
125
+ - db/migrate/20141009001613_add_tag_to_container.rb
126
+ - db/migrate/20141009011026_add_attributes_to_container.rb
127
+ - db/migrate/20141010173220_create_docker_images.rb
128
+ - db/migrate/20141018110810_add_uuid_to_containers.rb
71
129
  - lib/foreman_docker.rb
72
- - lib/foreman_docker/version.rb
73
130
  - lib/foreman_docker/engine.rb
74
- - lib/tasks/foreman_docker_tasks.rake
131
+ - lib/foreman_docker/tasks/test.rake
132
+ - lib/foreman_docker/version.rb
75
133
  - locale/Makefile
76
- - LICENSE
77
- - Rakefile
78
- - README.md
79
- - test/dummy/README.rdoc
80
- - test/dummy/public/favicon.ico
81
- - test/dummy/public/422.html
82
- - test/dummy/public/404.html
83
- - test/dummy/public/500.html
84
- - test/dummy/config.ru
85
- - test/dummy/Rakefile
86
- - test/dummy/bin/bundle
87
- - test/dummy/bin/rails
88
- - test/dummy/bin/rake
89
- - test/dummy/config/environments/production.rb
90
- - test/dummy/config/environments/test.rb
91
- - test/dummy/config/environments/development.rb
92
- - test/dummy/config/initializers/secret_token.rb
93
- - test/dummy/config/initializers/filter_parameter_logging.rb
94
- - test/dummy/config/initializers/backtrace_silencers.rb
95
- - test/dummy/config/initializers/session_store.rb
96
- - test/dummy/config/initializers/inflections.rb
97
- - test/dummy/config/initializers/mime_types.rb
98
- - test/dummy/config/initializers/wrap_parameters.rb
99
- - test/dummy/config/database.yml
100
- - test/dummy/config/environment.rb
101
- - test/dummy/config/application.rb
102
- - test/dummy/config/locales/en.yml
103
- - test/dummy/config/routes.rb
104
- - test/dummy/config/boot.rb
105
- - test/dummy/app/controllers/application_controller.rb
106
- - test/dummy/app/assets/javascripts/application.js
107
- - test/dummy/app/assets/stylesheets/application.css
108
- - test/dummy/app/helpers/application_helper.rb
109
- - test/dummy/app/views/layouts/application.html.erb
110
- - test/foreman_docker_test.rb
111
- - test/test_helper.rb
134
+ - test/factories/compute_resources.rb
135
+ - test/factories/containers.rb
136
+ - test/factories/docker_image.rb
137
+ - test/factories/docker_tag.rb
138
+ - test/functionals/container_controller_test.rb
139
+ - test/functionals/containers_steps_controller_test.rb
140
+ - test/models/container_test.rb
141
+ - test/models/docker_image_test.rb
142
+ - test/models/docker_tag_test.rb
143
+ - test/test_plugin_helper.rb
112
144
  homepage: http://github.com/theforeman/foreman-docker
113
145
  licenses:
114
146
  - GPL-3
@@ -129,41 +161,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
129
161
  version: '0'
130
162
  requirements: []
131
163
  rubyforge_project:
132
- rubygems_version: 2.0.14
164
+ rubygems_version: 2.2.2
133
165
  signing_key:
134
166
  specification_version: 4
135
167
  summary: Provision and manage Docker containers and images from Foreman
136
168
  test_files:
137
- - test/dummy/README.rdoc
138
- - test/dummy/public/favicon.ico
139
- - test/dummy/public/422.html
140
- - test/dummy/public/404.html
141
- - test/dummy/public/500.html
142
- - test/dummy/config.ru
143
- - test/dummy/Rakefile
144
- - test/dummy/bin/bundle
145
- - test/dummy/bin/rails
146
- - test/dummy/bin/rake
147
- - test/dummy/config/environments/production.rb
148
- - test/dummy/config/environments/test.rb
149
- - test/dummy/config/environments/development.rb
150
- - test/dummy/config/initializers/secret_token.rb
151
- - test/dummy/config/initializers/filter_parameter_logging.rb
152
- - test/dummy/config/initializers/backtrace_silencers.rb
153
- - test/dummy/config/initializers/session_store.rb
154
- - test/dummy/config/initializers/inflections.rb
155
- - test/dummy/config/initializers/mime_types.rb
156
- - test/dummy/config/initializers/wrap_parameters.rb
157
- - test/dummy/config/database.yml
158
- - test/dummy/config/environment.rb
159
- - test/dummy/config/application.rb
160
- - test/dummy/config/locales/en.yml
161
- - test/dummy/config/routes.rb
162
- - test/dummy/config/boot.rb
163
- - test/dummy/app/controllers/application_controller.rb
164
- - test/dummy/app/assets/javascripts/application.js
165
- - test/dummy/app/assets/stylesheets/application.css
166
- - test/dummy/app/helpers/application_helper.rb
167
- - test/dummy/app/views/layouts/application.html.erb
168
- - test/foreman_docker_test.rb
169
- - test/test_helper.rb
169
+ - test/functionals/containers_steps_controller_test.rb
170
+ - test/functionals/container_controller_test.rb
171
+ - test/models/docker_image_test.rb
172
+ - test/models/container_test.rb
173
+ - test/models/docker_tag_test.rb
174
+ - test/factories/docker_image.rb
175
+ - test/factories/compute_resources.rb
176
+ - test/factories/docker_tag.rb
177
+ - test/factories/containers.rb
178
+ - test/test_plugin_helper.rb
179
+ has_rdoc: