Skip to content

Commit

Permalink
Merge pull request #11903 from lpichler/fix_updating_description_in_c…
Browse files Browse the repository at this point in the history
…loud_tenant_mapping

Fix updating description in cloud tenant mapping
(cherry picked from commit 47a4db6)

https://bugzilla.redhat.com/show_bug.cgi?id=1383364
  • Loading branch information
gtanzillo authored and chessbyte committed Oct 18, 2016
1 parent f9260df commit b8c36c4
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 4 deletions.
3 changes: 2 additions & 1 deletion app/models/manageiq/providers/cloud_manager.rb
Expand Up @@ -77,7 +77,8 @@ def sync_tenants
$log.info("Syncing CloudTenant with Tenants...")

CloudTenant.with_ext_management_system(id).walk_tree do |cloud_tenant, _|
tenant_params = {:name => cloud_tenant.name, :description => cloud_tenant.name}
cloud_tenant_description = cloud_tenant.description.blank? ? cloud_tenant.name : cloud_tenant.description
tenant_params = {:name => cloud_tenant.name, :description => cloud_tenant_description}

if cloud_tenant.source_tenant
$log.info("CloudTenant #{cloud_tenant.name} has tenant #{cloud_tenant.source_tenant.name}")
Expand Down
5 changes: 3 additions & 2 deletions spec/factories/cloud_tenants.rb
@@ -1,7 +1,8 @@
FactoryGirl.define do
factory :cloud_tenant do
sequence(:name) { |n| "cloud_tenant_#{seq_padded_for_sorting(n)}" }
sequence(:ems_ref) { |n| "ems_ref_#{seq_padded_for_sorting(n)}" }
sequence(:name) { |n| "cloud_tenant_#{seq_padded_for_sorting(n)}" }
sequence(:description) { |n| "cloud_tenant_description_#{seq_padded_for_sorting(n)}" }
sequence(:ems_ref) { |n| "ems_ref_#{seq_padded_for_sorting(n)}" }
end

factory :cloud_tenant_openstack, :class => "ManageIQ::Providers::Openstack::CloudManager::CloudTenant", :parent => :cloud_tenant do
Expand Down
24 changes: 23 additions & 1 deletion spec/models/manageiq/providers/cloud_manager_spec.rb
Expand Up @@ -135,6 +135,10 @@ def tenant_by(cloud_tenant)
[tenant_ct_1.name, tenant_ct_2.name, tenant_ct_3.name, tenant_ct_4.name]
end

let(:tenant_descriptions) do
[tenant_ct_1.description, tenant_ct_2.description, tenant_ct_3.description, tenant_ct_4.description]
end

let(:tenant_parent_names) do
[tenant_ct_1.parent.name, tenant_ct_2.parent.name, tenant_ct_3.parent.name, tenant_ct_4.parent.name]
end
Expand All @@ -143,6 +147,10 @@ def expect_tenant_names
expect(tenant_names).to eq([ct_1.name, ct_2.name, ct_3.name, ct_4.name])
end

def expect_tenant_descriptions
expect(tenant_descriptions).to eq([ct_1.description, ct_2.description, ct_3.description, ct_4.description])
end

def expect_tenant_parent_names
expect(tenant_parent_names).to eq([name_of_created_tenant, ct_1.name, ct_2.name, ct_2.name])
end
Expand All @@ -155,6 +163,8 @@ def expect_assigned_vms
def expect_created_tenant_tree
expect_tenant_names

expect_tenant_descriptions

expect_tenant_parent_names

expect_assigned_vms
Expand Down Expand Up @@ -192,18 +202,30 @@ def expect_created_tenant_tree
expect_created_tenant_tree

ct_4.name = "New name"
ct_4.description = "New name"
ct_4.description = "New description"
ct_4.vms_and_templates << vm_5
ct_4.save

ems_cloud.sync_cloud_tenants_with_tenants
tenant_ct_4.reload

expect(tenant_ct_4.name).to eq(ct_4.name)
expect(tenant_ct_4.description).to eq(ct_4.description)
expect(tenant_ct_4.parent.name).to eq(ct_2.name)
expect(tenant_ct_4.parent.description).to eq(ct_2.description)
expect(tenant_ct_4.vm_or_templates).to match_array([vm_3, vm_4, vm_5])
end

it "sets description to CloudTenant#name when CloudTenant#description is empty" do
ct_4.description = ""
ct_4.save

ems_cloud.sync_cloud_tenants_with_tenants

expect(tenant_ct_4.name).to eq(ct_4.name)
expect(tenant_ct_4.description).to eq(ct_4.name)
end

it "moves out tenant when CloudTenant does not exist under provider's tenant" do
ems_cloud.sync_cloud_tenants_with_tenants
expect_created_tenant_tree
Expand Down

0 comments on commit b8c36c4

Please sign in to comment.