Merge "Fix restart of modular libvirt daemons after config change"

This commit is contained in:
Zuul 2023-06-01 16:20:07 +00:00 committed by Gerrit Code Review
commit d6fe0569c9
3 changed files with 83 additions and 20 deletions

View File

@ -31,23 +31,23 @@
#
# [*virtsecret_service_name*]
# (optional) virtsecret service name.
# Defaults to $::nova::params::virtsecret_service_name
# Defaults to $::nova::params::virtsecret_socket_name
#
# [*virtnodedev_service_name*]
# (optional) virtnodedev service name.
# Defaults to $::nova::params::virtnodedevd_service_name
# Defaults to $::nova::params::virtnodedevd_socket_name
#
# [*virtqemu_service_name*]
# (optional) virtqemu service name.
# Defaults to $::nova::params::virtqemu_service_name
# Defaults to $::nova::params::virtqemu_socket_name
#
# [*virtproxy_service_name*]
# (optional) virtproxy service name.
# Defaults to $::nova::params::virtproxy_service_name
# Defaults to $::nova::params::virtproxy_socket_name
#
# [*virtstorage_service_name*]
# (optional) virtstorage service name.
# Defaults to $::nova::params::virtstorage_service_name
# Defaults to $::nova::params::virtstorage_socket_name
#
class nova::compute::libvirt::services (
$ensure_package = 'present',
@ -56,11 +56,11 @@ class nova::compute::libvirt::services (
$virtlog_service_name = $::nova::params::virtlog_service_name,
$libvirt_virt_type = 'kvm',
$modular_libvirt = $::nova::params::modular_libvirt,
$virtsecret_service_name = $::nova::params::virtsecret_service_name,
$virtnodedev_service_name = $::nova::params::virtnodedev_service_name,
$virtqemu_service_name = $::nova::params::virtqemu_service_name,
$virtproxy_service_name = $::nova::params::virtproxy_service_name,
$virtstorage_service_name = $::nova::params::virtstorage_service_name
$virtsecret_service_name = $::nova::params::virtsecret_socket_name,
$virtnodedev_service_name = $::nova::params::virtnodedev_socket_name,
$virtqemu_service_name = $::nova::params::virtqemu_socket_name,
$virtproxy_service_name = $::nova::params::virtproxy_socket_name,
$virtstorage_service_name = $::nova::params::virtstorage_socket_name
) inherits nova::params {
include nova::deps
@ -185,7 +185,17 @@ class nova::compute::libvirt::services (
name => $virtsecret_service_name,
tag => ['libvirt-service', 'libvirt-modular-service'],
}
Virtsecretd_config<||> ~> Service['virtsecretd']
Virtsecretd_config<||> -> Service['virtsecretd']
if $virtsecret_service_name =~ /.+\.socket$/ {
exec { 'restart-virtsecretd':
command => "systemctl -q restart ${::nova::params::virtsecret_service_name}",
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
onlyif => "systemctl -q is-active ${::nova::params::virtsecret_service_name}",
refreshonly => true,
}
Virtsecretd_config<||> ~> Exec['restart-virtsecretd']
}
}
if $virtnodedev_service_name {
@ -200,7 +210,17 @@ class nova::compute::libvirt::services (
name => $virtnodedev_service_name,
tag => ['libvirt-service', 'libvirt-modular-service'],
}
Virtnodedevd_config<||> ~> Service['virtnodedevd']
Virtnodedevd_config<||> -> Service['virtnodedevd']
if $virtnodedev_service_name =~ /.+\.socket$/ {
exec { 'restart-virtnodedevd':
command => "systemctl -q restart ${::nova::params::virtnodedev_service_name}",
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
onlyif => "systemctl -q is-active ${::nova::params::virtnodedev_service_name}",
refreshonly => true,
}
Virtnodedevd_config<||> ~> Exec['restart-virtnodedevd']
}
}
if $virtqemu_service_name {
@ -215,7 +235,16 @@ class nova::compute::libvirt::services (
name => $virtqemu_service_name,
tag => ['libvirt-service', 'libvirt-qemu-service', 'libvirt-modular-service'],
}
Virtqemud_config<||> ~> Service['virtqemud']
Virtqemud_config<||> -> Service['virtqemud']
if $virtqemu_service_name =~ /.+\.socket$/ {
exec { 'restart-virtqemud':
command => "systemctl -q restart ${::nova::params::virtqemu_service_name}",
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
onlyif => "systemctl -q is-active ${::nova::params::virtqemu_service_name}",
refreshonly => true,
}
Virtqemud_config<||> ~> Exec['restart-virtqemud']
}
}
if $virtproxy_service_name {
@ -225,7 +254,16 @@ class nova::compute::libvirt::services (
name => $virtproxy_service_name,
tag => ['libvirt-service', 'libvirt-modular-service'],
}
Virtproxyd_config<||> ~> Service['virtproxyd']
Virtproxyd_config<||> -> Service['virtproxyd']
if $virtproxy_service_name =~ /.+\.socket$/ {
exec { 'restart-virtproxyd':
command => "systemctl -q restart ${::nova::params::virtproxy_service_name}",
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
onlyif => "systemctl -q is-active ${::nova::params::virtproxy_service_name}",
refreshonly => true,
}
Virtproxyd_config<||> ~> Exec['restart-virtproxyd']
}
}
if $virtstorage_service_name {
@ -240,7 +278,16 @@ class nova::compute::libvirt::services (
name => $virtstorage_service_name,
tag => ['libvirt-service', 'libvirt-modular-service'],
}
Virtstoraged_config<||> ~> Service['virtstoraged']
Virtstoraged_config<||> -> Service['virtstoraged']
if $virtstorage_service_name =~ /.+\.socket$/ {
exec { 'restart-virtstoraged':
command => "systemctl -q restart ${::nova::params::virtstorage_service_name}",
path => ['/sbin', '/usr/sbin', '/bin', '/usr/bin'],
onlyif => "systemctl -q is-active ${::nova::params::virtstorage_service_name}",
refreshonly => true,
}
Virtstoraged_config<||> ~> Exec['restart-storaged']
}
}
}
}

