#
# == Parameters
# [*enabled*]
-# Should the service be enabled. Optional. Defauls to true
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
#
class ceilometer::agent::central (
- $enabled = true,
+ $manage_service = true,
+ $enabled = true,
) {
include ceilometer::params
name => $::ceilometer::params::agent_central_package_name,
}
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-agent-central']
#
# == Parameters
# [*enabled*]
-# should the service be started or not
-# Optional. Defaults to true
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
#
class ceilometer::agent::compute (
- $enabled = true,
+ $manage_service = true,
+ $enabled = true,
) inherits ceilometer {
include ceilometer::params
}
}
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-agent-compute']
# file with the OVS plugin if both are on the same machine.
#
# === Parameters
-#
# [*enabled*]
-# (optional) Should the service be started or not
-# Defaults to true
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
#
# [*ack_on_event_error*]
# (optional) Acknowledge message when event persistence fails.
#
class ceilometer::agent::notification (
+ $manage_service = true,
$enabled = true,
$ack_on_event_error = true,
$store_events = false
Package[$::ceilometer::params::agent_notification_package_name] -> Service['ceilometer-agent-notification']
ensure_packages([$::ceilometer::params::agent_notification_package_name])
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-agent-notification']
#
# == Params
# [*enabled*]
-# should the service be enabled
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
+#
# [*evaluation_interval*]
-# define the time interval for the alarm evaluator
+# (optional) Define the time interval for the alarm evaluator
+# Defaults to 60.
+#
# [*evaluation_service*]
-# define which service use for the evaluator
+# (optional) Define which service use for the evaluator
+# Defaults to 'ceilometer.alarm.service.SingletonAlarmService'.
+#
# [*partition_rpc_topic*]
-# define which topic the alarm evaluator should access
+# (optional) Define which topic the alarm evaluator should access
+# Defaults to 'alarm_partition_coordination'.
+#
# [*record_history*]
-# Record alarm change events
+# (optional) Record alarm change events
+# Defaults to true.
#
class ceilometer::alarm::evaluator (
- $enabled = true,
+ $manage_service = true,
+ $enabled = true,
$evaluation_interval = 60,
$evaluation_service = 'ceilometer.alarm.service.SingletonAlarmService',
$partition_rpc_topic = 'alarm_partition_coordination',
Package[$::ceilometer::params::alarm_package_name] -> Package<| title == 'ceilometer-alarm' |>
ensure_packages($::ceilometer::params::alarm_package_name)
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-alarm-evaluator']
#
# == Params
# [*enabled*]
-# should the service be enabled
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
+#
# [*notifier_rpc_topic*]
-# define on which topic the notifier will have
-# access
+# (optional) Define on which topic the notifier will have access.
+# Defaults to undef.
+#
# [*rest_notifier_certificate_key*]
-# define the certificate key for the rest service
+# (optional) Define the certificate key for the rest service.
+# Defaults to undef.
+#
# [*rest_notifier_certificate_file*]
-# define the certificate file for the rest service
+# (optional) Define the certificate file for the rest service.
+# Defaults to undef.
+#
# [*rest_notifier_ssl_verify*]
-# should the ssl verify parameter be enabled
+# (optional) Should the ssl verify parameter be enabled.
+# Defaults to true.
#
class ceilometer::alarm::notifier (
+ $manage_service = true,
$enabled = true,
$notifier_rpc_topic = undef,
$rest_notifier_certificate_key = undef,
Package[$::ceilometer::params::alarm_package_name] -> Package<| title == 'ceilometer-alarm' |>
ensure_packages($::ceilometer::params::alarm_package_name)
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-alarm-notifier']
#
# == Parameters
# [*enabled*]
-# should the service be enabled. Optional. Defaults to true
+# (optional) Should the service be enabled.
+# Defaults to true
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
#
# [*keystone_host*]
-# keystone's admin endpoint IP/Host. Optional. Defaults to 127.0.0.1
+# (optional) Keystone's admin endpoint IP/Host.
+# Defaults to '127.0.0.1'
#
# [*keystone_port*]
-# keystone's admin endpoint port. Optional. Defaults to 35357
+# (optional) Keystone's admin endpoint port.
+# Defaults to 35357
#
# [*keystone_auth_admin_prefix*]
-# 'path' to the keystone admin endpoint. Optional. Defaults to false (empty)
+# (optional) 'path' to the keystone admin endpoint.
# Define to a path starting with a '/' and without trailing '/'.
# Eg.: '/keystone/admin' to match keystone::wsgi::apache default.
+# Defaults to false (empty)
#
-# [*keystone_protocol*] http/https
-# Optional. Defaults to https
+# [*keystone_protocol*]
+# (optional) 'http' or 'https'
+# Defaults to 'https'.
#
-# [*keytone_user*] user to authenticate with
-# Optional. Defaults to ceilometer
+# [*keytone_user*]
+# (optional) User to authenticate with.
+# Defaults to 'ceilometer'.
#
-# [*keystone_tenant*] tenant to authenticate with
-# Optional. Defaults to services
+# [*keystone_tenant*]
+# (optional) Tenant to authenticate with.
+# Defaults to 'services'.
#
-# [*keystone_password*] password to authenticate with
+# [*keystone_password*]
+# Password to authenticate with.
# Mandatory.
#
-# [*host*]
-# (optional) The ceilometer api bind address
-# Defaults to 0.0.0.0
+# [*host*]
+# (optional) The ceilometer api bind address.
+# Defaults to 0.0.0.0
#
-# [*port*]
-# (optional) The ceilometer api port
-# Defaults to 8777
+# [*port*]
+# (optional) The ceilometer api port.
+# Defaults to 8777
#
class ceilometer::api (
+ $manage_service = true,
$enabled = true,
$keystone_host = '127.0.0.1',
$keystone_port = '35357',
name => $::ceilometer::params::api_package_name,
}
- if $enabled {
- $service_ensure = 'running'
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-api']
#
# == Params
# [*enabled*]
-# should the service be enabled
+# (optional) Should the service be enabled.
+# Defaults to true.
+#
+# [*manage_service*]
+# (optional) Whether the service should be managed by Puppet.
+# Defaults to true.
#
class ceilometer::collector (
- $enabled = true,
+ $manage_service = true,
+ $enabled = true,
) {
include ceilometer::params
Package[$::ceilometer::params::collector_package_name] -> Service['ceilometer-collector']
ensure_packages([$::ceilometer::params::collector_package_name])
- if $enabled {
- $service_ensure = 'running'
- Class['ceilometer::db'] -> Service['ceilometer-collector']
- Exec['ceilometer-dbsync'] ~> Service['ceilometer-collector']
- } else {
- $service_ensure = 'stopped'
+ if $manage_service {
+ if $enabled {
+ $service_ensure = 'running'
+ Class['ceilometer::db'] -> Service['ceilometer-collector']
+ Exec['ceilometer-dbsync'] ~> Service['ceilometer-collector']
+ } else {
+ $service_ensure = 'stopped'
+ }
}
Package['ceilometer-common'] -> Service['ceilometer-collector']
end
let :params do
- { :enabled => true }
+ { :enabled => true,
+ :manage_service => true }
end
shared_examples_for 'ceilometer-agent-central' do
)
end
- it 'configures ceilometer-agent-central service' do
- should contain_service('ceilometer-agent-central').with(
- :ensure => 'running',
- :name => platform_params[:agent_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true
- )
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
+ before do
+ params.merge!(param_hash)
+ end
+
+ it 'configures ceilometer-agent-central service' do
+ should contain_service('ceilometer-agent-central').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:agent_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-agent-central service' do
+ should contain_service('ceilometer-agent-central').with(
+ :ensure => nil,
+ :name => platform_params[:agent_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
end
end
end
let :params do
- { :enabled => true }
+ { :enabled => true,
+ :manage_service => true }
end
shared_examples_for 'ceilometer-agent-compute' do
)
end
- it 'configures ceilometer-agent-compute service' do
- should contain_service('ceilometer-agent-compute').with(
- :ensure => 'running',
- :name => platform_params[:agent_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true
- )
- end
-
it 'configures nova notification driver' do
should contain_file_line_after('nova-notification-driver-common').with(
:line => 'notification_driver=nova.openstack.common.notifier.rpc_notifier',
)
end
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
+ before do
+ params.merge!(param_hash)
+ end
+
+ it 'configures ceilometer-agent-compute service' do
+
+ should contain_service('ceilometer-agent-compute').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:agent_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-agent-compute service' do
+ should contain_service('ceilometer-agent-compute').with(
+ :ensure => nil,
+ :name => platform_params[:agent_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+
end
context 'on Debian platforms' do
end
let :params do
- { :ack_on_event_error => true,
+ { :manage_service => true,
+ :enabled => true,
+ :ack_on_event_error => true,
:store_events => false }
end
should contain_package(platform_params[:agent_notification_package_name])
end
- it 'configures ceilometer agent notification service' do
- should contain_service('ceilometer-agent-notification').with(
- :ensure => 'running',
- :name => platform_params[:agent_notification_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true
- )
- end
-
it 'configures notifications parameters in ceilometer.conf' do
should contain_ceilometer_config('notification/ack_on_event_error').with_value( params[:ack_on_event_error] )
should contain_ceilometer_config('notification/store_events').with_value( params[:store_events] )
end
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
+ before do
+ params.merge!(param_hash)
+ end
+
+ it 'configures ceilometer agent notification service' do
+ should contain_service('ceilometer-agent-notification').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:agent_notification_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-agent-notification service' do
+ should contain_service('ceilometer-agent-notification').with(
+ :ensure => nil,
+ :name => platform_params[:agent_notification_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+
end
context 'on Debian platforms' do
:partition_rpc_topic => 'alarm_partition_coordination',
:record_history => true,
:enabled => true,
+ :manage_service => true,
}
end
)
end
- it 'configures ceilometer-alarm-evaluator service' do
- should contain_service('ceilometer-alarm-evaluator').with(
- :ensure => 'running',
- :name => platform_params[:alarm_evaluator_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true
- )
- end
-
-
it 'configures alarm evaluator' do
should contain_ceilometer_config('alarm/evaluation_interval').with_value( params[:evaluation_interval] )
should contain_ceilometer_config('alarm/evaluation_service').with_value( params[:evaluation_service] )
it { should contain_ceilometer_config('alarm/partition_rpc_topic').with_value(params[:partition_rpc_topic]) }
end
- context 'when override the evaluation interval with a non numeric value' do
+ context 'when override the evaluation interval with a non numeric value' do
+ before do
+ params.merge!(:evaluation_interval => 'NaN')
+ end
+
+ it { expect { should contain_ceilometer_config('alarm/evaluation_interval') }.to\
+ raise_error(Puppet::Error, /validate_re\(\): .* does not match/) }
+ end
+
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
before do
- params.merge!(:evaluation_interval => 'NaN')
+ params.merge!(param_hash)
end
- it { expect { should contain_ceilometer_config('alarm/evaluation_interval') }.to\
- raise_error(Puppet::Error, /validate_re\(\): .* does not match/) }
+ it 'configures ceilometer-alarm-evaluator service' do
+ should contain_service('ceilometer-alarm-evaluator').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:alarm_evaluator_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-alarm-evaluator service' do
+ should contain_service('ceilometer-alarm-evaluator').with(
+ :ensure => nil,
+ :name => platform_params[:alarm_evaluator_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
end
+ end
end
context 'on Debian platforms' do
#:rest_notifier_certificate_file => 'UNSET',
#:rest_notifier_ssl_verify => true,
:enabled => true,
+ :manage_service => true,
}
end
)
end
- it 'configures ceilometer-alarm-notifier service' do
- should contain_service('ceilometer-alarm-notifier').with(
- :ensure => 'running',
- :name => platform_params[:alarm_notifier_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true
- )
- end
-
-
it 'configures alarm notifier' do
should_not contain_ceilometer_config('alarm/notifier_rpc_topic')
should_not contain_ceilometer_config('alarm/rest_notifier_certificate_key')
it { should contain_ceilometer_config('alarm/rest_notifier_ssl_verify').with_value(params[:rest_notifier_ssl_verify]) }
end
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
+ before do
+ params.merge!(param_hash)
+ end
+
+ it 'configures ceilometer-alarm-notifier service' do
+ should contain_service('ceilometer-alarm-notifier').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:alarm_notifier_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-alarm-notifier service' do
+ should contain_service('ceilometer-alarm-notifier').with(
+ :ensure => nil,
+ :name => platform_params[:alarm_notifier_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+
end
context 'on Debian platforms' do
let :params do
{ :enabled => true,
+ :manage_service => true,
:keystone_host => '127.0.0.1',
:keystone_port => '35357',
:keystone_protocol => 'http',
)
end
- it 'configures ceilometer-api service' do
- should contain_service('ceilometer-api').with(
- :ensure => 'running',
- :name => platform_params[:api_service_name],
- :enable => true,
- :hasstatus => true,
- :hasrestart => true,
- :require => 'Class[Ceilometer::Db]',
- :subscribe => 'Exec[ceilometer-dbsync]'
- )
- end
-
it 'configures keystone authentication middleware' do
should contain_ceilometer_config('keystone_authtoken/auth_host').with_value( params[:keystone_host] )
should contain_ceilometer_config('keystone_authtoken/auth_port').with_value( params[:keystone_port] )
end
end
end
+
+ [{:enabled => true}, {:enabled => false}].each do |param_hash|
+ context "when service should be #{param_hash[:enabled] ? 'enabled' : 'disabled'}" do
+ before do
+ params.merge!(param_hash)
+ end
+
+ it 'configures ceilometer-api service' do
+ should contain_service('ceilometer-api').with(
+ :ensure => (params[:manage_service] && params[:enabled]) ? 'running' : 'stopped',
+ :name => platform_params[:api_service_name],
+ :enable => params[:enabled],
+ :hasstatus => true,
+ :hasrestart => true,
+ :require => 'Class[Ceilometer::Db]',
+ :subscribe => 'Exec[ceilometer-dbsync]'
+ )
+ end
+ end
+ end
+
+ context 'with disabled service managing' do
+ before do
+ params.merge!({
+ :manage_service => false,
+ :enabled => false })
+ end
+
+ it 'configures ceilometer-api service' do
+ should contain_service('ceilometer-api').with(
+ :ensure => nil,
+ :name => platform_params[:api_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
end
context 'on Debian platforms' do
# Catalog compilation does not crash for lack of ceilometer::db
it { should compile }
+
+ it 'configures ceilometer-collector service' do
+ should contain_service('ceilometer-collector').with(
+ :ensure => 'stopped',
+ :name => platform_params[:collector_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
+ end
+
+ context 'when service management is disabled' do
+ let :params do
+ { :enabled => false,
+ :manage_service => false }
+ end
+
+ it 'configures ceilometer-collector service' do
+ should contain_service('ceilometer-collector').with(
+ :ensure => nil,
+ :name => platform_params[:collector_service_name],
+ :enable => false,
+ :hasstatus => true,
+ :hasrestart => true
+ )
+ end
end
end