Conditionally fall back to redhat service provider
This commit partially reverts Change-Id: Ic06ffc377f8982337d977bebb96ef7f6196e5c22 and puts in place conditionals to work around an issue in Puppet 4.0 through 4.4 installations where the systemd service provider does not function because of a bug managing statically enabled services[1]. [1] https://tickets.puppetlabs.com/browse/PUP-5353 Closes-Bug: #1577827 Change-Id: If5ea135b294995634506b745f80442e34b101a59
This commit is contained in:

committed by
Emilien Macchi

parent
0986087729
commit
b108a7c36b
@@ -155,9 +155,11 @@ class nova::compute::libvirt (
|
|||||||
|
|
||||||
if($::osfamily == 'RedHat' and $::operatingsystem != 'Fedora') {
|
if($::osfamily == 'RedHat' and $::operatingsystem != 'Fedora') {
|
||||||
service { 'messagebus':
|
service { 'messagebus':
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
name => $::nova::params::messagebus_service_name,
|
name => $::nova::params::messagebus_service_name,
|
||||||
|
provider => $::nova::params::special_service_provider,
|
||||||
|
|
||||||
}
|
}
|
||||||
Package['libvirt'] -> Service['messagebus'] -> Service['libvirt']
|
Package['libvirt'] -> Service['messagebus'] -> Service['libvirt']
|
||||||
}
|
}
|
||||||
@@ -196,27 +198,30 @@ class nova::compute::libvirt (
|
|||||||
}
|
}
|
||||||
|
|
||||||
service { 'libvirt' :
|
service { 'libvirt' :
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
name => $libvirt_service_name,
|
name => $libvirt_service_name,
|
||||||
require => Package['libvirt'],
|
provider => $::nova::params::special_service_provider,
|
||||||
|
require => Package['libvirt'],
|
||||||
}
|
}
|
||||||
|
|
||||||
if $virtlock_service_name {
|
if $virtlock_service_name {
|
||||||
service { 'virtlockd':
|
service { 'virtlockd':
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
name => $virtlock_service_name,
|
name => $virtlock_service_name,
|
||||||
require => Package['libvirt']
|
provider => $::nova::params::special_service_provider,
|
||||||
|
require => Package['libvirt']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if $virtlog_service_name {
|
if $virtlog_service_name {
|
||||||
service { 'virtlogd':
|
service { 'virtlogd':
|
||||||
ensure => running,
|
ensure => running,
|
||||||
enable => true,
|
enable => true,
|
||||||
name => $virtlog_service_name,
|
name => $virtlog_service_name,
|
||||||
require => Package['libvirt']
|
provider => $::nova::params::special_service_provider,
|
||||||
|
require => Package['libvirt']
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -54,14 +54,21 @@ class nova::params {
|
|||||||
case $::operatingsystem {
|
case $::operatingsystem {
|
||||||
'RedHat', 'CentOS', 'Scientific', 'OracleLinux': {
|
'RedHat', 'CentOS', 'Scientific', 'OracleLinux': {
|
||||||
if (versioncmp($::operatingsystemmajrelease, '7') < 0) {
|
if (versioncmp($::operatingsystemmajrelease, '7') < 0) {
|
||||||
$messagebus_service_name = 'messagebus'
|
$messagebus_service_name = 'messagebus'
|
||||||
|
$special_service_provider = undef
|
||||||
} else {
|
} else {
|
||||||
|
if (versioncmp($::puppetversion, '4.5') < 0) {
|
||||||
|
$special_service_provider = 'redhat'
|
||||||
|
} else {
|
||||||
|
$special_service_provider = undef
|
||||||
|
}
|
||||||
$messagebus_service_name = 'dbus'
|
$messagebus_service_name = 'dbus'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
# not packaged on Fedora
|
# not required on Fedora
|
||||||
$messagebus_service_name = undef
|
$special_service_provider = undef
|
||||||
|
$messagebus_service_name = undef
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,20 +112,24 @@ class nova::params {
|
|||||||
$lock_path = '/var/lock/nova'
|
$lock_path = '/var/lock/nova'
|
||||||
case $::os_package_type {
|
case $::os_package_type {
|
||||||
'debian': {
|
'debian': {
|
||||||
$spicehtml5proxy_package_name = 'nova-consoleproxy'
|
$spicehtml5proxy_package_name = 'nova-consoleproxy'
|
||||||
$spicehtml5proxy_service_name = 'nova-spicehtml5proxy'
|
$spicehtml5proxy_service_name = 'nova-spicehtml5proxy'
|
||||||
$vncproxy_package_name = 'nova-consoleproxy'
|
$vncproxy_package_name = 'nova-consoleproxy'
|
||||||
$libvirt_service_name = 'libvirtd'
|
# Use default provider on Debian
|
||||||
$virtlock_service_name = undef
|
$special_service_provider = undef
|
||||||
$virtlog_service_name = undef
|
$libvirt_service_name = 'libvirtd'
|
||||||
|
$virtlock_service_name = undef
|
||||||
|
$virtlog_service_name = undef
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
$spicehtml5proxy_package_name = 'nova-spiceproxy'
|
$spicehtml5proxy_package_name = 'nova-spiceproxy'
|
||||||
$spicehtml5proxy_service_name = 'nova-spiceproxy'
|
$spicehtml5proxy_service_name = 'nova-spiceproxy'
|
||||||
$vncproxy_package_name = 'nova-novncproxy'
|
$vncproxy_package_name = 'nova-novncproxy'
|
||||||
$libvirt_service_name = 'libvirt-bin'
|
# Use default provider on Debian
|
||||||
$virtlock_service_name = 'virtlockd'
|
$special_service_provider = undef
|
||||||
$virtlog_service_name = 'virtlogd'
|
$libvirt_service_name = 'libvirt-bin'
|
||||||
|
$virtlock_service_name = 'virtlockd'
|
||||||
|
$virtlog_service_name = 'virtlogd'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- Fallback to deprecated "redhat" service provider in an intellegent way to get around https://tickets.puppetlabs.com/browse/PUP-5353 on Puppet versions from 4.0 through 4.4.
|
@@ -1,3 +0,0 @@
|
|||||||
---
|
|
||||||
features:
|
|
||||||
- Stop overriding service providers, and let Puppet finds which one is the best.
|
|
Reference in New Issue
Block a user