foreman_docker 0.2.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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