libvirt-guests: Improve parameter coverage
This introduces support for a few more parameters in libvirt-guests service. Change-Id: I99ddef51ef60ae1b1bc6c43643cce7596457b598
This commit is contained in:
@@ -33,6 +33,18 @@
|
|||||||
# value suitable for your guests.
|
# value suitable for your guests.
|
||||||
# Defaults to 'shutdown'
|
# Defaults to 'shutdown'
|
||||||
#
|
#
|
||||||
|
# [*start_delay*]
|
||||||
|
# (optional) Number of seconds to wait between each guest start. Set 0 to
|
||||||
|
# allow parallel startup.
|
||||||
|
# Defaults to undef
|
||||||
|
#
|
||||||
|
# [*parallel_shutdown*]
|
||||||
|
# (optional) Number of guests will be shutdown concurrently, taking effect
|
||||||
|
# when "ON_SHUTDOWN" is set to "shutdown". If set to 0, guests will be
|
||||||
|
# shutdown one after another. Number of guests on shutdown at any time will
|
||||||
|
# not exceed number set in this variable.
|
||||||
|
# Defaults to undef
|
||||||
|
#
|
||||||
# [*shutdown_timeout*]
|
# [*shutdown_timeout*]
|
||||||
# (optional) Number of seconds we're willing to wait for a guest to shut
|
# (optional) Number of seconds we're willing to wait for a guest to shut
|
||||||
# down. If parallel shutdown is enabled, this timeout applies as a timeout
|
# down. If parallel shutdown is enabled, this timeout applies as a timeout
|
||||||
@@ -41,6 +53,16 @@
|
|||||||
# not respond to a shutdown request).
|
# not respond to a shutdown request).
|
||||||
# Defaults to undef
|
# Defaults to undef
|
||||||
#
|
#
|
||||||
|
# [*bypass_cache*]
|
||||||
|
# (optional) Try to bypass the file system cache when saving and restoring
|
||||||
|
# guests, even though this may give slower operation for some file systems.
|
||||||
|
# Defaults to false
|
||||||
|
#
|
||||||
|
# [*sync_time*]
|
||||||
|
# (optional) Try to sync guest time on domain resume. Be aware, that this
|
||||||
|
# requires guest agent support for time synchronization running in the guest.
|
||||||
|
# Defaults to false
|
||||||
|
#
|
||||||
# [*manage_service*]
|
# [*manage_service*]
|
||||||
# (optional) Whether to start/stop the service
|
# (optional) Whether to start/stop the service
|
||||||
# Defaults to false
|
# Defaults to false
|
||||||
@@ -48,9 +70,13 @@
|
|||||||
class nova::compute::libvirt_guests (
|
class nova::compute::libvirt_guests (
|
||||||
Boolean $enabled = false,
|
Boolean $enabled = false,
|
||||||
$package_ensure = 'present',
|
$package_ensure = 'present',
|
||||||
$shutdown_timeout = undef,
|
|
||||||
$on_boot = 'ignore',
|
$on_boot = 'ignore',
|
||||||
$on_shutdown = 'shutdown',
|
$on_shutdown = 'shutdown',
|
||||||
|
$start_delay = undef,
|
||||||
|
$parallel_shutdown = undef,
|
||||||
|
$shutdown_timeout = undef,
|
||||||
|
Boolean $bypass_cache = false,
|
||||||
|
Boolean $sync_time = false,
|
||||||
Boolean $manage_service = false,
|
Boolean $manage_service = false,
|
||||||
) {
|
) {
|
||||||
include nova::params
|
include nova::params
|
||||||
@@ -81,6 +107,40 @@ class nova::compute::libvirt_guests (
|
|||||||
tag => 'libvirt-guests-file_line',
|
tag => 'libvirt-guests-file_line',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $start_delay {
|
||||||
|
file_line { 'libvirt-guests START_DELAY':
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
line => "START_DELAY=${start_delay}",
|
||||||
|
match => '^START_DELAY=.*',
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
file_line { 'libvirt-guests START_DELAY':
|
||||||
|
ensure => absent,
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
match => '^START_DELAY=.*',
|
||||||
|
match_for_absence => true,
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $parallel_shutdown {
|
||||||
|
file_line { 'libvirt-guests PARALLEL_SHUTDOWN':
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
line => "PARALLEL_SHUTDOWN=${parallel_shutdown}",
|
||||||
|
match => '^PARALLEL_SHUTDOWN=.*',
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
file_line { 'libvirt-guests PARALLEL_SHUTDOWN':
|
||||||
|
ensure => absent,
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
match => '^PARALLEL_SHUTDOWN=.*',
|
||||||
|
match_for_absence => true,
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if $shutdown_timeout {
|
if $shutdown_timeout {
|
||||||
file_line { 'libvirt-guests SHUTDOWN_TIMEOUT':
|
file_line { 'libvirt-guests SHUTDOWN_TIMEOUT':
|
||||||
path => $::nova::params::libvirt_guests_environment_file,
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
@@ -98,6 +158,40 @@ class nova::compute::libvirt_guests (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if $bypass_cache {
|
||||||
|
file_line { 'libvirt-guests BYPASS_CACHE':
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
line => 'BYPASS_CACHE=1',
|
||||||
|
match => '^BYPASS_CACHE=.*',
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
file_line { 'libvirt-guests BYPASS_CACHE':
|
||||||
|
ensure => absent,
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
match => '^BYPASS_CACHE=.*',
|
||||||
|
match_for_absence => true,
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if $sync_time {
|
||||||
|
file_line { 'libvirt-guests SYNC_TIME':
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
line => 'SYNC_TIME=1',
|
||||||
|
match => '^SYNC_TIME=.*',
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
file_line { 'libvirt-guests SYNC_TIME':
|
||||||
|
ensure => absent,
|
||||||
|
path => $::nova::params::libvirt_guests_environment_file,
|
||||||
|
match => '^SYNC_TIME=.*',
|
||||||
|
match_for_absence => true,
|
||||||
|
tag => 'libvirt-guests-file_line',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
package { 'libvirt-client':
|
package { 'libvirt-client':
|
||||||
ensure => $package_ensure,
|
ensure => $package_ensure,
|
||||||
name => $::nova::params::libvirt_client_package_name,
|
name => $::nova::params::libvirt_client_package_name,
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
The ``nova::compute::libvirt_guests`` class now supports the following
|
||||||
|
parameters.
|
||||||
|
|
||||||
|
- ``start_delay``
|
||||||
|
- ``parallel_shutdown``
|
||||||
|
- ``bypass_cache``
|
||||||
|
- ``sync_time``
|
||||||
@@ -20,6 +20,13 @@ describe 'nova::compute::libvirt_guests' do
|
|||||||
:match => '^ON_SHUTDOWN=.*',
|
:match => '^ON_SHUTDOWN=.*',
|
||||||
:tag => 'libvirt-guests-file_line'
|
:tag => 'libvirt-guests-file_line'
|
||||||
) }
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests START_DELAY').with(
|
||||||
|
:ensure => 'absent',
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:match => '^START_DELAY=.*',
|
||||||
|
:match_for_absence => true,
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
it { is_expected.to contain_file_line('libvirt-guests SHUTDOWN_TIMEOUT').with(
|
it { is_expected.to contain_file_line('libvirt-guests SHUTDOWN_TIMEOUT').with(
|
||||||
:ensure => 'absent',
|
:ensure => 'absent',
|
||||||
:path => platform_params[:libvirt_guests_environment_file],
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
@@ -27,6 +34,27 @@ describe 'nova::compute::libvirt_guests' do
|
|||||||
:match_for_absence => true,
|
:match_for_absence => true,
|
||||||
:tag => 'libvirt-guests-file_line'
|
:tag => 'libvirt-guests-file_line'
|
||||||
) }
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests PARALLEL_SHUTDOWN').with(
|
||||||
|
:ensure => 'absent',
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:match => '^PARALLEL_SHUTDOWN=.*',
|
||||||
|
:match_for_absence => true,
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests BYPASS_CACHE').with(
|
||||||
|
:ensure => 'absent',
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:match => '^BYPASS_CACHE=.*',
|
||||||
|
:match_for_absence => true,
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests SYNC_TIME').with(
|
||||||
|
:ensure => 'absent',
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:match => '^SYNC_TIME=.*',
|
||||||
|
:match_for_absence => true,
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
|
||||||
it { is_expected.to contain_package('libvirt-client').with(
|
it { is_expected.to contain_package('libvirt-client').with(
|
||||||
:name => platform_params[:libvirt_client_package_name],
|
:name => platform_params[:libvirt_client_package_name],
|
||||||
@@ -39,11 +67,15 @@ describe 'nova::compute::libvirt_guests' do
|
|||||||
context 'with params' do
|
context 'with params' do
|
||||||
let :params do
|
let :params do
|
||||||
{
|
{
|
||||||
:enabled => true,
|
:enabled => true,
|
||||||
:manage_service => true,
|
:manage_service => true,
|
||||||
:on_boot => 'start',
|
:on_boot => 'start',
|
||||||
:on_shutdown => 'suspend',
|
:on_shutdown => 'suspend',
|
||||||
:shutdown_timeout => 300,
|
:start_delay => 0,
|
||||||
|
:shutdown_timeout => 300,
|
||||||
|
:parallel_shutdown => 0,
|
||||||
|
:bypass_cache => true,
|
||||||
|
:sync_time => true,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -59,12 +91,36 @@ describe 'nova::compute::libvirt_guests' do
|
|||||||
:match => '^ON_SHUTDOWN=.*',
|
:match => '^ON_SHUTDOWN=.*',
|
||||||
:tag => 'libvirt-guests-file_line'
|
:tag => 'libvirt-guests-file_line'
|
||||||
) }
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests START_DELAY').with(
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:line => 'START_DELAY=0',
|
||||||
|
:match => '^START_DELAY=.*',
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
it { is_expected.to contain_file_line('libvirt-guests SHUTDOWN_TIMEOUT').with(
|
it { is_expected.to contain_file_line('libvirt-guests SHUTDOWN_TIMEOUT').with(
|
||||||
:path => platform_params[:libvirt_guests_environment_file],
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
:line => "SHUTDOWN_TIMEOUT=300",
|
:line => "SHUTDOWN_TIMEOUT=300",
|
||||||
:match => '^SHUTDOWN_TIMEOUT=.*',
|
:match => '^SHUTDOWN_TIMEOUT=.*',
|
||||||
:tag => 'libvirt-guests-file_line'
|
:tag => 'libvirt-guests-file_line'
|
||||||
) }
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests PARALLEL_SHUTDOWN').with(
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:line => "PARALLEL_SHUTDOWN=0",
|
||||||
|
:match => '^PARALLEL_SHUTDOWN=.*',
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests BYPASS_CACHE').with(
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:line => "BYPASS_CACHE=1",
|
||||||
|
:match => '^BYPASS_CACHE=.*',
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
it { is_expected.to contain_file_line('libvirt-guests SYNC_TIME').with(
|
||||||
|
:path => platform_params[:libvirt_guests_environment_file],
|
||||||
|
:line => "SYNC_TIME=1",
|
||||||
|
:match => '^SYNC_TIME=.*',
|
||||||
|
:tag => 'libvirt-guests-file_line'
|
||||||
|
) }
|
||||||
|
|
||||||
it { is_expected.to contain_package('libvirt-client').with(
|
it { is_expected.to contain_package('libvirt-client').with(
|
||||||
:name => platform_params[:libvirt_client_package_name],
|
:name => platform_params[:libvirt_client_package_name],
|
||||||
|
|||||||
Reference in New Issue
Block a user