diff --git a/manifests/agents/ml2/ovs.pp b/manifests/agents/ml2/ovs.pp index a10c7b582..eb17f3f1f 100644 --- a/manifests/agents/ml2/ovs.pp +++ b/manifests/agents/ml2/ovs.pp @@ -348,6 +348,15 @@ class neutron::agents::ml2::ovs ( tag => ['neutron-service', 'neutron-db-sync-service'], } + if ($::osfamily == 'Redhat') { + service { 'neutron-destroy-patch-ports-service': + ensure => $service_ensure, + name => $::neutron::params::destroy_patch_ports_service, + enable => $enabled, + tag => ['neutron-service'], + } + } + if $::neutron::params::ovs_cleanup_service { service { 'ovs-cleanup-service': name => $::neutron::params::ovs_cleanup_service, diff --git a/manifests/params.pp b/manifests/params.pp index f880cfdfd..9e1ca13d0 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -8,6 +8,7 @@ class neutron::params { $client_package = 'python-neutronclient' $server_service = 'neutron-server' $ovs_agent_service = 'neutron-openvswitch-agent' + $destroy_patch_ports_service = 'neutron-destroy-patch-ports' $linuxbridge_agent_service = 'neutron-linuxbridge-agent' $cisco_config_file = '/etc/neutron/plugins/cisco/cisco_plugins.ini' $opencontrail_plugin_package = 'neutron-plugin-contrail' diff --git a/releasenotes/notes/enable-neutron-destroy-patch-ports-38ed2c8c810e063c.yaml b/releasenotes/notes/enable-neutron-destroy-patch-ports-38ed2c8c810e063c.yaml new file mode 100644 index 000000000..69feca67b --- /dev/null +++ b/releasenotes/notes/enable-neutron-destroy-patch-ports-38ed2c8c810e063c.yaml @@ -0,0 +1,7 @@ +--- +features: + - | + A new systemd service ``neutron-destroy-patch-ports`` was + introduced on RHEL based systems. The service is executed only on + boot and its purpose is to clean up patch ports between the Neutron + integration bridge and other configured provider bridges. diff --git a/spec/classes/neutron_agents_ml2_ovs_spec.rb b/spec/classes/neutron_agents_ml2_ovs_spec.rb index 6b6b7c01f..b9914b75a 100644 --- a/spec/classes/neutron_agents_ml2_ovs_spec.rb +++ b/spec/classes/neutron_agents_ml2_ovs_spec.rb @@ -308,6 +308,15 @@ describe 'neutron::agents::ml2::ovs' do is_expected.to contain_package('neutron-ovs-agent').that_notifies('Anchor[neutron::install::end]') end + it 'configures neutron destroy patch ports service' do + is_expected.to contain_service('neutron-destroy-patch-ports-service').with( + :name => platform_params[:destroy_patch_ports_service], + :enable => true, + :ensure => 'running', + :tag => ['neutron-service'], + ) + end + context 'when enabling dpdk with manage vswitch is default' do let :pre_condition do "class { 'vswitch::dpdk': host_core_list => '1,2', memory_channels => '1' }" @@ -339,8 +348,9 @@ describe 'neutron::agents::ml2::ovs' do { :ovs_agent_package => 'neutron-openvswitch-agent', :ovs_agent_service => 'neutron-openvswitch-agent' } when 'RedHat' - { :ovs_cleanup_service => 'neutron-ovs-cleanup', - :ovs_agent_service => 'neutron-openvswitch-agent' } + { :ovs_cleanup_service => 'neutron-ovs-cleanup', + :ovs_agent_service => 'neutron-openvswitch-agent', + :destroy_patch_ports_service => 'neutron-destroy-patch-ports' } end end