From 12849acc6660b64ba8073f3db9be3723e786c75e Mon Sep 17 00:00:00 2001 From: Denis Egorenko Date: Tue, 17 Nov 2015 21:25:11 +0300 Subject: [PATCH] Switch Tuskar to $::os_service_default Switch Tuskar params to $::os_service_default fact Change-Id: I94dcec31f04937374d096ff732c872439580772b Related-bug: #1515273 --- manifests/api.pp | 8 +- manifests/db.pp | 24 +-- manifests/logging.pp | 222 +++++++--------------------- spec/classes/tuskar_api_spec.rb | 14 +- spec/classes/tuskar_db_spec.rb | 16 +- spec/classes/tuskar_logging_spec.rb | 14 +- spec/spec_helper.rb | 3 + 7 files changed, 96 insertions(+), 205 deletions(-) diff --git a/manifests/api.pp b/manifests/api.pp index 4d3b360..5a8fd3c 100644 --- a/manifests/api.pp +++ b/manifests/api.pp @@ -42,11 +42,11 @@ # # [*bind_host*] # (optional) The address of the host to bind to. -# Default: 0.0.0.0 +# Default: $::os_service_default # # [*bind_port*] # (optional) The port the server should bind to. -# Default: 8585 +# Default: $::os_service_default # # [*log_file*] # (optional) The path of file used for logging @@ -100,8 +100,8 @@ class tuskar::api( $log_dir = undef, $use_stderr = undef, $log_file = undef, - $bind_host = '0.0.0.0', - $bind_port = '8585', + $bind_host = $::os_service_default, + $bind_port = $::os_service_default, $keystone_tenant = 'services', $keystone_user = 'tuskar', $identity_uri = 'http://127.0.0.1:35357', diff --git a/manifests/db.pp b/manifests/db.pp index 5fe1073..8f68120 100644 --- a/manifests/db.pp +++ b/manifests/db.pp @@ -10,37 +10,37 @@ # # [*database_idle_timeout*] # Timeout when db connections should be reaped. -# (Optional) Defaults to 3600. +# (Optional) Defaults to $::os_service_default. # # [*database_min_pool_size*] # Minimum number of SQL connections to keep open in a pool. -# (Optional) Defaults to 1. +# (Optional) Defaults to $::os_service_default. # # [*database_max_pool_size*] # Maximum number of SQL connections to keep open in a pool. -# (Optional) Defaults to 10. +# (Optional) Defaults to $::os_service_default. # # [*database_max_retries*] # Maximum db connection retries during startup. # Setting -1 implies an infinite retry count. -# (Optional) Defaults to 10. +# (Optional) Defaults to $::os_service_default. # # [*database_retry_interval*] # Interval between retries of opening a sql connection. -# (Optional) Defaults to 10. +# (Optional) Defaults to $::os_service_default. # # [*database_max_overflow*] # If set, use this value for max_overflow with sqlalchemy. -# (Optional) Defaults to 20. +# (Optional) Defaults to $::os_service_default. # class tuskar::db ( $database_connection = 'sqlite:////var/lib/tuskar/tuskar.sqlite', - $database_idle_timeout = 3600, - $database_min_pool_size = 1, - $database_max_pool_size = 10, - $database_max_retries = 10, - $database_retry_interval = 10, - $database_max_overflow = 20, + $database_idle_timeout = $::os_service_default, + $database_min_pool_size = $::os_service_default, + $database_max_pool_size = $::os_service_default, + $database_max_retries = $::os_service_default, + $database_retry_interval = $::os_service_default, + $database_max_overflow = $::os_service_default, ) { include ::tuskar::params diff --git a/manifests/logging.pp b/manifests/logging.pp index 0d7e454..a860414 100644 --- a/manifests/logging.pp +++ b/manifests/logging.pp @@ -6,23 +6,23 @@ # # [*verbose*] # (Optional) Should the daemons log verbose messages -# Defaults to 'false' +# Defaults to $::os_service_default. # # [*debug*] # (Optional) Should the daemons log debug messages -# Defaults to 'false' +# Defaults to $::os_service_default. # # [*use_syslog*] # (Optional) Use syslog for logging. -# Defaults to 'false' +# Defaults to $::os_service_default. # # [*use_stderr*] # (optional) Use stderr for logging -# Defaults to 'true' +# Defaults to $::os_service_default. # # [*log_facility*] # (Optional) Syslog facility to receive log lines. -# Defaults to 'LOG_USER' +# Defaults to $::os_service_default. # # [*log_dir*] # (optional) Directory where logs should be stored. @@ -36,34 +36,34 @@ # # [*logging_context_format_string*] # (optional) Format string to use for log messages with context. -# Defaults to undef. +# Defaults to $::os_service_default. # Example: '%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s\ # [%(request_id)s %(user_identity)s] %(instance)s%(message)s' # # [*logging_default_format_string*] # (optional) Format string to use for log messages without context. -# Defaults to undef. +# Defaults to $::os_service_default. # Example: '%(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s\ # [-] %(instance)s%(message)s' # # [*logging_debug_format_suffix*] # (optional) Formatted data to append to log format when level is DEBUG. -# Defaults to undef. +# Defaults to $::os_service_default. # Example: '%(funcName)s %(pathname)s:%(lineno)d' # # [*logging_exception_prefix*] # (optional) Prefix each line of exception output with this format. -# Defaults to undef. +# Defaults to $::os_service_default. # Example: '%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s %(instance)s' # # [*log_config_append*] # The name of an additional logging configuration file. -# Defaults to undef. +# Defaults to $::os_service_default. # See https://docs.python.org/2/howto/logging.html # # [*default_log_levels*] # (optional) Hash of logger (keys) and level (values) pairs. -# Defaults to undef. +# Defaults to $::os_service_default. # Example: # { 'amqp' => 'WARN', 'amqplib' => 'WARN', 'boto' => 'WARN', # 'qpid' => 'WARN', 'sqlalchemy' => 'WARN', 'suds' => 'INFO', @@ -72,48 +72,48 @@ # # [*publish_errors*] # (optional) Publish error events (boolean value). -# Defaults to undef (false if unconfigured). +# Defaults to $::os_service_default (false if unconfigured). # # [*fatal_deprecations*] # (optional) Make deprecations fatal (boolean value) -# Defaults to undef (false if unconfigured). +# Defaults to $::os_service_default (false if unconfigured). # # [*instance_format*] # (optional) If an instance is passed with the log message, format it # like this (string value). -# Defaults to undef. +# Defaults to $::os_service_default. # Example: '[instance: %(uuid)s] ' # # [*instance_uuid_format*] # (optional) If an instance UUID is passed with the log message, format # it like this (string value). -# Defaults to undef. +# Defaults to $::os_service_default. # Example: instance_uuid_format='[instance: %(uuid)s] ' # [*log_date_format*] # (optional) Format string for %%(asctime)s in log records. -# Defaults to undef. +# Defaults to $::os_service_default,. # Example: 'Y-%m-%d %H:%M:%S' class tuskar::logging( - $use_syslog = false, - $use_stderr = true, - $log_facility = 'LOG_USER', + $use_syslog = $::os_service_default, + $use_stderr = $::os_service_default, + $log_facility = $::os_service_default, $log_dir = '/var/log/tuskar', $log_file = '/var/log/tuskar/tuskar-api.log', - $verbose = false, - $debug = false, - $logging_context_format_string = undef, - $logging_default_format_string = undef, - $logging_debug_format_suffix = undef, - $logging_exception_prefix = undef, - $log_config_append = undef, - $default_log_levels = undef, - $publish_errors = undef, - $fatal_deprecations = undef, - $instance_format = undef, - $instance_uuid_format = undef, - $log_date_format = undef, + $verbose = $::os_service_default, + $debug = $::os_service_default, + $logging_context_format_string = $::os_service_default, + $logging_default_format_string = $::os_service_default, + $logging_debug_format_suffix = $::os_service_default, + $logging_exception_prefix = $::os_service_default, + $log_config_append = $::os_service_default, + $default_log_levels = $::os_service_default, + $publish_errors = $::os_service_default, + $fatal_deprecations = $::os_service_default, + $instance_format = $::os_service_default, + $instance_uuid_format = $::os_service_default, + $log_date_format = $::os_service_default, ) { # NOTE(spredzy): In order to keep backward compatibility we rely on the pick function @@ -126,140 +126,30 @@ class tuskar::logging( $verbose_real = pick($::tuskar::api::verbose,$verbose) $debug_real = pick($::tuskar::api::debug,$debug) - tuskar_config { - 'DEFAULT/debug' : value => $debug_real; - 'DEFAULT/verbose' : value => $verbose_real; - 'DEFAULT/use_stderr' : value => $use_stderr_real; - 'DEFAULT/use_syslog' : value => $use_syslog_real; - 'DEFAULT/log_dir' : value => $log_dir_real; - 'DEFAULT/log_file' : value => $log_file_real; - 'DEFAULT/syslog_log_facility': value => $log_facility_real; + if is_service_default($default_log_levels) { + $default_log_levels_real = $default_log_levels + } else { + $default_log_levels_real = join(sort(join_keys_to_values($default_log_levels, '=')), ',') } - if $logging_context_format_string { - tuskar_config { - 'DEFAULT/logging_context_format_string' : - value => $logging_context_format_string; - } - } - else { - tuskar_config { - 'DEFAULT/logging_context_format_string' : ensure => absent; - } - } - - if $logging_default_format_string { - tuskar_config { - 'DEFAULT/logging_default_format_string' : - value => $logging_default_format_string; - } - } - else { - tuskar_config { - 'DEFAULT/logging_default_format_string' : ensure => absent; - } - } - - if $logging_debug_format_suffix { - tuskar_config { - 'DEFAULT/logging_debug_format_suffix' : - value => $logging_debug_format_suffix; - } - } - else { - tuskar_config { - 'DEFAULT/logging_debug_format_suffix' : ensure => absent; - } - } - - if $logging_exception_prefix { - tuskar_config { - 'DEFAULT/logging_exception_prefix' : value => $logging_exception_prefix; - } - } - else { - tuskar_config { - 'DEFAULT/logging_exception_prefix' : ensure => absent; - } - } - - if $log_config_append { - tuskar_config { - 'DEFAULT/log_config_append' : value => $log_config_append; - } - } - else { - tuskar_config { - 'DEFAULT/log_config_append' : ensure => absent; - } - } - - if $default_log_levels { - tuskar_config { - 'DEFAULT/default_log_levels' : - value => join(sort(join_keys_to_values($default_log_levels, '=')), ','); - } - } - else { - tuskar_config { - 'DEFAULT/default_log_levels' : ensure => absent; - } - } - - if $publish_errors { - tuskar_config { - 'DEFAULT/publish_errors' : value => $publish_errors; - } - } - else { - tuskar_config { - 'DEFAULT/publish_errors' : ensure => absent; - } - } - - if $fatal_deprecations { - tuskar_config { - 'DEFAULT/fatal_deprecations' : value => $fatal_deprecations; - } - } - else { - tuskar_config { - 'DEFAULT/fatal_deprecations' : ensure => absent; - } - } - - if $instance_format { - tuskar_config { - 'DEFAULT/instance_format' : value => $instance_format; - } - } - else { - tuskar_config { - 'DEFAULT/instance_format' : ensure => absent; - } - } - - if $instance_uuid_format { - tuskar_config { - 'DEFAULT/instance_uuid_format' : value => $instance_uuid_format; - } - } - else { - tuskar_config { - 'DEFAULT/instance_uuid_format' : ensure => absent; - } - } - - if $log_date_format { - tuskar_config { - 'DEFAULT/log_date_format' : value => $log_date_format; - } - } - else { - tuskar_config { - 'DEFAULT/log_date_format' : ensure => absent; - } - } - - + tuskar_config { + 'DEFAULT/debug': value => $debug_real; + 'DEFAULT/verbose': value => $verbose_real; + 'DEFAULT/use_stderr': value => $use_stderr_real; + 'DEFAULT/use_syslog': value => $use_syslog_real; + 'DEFAULT/log_dir': value => $log_dir_real; + 'DEFAULT/log_file': value => $log_file_real; + 'DEFAULT/syslog_log_facility': value => $log_facility_real; + 'DEFAULT/logging_context_format_string': value => $logging_context_format_string; + 'DEFAULT/logging_default_format_string': value => $logging_default_format_string; + 'DEFAULT/logging_debug_format_suffix': value => $logging_debug_format_suffix; + 'DEFAULT/logging_exception_prefix': value => $logging_exception_prefix; + 'DEFAULT/log_config_append': value => $log_config_append; + 'DEFAULT/default_log_levels': value => $default_log_levels_real; + 'DEFAULT/publish_errors': value => $publish_errors; + 'DEFAULT/fatal_deprecations': value => $fatal_deprecations; + 'DEFAULT/instance_format': value => $instance_format; + 'DEFAULT/instance_uuid_format': value => $instance_uuid_format; + 'DEFAULT/log_date_format': value => $log_date_format; + } } diff --git a/spec/classes/tuskar_api_spec.rb b/spec/classes/tuskar_api_spec.rb index ca45d6b..4ff90f1 100644 --- a/spec/classes/tuskar_api_spec.rb +++ b/spec/classes/tuskar_api_spec.rb @@ -36,10 +36,8 @@ describe 'tuskar::api' do end it 'configures tuskar-api with default parameters' do - is_expected.to contain_tuskar_config('DEFAULT/verbose').with_value(false) - is_expected.to contain_tuskar_config('DEFAULT/debug').with_value(false) - is_expected.to contain_tuskar_config('DEFAULT/tuskar_api_bind_ip').with_value('0.0.0.0') - is_expected.to contain_tuskar_config('DEFAULT/tuskar_api_port').with_value('8585') + is_expected.to contain_tuskar_config('DEFAULT/tuskar_api_bind_ip').with_value('') + is_expected.to contain_tuskar_config('DEFAULT/tuskar_api_port').with_value('') is_expected.to contain_tuskar_config('keystone_authtoken/identity_uri').with_value(params[:identity_uri]) is_expected.to contain_tuskar_config('keystone_authtoken/admin_tenant_name').with_value(params[:keystone_tenant]) is_expected.to contain_tuskar_config('keystone_authtoken/admin_user').with_value(params[:keystone_user]) @@ -62,9 +60,9 @@ describe 'tuskar::api' do context 'on Debian platforms' do let :facts do - { + @default_facts.merge({ :osfamily => 'Debian' - } + }) end let :platform_params do @@ -77,9 +75,9 @@ describe 'tuskar::api' do context 'on RedHat platforms' do let :facts do - { + @default_facts.merge({ :osfamily => 'RedHat' - } + }) end let :platform_params do diff --git a/spec/classes/tuskar_db_spec.rb b/spec/classes/tuskar_db_spec.rb index 73bef16..539a0a2 100644 --- a/spec/classes/tuskar_db_spec.rb +++ b/spec/classes/tuskar_db_spec.rb @@ -7,10 +7,10 @@ describe 'tuskar::db' do context 'with default parameters' do it { is_expected.to contain_tuskar_config('database/connection').with_value('sqlite:////var/lib/tuskar/tuskar.sqlite').with_secret(true) } - it { is_expected.to contain_tuskar_config('database/idle_timeout').with_value('3600') } - it { is_expected.to contain_tuskar_config('database/min_pool_size').with_value('1') } - it { is_expected.to contain_tuskar_config('database/max_retries').with_value('10') } - it { is_expected.to contain_tuskar_config('database/retry_interval').with_value('10') } + it { is_expected.to contain_tuskar_config('database/idle_timeout').with_value('') } + it { is_expected.to contain_tuskar_config('database/min_pool_size').with_value('') } + it { is_expected.to contain_tuskar_config('database/max_retries').with_value('') } + it { is_expected.to contain_tuskar_config('database/retry_interval').with_value('') } end @@ -54,10 +54,10 @@ describe 'tuskar::db' do context 'on Debian platforms' do let :facts do - { :osfamily => 'Debian', + @default_facts.merge({ :osfamily => 'Debian', :operatingsystem => 'Debian', :operatingsystemrelease => 'jessie', - } + }) end it_configures 'tuskar::db' @@ -80,9 +80,9 @@ describe 'tuskar::db' do context 'on Redhat platforms' do let :facts do - { :osfamily => 'RedHat', + @default_facts.merge({ :osfamily => 'RedHat', :operatingsystemrelease => '7.1', - } + }) end it_configures 'tuskar::db' diff --git a/spec/classes/tuskar_logging_spec.rb b/spec/classes/tuskar_logging_spec.rb index e1dedab..ab1fc56 100644 --- a/spec/classes/tuskar_logging_spec.rb +++ b/spec/classes/tuskar_logging_spec.rb @@ -58,12 +58,12 @@ describe 'tuskar::logging' do shared_examples 'basic default logging settings' do it 'configures tuskar logging settins with default values' do - is_expected.to contain_tuskar_config('DEFAULT/use_syslog').with(:value => 'false') - is_expected.to contain_tuskar_config('DEFAULT/use_stderr').with(:value => 'true') + is_expected.to contain_tuskar_config('DEFAULT/use_syslog').with(:value => '') + is_expected.to contain_tuskar_config('DEFAULT/use_stderr').with(:value => '') is_expected.to contain_tuskar_config('DEFAULT/log_dir').with(:value => '/var/log/tuskar') is_expected.to contain_tuskar_config('DEFAULT/log_file').with(:value => '/var/log/tuskar/tuskar-api.log') - is_expected.to contain_tuskar_config('DEFAULT/verbose').with(:value => 'false') - is_expected.to contain_tuskar_config('DEFAULT/debug').with(:value => 'false') + is_expected.to contain_tuskar_config('DEFAULT/verbose').with(:value => '') + is_expected.to contain_tuskar_config('DEFAULT/debug').with(:value => '') end end @@ -123,13 +123,13 @@ describe 'tuskar::logging' do :default_log_levels, :fatal_deprecations, :instance_format, :instance_uuid_format, :log_date_format, ].each { |param| - it { is_expected.to contain_tuskar_config("DEFAULT/#{param}").with_ensure('absent') } + it { is_expected.to contain_tuskar_config("DEFAULT/#{param}").with_value('') } } end context 'on Debian platforms' do let :facts do - { :osfamily => 'Debian' } + @default_facts.merge({ :osfamily => 'Debian' }) end it_configures 'tuskar-logging' @@ -137,7 +137,7 @@ describe 'tuskar::logging' do context 'on RedHat platforms' do let :facts do - { :osfamily => 'RedHat' } + @default_facts.merge({ :osfamily => 'RedHat' }) end it_configures 'tuskar-logging' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3df4ced..9bc7bcf 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -5,6 +5,9 @@ require 'webmock/rspec' RSpec.configure do |c| c.alias_it_should_behave_like_to :it_configures, 'configures' c.alias_it_should_behave_like_to :it_raises, 'raises' + c.before :each do + @default_facts = { :os_service_default => '' } + end end at_exit { RSpec::Puppet::Coverage.report! }