From 367ba177f6f7e8fed7fdc914b6d69999ddc1df40 Mon Sep 17 00:00:00 2001 From: Slawek Kaplonski Date: Tue, 13 Apr 2021 15:48:48 +0200 Subject: [PATCH] Fix L3 agent's extensions list L3 agent's extensions list should be passed as an array to the neutron::agents::l3 class and then it should be converted to the comma separated string in the L3 agent's config. This patch changes expected type of the variable and adds that such conversion from an array to string. Conflicts: manifests/agents/l3.pp Change-Id: I0650085d2aa2c3492b175c565976705c977fd806 (cherry picked from commit d29611f08a7dd0a41e0495d2c1678eb37d6b5a66) (cherry picked from commit db151245184f2188e8e4ef8be6b5418eba4e926b) (cherry picked from commit 9029fe04cc2f504930613000f2169befc3540255) (cherry picked from commit 82324318ca5af337c4878588554965872d458ce4) --- manifests/agents/l3.pp | 4 ++-- spec/classes/neutron_agents_l3_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/manifests/agents/l3.pp b/manifests/agents/l3.pp index 3b9a85111..7dde02546 100644 --- a/manifests/agents/l3.pp +++ b/manifests/agents/l3.pp @@ -84,7 +84,7 @@ # Defaults to $::os_service_default # # [*extensions*] -# (optional) L3 agent extensions to enable. +# (optional) List of the L3 agent extensions to enable. # Defaults to $::os_service_default # # [*radvd_user*] @@ -144,7 +144,7 @@ class neutron::agents::l3 ( 'DEFAULT/agent_mode': value => $agent_mode; 'DEFAULT/radvd_user': value => $radvd_user; 'agent/availability_zone': value => $availability_zone; - 'agent/extensions': value => $extensions; + 'agent/extensions': value => join(any2array($extensions), ','); } if $::neutron::params::l3_agent_package { diff --git a/spec/classes/neutron_agents_l3_spec.rb b/spec/classes/neutron_agents_l3_spec.rb index 67adeb350..663d0a295 100644 --- a/spec/classes/neutron_agents_l3_spec.rb +++ b/spec/classes/neutron_agents_l3_spec.rb @@ -109,6 +109,26 @@ describe 'neutron::agents::l3' do should contain_neutron_l3_agent_config('agent/availability_zone').with_value(p[:availability_zone]) end end + + context 'with extensions in string' do + before :each do + params.merge!(:extensions => 'fip_qos,gateway_ip_qos,port_forwarding') + end + + it 'configures extentions' do + should contain_neutron_l3_agent_config('agent/extensions').with_value('fip_qos,gateway_ip_qos,port_forwarding') + end + end + + context 'with extensions in array' do + before :each do + params.merge!(:extensions => ['fip_qos', 'gateway_ip_qos', 'port_forwarding']) + end + + it 'configures extentions' do + should contain_neutron_l3_agent_config('agent/extensions').with_value('fip_qos,gateway_ip_qos,port_forwarding') + end + end end shared_examples 'neutron::agents::l3 on Debian' do