Configure libvirt migration on the RedHat and Debian-Ubuntu

It introduces Red Hat support and fix Ubuntu / Debian libvirt
configuration to support live migrations when using libvirt nova driver.

Change-Id: I72f03316e79ce3b83959def79b86056c934ce62d
Signed-off-by: Emilien Macchi <emilien.macchi@enovance.com>
This commit is contained in:
Sandro Mathys 2013-10-17 14:15:22 +02:00 committed by Emilien Macchi
parent 0d405fe519
commit daac3744ca
2 changed files with 85 additions and 9 deletions

View File

@ -1,10 +1,8 @@
#
class nova::migration::libvirt {
case $::lsbdistid {
'Ubuntu': {
# Ubuntu-specific, not Debian, due to upstart
case $::osfamily {
'RedHat': {
file_line { '/etc/libvirt/libvirtd.conf listen_tls':
path => '/etc/libvirt/libvirtd.conf',
line => 'listen_tls = 0',
@ -26,10 +24,33 @@ class nova::migration::libvirt {
notify => Service['libvirt'],
}
file_line { '/etc/init/libvirt-bin.conf libvirtd opts':
path => '/etc/init/libvirt-bin.conf',
line => 'env libvirtd_opts="-d -l"',
match => 'env libvirtd_opts=',
file_line { '/etc/sysconfig/libvirtd libvirtd args':
path => '/etc/sysconfig/libvirtd',
line => 'LIBVIRTD_ARGS="--listen"',
match => 'LIBVIRTD_ARGS=',
}
}
'Debian': {
file_line { '/etc/libvirt/libvirtd.conf listen_tls':
path => '/etc/libvirt/libvirtd.conf',
line => 'listen_tls = 0',
match => 'listen_tls =',
notify => Service['libvirt'],
}
file_line { '/etc/libvirt/libvirtd.conf listen_tcp':
path => '/etc/libvirt/libvirtd.conf',
line => 'listen_tcp = 1',
match => 'listen_tcp =',
notify => Service['libvirt'],
}
file_line { '/etc/libvirt/libvirtd.conf auth_tcp':
path => '/etc/libvirt/libvirtd.conf',
line => 'auth_tcp = "none"',
match => 'auth_tcp =',
notify => Service['libvirt'],
}
file_line { '/etc/default/libvirt-bin libvirtd opts':
@ -37,9 +58,11 @@ class nova::migration::libvirt {
line => 'libvirtd_opts="-d -l"',
match => 'libvirtd_opts=',
}
}
default: {
warning("Unsupported operating system: ${::lsbdistid}, make sure you are configuring this yourself")
warning("Unsupported osfamily: ${::osfamily}, make sure you are configuring this yourself")
}
}
}

View File

@ -0,0 +1,53 @@
#
# Copyright (C) 2013 eNovance SAS <licensing@enovance.com>
#
# Author: Emilien Macchi <emilien.macchi@enovance.com>
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
#
# Unit tests for nova::migration::libvirt class
#
require 'spec_helper'
describe 'nova::migration::libvirt' do
shared_examples_for 'nova migration with libvirt' do
it 'configure libvirtd.conf' do
should contain_file_line('/etc/libvirt/libvirtd.conf listen_tls').with(:line => 'listen_tls = 0')
should contain_file_line('/etc/libvirt/libvirtd.conf listen_tcp').with(:line => 'listen_tcp = 1')
should contain_file_line('/etc/libvirt/libvirtd.conf auth_tcp').with(:line => 'auth_tcp = "none"')
end
end
context 'on Debian platforms' do
let :facts do
{ :osfamily => 'Debian' }
end
it_configures 'nova migration with libvirt'
it { should contain_file_line('/etc/default/libvirt-bin libvirtd opts').with(:line => 'libvirtd_opts="-d -l"') }
end
context 'on RedHat platforms' do
let :facts do
{ :osfamily => 'RedHat' }
end
it_configures 'nova migration with libvirt'
it { should contain_file_line('/etc/sysconfig/libvirtd libvirtd args').with(:line => 'LIBVIRTD_ARGS="--listen"') }
end
end