Drop openstack::ceilometer
This uplifts the openstack::ceilometer directly into the calling tasks Change-Id: Ic49ef5d9df5220b3a18e89ce478578e42feda64f Blueprint: fuel-remove-conflict-openstack
This commit is contained in:
parent
8ae2d6c485
commit
7d33e53f28
@ -1,183 +0,0 @@
|
||||
#
|
||||
# == Class: openstack::ceilometer
|
||||
#
|
||||
# Installs and configures Ceilometer
|
||||
#
|
||||
# [use_stderr] Rather or not service should send output to stderr. Optional. Defaults to true.
|
||||
#
|
||||
# [*db_connection*]
|
||||
# Connection string to use for ceilometer
|
||||
# Defaults to 'mysql://ceilometer:ceilometer_pass@localhost/ceilometer'
|
||||
#
|
||||
# [*keystone_auth_uri*]
|
||||
# (Optional) Public Identity API endpoint.
|
||||
# Defaults to 'http://127.0.0.1:5000/'.
|
||||
#
|
||||
# [*keystone_identity_uri*]
|
||||
# (Optional) Complete admin Identity API endpoint.
|
||||
# Defaults to 'http://127.0.0.1:35357/'.
|
||||
#
|
||||
|
||||
class openstack::ceilometer (
|
||||
$keystone_password = 'ceilometer_pass',
|
||||
$keystone_user = 'ceilometer',
|
||||
$keystone_tenant = 'services',
|
||||
$keystone_region = 'RegionOne',
|
||||
$metering_secret = 'ceilometer',
|
||||
$verbose = false,
|
||||
$use_syslog = false,
|
||||
$use_stderr = true,
|
||||
$syslog_log_facility = 'LOG_LOCAL0',
|
||||
$default_log_levels = undef,
|
||||
$db_connection = 'mysql://ceilometer:ceilometer_pass@localhost/ceilometer',
|
||||
$debug = false,
|
||||
$swift_rados_backend = false,
|
||||
$mongo_replicaset = undef,
|
||||
$amqp_hosts = '127.0.0.1',
|
||||
$amqp_user = 'guest',
|
||||
$amqp_password = 'rabbit_pw',
|
||||
$rabbit_ha_queues = false,
|
||||
$keystone_auth_uri = 'http://127.0.0.1:5000/',
|
||||
$keystone_identity_uri = 'http://127.0.0.1:35357/',
|
||||
$host = '0.0.0.0',
|
||||
$port = '8777',
|
||||
$primary_controller = false,
|
||||
$on_controller = false,
|
||||
$on_compute = false,
|
||||
$ha_mode = false,
|
||||
# ttl is 1 week (3600*24*7)
|
||||
$os_endpoint_type = 'internalURL',
|
||||
$alarm_history_time_to_live = '604800',
|
||||
$event_time_to_live = '604800',
|
||||
$metering_time_to_live = '604800',
|
||||
$http_timeout = '600',
|
||||
$api_workers = '1',
|
||||
$collector_workers = '1',
|
||||
$notification_workers = '1',
|
||||
) {
|
||||
|
||||
# Add the base ceilometer class & parameters
|
||||
# This class is required by ceilometer agents & api classes
|
||||
# The metering_secret parameter is mandatory
|
||||
class { '::ceilometer':
|
||||
http_timeout => $http_timeout,
|
||||
event_time_to_live => $event_time_to_live,
|
||||
metering_time_to_live => $metering_time_to_live,
|
||||
alarm_history_time_to_live => $alarm_history_time_to_live,
|
||||
package_ensure => 'present',
|
||||
rabbit_hosts => split($amqp_hosts, ','),
|
||||
rabbit_userid => $amqp_user,
|
||||
rabbit_password => $amqp_password,
|
||||
metering_secret => $metering_secret,
|
||||
verbose => $verbose,
|
||||
debug => $debug,
|
||||
use_syslog => $use_syslog,
|
||||
use_stderr => $use_stderr,
|
||||
log_facility => $syslog_log_facility,
|
||||
}
|
||||
|
||||
# Configure authentication for agents
|
||||
class { '::ceilometer::agent::auth':
|
||||
auth_url => $keystone_auth_uri,
|
||||
auth_password => $keystone_password,
|
||||
auth_region => $keystone_region,
|
||||
auth_tenant_name => $keystone_tenant,
|
||||
auth_user => $keystone_user,
|
||||
}
|
||||
|
||||
class { '::ceilometer::client': }
|
||||
|
||||
if ($on_controller) {
|
||||
# Configure the ceilometer database
|
||||
if $mongo_replicaset {
|
||||
ceilometer_config {
|
||||
'database/mongodb_replica_set' : value => $mongo_replicaset;
|
||||
}
|
||||
} else {
|
||||
ceilometer_config {
|
||||
'database/mongodb_replica_set' : ensure => absent;
|
||||
}
|
||||
}
|
||||
|
||||
ceilometer_config { 'service_credentials/os_endpoint_type': value => $os_endpoint_type} ->
|
||||
Service<| title == 'ceilometer-polling'|>
|
||||
|
||||
class { '::ceilometer::db':
|
||||
database_connection => $db_connection,
|
||||
sync_db => $primary_controller,
|
||||
}
|
||||
|
||||
# Install the ceilometer-api service
|
||||
# The keystone_password parameter is mandatory
|
||||
class { '::ceilometer::api':
|
||||
auth_uri => $keystone_auth_uri,
|
||||
identity_uri => $keystone_identity_uri,
|
||||
keystone_user => $keystone_user,
|
||||
keystone_password => $keystone_password,
|
||||
keystone_tenant => $keystone_tenant,
|
||||
host => $host,
|
||||
port => $port,
|
||||
api_workers => $api_workers,
|
||||
}
|
||||
|
||||
# Clean up expired data once a week
|
||||
class { '::ceilometer::expirer':
|
||||
minute => '0',
|
||||
hour => '0',
|
||||
monthday => '*',
|
||||
month => '*',
|
||||
weekday => '0',
|
||||
}
|
||||
|
||||
class { '::ceilometer::collector':
|
||||
collector_workers => $collector_workers,
|
||||
}
|
||||
|
||||
class { '::ceilometer::agent::notification':
|
||||
notification_workers => $notification_workers,
|
||||
store_events => true,
|
||||
}
|
||||
|
||||
if $ha_mode {
|
||||
include ceilometer_ha::agent::central
|
||||
Service['ceilometer-polling'] -> Class['::ceilometer_ha::agent::central']
|
||||
}
|
||||
|
||||
class { '::ceilometer::agent::polling':
|
||||
enabled => !$ha_mode,
|
||||
compute_namespace => false,
|
||||
ipmi_namespace => false
|
||||
}
|
||||
}
|
||||
|
||||
if ($swift_rados_backend) {
|
||||
ceilometer_config {
|
||||
'DEFAULT/swift_rados_backend' : value => true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($use_syslog) {
|
||||
ceilometer_config {
|
||||
'DEFAULT/use_syslog_rfc_format': value => true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($on_compute) {
|
||||
if $::operatingsystem == 'Ubuntu' and $::ceilometer::params::libvirt_group {
|
||||
# Our libvirt-bin deb package (1.2.9 version) creates 'libvirt' group on Ubuntu
|
||||
if (versioncmp($::libvirt_package_version, '1.2.9') >= 0) {
|
||||
User<| name == 'ceilometer' |> {
|
||||
groups => ['nova', 'libvirt'],
|
||||
}
|
||||
}
|
||||
}
|
||||
# Install polling agent
|
||||
class { '::ceilometer::agent::polling':
|
||||
central_namespace => false,
|
||||
ipmi_namespace => false
|
||||
}
|
||||
|
||||
ceilometer_config { 'service_credentials/os_endpoint_type': value => $os_endpoint_type} ->
|
||||
Service<| title == 'ceilometer-polling'|>
|
||||
}
|
||||
}
|
@ -1,120 +0,0 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe 'openstack::ceilometer' do
|
||||
|
||||
shared_examples_for 'ceilometer services config' do
|
||||
|
||||
[true, false].each do |ha_mode|
|
||||
context "on controller node with HA mode set to '#{ha_mode}'" do
|
||||
let :params do
|
||||
{
|
||||
:on_controller => true,
|
||||
:ha_mode => ha_mode,
|
||||
}
|
||||
end
|
||||
|
||||
it 'contains class ceilometer::agent::polling' do
|
||||
is_expected.to contain_class('ceilometer::agent::polling').with(
|
||||
:enabled => !ha_mode,
|
||||
:compute_namespace => false,
|
||||
:ipmi_namespace => false
|
||||
)
|
||||
end
|
||||
|
||||
if ha_mode
|
||||
it { is_expected.to contain_class('ceilometer_ha::agent::central') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "on conroller node" do
|
||||
let :params do
|
||||
{
|
||||
:on_controller => true,
|
||||
:keystone_password => 'cEilomEtEr_pAss',
|
||||
:keystone_user => 'ceilometer',
|
||||
:keystone_tenant => 'services',
|
||||
:keystone_region => 'Region007',
|
||||
:api_workers => facts[:processorcount],
|
||||
:host => '10.254.0.9',
|
||||
:port => '8777',
|
||||
:keystone_auth_uri => 'http://127.0.0.1:5000/',
|
||||
:keystone_identity_uri => 'http://127.0.0.1:35357/'
|
||||
}
|
||||
end
|
||||
|
||||
it { is_expected.to contain_class('ceilometer') }
|
||||
it { is_expected.to contain_class('ceilometer::logging') }
|
||||
it { is_expected.to contain_class('ceilometer::db') }
|
||||
it { is_expected.to contain_class('ceilometer::expirer') }
|
||||
it { is_expected.to contain_class('ceilometer::agent::notification') }
|
||||
it { is_expected.to contain_class('ceilometer::collector') }
|
||||
it { is_expected.to contain_class('ceilometer::client') }
|
||||
|
||||
it { is_expected.to contain_class('ceilometer::agent::auth').with(
|
||||
:auth_url => params[:keystone_auth_uri],
|
||||
:auth_password => params[:keystone_password],
|
||||
:auth_region => params[:keystone_region],
|
||||
:auth_tenant_name => params[:keystone_tenant],
|
||||
:auth_user => params[:keystone_user],
|
||||
) }
|
||||
|
||||
it { is_expected.to contain_class('ceilometer::api').with(
|
||||
:auth_uri => params[:keystone_auth_uri],
|
||||
:identity_uri => params[:keystone_identity_uri],
|
||||
:keystone_user => params[:keystone_user],
|
||||
:keystone_password => params[:keystone_password],
|
||||
:keystone_tenant => params[:keystone_tenant],
|
||||
:host => params[:host],
|
||||
:port => params[:port],
|
||||
:api_workers => params[:api_workers],
|
||||
) }
|
||||
end
|
||||
|
||||
context "on compute node" do
|
||||
let :params do
|
||||
{
|
||||
:on_compute => true,
|
||||
}
|
||||
end
|
||||
|
||||
it 'contains class ceilometer::agent::polling' do
|
||||
is_expected.to contain_class('ceilometer::agent::polling').with(
|
||||
:central_namespace => false,
|
||||
:ipmi_namespace => false
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context 'on Debian platforms' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'Debian',
|
||||
:operatingsystem => 'Debian',
|
||||
:processorcount => 2,
|
||||
:memorysize_mb => 4096,
|
||||
:os_service_default => '<SERVICE DEFAULT>',
|
||||
}
|
||||
end
|
||||
|
||||
it_configures 'ceilometer services config'
|
||||
end
|
||||
|
||||
context 'on RedHat platforms' do
|
||||
let :facts do
|
||||
{
|
||||
:osfamily => 'RedHat',
|
||||
:operatingsystem => 'RedHat',
|
||||
:processorcount => 2,
|
||||
:memorysize_mb => 4096,
|
||||
:os_service_default => '<SERVICE DEFAULT>',
|
||||
:operatingsystemmajrelease => '7',
|
||||
}
|
||||
end
|
||||
|
||||
it_configures 'ceilometer services config'
|
||||
end
|
||||
|
||||
end
|
@ -24,11 +24,9 @@ $ceilometer_region = pick($ceilometer_hash['region'], $region)
|
||||
$ceilometer_enabled = $ceilometer_hash['enabled']
|
||||
$amqp_password = $rabbit_hash['password']
|
||||
$amqp_user = $rabbit_hash['user']
|
||||
$ceilometer_user_password = $ceilometer_hash['user_password']
|
||||
$ceilometer_metering_secret = $ceilometer_hash['metering_secret']
|
||||
$verbose = pick($ceilometer_hash['verbose'], hiera('verbose', true))
|
||||
$debug = pick($ceilometer_hash['debug'], hiera('debug', false))
|
||||
$default_log_levels = hiera_hash('default_log_levels')
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
|
||||
$internal_auth_protocol = get_ssl_property($ssl_hash, {}, 'keystone', 'internal', 'protocol', 'http')
|
||||
@ -41,28 +39,55 @@ $keystone_identity_uri = "${admin_auth_protocol}://${admin_auth_endpoint}:3
|
||||
$keystone_auth_uri = "${internal_auth_protocol}://${internal_auth_endpoint}:5000/"
|
||||
|
||||
if ($ceilometer_enabled) {
|
||||
class { 'openstack::ceilometer':
|
||||
verbose => $verbose,
|
||||
debug => $debug,
|
||||
default_log_levels => $default_log_levels,
|
||||
use_syslog => $use_syslog,
|
||||
use_stderr => $use_stderr,
|
||||
syslog_log_facility => $syslog_log_facility,
|
||||
amqp_hosts => hiera('amqp_hosts',''),
|
||||
amqp_user => $amqp_user,
|
||||
amqp_password => $amqp_password,
|
||||
keystone_auth_uri => $keystone_auth_uri,
|
||||
keystone_identity_uri => $keystone_identity_uri,
|
||||
keystone_user => $ceilometer_hash['user'],
|
||||
keystone_tenant => $ceilometer_hash['tenant'],
|
||||
keystone_region => $ceilometer_region,
|
||||
keystone_password => $ceilometer_user_password,
|
||||
on_compute => true,
|
||||
metering_secret => $ceilometer_metering_secret,
|
||||
alarm_history_time_to_live => $ceilometer_hash['alarm_history_time_to_live'],
|
||||
|
||||
class { '::ceilometer':
|
||||
http_timeout => $ceilometer_hash['http_timeout'],
|
||||
event_time_to_live => $ceilometer_hash['event_time_to_live'],
|
||||
metering_time_to_live => $ceilometer_hash['metering_time_to_live'],
|
||||
http_timeout => $ceilometer_hash['http_timeout'],
|
||||
alarm_history_time_to_live => $ceilometer_hash['alarm_history_time_to_live'],
|
||||
rabbit_hosts => split(hiera('amqp_hosts',''), ','),
|
||||
rabbit_userid => $amqp_user,
|
||||
rabbit_password => $amqp_password,
|
||||
metering_secret => $ceilometer_metering_secret,
|
||||
verbose => $verbose,
|
||||
debug => $debug,
|
||||
use_syslog => $use_syslog,
|
||||
use_stderr => $use_stderr,
|
||||
log_facility => $syslog_log_facility,
|
||||
}
|
||||
|
||||
}
|
||||
class { '::ceilometer::agent::auth':
|
||||
auth_url => $keystone_auth_uri,
|
||||
auth_password => $ceilometer_hash['user_password'],
|
||||
auth_region => $ceilometer_region,
|
||||
auth_tenant_name => $ceilometer_hash['tenant'],
|
||||
auth_user => $ceilometer_hash['user'],
|
||||
}
|
||||
|
||||
class { '::ceilometer::client': }
|
||||
|
||||
|
||||
|
||||
if ($use_syslog) {
|
||||
ceilometer_config {
|
||||
'DEFAULT/use_syslog_rfc_format': value => true;
|
||||
}
|
||||
}
|
||||
|
||||
if $::operatingsystem == 'Ubuntu' and $::ceilometer::params::libvirt_group {
|
||||
# Our libvirt-bin deb package (1.2.9 version) creates 'libvirt' group on Ubuntu
|
||||
if (versioncmp($::libvirt_package_version, '1.2.9') >= 0) {
|
||||
User<| name == 'ceilometer' |> {
|
||||
groups => ['nova', 'libvirt'],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class { '::ceilometer::agent::polling':
|
||||
central_namespace => false,
|
||||
ipmi_namespace => false
|
||||
}
|
||||
|
||||
ceilometer_config { 'service_credentials/os_endpoint_type': value => 'internalURL'} ->
|
||||
Service<| title == 'ceilometer-polling'|>
|
||||
}
|
@ -14,7 +14,6 @@ $default_ceilometer_hash = {
|
||||
$ceilometer_hash = hiera_hash('ceilometer', $default_ceilometer_hash)
|
||||
$verbose = pick($ceilometer_hash['verbose'], hiera('verbose', true))
|
||||
$debug = pick($ceilometer_hash['debug'], hiera('debug', false))
|
||||
$default_log_levels = hiera_hash('default_log_levels')
|
||||
$use_syslog = hiera('use_syslog', true)
|
||||
$use_stderr = hiera('use_stderr', false)
|
||||
$syslog_log_facility = hiera('syslog_log_facility_ceilometer', 'LOG_LOCAL0')
|
||||
@ -25,15 +24,13 @@ $region = hiera('region', 'RegionOne')
|
||||
$ceilometer_region = pick($ceilometer_hash['region'], $region)
|
||||
$mongo_nodes = get_nodes_hash_by_roles(hiera_hash('network_metadata'), hiera('mongo_roles'))
|
||||
$mongo_address_map = get_node_to_ipaddr_map_by_network_role($mongo_nodes, 'mongo/db')
|
||||
$primary_controller = hiera('primary_controller')
|
||||
$primary_controller = hiera('primary_controller', false)
|
||||
|
||||
$ceilometer_enabled = $ceilometer_hash['enabled']
|
||||
$ceilometer_user_password = $ceilometer_hash['user_password']
|
||||
$ceilometer_metering_secret = $ceilometer_hash['metering_secret']
|
||||
$swift_rados_backend = $storage_hash['objects_ceph']
|
||||
$amqp_password = $rabbit_hash['password']
|
||||
$amqp_user = $rabbit_hash['user']
|
||||
$rabbit_ha_queues = true
|
||||
$service_endpoint = hiera('service_endpoint', $management_vip)
|
||||
$ha_mode = pick($ceilometer_hash['ha_mode'], true)
|
||||
$ssl_hash = hiera_hash('use_ssl', {})
|
||||
@ -115,36 +112,97 @@ if ($dbtype == 'mysql') {
|
||||
###############################################################################
|
||||
|
||||
if ($ceilometer_enabled) {
|
||||
class { 'openstack::ceilometer':
|
||||
class { '::ceilometer':
|
||||
http_timeout => $ceilometer_hash['http_timeout'],
|
||||
event_time_to_live => $ceilometer_hash['event_time_to_live'],
|
||||
metering_time_to_live => $ceilometer_hash['metering_time_to_live'],
|
||||
alarm_history_time_to_live => $ceilometer_hash['alarm_history_time_to_live'],
|
||||
rabbit_hosts => split(hiera('amqp_hosts',''), ','),
|
||||
rabbit_userid => $amqp_user,
|
||||
rabbit_password => $amqp_password,
|
||||
metering_secret => $ceilometer_metering_secret,
|
||||
verbose => $verbose,
|
||||
debug => $debug,
|
||||
use_syslog => $use_syslog,
|
||||
use_stderr => $use_stderr,
|
||||
syslog_log_facility => $syslog_log_facility,
|
||||
default_log_levels => $default_log_levels,
|
||||
db_connection => $db_connection,
|
||||
swift_rados_backend => $swift_rados_backend,
|
||||
metering_secret => $ceilometer_metering_secret,
|
||||
amqp_hosts => hiera('amqp_hosts',''),
|
||||
amqp_user => $amqp_user,
|
||||
amqp_password => $amqp_password,
|
||||
rabbit_ha_queues => $rabbit_ha_queues,
|
||||
keystone_auth_uri => $keystone_auth_uri,
|
||||
keystone_identity_uri => $keystone_identity_uri,
|
||||
keystone_password => $ceilometer_user_password,
|
||||
keystone_user => $ceilometer_hash['user'],
|
||||
keystone_tenant => $ceilometer_hash['tenant'],
|
||||
keystone_region => $ceilometer_region,
|
||||
host => $api_bind_address,
|
||||
ha_mode => $ha_mode,
|
||||
primary_controller => $primary_controller,
|
||||
on_controller => true,
|
||||
alarm_history_time_to_live => $ceilometer_hash['alarm_history_time_to_live'],
|
||||
event_time_to_live => $ceilometer_hash['event_time_to_live'],
|
||||
metering_time_to_live => $ceilometer_hash['metering_time_to_live'],
|
||||
http_timeout => $ceilometer_hash['http_timeout'],
|
||||
api_workers => $service_workers,
|
||||
collector_workers => $service_workers,
|
||||
notification_workers => $service_workers,
|
||||
log_facility => $syslog_log_facility,
|
||||
}
|
||||
|
||||
# Configure authentication for agents
|
||||
class { '::ceilometer::agent::auth':
|
||||
auth_url => $keystone_auth_uri,
|
||||
auth_password => $ceilometer_user_password,
|
||||
auth_region => $ceilometer_region,
|
||||
auth_tenant_name => $ceilometer_hash['tenant'],
|
||||
auth_user => $ceilometer_hash['user'],
|
||||
}
|
||||
|
||||
class { '::ceilometer::client': }
|
||||
|
||||
ceilometer_config {
|
||||
'database/mongodb_replica_set' : ensure => absent;
|
||||
}
|
||||
|
||||
ceilometer_config { 'service_credentials/os_endpoint_type': value => 'internalURL'} ->
|
||||
Service<| title == 'ceilometer-polling'|>
|
||||
|
||||
class { '::ceilometer::db':
|
||||
database_connection => $db_connection,
|
||||
sync_db => $primary_controller,
|
||||
}
|
||||
|
||||
# Install the ceilometer-api service
|
||||
# The keystone_password parameter is mandatory
|
||||
class { '::ceilometer::api':
|
||||
auth_uri => $keystone_auth_uri,
|
||||
identity_uri => $keystone_identity_uri,
|
||||
keystone_user => $ceilometer_hash['user'],
|
||||
keystone_password => $ceilometer_hash['user_password'],
|
||||
keystone_tenant => $ceilometer_hash['tenant'],
|
||||
host => $api_bind_address,
|
||||
port => '8777',
|
||||
api_workers => $service_workers,
|
||||
}
|
||||
|
||||
# Clean up expired data once a week
|
||||
class { '::ceilometer::expirer':
|
||||
minute => '0',
|
||||
hour => '0',
|
||||
monthday => '*',
|
||||
month => '*',
|
||||
weekday => '0',
|
||||
}
|
||||
|
||||
class { '::ceilometer::collector':
|
||||
collector_workers => $service_workers,
|
||||
}
|
||||
|
||||
class { '::ceilometer::agent::notification':
|
||||
notification_workers => $service_workers,
|
||||
store_events => true,
|
||||
}
|
||||
|
||||
if $ha_mode {
|
||||
include ceilometer_ha::agent::central
|
||||
Service['ceilometer-polling'] -> Class['::ceilometer_ha::agent::central']
|
||||
}
|
||||
|
||||
class { '::ceilometer::agent::polling':
|
||||
enabled => !$ha_mode,
|
||||
compute_namespace => false,
|
||||
ipmi_namespace => false
|
||||
}
|
||||
|
||||
if ($swift_rados_backend) {
|
||||
ceilometer_config {
|
||||
'DEFAULT/swift_rados_backend' : value => true;
|
||||
}
|
||||
}
|
||||
|
||||
if ($use_syslog) {
|
||||
ceilometer_config {
|
||||
'DEFAULT/use_syslog_rfc_format': value => true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,6 +8,8 @@ describe manifest do
|
||||
default_log_levels_hash = Noop.hiera_structure 'default_log_levels'
|
||||
default_log_levels = Noop.puppet_function 'join_keys_to_values',default_log_levels_hash,'='
|
||||
|
||||
region = Noop.hiera 'region', 'RegionOne'
|
||||
ceilometer_region = Noop.puppet_function 'pick',ceilometer_hash['region'], region
|
||||
management_vip = Noop.hiera 'management_vip'
|
||||
service_endpoint = Noop.hiera 'service_endpoint', management_vip
|
||||
ssl_hash = Noop.hiera_structure('use_ssl', {})
|
||||
@ -45,6 +47,26 @@ describe manifest do
|
||||
it 'should configure os_auth_url' do
|
||||
should contain_ceilometer_config('service_credentials/os_auth_url').with(:value => keystone_auth_uri)
|
||||
end
|
||||
|
||||
it 'contains class ceilometer::agent::polling' do
|
||||
should contain_class('ceilometer::agent::polling').with(
|
||||
'central_namespace' => 'false',
|
||||
'ipmi_namespace' => 'false',
|
||||
)
|
||||
end
|
||||
|
||||
auth_user = Noop.puppet_function, 'pick', ceilometer_hash['user'], 'ceilometer'
|
||||
auth_tenant_name = Noop.puppet_function, 'pick', ceilometer_hash['auth_tenant_name'], 'ceilometer'
|
||||
|
||||
it 'configured ceilometer::agent::auth' do
|
||||
should contain_class('ceilometer::agent::auth').with(
|
||||
'auth_url' => keystone_auth_uri,
|
||||
'auth_password' => ceilometer_hash['user_password'],
|
||||
'auth_region' => ceilometer_region,
|
||||
'auth_tenant_name' => auth_tenant_name,
|
||||
'auth_user' => auth_user,
|
||||
)
|
||||
end
|
||||
end
|
||||
end # end of shared_examples
|
||||
|
||||
|
@ -30,12 +30,15 @@ describe manifest do
|
||||
db_hosts = Noop.puppet_function 'join',addresses,','
|
||||
mongo_replicaset = 'ceilometer'
|
||||
end
|
||||
rabbit_ha_queues = 'true'
|
||||
default_log_levels_hash = Noop.hiera_structure 'default_log_levels'
|
||||
default_log_levels = Noop.puppet_function 'join_keys_to_values',default_log_levels_hash,'='
|
||||
primary_controller = Noop.hiera 'primary_controller'
|
||||
ha_mode = Noop.puppet_function 'pick', ceilometer_hash['ha_mode'], true
|
||||
|
||||
let(:bind_address) { Noop.puppet_function 'get_network_role_property', 'ceilometer/api', 'ipaddr' }
|
||||
|
||||
region = Noop.hiera 'region', 'RegionOne'
|
||||
ceilometer_region = Noop.puppet_function 'pick',ceilometer_hash['region'], region
|
||||
management_vip = Noop.hiera 'management_vip'
|
||||
service_endpoint = Noop.hiera 'service_endpoint', management_vip
|
||||
ssl_hash = Noop.hiera_structure('use_ssl', {})
|
||||
@ -55,19 +58,6 @@ describe manifest do
|
||||
should contain_ceilometer_config('database/connection').with(:value => "mongodb://#{ceilometer_db_user}:#{ceilometer_db_password}@#{db_hosts}/#{ceilometer_db_dbname}#{db_params}")
|
||||
end
|
||||
|
||||
it 'should declare openstack::ceilometer class with correct parameters' do
|
||||
should contain_class('openstack::ceilometer').with(
|
||||
'amqp_user' => rabbit_user,
|
||||
'amqp_password' => rabbit_password,
|
||||
'rabbit_ha_queues' => rabbit_ha_queues,
|
||||
'on_controller' => 'true',
|
||||
'use_stderr' => 'false',
|
||||
'primary_controller' => primary_controller,
|
||||
'keystone_auth_uri' => keystone_auth_uri,
|
||||
'keystone_identity_uri' => keystone_identity_uri,
|
||||
)
|
||||
end
|
||||
|
||||
it 'should configure auth and identity uri' do
|
||||
should contain_ceilometer_config('keystone_authtoken/auth_uri').with(:value => keystone_auth_uri)
|
||||
should contain_ceilometer_config('keystone_authtoken/identity_uri').with(:value => keystone_identity_uri)
|
||||
@ -91,10 +81,14 @@ describe manifest do
|
||||
should contain_ceilometer_config('DEFAULT/default_log_levels').with_value(default_log_levels.sort.join(','))
|
||||
end
|
||||
|
||||
it 'should declare openstack::ceilometer class with 4 processess on 4 CPU & 32G system' do
|
||||
should contain_class('openstack::ceilometer').with(
|
||||
'api_workers' => '4',
|
||||
'collector_workers' => '4',
|
||||
it 'should configure workers with 4 processess on 4 CPU & 32G system' do
|
||||
should contain_class('ceilometer::api').with(
|
||||
'api_workers' => '4'
|
||||
)
|
||||
should contain_class('ceilometer::collector').with(
|
||||
'collector_workers' => '4'
|
||||
)
|
||||
should contain_class('ceilometer::agent::notification').with(
|
||||
'notification_workers' => '4',
|
||||
)
|
||||
end
|
||||
@ -111,9 +105,54 @@ describe manifest do
|
||||
it 'should configure auth url' do
|
||||
should contain_ceilometer_config('service_credentials/os_auth_url').with(:value => keystone_auth_uri)
|
||||
end
|
||||
ha_mode = Noop.puppet_function 'pick', ceilometer_hash['ha_mode'], 'true'
|
||||
if ha_mode
|
||||
it { is_expected.to contain_class('ceilometer_ha::agent::central') }
|
||||
end
|
||||
|
||||
end
|
||||
it 'contains class ceilometer::agent::polling' do
|
||||
should contain_class('ceilometer::agent::polling').with(
|
||||
'enabled' => !ha_mode,
|
||||
'compute_namespace' => 'false',
|
||||
'ipmi_namespace' => 'false'
|
||||
)
|
||||
end
|
||||
|
||||
it "configures ceilometer contoller parts" do
|
||||
should contain_class('ceilometer')
|
||||
should contain_class('ceilometer::logging')
|
||||
should contain_class('ceilometer::db')
|
||||
should contain_class('ceilometer::expirer')
|
||||
should contain_class('ceilometer::agent::notification')
|
||||
should contain_class('ceilometer::collector')
|
||||
should contain_class('ceilometer::client')
|
||||
end
|
||||
|
||||
auth_user = Noop.puppet_function, 'pick', ceilometer_hash['user'], 'ceilometer'
|
||||
auth_tenant_name = Noop.puppet_function, 'pick', ceilometer_hash['auth_tenant_name'], 'ceilometer'
|
||||
|
||||
it 'configured ceilometer::agent::auth' do
|
||||
should contain_class('ceilometer::agent::auth').with(
|
||||
'auth_url' => keystone_auth_uri,
|
||||
'auth_password' => ceilometer_hash['user_password'],
|
||||
'auth_region' => ceilometer_region,
|
||||
'auth_tenant_name' => auth_tenant_name,
|
||||
'auth_user' => auth_user,
|
||||
)
|
||||
end
|
||||
|
||||
it 'configures ceilometer::api' do
|
||||
should contain_class('ceilometer::api').with(
|
||||
'auth_uri' => keystone_auth_uri,
|
||||
'identity_uri' => keystone_identity_uri,
|
||||
'keystone_user' => ceilometer_hash['user'],
|
||||
'keystone_password' => ceilometer_hash['user_password'],
|
||||
'keystone_tenant' => ceilometer_hash['tenant'],
|
||||
'host' => bind_address,
|
||||
)
|
||||
end
|
||||
|
||||
end # end of ceilometer enabled
|
||||
end # end of shared_examples
|
||||
|
||||
test_ubuntu_and_centos manifest
|
||||
|
Loading…
Reference in New Issue
Block a user