Skip to content

Commit

Permalink
Merge pull request ManageIQ#13612 from zakiva/fix_pod_volumes
Browse files Browse the repository at this point in the history
Fix Container Group and Container Volumes relation
  • Loading branch information
blomquisg authored Jan 30, 2017
2 parents 620603a + 8270477 commit f59f112
Show file tree
Hide file tree
Showing 5 changed files with 59 additions and 3 deletions.
2 changes: 1 addition & 1 deletion app/models/container_group.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class ContainerGroup < ApplicationRecord
belongs_to :container_project
belongs_to :old_container_project, :foreign_key => "old_container_project_id", :class_name => 'ContainerProject'
belongs_to :container_build_pod
has_many :container_volumes, :foreign_key => :parent_id, :dependent => :destroy
has_many :container_volumes, :as => :parent, :dependent => :destroy

# Metrics destroy is handled by purger
has_many :metrics, :as => :resource
Expand Down
2 changes: 1 addition & 1 deletion app/models/manageiq/providers/container_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class ContainerManager < BaseManager
has_many :container_limits, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_image_registries, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_images, :foreign_key => :ems_id, :dependent => :destroy
has_many :persistent_volumes, :foreign_key => :parent_id, :dependent => :destroy
has_many :persistent_volumes, :as => :parent, :dependent => :destroy
has_many :persistent_volume_claims, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_component_statuses, :foreign_key => :ems_id, :dependent => :destroy
has_many :container_builds, :foreign_key => :ems_id, :dependent => :destroy
Expand Down
5 changes: 5 additions & 0 deletions spec/factories/container_volume.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FactoryGirl.define do
factory :container_volume do
sequence(:name) { |n| "container_volume_#{seq_padded_for_sorting(n)}" }
end
end
5 changes: 5 additions & 0 deletions spec/factories/persistent_volume.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FactoryGirl.define do
factory :persistent_volume do
sequence(:name) { |n| "persistent_volume_#{seq_padded_for_sorting(n)}" }
end
end
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
describe ContainerNode do
describe ContainerGroup do
it "has distinct images" do
group = FactoryGirl.create(
:container_group,
Expand All @@ -11,4 +11,50 @@
)
expect(group.container_images.count).to eq(1)
end

# check https://bugzilla.redhat.com/show_bug.cgi?id=1406770
it "has container volumes" do
group = FactoryGirl.create(
:container_group,
:name => "group",
)

ems = FactoryGirl.create(
:ems_kubernetes,
:id => group.id,
:name => "ems"
)

container_volume = FactoryGirl.create(
:container_volume,
:name => "container_volume",
:parent => group
)

persistent_volume = FactoryGirl.create(
:persistent_volume,
:name => "persistent_volume",
:parent => ems
)

assert_volumes_relations(group, ems, container_volume, persistent_volume)

group.container_volumes.destroy_all
ems.persistent_volumes.destroy_all
container_volume = group.container_volumes.create(:name => "container_volume")
persistent_volume = ems.persistent_volumes.create(:name => "persistent_volume")

assert_volumes_relations(group, ems, container_volume, persistent_volume)
end

def assert_volumes_relations(group, ems, container_volume, persistent_volume)
expect(group.container_volumes.count).to eq(1)
expect(group.container_volumes.first.name).to eq("container_volume")
expect(ems.persistent_volumes.count).to eq(1)
expect(ems.persistent_volumes.first.name).to eq("persistent_volume")
expect(container_volume.parent.class).to eq(ContainerGroup)
expect(container_volume.parent.name).to eq("group")
expect(persistent_volume.parent.class).to eq(ManageIQ::Providers::Kubernetes::ContainerManager)
expect(persistent_volume.parent.name).to eq("ems")
end
end

0 comments on commit f59f112

Please sign in to comment.