From 9029fe04cc2f504930613000f2169befc3540255 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. Change-Id: I0650085d2aa2c3492b175c565976705c977fd806 (cherry picked from commit d29611f08a7dd0a41e0495d2c1678eb37d6b5a66) (cherry picked from commit db151245184f2188e8e4ef8be6b5418eba4e926b) --- 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 1795ca150..29024480d 100644 --- a/manifests/agents/l3.pp +++ b/manifests/agents/l3.pp @@ -80,7 +80,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*] @@ -161,7 +161,7 @@ class neutron::agents::l3 ( 'DEFAULT/radvd_user': value => $radvd_user; 'ovs/integration_bridge': value => $ovs_integration_bridge; '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 04113797d..f18dcb977 100644 --- a/spec/classes/neutron_agents_l3_spec.rb +++ b/spec/classes/neutron_agents_l3_spec.rb @@ -129,6 +129,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