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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +10 -3
  3. data/app/assets/javascripts/foreman_docker/image_step.js +44 -5
  4. data/app/controllers/concerns/foreman_docker/find_container.rb +19 -0
  5. data/app/controllers/containers/steps_controller.rb +25 -39
  6. data/app/controllers/containers_controller.rb +10 -43
  7. data/app/controllers/image_search_controller.rb +88 -0
  8. data/app/controllers/registries_controller.rb +47 -0
  9. data/app/helpers/container_steps_helper.rb +21 -4
  10. data/app/helpers/containers_helper.rb +19 -7
  11. data/app/models/concerns/foreman_docker/parameter_validators.rb +11 -0
  12. data/app/models/container.rb +20 -7
  13. data/app/models/docker_container_wizard_state.rb +30 -0
  14. data/app/models/docker_container_wizard_states/configuration.rb +7 -0
  15. data/app/models/docker_container_wizard_states/environment.rb +21 -0
  16. data/app/models/docker_container_wizard_states/environment_variable.rb +7 -0
  17. data/app/models/docker_container_wizard_states/image.rb +11 -0
  18. data/app/models/docker_container_wizard_states/preliminary.rb +11 -0
  19. data/app/models/docker_registry.rb +28 -0
  20. data/app/models/environment_variable.rb +5 -0
  21. data/app/models/foreman_docker/docker.rb +22 -3
  22. data/app/models/service/containers.rb +38 -0
  23. data/app/models/service/registry_api.rb +26 -0
  24. data/app/views/containers/_list.html.erb +19 -18
  25. data/app/views/containers/index.html.erb +11 -6
  26. data/app/views/containers/show.html.erb +26 -7
  27. data/app/views/containers/steps/_form_buttons.html.erb +1 -1
  28. data/app/views/containers/steps/configuration.html.erb +2 -2
  29. data/app/views/containers/steps/environment.html.erb +19 -6
  30. data/app/views/containers/steps/image.html.erb +58 -39
  31. data/app/views/containers/steps/preliminary.html.erb +21 -4
  32. data/app/views/foreman_docker/common_parameters/_environment_variable.html.erb +18 -0
  33. data/app/views/image_search/_repository_search_results.html.erb +12 -0
  34. data/app/views/registries/_form.html.erb +26 -0
  35. data/app/views/registries/edit.html.erb +3 -0
  36. data/app/views/registries/index.html.erb +28 -0
  37. data/app/views/registries/new.html.erb +3 -0
  38. data/config/routes.rb +11 -2
  39. data/db/migrate/20141024163003_create_docker_registries.rb +22 -0
  40. data/db/migrate/20141120123003_add_user_credentials_to_docker_registries.rb +6 -0
  41. data/db/migrate/20141209182008_remove_docker_tables.rb +72 -0
  42. data/db/migrate/20141222113313_create_wizard_states.rb +42 -0
  43. data/lib/foreman_docker/engine.rb +25 -5
  44. data/lib/foreman_docker/version.rb +1 -1
  45. data/test/factories/containers.rb +2 -0
  46. data/test/factories/docker_registry.rb +16 -0
  47. data/test/functionals/containers_steps_controller_test.rb +7 -40
  48. data/test/integration/container_steps_test.rb +24 -0
  49. data/test/integration/container_test.rb +18 -0
  50. data/test/units/container_test.rb +0 -7
  51. data/test/units/containers_service_test.rb +21 -0
  52. data/test/units/docker_registry_test.rb +24 -0
  53. metadata +45 -22
  54. data/app/models/docker_image.rb +0 -9
  55. data/app/models/docker_tag.rb +0 -8
  56. data/test/factories/docker_image.rb +0 -5
  57. data/test/factories/docker_tag.rb +0 -6
  58. data/test/units/docker_image_test.rb +0 -23
  59. data/test/units/docker_tag_test.rb +0 -35
@@ -1,9 +0,0 @@
1
- class DockerImage < ActiveRecord::Base
2
- has_many :tags, :class_name => 'DockerTag', :foreign_key => 'docker_image_id',
3
- :dependent => :destroy
4
- has_many :containers
5
-
6
- attr_accessible :image_id, :size
7
-
8
- validates :image_id, :presence => true, :uniqueness => true
9
- end
@@ -1,8 +0,0 @@
1
- class DockerTag < ActiveRecord::Base
2
- belongs_to :image, :class_name => 'DockerImage', :foreign_key => 'docker_image_id'
3
-
4
- attr_accessible :tag, :image
5
-
6
- validates :tag, :presence => true, :uniqueness => { :scope => :docker_image_id }
7
- validates :image, :presence => true
8
- end
@@ -1,5 +0,0 @@
1
- FactoryGirl.define do
2
- factory :docker_image do
3
- sequence(:image_id) { |n| "image#{n}" }
4
- end
5
- end
@@ -1,6 +0,0 @@
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
@@ -1,23 +0,0 @@
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
-
13
- context 'validations' do
14
- test 'without image_id is invalid' do
15
- refute FactoryGirl.build(:docker_image, :image_id => '').valid?
16
- end
17
-
18
- test 'image_id has to be unique' do
19
- old_image = FactoryGirl.create(:docker_image)
20
- refute FactoryGirl.build(:docker_image, :image_id => old_image.image_id).valid?
21
- end
22
- end
23
- end
@@ -1,35 +0,0 @@
1
- require 'test_plugin_helper'
2
-
3
- class DockerTagTest < ActiveSupport::TestCase
4
- test 'creating fails if no image is provided' do
5
- tag = FactoryGirl.build(:docker_tag, :image => nil)
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.build(:docker_image)
13
-
14
- assert tag.valid?
15
- assert tag.save
16
- end
17
-
18
- context 'validations' do
19
- test 'tag has to be present' do
20
- refute FactoryGirl.build(:docker_tag, :tag => '').valid?
21
- end
22
-
23
- test 'tag is unique within image scope' do
24
- image = FactoryGirl.create(:docker_image)
25
- tag = FactoryGirl.create(:docker_tag, :image => image)
26
- duplicated_tag = FactoryGirl.build(:docker_tag, :image => image, :tag => tag.tag)
27
- refute duplicated_tag.valid?
28
- end
29
-
30
- test 'tag is not unique for different images' do
31
- tag = FactoryGirl.create(:docker_tag)
32
- assert FactoryGirl.build(:docker_tag, :tag => tag.tag).valid?
33
- end
34
- end
35
- end