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