fuel-library/deployment/puppet/ceilometer/manifests/agent_notification.pp
iberezovskiy 4f2895b99f Add support for ceilometer agent notification service
Partial implements blueprint ceilometer-fuel-integraition

Change-Id: I4100e72a77f3f1f37836cce64f4e63fa439635be
2014-04-21 19:38:22 +04:00

109 lines
2.9 KiB
Puppet

# Installs the ceilometer agent notification service
#
# == Params
# [*enabled*]
# should the service be enabled
#
class ceilometer::agent_notification (
$enabled = true,
$use_neutron = false,
$swift = false,
) {
include ceilometer::params
if $enabled {
$service_ensure = 'running'
} else {
$service_ensure = 'stopped'
}
Ceilometer_config<||> ~> Service['ceilometer-agent-notification']
case $::osfamily {
'RedHat': {
Package['ceilometer-common'] -> Service['ceilometer-agent-notification']
}
'Debian': {
package { 'ceilometer-agent-notification':
ensure => installed,
name => $::ceilometer::params::agent_notification_package,
}
tweaks::ubuntu_service_override { 'ceilometer-agent-notification' :}
Package['ceilometer-agent-notification'] -> Service['ceilometer-agent-notification']
}
}
include nova::notify::ceilometer
include glance::notify::ceilometer
include cinder::notify::ceilometer
include heat::notify::ceilometer
if $swift {
class { 'swift::notify::ceilometer':
enable_ceilometer => true,
}
}
if $use_neutron {
include neutron::notify::ceilometer
service { 'ceilometer-agent-notification':
ensure => $service_ensure,
name => $::ceilometer::params::agent_notification_service,
enable => $enabled,
hasstatus => true,
hasrestart => true,
require => [
Class['ceilometer::db'],
Class['ceilometer::api'],
Class['neutron'],
Class['nova'],
Class['cinder::notify::ceilometer'],
Class['glance'],
Class['heat'],
Exec['ceilometer-dbsync'],
],
}
} else {
service { 'ceilometer-agent-notification':
ensure => $service_ensure,
name => $::ceilometer::params::agent_notification_service,
enable => $enabled,
hasstatus => true,
hasrestart => true,
require => [
Class['ceilometer::db'],
Class['ceilometer::api'],
Class['nova'],
Class['cinder::notify::ceilometer'],
Class['glance'],
Class['heat'],
Exec['ceilometer-dbsync'],
],
}
}
case $::osfamily {
'RedHat': {
Package<| title == 'ceilometer-collector' or title == 'ceilometer-common'|> ~>
Service<| title == 'ceilometer-agent-notification'|>
if !defined(Service['ceilometer-agent-notification']) {
notify{ "Module ${module_name} cannot notify service ceilometer-notification\
on packages update": }
}
}
'Debian': {
Package<| title == 'ceilometer-agent-notification' or title == 'ceilometer-common'|> ~>
Service<| title == 'ceilometer-agent-notification'|>
if !defined(Service['ceilometer-agent-notification']) {
notify{ "Module ${module_name} cannot notify service ceilometer-agent-notification\
on packages update": }
}
}
}
}