diff --git a/deployment/puppet/openstack/manifests/ceilometer.pp b/deployment/puppet/openstack/manifests/ceilometer.pp deleted file mode 100644 index c3d78c79f6..0000000000 --- a/deployment/puppet/openstack/manifests/ceilometer.pp +++ /dev/null @@ -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'|> - } -} diff --git a/deployment/puppet/openstack/spec/classes/openstack_ceilometer_spec.rb b/deployment/puppet/openstack/spec/classes/openstack_ceilometer_spec.rb deleted file mode 100644 index 8a55130458..0000000000 --- a/deployment/puppet/openstack/spec/classes/openstack_ceilometer_spec.rb +++ /dev/null @@ -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 => '', - } - 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 => '', - :operatingsystemmajrelease => '7', - } - end - - it_configures 'ceilometer services config' - end - -end diff --git a/deployment/puppet/osnailyfacter/modular/ceilometer/compute.pp b/deployment/puppet/osnailyfacter/modular/ceilometer/compute.pp index 97b52bcdfb..bc938e6fd6 100644 --- a/deployment/puppet/osnailyfacter/modular/ceilometer/compute.pp +++ b/deployment/puppet/osnailyfacter/modular/ceilometer/compute.pp @@ -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'|> +} \ No newline at end of file diff --git a/deployment/puppet/osnailyfacter/modular/ceilometer/controller.pp b/deployment/puppet/osnailyfacter/modular/ceilometer/controller.pp index b34b954f16..d0e5a5a02e 100644 --- a/deployment/puppet/osnailyfacter/modular/ceilometer/controller.pp +++ b/deployment/puppet/osnailyfacter/modular/ceilometer/controller.pp @@ -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; + } + } + } diff --git a/tests/noop/spec/hosts/ceilometer/compute_spec.rb b/tests/noop/spec/hosts/ceilometer/compute_spec.rb index 83666a57d5..356a7ca1fd 100644 --- a/tests/noop/spec/hosts/ceilometer/compute_spec.rb +++ b/tests/noop/spec/hosts/ceilometer/compute_spec.rb @@ -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 diff --git a/tests/noop/spec/hosts/ceilometer/controller_spec.rb b/tests/noop/spec/hosts/ceilometer/controller_spec.rb index 4c91c388ca..b8dbebd8d1 100644 --- a/tests/noop/spec/hosts/ceilometer/controller_spec.rb +++ b/tests/noop/spec/hosts/ceilometer/controller_spec.rb @@ -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