From 54677589b12eca8d92a169490b0163f35fd4d0b9 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Mon, 18 Aug 2025 10:06:51 +0900 Subject: [PATCH] Remove support for standalone neutron-server It was removed from neutron during this cycle due to removal of the eventlet library. Depends-on: https://review.opendev.org/952659 Depends-on: https://review.opendev.org/957585 Change-Id: Ibf260264d83f285008155223ada30423dc26254e Signed-off-by: Takashi Kajinami --- manifests/params.pp | 6 - manifests/server.pp | 218 ++++++------------ .../notes/remove-server-de0f1225c5aad2f3.yaml | 4 + .../neutron_plugins_ml2_arista_l3_spec.rb | 9 - .../neutron_plugins_ml2_arista_spec.rb | 9 - spec/classes/neutron_plugins_ml2_ovn_spec.rb | 8 - spec/classes/neutron_server_spec.rb | 194 ++++++---------- 7 files changed, 150 insertions(+), 298 deletions(-) create mode 100644 releasenotes/notes/remove-server-de0f1225c5aad2f3.yaml diff --git a/manifests/params.pp b/manifests/params.pp index 175825e0d..758f36ebe 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -26,8 +26,6 @@ class neutron::params { case $facts['os']['family'] { 'RedHat': { $package_name = 'openstack-neutron' - $server_service = 'neutron-server' - $server_package = undef $api_package_name = undef $api_service_name = undef $rpc_package_name = 'openstack-neutron-rpc-server' @@ -72,8 +70,6 @@ class neutron::params { $package_name = 'neutron-common' if $facts['os']['name'] == 'Debian' { $ml2_server_package = undef - $server_service = undef - $server_package = undef $api_package_name = 'neutron-api' $api_service_name = 'neutron-api' $rpc_package_name = 'neutron-rpc-server' @@ -84,8 +80,6 @@ class neutron::params { $bagpipe_bgp_service = 'networking-bagpipe-bgp-agent' } else { $ml2_server_package = 'neutron-plugin-ml2' - $server_service = 'neutron-server' - $server_package = 'neutron-server' $api_package_name = 'neutron-api' $api_service_name = undef $rpc_package_name = 'neutron-rpc-server' diff --git a/manifests/server.pp b/manifests/server.pp index 79d7b471f..2c6d7b66e 100644 --- a/manifests/server.pp +++ b/manifests/server.pp @@ -16,18 +16,6 @@ # (Optional) Whether to start/stop the service # Defaults to true # -# [*service_name*] -# (Optional) Name of the service that will be providing neutron-server. -# If set to false, then separate api service and rpc service. -# Defaults to $neutron::params::server_service -# -# [*server_package*] -# (Optional) Name of the package holding neutron-server. -# If service_name is set to false, then this also must be -# set to false. With false, no package will be installed -# before running the neutron-server service. -# Defaults to $neutron::params::server_package -# # [*api_package_name*] # (Optional) Name of the package holding neutron-api. # If this parameter is set to false, @@ -237,12 +225,20 @@ # speficied on the router. # Defaults to $facts['os_service_default'] # +# DEPRECATED PARAMETERS +# +# [*service_name*] +# (Optional) Name of the service that will be providing neutron-server. +# Defaults to undef +# +# [*server_package*] +# (Optional) Name of the package holding neutron-server. +# Defaults to undef +# class neutron::server ( $package_ensure = 'present', Boolean $enabled = true, Boolean $manage_service = true, - $service_name = $neutron::params::server_service, - $server_package = $neutron::params::server_package, $api_package_name = $neutron::params::api_package_name, $api_service_name = $neutron::params::api_service_name, $rpc_package_name = $neutron::params::rpc_package_name, @@ -282,6 +278,9 @@ class neutron::server ( $igmp_flood_unregistered = $facts['os_service_default'], $enable_default_route_ecmp = $facts['os_service_default'], $enable_default_route_bfd = $facts['os_service_default'], + # DEPRECATED PARMETERS + $service_name = undef, + $server_package = undef, ) inherits neutron::params { include neutron::deps @@ -294,6 +293,13 @@ class neutron::server ( } } + if $service_name != undef { + warning('The service_name parameter is deprecated') + if $service_name { + fail('The moonolithic neutron-service is no longer supported') + } + } + if $sync_db { include neutron::db::sync } @@ -330,37 +336,27 @@ class neutron::server ( 'DEFAULT/enable_default_route_bfd': value => $enable_default_route_bfd; } - if $service_name { - if $server_package { - package { 'neutron-server': - ensure => $package_ensure, - name => $neutron::params::server_package, - tag => ['openstack', 'neutron-package'], - } - } - } else { - if $api_package_name { - package { 'neutron-api': - ensure => $package_ensure, - name => $api_package_name, - tag => ['openstack', 'neutron-package'], - } + if $api_package_name { + package { 'neutron-api': + ensure => $package_ensure, + name => $api_package_name, + tag => ['openstack', 'neutron-package'], } + } - if $rpc_service_name { - package { 'neutron-rpc-server': - ensure => $package_ensure, - name => $rpc_package_name, - tag => ['openstack', 'neutron-package'], - } + if $rpc_service_name { + package { 'neutron-rpc-server': + ensure => $package_ensure, + name => $rpc_package_name, + tag => ['openstack', 'neutron-package'], } + } - if $periodic_workers_service_name { - package { 'neutron-periodic-workers': - ensure => $package_ensure, - name => $periodic_workers_package_name, - tag => ['openstack', 'neutron-package'], - } + if $periodic_workers_service_name { + package { 'neutron-periodic-workers': + ensure => $package_ensure, + name => $periodic_workers_package_name, + tag => ['openstack', 'neutron-package'], } } @@ -380,121 +376,55 @@ class neutron::server ( $service_ensure = 'stopped' } - # $service_name is the old 'neutron-server' service. If it is in use, - # then we don't need to start neutron-api and neutron-rpc-server. If - # it is not, then we must start neutron-api and neutron-rpc-server instead. - if $service_name { - if $service_name == $neutron::params::server_service { - service { 'neutron-server': - ensure => $service_ensure, - name => $neutron::params::server_service, - enable => $enabled, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service', 'neutron-server-eventlet'], - } - Neutron_api_paste_ini<||> ~> Service['neutron-server'] + if $api_service_name == 'httpd' { + Service <| title == 'httpd' |> { tag +> 'neutron-service' } - } elsif $service_name == 'httpd' { - fail('Use api_service_name and rpc_service_name to run api service by httpd') - - } else { - warning('Support for arbitrary service name is deprecated') - # backward compatibility so operators can customize the service name. - service { 'neutron-server': - ensure => $service_ensure, - name => $service_name, - enable => $enabled, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service'], - } - } - - } else { - if $neutron::params::server_service { - # we need to make sure neutron-server is stopped before trying to - # start separate services. - service { 'neutron-server': + if $neutron::params::api_service_name { + # we need to make sure api service is stopped before trying to + # start apache + service { 'neutron-api': ensure => 'stopped', - name => $neutron::params::server_service, + name => $neutron::params::api_service_name, enable => false, hasstatus => true, hasrestart => true, tag => ['neutron-service'], } + Service['neutron-api'] -> Service[$api_service_name] + } + } else { + service { 'neutron-api': + ensure => $service_ensure, + name => $api_service_name, + enable => $enabled, + hasstatus => true, + hasrestart => true, + tag => ['neutron-service'], } - if $api_service_name { - if $api_service_name == 'httpd' { - Service <| title == 'httpd' |> { tag +> 'neutron-service' } - Neutron_api_paste_ini<||> ~> Service[$api_service_name] + Neutron_api_paste_ini<||> ~> Service['neutron-api'] + Neutron_api_uwsgi_config<||> ~> Service['neutron-api'] + } - if $neutron::params::server_service { - Service['neutron-server'] -> Service[$api_service_name] - } - - if $neutron::params::api_service_name { - # we need to make sure api service is stopped before trying to - # start apache - service { 'neutron-api': - ensure => 'stopped', - name => $neutron::params::api_service_name, - enable => false, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service'], - } - Service['neutron-api'] -> Service[$api_service_name] - } - - } else { - service { 'neutron-api': - ensure => $service_ensure, - name => $api_service_name, - enable => $enabled, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service', 'neutron-server-eventlet'], - } - - Neutron_api_paste_ini<||> ~> Service['neutron-api'] - Neutron_api_uwsgi_config<||> ~> Service['neutron-api'] - - if $neutron::params::server_service { - Service['neutron-server'] -> Service['neutron-api'] - } - } + if $rpc_service_name { + service { 'neutron-rpc-server': + ensure => $service_ensure, + name => $rpc_service_name, + enable => $enabled, + hasstatus => true, + hasrestart => true, + tag => ['neutron-service'], } + } - if $rpc_service_name { - service { 'neutron-rpc-server': - ensure => $service_ensure, - name => $rpc_service_name, - enable => $enabled, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service'], - } - - if $neutron::params::server_service { - Service['neutron-server'] -> Service['neutron-rpc-server'] - } - } - - if $periodic_workers_service_name { - service { 'neutron-periodic-workers': - ensure => $service_ensure, - name => $periodic_workers_service_name, - enable => $enabled, - hasstatus => true, - hasrestart => true, - tag => ['neutron-service'], - } - - if $neutron::params::server_service { - Service['neutron-server'] -> Service['neutron-periodic-workers'] - } + if $periodic_workers_service_name { + service { 'neutron-periodic-workers': + ensure => $service_ensure, + name => $periodic_workers_service_name, + enable => $enabled, + hasstatus => true, + hasrestart => true, + tag => ['neutron-service'], } } } diff --git a/releasenotes/notes/remove-server-de0f1225c5aad2f3.yaml b/releasenotes/notes/remove-server-de0f1225c5aad2f3.yaml new file mode 100644 index 000000000..ba0bd7e02 --- /dev/null +++ b/releasenotes/notes/remove-server-de0f1225c5aad2f3.yaml @@ -0,0 +1,4 @@ +--- +upgrade: + - | + Support for standalone neutron-server service has been removed. diff --git a/spec/classes/neutron_plugins_ml2_arista_l3_spec.rb b/spec/classes/neutron_plugins_ml2_arista_l3_spec.rb index 704a9c15f..7f37e856c 100644 --- a/spec/classes/neutron_plugins_ml2_arista_l3_spec.rb +++ b/spec/classes/neutron_plugins_ml2_arista_l3_spec.rb @@ -20,15 +20,6 @@ require 'spec_helper' describe 'neutron::plugins::ml2::arista::l3' do - let :pre_condition do - "class { 'neutron::keystone::authtoken': - password => 'passw0rd', - } - class { 'neutron::server': } - class { 'neutron': - core_plugin => 'ml2' }" - end - let :default_params do { :secondary_l3_host => '', diff --git a/spec/classes/neutron_plugins_ml2_arista_spec.rb b/spec/classes/neutron_plugins_ml2_arista_spec.rb index 58c8d5638..5171eead2 100644 --- a/spec/classes/neutron_plugins_ml2_arista_spec.rb +++ b/spec/classes/neutron_plugins_ml2_arista_spec.rb @@ -20,15 +20,6 @@ require 'spec_helper' describe 'neutron::plugins::ml2::arista' do - let :pre_condition do - "class { 'neutron::keystone::authtoken': - password => 'passw0rd', - } - class { 'neutron::server': } - class { 'neutron': - core_plugin => 'ml2' }" - end - let :default_params do { :region_name => '', diff --git a/spec/classes/neutron_plugins_ml2_ovn_spec.rb b/spec/classes/neutron_plugins_ml2_ovn_spec.rb index 0f309141b..3a78b6690 100644 --- a/spec/classes/neutron_plugins_ml2_ovn_spec.rb +++ b/spec/classes/neutron_plugins_ml2_ovn_spec.rb @@ -1,14 +1,6 @@ require 'spec_helper' describe 'neutron::plugins::ml2::ovn' do - let :pre_condition do - "class { 'neutron::keystone::authtoken': - password => 'passw0rd', - } - class { 'neutron::server': } - class { 'neutron': }" - end - let :default_params do { :ovn_nb_connection => '', diff --git a/spec/classes/neutron_server_spec.rb b/spec/classes/neutron_server_spec.rb index 6882df2ee..47dc65b09 100644 --- a/spec/classes/neutron_server_spec.rb +++ b/spec/classes/neutron_server_spec.rb @@ -5,11 +5,12 @@ describe 'neutron::server' do "class { 'neutron': } class { 'neutron::keystone::authtoken': password => 'passw0rd', - }" + } + include apache" end let :params do - {} + { :api_service_name => 'httpd' } end shared_examples 'neutron::server' do @@ -17,51 +18,49 @@ describe 'neutron::server' do it { should contain_class('neutron::params') } it { should contain_class('neutron::policy') } - it 'installs neutron server package' do - if platform_params.has_key?(:server_package) - should contain_package('neutron-server').with( - :name => platform_params[:server_package], + it 'installs neutron server service' do + if platform_params.has_key?(:api_package_name) + should contain_package('neutron-api').with( + :name => platform_params[:api_package_name], :ensure => 'present', :tag => ['openstack', 'neutron-package'], ) - should contain_package('neutron-server').that_requires('Anchor[neutron::install::begin]') - should contain_package('neutron-server').that_notifies('Anchor[neutron::install::end]') - else - should contain_package('neutron').that_requires('Anchor[neutron::install::begin]') - should contain_package('neutron').that_notifies('Anchor[neutron::install::end]') end + if platform_params.has_key?(:api_service_name) + should contain_service('neutron-api').with( + :ensure => 'stopped', + :name => platform_params[:api_service_name], + :enable => false, + :tag => ['neutron-service'], + ) + end + + should contain_package('neutron-rpc-server').with( + :name => platform_params[:rpc_package_name], + :ensure => 'present', + :tag => ['openstack', 'neutron-package'], + ) + should contain_service('neutron-rpc-server').with( + :name => platform_params[:rpc_service_name], + :enable => true, + :ensure => 'running', + :tag => ['neutron-service'], + ) + + should contain_package('neutron-periodic-workers').with( + :name => platform_params[:periodic_workers_package_name], + :ensure => 'present', + :tag => ['openstack', 'neutron-package'], + ) + should contain_service('neutron-periodic-workers').with( + :ensure => 'running', + :name => platform_params[:periodic_workers_service_name], + :enable => true, + :tag => ['neutron-service'], + ) end it 'configures neutron server service' do - if platform_params.has_key?(:server_service) - should contain_service('neutron-server').with( - :name => platform_params[:server_service], - :enable => true, - :ensure => 'running', - :tag => ['neutron-service', 'neutron-server-eventlet'], - ) - should contain_service('neutron-server').that_subscribes_to('Anchor[neutron::service::begin]') - should contain_service('neutron-server').that_notifies('Anchor[neutron::service::end]') - else - should contain_service('neutron-api').with( - :name => platform_params[:api_service_name], - :enable => true, - :ensure => 'running', - :tag => ['neutron-service', 'neutron-server-eventlet'], - ) - should contain_service('neutron-api').that_subscribes_to('Anchor[neutron::service::begin]') - should contain_service('neutron-api').that_notifies('Anchor[neutron::service::end]') - - should contain_service('neutron-rpc-server').with( - :name => platform_params[:rpc_service_name], - :enable => true, - :ensure => 'running', - :tag => ['neutron-service'], - ) - should contain_service('neutron-rpc-server').that_subscribes_to('Anchor[neutron::service::begin]') - should contain_service('neutron-rpc-server').that_notifies('Anchor[neutron::service::end]') - end - should_not contain_class('neutron::db::sync') should contain_neutron_config('DEFAULT/api_workers').with_value(facts[:os_workers]) should contain_neutron_config('DEFAULT/rpc_workers').with_value(facts[:os_workers]) @@ -91,12 +90,9 @@ describe 'neutron::server' do end it 'should not manage the service' do - if platform_params.has_key?(:server_service) - should_not contain_service('neutron-server') - else - should_not contain_service('neutron-api') - should_not contain_service('neutron-rpc-server') - end + should_not contain_service('neutron-api') + should_not contain_service('neutron-rpc-server') + should_not contain_service('neutron-periodic-workers') end end @@ -256,79 +252,6 @@ describe 'neutron::server' do )} end - context 'when running neutron-api in wsgi' do - before :each do - params.merge!( - :service_name => false, - :api_service_name => 'httpd', - ) - end - - let :pre_condition do - "class { 'neutron': } - include apache - class { 'neutron::keystone::authtoken': - password => 'passw0rd', - }" - end - - it 'configures neutron-api service with Apache' do - if platform_params.has_key?(:server_service) - should contain_service('neutron-server').with( - :ensure => 'stopped', - :name => platform_params[:server_service], - :enable => false, - :tag => ['neutron-service'], - ) - else - should contain_service('neutron-api').with( - :ensure => 'stopped', - :name => platform_params[:api_service_name], - :enable => false, - :tag => ['neutron-service'], - ) - end - - should contain_package('neutron-rpc-server').with( - :name => platform_params[:rpc_package_name], - :ensure => 'present', - :tag => ['openstack', 'neutron-package'], - ) - should contain_service('neutron-rpc-server').with( - :ensure => 'running', - :name => platform_params[:rpc_service_name], - :enable => true, - :tag => ['neutron-service'], - ) - should contain_package('neutron-periodic-workers').with( - :name => platform_params[:periodic_workers_package_name], - :ensure => 'present', - :tag => ['openstack', 'neutron-package'], - ) - should contain_service('neutron-periodic-workers').with( - :ensure => 'running', - :name => platform_params[:periodic_workers_service_name], - :enable => true, - :tag => ['neutron-service'], - ) - end - end - - context 'when service_name is customized' do - before :each do - params.merge!({ :service_name => 'foobar' }) - end - - it 'configures neutron-api service with custom name' do - should contain_service('neutron-server').with( - :name => 'foobar', - :enable => true, - :ensure => 'running', - :tag => ['neutron-service'], - ) - end - end - context 'with ovs_integration_bridge set' do before :each do params.merge!({:ovs_integration_bridge => 'br-int' }) @@ -390,6 +313,33 @@ describe 'neutron::server' do end end + shared_examples 'neutron::server in Debian' do + before :each do + params.clear() + end + + let :pre_condition do + "class { 'neutron': } + class { 'neutron::keystone::authtoken': + password => 'passw0rd', + }" + end + + it 'installs neutron server service' do + should contain_package('neutron-api').with( + :name => platform_params[:api_package_name], + :ensure => 'present', + :tag => ['openstack', 'neutron-package'], + ) + should contain_service('neutron-api').with( + :ensure => 'running', + :name => platform_params[:api_service_name], + :enable => true, + :tag => ['neutron-service'], + ) + end + end + on_supported_os({ :supported_os => OSDefaults.get_supported_os }).each do |os,facts| @@ -404,8 +354,6 @@ describe 'neutron::server' do if facts[:os]['name'] == 'Ubuntu' { :api_package_name => 'neutron-api', - :server_package => 'neutron-server', - :server_service => 'neutron-server', :rpc_package_name => 'neutron-rpc-server', :rpc_service_name => 'neutron-rpc-server', :periodic_workers_package_name => 'neutron-periodic-workers', @@ -423,7 +371,6 @@ describe 'neutron::server' do end when 'RedHat' { - :server_service => 'neutron-server', :rpc_package_name => 'openstack-neutron-rpc-server', :rpc_service_name => 'neutron-rpc-server', :periodic_workers_package_name => 'openstack-neutron-periodic-workers', @@ -433,6 +380,9 @@ describe 'neutron::server' do end it_behaves_like 'neutron::server' + if facts[:os]['name'] == 'Debian' + it_behaves_like 'neutron::server in Debian' + end end end end