From 2d2e3509532e347b82882f8db69af660b545ca72 Mon Sep 17 00:00:00 2001 From: Aparna Karve Date: Mon, 1 Oct 2018 14:00:59 -0700 Subject: [PATCH 1/2] Add OSP attributes to ServiceResource options --- .../validate_config_info.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/service_template_transformation_plan/validate_config_info.rb b/app/models/service_template_transformation_plan/validate_config_info.rb index c597937a7d5..4ce859e1121 100644 --- a/app/models/service_template_transformation_plan/validate_config_info.rb +++ b/app/models/service_template_transformation_plan/validate_config_info.rb @@ -30,6 +30,8 @@ def validate_config_info(options) vm_options = {} vm_options[:pre_ansible_playbook_service_template_id] = pre_service_id if vm_hash[:pre_service] vm_options[:post_ansible_playbook_service_template_id] = post_service_id if vm_hash[:post_service] + vm_options[:osp_security_group_id] = vm_hash[:osp_security_group_id] if vm_hash[:osp_security_group_id].present? + vm_options[:osp_flavor_id] = vm_hash[:osp_flavor_id] if vm_hash[:osp_flavor_id].present? vms << {:vm => vm_obj, :options => vm_options} end end From 856479dd3296c971084065fec585860584fef3f8 Mon Sep 17 00:00:00 2001 From: Aparna Karve Date: Mon, 1 Oct 2018 14:02:53 -0700 Subject: [PATCH 2/2] spec that checks for OSP attributes in VM Service Resources --- ...rvice_template_transformation_plan_spec.rb | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/spec/models/service_template_transformation_plan_spec.rb b/spec/models/service_template_transformation_plan_spec.rb index 7687863bc40..8a85f50496c 100644 --- a/spec/models/service_template_transformation_plan_spec.rb +++ b/spec/models/service_template_transformation_plan_spec.rb @@ -22,6 +22,10 @@ let(:vm1) { FactoryGirl.create(:vm_or_template) } let(:vm2) { FactoryGirl.create(:vm_or_template) } let(:vm3) { FactoryGirl.create(:vm_or_template) } + let(:security_group1) { FactoryGirl.create(:security_group, :name => "default") } + let(:flavor1) { FactoryGirl.create(:flavor, :name => "large") } + let(:security_group2) { FactoryGirl.create(:security_group, :name => "default") } + let(:flavor2) { FactoryGirl.create(:flavor, :name => "medium") } let(:catalog_item_options) do { @@ -32,8 +36,8 @@ :pre_service_id => apst.id, :post_service_id => apst.id, :actions => [ - {:vm_id => vm1.id.to_s, :pre_service => true, :post_service => false}, - {:vm_id => vm2.id.to_s, :pre_service => true, :post_service => true} + {:vm_id => vm1.id.to_s, :pre_service => true, :post_service => false, :osp_security_group_id => security_group1.id, :osp_flavor_id => flavor1.id}, + {:vm_id => vm2.id.to_s, :pre_service => true, :post_service => true, :osp_security_group_id => security_group1.id, :osp_flavor_id => flavor1.id} ], } } @@ -48,9 +52,9 @@ :pre_service_id => apst.id, :post_service_id => apst.id, :actions => [ - {:vm_id => vm1.id.to_s, :pre_service => true, :post_service => false}, - {:vm_id => vm2.id.to_s, :pre_service => true, :post_service => true}, - {:vm_id => vm3.id.to_s, :pre_service => true, :post_service => true} + {:vm_id => vm1.id.to_s, :pre_service => true, :post_service => false, :osp_security_group_id => security_group1.id, :osp_flavor_id => flavor1.id}, + {:vm_id => vm2.id.to_s, :pre_service => true, :post_service => true, :osp_security_group_id => security_group1.id, :osp_flavor_id => flavor1.id}, + {:vm_id => vm3.id.to_s, :pre_service => true, :post_service => true, :osp_security_group_id => security_group2.id, :osp_flavor_id => flavor2.id} ], } } @@ -126,9 +130,9 @@ expect(service_template.vm_resources.collect(&:resource)).to match_array([vm1, vm2]) expect(service_template.vm_resources.collect(&:status)).to eq([ServiceResource::STATUS_QUEUED, ServiceResource::STATUS_QUEUED]) expect(service_template.vm_resources.find_by(:resource_id => vm1.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.vm_resources.find_by(:resource_id => vm2.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.config_info).to eq(catalog_item_options[:config_info]) expect(service_template.resource_actions.first).to have_attributes( :action => 'Provision', @@ -179,11 +183,11 @@ expect(service_template.vm_resources.collect(&:resource)).to match_array([vm1, vm2, vm3]) expect(service_template.vm_resources.collect(&:status)).to eq([ServiceResource::STATUS_QUEUED, ServiceResource::STATUS_QUEUED, ServiceResource::STATUS_QUEUED]) expect(service_template.vm_resources.find_by(:resource_id => vm1.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.vm_resources.find_by(:resource_id => vm2.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.vm_resources.find_by(:resource_id => vm3.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group2.id, "osp_flavor_id" => flavor2.id) expect(service_template.config_info).to eq(updated_catalog_item_options_with_vms_added[:config_info]) expect(service_template.resource_actions.first).to have_attributes( :action => 'Provision', @@ -240,9 +244,9 @@ expect(service_template.vm_resources.collect(&:resource)).to match_array([vm1, vm2]) expect(service_template.vm_resources.collect(&:status)).to eq([ServiceResource::STATUS_QUEUED, ServiceResource::STATUS_QUEUED]) expect(service_template.vm_resources.find_by(:resource_id => vm1.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.vm_resources.find_by(:resource_id => vm2.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.config_info).to eq(catalog_item_options[:config_info]) expect(service_template.resource_actions.first).to have_attributes( :action => 'Provision', @@ -260,9 +264,9 @@ expect(service_template.transformation_mapping).to eq(transformation_mapping) expect(service_template.vm_resources.collect(&:resource)).to match_array([vm1, vm2]) expect(service_template.vm_resources.find_by(:resource_id => vm1.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.vm_resources.find_by(:resource_id => vm2.id).options) - .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id) + .to eq("pre_ansible_playbook_service_template_id" => apst.id, "post_ansible_playbook_service_template_id" => apst.id, "osp_security_group_id" => security_group1.id, "osp_flavor_id" => flavor1.id) expect(service_template.config_info).to eq(catalog_item_options[:config_info]) expect(service_template.resource_actions.first).to have_attributes( :action => 'Provision',