View File

@ -60,6 +60,7 @@ class nova::deps {
# Start libvirt services during the service phase
Anchor['nova::service::begin']
-> Exec<| tag == 'libvirt-service'|>
-> Service<| tag == 'libvirt-service'|>
-> Anchor['nova::service::end']

View File

@ -45,11 +45,16 @@ class nova::params {
$libvirt_guests_service_name = 'libvirt-guests'
$virtlock_service_name = 'virtlockd'
$virtlog_service_name = 'virtlogd'
$virtsecret_service_name = 'virtsecretd.socket'
$virtnodedev_service_name = 'virtnodedevd.socket'
$virtqemu_service_name = 'virtqemud.socket'
$virtproxy_service_name = 'virtproxyd.socket'
$virtstorage_service_name = 'virtstoraged.socket'
$virtsecret_service_name = 'virtsecretd'
$virtnodedev_service_name = 'virtnodedevd'
$virtqemu_service_name = 'virtqemud'
$virtproxy_service_name = 'virtproxyd'
$virtstorage_service_name = 'virtstoraged'
$virtsecret_socket_name = 'virtsecretd.socket'
$virtnodedev_socket_name = 'virtnodedevd.socket'
$virtqemu_socket_name = 'virtqemud.socket'
$virtproxy_socket_name = 'virtproxyd.socket'
$virtstorage_socket_name = 'virtstoraged.socket'
$scheduler_service_name = 'openstack-nova-scheduler'
$tgt_service_name = 'tgtd'
$vncproxy_service_name = 'openstack-nova-novncproxy'
@ -109,6 +114,11 @@ class nova::params {
$virtqemu_service_name = undef
$virtproxy_service_name = undef
$virtstorage_service_name = undef
$virtsecret_socket_name = undef
$virtnodedev_socket_name = undef
$virtqemu_socket_name = undef
$virtproxy_socket_name = undef
$virtstorage_socket_name = undef
}
default: {
$api_metadata_service_name = undef
@ -124,6 +134,11 @@ class nova::params {
$virtqemu_service_name = undef
$virtproxy_service_name = undef
$virtstorage_service_name = undef
$virtsecret_socket_name = undef
$virtnodedev_socket_name = undef
$virtqemu_socket_name = undef
$virtproxy_socket_name = undef
$virtstorage_socket_name = undef
}
}
$modular_libvirt = false