diff --git a/manifests/compute/libvirt.pp b/manifests/compute/libvirt.pp index c28559c85..7e5b38346 100644 --- a/manifests/compute/libvirt.pp +++ b/manifests/compute/libvirt.pp @@ -93,6 +93,14 @@ # (optional) libvirt service name. # Defaults to $::nova::params::libvirt_service_name # +# [*virtlock_service_name*] +# (optional) virtlock service name. +# Defaults to $::nova::params::virtlock_service_name +# +# [*virtlog_service_name*] +# (optional) virtlog service name. +# Defaults to $::nova::params::virtlog_service_name +# # [*compute_driver*] # (optional) Compute driver. # Defaults to 'libvirt.LibvirtDriver' @@ -114,6 +122,8 @@ class nova::compute::libvirt ( $remove_unused_resized_minimum_age_seconds = undef, $remove_unused_original_minimum_age_seconds = undef, $libvirt_service_name = $::nova::params::libvirt_service_name, + $virtlock_service_name = $::nova::params::virtlock_service_name, + $virtlog_service_name = $::nova::params::virtlog_service_name, $compute_driver = 'libvirt.LibvirtDriver' ) inherits nova::params { @@ -194,6 +204,26 @@ class nova::compute::libvirt ( require => Package['libvirt'], } + if $virtlock_service_name { + service { 'virtlockd': + ensure => running, + enable => true, + name => $virtlock_service_name, + provider => $::nova::params::special_service_provider, + require => Package['libvirt'] + } + } + + if $virtlog_service_name { + service { 'virtlogd': + ensure => running, + enable => true, + name => $virtlog_service_name, + provider => $::nova::params::special_service_provider, + require => Package['libvirt'] + } + } + nova_config { 'DEFAULT/compute_driver': value => $compute_driver; 'vnc/vncserver_listen': value => $vncserver_listen; diff --git a/manifests/params.pp b/manifests/params.pp index be01e1c19..fccb9328c 100644 --- a/manifests/params.pp +++ b/manifests/params.pp @@ -36,6 +36,8 @@ class nova::params { $conductor_service_name = 'openstack-nova-conductor' $consoleauth_service_name = 'openstack-nova-consoleauth' $libvirt_service_name = 'libvirtd' + $virtlock_service_name = 'virtlockd' + $virtlog_service_name = undef $network_service_name = 'openstack-nova-network' $objectstore_service_name = 'openstack-nova-objectstore' $scheduler_service_name = 'openstack-nova-scheduler' @@ -113,6 +115,8 @@ class nova::params { # Use default provider on Debian $special_service_provider = undef $libvirt_service_name = 'libvirtd' + $virtlock_service_name = undef + $virtlog_service_name = undef } default: { $spicehtml5proxy_package_name = 'nova-spiceproxy' @@ -121,6 +125,8 @@ class nova::params { # some of the services need to be started form the special upstart provider $special_service_provider = 'upstart' $libvirt_service_name = 'libvirt-bin' + $virtlock_service_name = 'virtlockd' + $virtlog_service_name = 'virtlogd' } } } diff --git a/releasenotes/notes/virtlock-virtlog-services-40ab5eae62817df7.yaml b/releasenotes/notes/virtlock-virtlog-services-40ab5eae62817df7.yaml new file mode 100644 index 000000000..4218c7acb --- /dev/null +++ b/releasenotes/notes/virtlock-virtlog-services-40ab5eae62817df7.yaml @@ -0,0 +1,9 @@ +--- +fixes: + - Manage virtlockd and virtlogd services as part of + the nova::compute::libvirt as they are needed for + nova. The virtlockd service is currently managed + for RedHat and Ubuntu but skipped under Debian. + The virtlogd service is Ubuntu specific but can + be managed if the virtlog_service_name is provided + to the nova::compute::libvirt class. diff --git a/spec/classes/nova_compute_libvirt_spec.rb b/spec/classes/nova_compute_libvirt_spec.rb index 93e9fbe8e..002986fe8 100644 --- a/spec/classes/nova_compute_libvirt_spec.rb +++ b/spec/classes/nova_compute_libvirt_spec.rb @@ -66,6 +66,8 @@ describe 'nova::compute::libvirt' do :remove_unused_resized_minimum_age_seconds => 3600, :remove_unused_original_minimum_age_seconds => 3600, :libvirt_service_name => 'custom_service', + :virtlock_service_name => 'virtlock', + :virtlog_service_name => 'virtlog', :compute_driver => 'libvirt.FoobarDriver', } end @@ -92,6 +94,17 @@ describe 'nova::compute::libvirt' do :ensure => 'running', :before => ['Service[nova-compute]'] ) + is_expected.to contain_service('virtlockd').with( + :name => 'virtlock', + :enable => true, + :ensure => 'running' + ) + is_expected.to contain_service('virtlogd').with( + :name => 'virtlog', + :enable => true, + :ensure => 'running' + ) + } end