config/puppet-modules-wrs/puppet-fm/src/fm/manifests/init.pp

117 lines
3.9 KiB
Puppet

# == Class: fm
#
# Full description of class fm here.
#
# === Parameters
#
# [*package_ensure*]
# (optional) The state of fm packages
# Defaults to 'present'
#
# [*log_dir*]
# (optional) Directory where logs should be stored.
# If set to boolean false or the $::os_service_default, it will not log to
# any directory.
# Defaults to undef.
#
# [*debug*]
# (optional) Set log output to debug output.
# Defaults to undef
#
# [*use_syslog*]
# (optional) Use syslog for logging
# Defaults to undef
#
# [*use_stderr*]
# (optional) Use stderr for logging
# Defaults to undef
#
# [*log_facility*]
# (optional) Syslog facility to receive log lines.
# Defaults to undef
#
# [*database_connection*]
# (optional) Connection url for the fm database.
# Defaults to undef.
#
# [*database_max_retries*]
# (optional) Maximum database connection retries during startup.
# Defaults to undef.
#
# [*database_idle_timeout*]
# (optional) Timeout before idle database connections are reaped.
# Defaults to undef.
#
# [*database_retry_interval*]
# (optional) Interval between retries of opening a database connection.
# Defaults to undef.
#
# [*database_min_pool_size*]
# (optional) Minimum number of SQL connections to keep open in a pool.
# Defaults to undef.
#
# [*database_max_pool_size*]
# (optional) Maximum number of SQL connections to keep open in a pool.
# Defaults to undef.
#
# [*database_max_overflow*]
# (optional) If set, use this value for max_overflow with sqlalchemy.
# Defaults to: undef.
#
class fm (
$package_ensure = 'present',
$debug = undef,
$use_syslog = undef,
$use_stderr = undef,
$log_facility = undef,
$log_dir = undef,
$database_connection = undef,
$database_idle_timeout = undef,
$database_min_pool_size = undef,
$database_max_pool_size = undef,
$database_max_retries = undef,
$database_retry_interval = undef,
$database_max_overflow = undef,
$event_log_max_size = 4000,
$system_name = undef,
$region_name = undef,
$trap_destinations = undef,
$sysinv_catalog_info = undef,
) inherits fm::params {
include ::fm::deps
include ::fm::logging
# set up the connection string for FM Manager, remove psycopg2 if it exists
$sql_connection = regsubst($database_connection,'^postgresql+psycopg2:','postgresql:')
fm_config {
'DEFAULT/sql_connection': value => $sql_connection, secret => true;
'DEFAULT/event_log_max_size': value => $event_log_max_size;
'DEFAULT/system_name': value => $system_name;
'DEFAULT/region_name': value => $region_name;
'DEFAULT/trap_destinations': value => $trap_destinations;
}
# Automatically add psycopg2 driver to postgresql (only does this if it is missing)
$real_connection = regsubst($database_connection,'^postgresql:','postgresql+psycopg2:')
fm_config {
'database/connection': value => $real_connection, secret => true;
'database/idle_timeout': value => $database_idle_timeout;
'database/max_pool_size': value => $database_max_pool_size;
'database/max_overflow': value => $database_max_overflow;
}
fm_config {
'sysinv/catalog_info': value => $sysinv_catalog_info;
'sysinv/os_region_name': value => $region_name;
}
fm_api_paste_ini {
'pipeline:fm-api/pipeline': value => 'request_id authtoken api_v1';
'filter:request_id/paste.filter_factory': value => 'oslo_middleware:RequestId.factory';
'filter:authtoken/acl_public_routes': value => '/, /v1';
'filter:authtoken/paste.filter_factory': value => 'fm.api.middleware.auth_token:AuthTokenMiddleware.factory';
'app:api_v1/paste.app_factory': value => 'fm.api.app:app_factory';
}
}