Merge "Add host_uuid to libvirtd.conf"

This commit is contained in:
Jenkins 2016-01-26 15:22:19 +00:00 committed by Gerrit Code Review
commit fab38766c4
3 changed files with 57 additions and 0 deletions

View File

@ -0,0 +1,11 @@
require 'facter'
Facter.add(:libvirt_uuid) do
setcode do
uuid_file_path = '/etc/libvirt/libvirt_uuid'
if File.file? uuid_file_path
File.read uuid_file_path
else
nil
end
end
end

View File

@ -21,11 +21,16 @@
# (optional) Migration flags to be set for block migration (string value)
# Defaults to undef
#
# [*override_uuid*]
# (optional) Set uuid not equal to output from dmidecode (boolean)
# Defaults to false
#
class nova::migration::libvirt(
$use_tls = false,
$auth = 'none',
$live_migration_flag = undef,
$block_migration_flag = undef,
$override_uuid = false,
){
include ::nova::deps
@ -62,6 +67,26 @@ class nova::migration::libvirt(
File_line<| tag == 'libvirt-file_line' |>
~> Service['libvirt']
if $override_uuid {
if ! $::libvirt_uuid {
$host_uuid = generate('/bin/cat', '/proc/sys/kernel/random/uuid')
file { '/etc/libvirt/libvirt_uuid':
content => $host_uuid
}
} else {
$host_uuid = $::libvirt_uuid
}
augeas { 'libvirt-conf-uuid':
context => '/files/etc/libvirt/libvirtd.conf',
changes => [
"set host_uuid ${host_uuid}",
],
notify => Service['libvirt'],
require => Package['libvirt'],
}
}
case $::osfamily {
'RedHat': {
file_line { '/etc/libvirt/libvirtd.conf listen_tls':

View File

@ -22,6 +22,14 @@ require 'spec_helper'
describe 'nova::migration::libvirt' do
generate = {}
before(:each) {
Puppet::Parser::Functions.newfunction(:generate, :type => :rvalue) {
|args| generate.call()
}
generate.stubs(:call).returns('0000-111-111')
}
let :pre_condition do
'include nova
@ -38,6 +46,19 @@ describe 'nova::migration::libvirt' do
it { is_expected.to contain_file_line('/etc/libvirt/libvirtd.conf auth_tcp').with(:line => "auth_tcp = \"none\"") }
end
context 'with override_uuid enabled' do
let :params do
{
:override_uuid => true,
}
end
it { is_expected.to contain_augeas('libvirt-conf-uuid').with({
:context => '/files/etc/libvirt/libvirtd.conf',
:changes => [ "set host_uuid 0000-111-111" ],
}).that_requires('Package[libvirt]').that_notifies('Service[libvirt]') }
end
context 'with tls enabled' do
let :params do
{