Puppet Class: percona::config::server
- Defined in:
- manifests/config/server.pp
Overview
Class: percona::config::server
Todo:
TODO: Document class.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
# File 'manifests/config/server.pp', line 7
class percona::config::server {
$config_content = $::percona::config_content
$config_dir = $::percona::config_dir
$config_dir_mode = $::percona::config_dir_mode
$config_file = $::percona::config_file
$config_file_mode = $::percona::config_file_mode
$config_group = $::percona::config_group
$config_includedir = $::percona::config_includedir
$config_user = $::percona::config_user
$config_replace = $::percona::config_replace
$config_skip = $::percona::config_skip
$daemon_user = $::percona::daemon_user
$logdir = $::percona::logdir
$logdir_group = $::percona::logdir_group
$server = $::percona::server
$service_name = $::percona::service_name
$service_restart = $::percona::service_restart
$template = $::percona::template
$version = $::percona::percona_version
$configuration = $::percona::configuration
$default_configuration = $::percona::params::default_configuration
File {
owner => $config_user,
group => $config_group,
require => [
Class['percona::install'],
],
}
if $service_restart {
File {
notify => Service[$service_name],
}
}
# Workaround for assigning an empty hash. Puppet doesn't know how to
# handle {} very well in certain places.
$empty_hash = {}
# Get the hash that is global (all versions).
if $default_configuration['global'] {
$default_global = $default_configuration['global']
} else {
$default_global = {}
}
# Get the hash for the version we are installing.
if $default_configuration[$version] {
$default_version = $default_configuration[$version]
} else {
$default_version = {}
}
# Configuration set on the percona class level.
$my_configuration = $configuration ? {
undef => $empty_hash,
default => $configuration,
}
# A part of the configuration is created from various parameters that have
# been defined on percona::params or percona.
$params = $::percona::params
# Globals
if $params['global'] {
$params_global = $params['global']
} else {
$params_global = {}
}
# Version specifics.
if $params[$version] {
$params_version = $params[$version]
} else {
$params_version = {}
}
# Special case. Only add this parameter if it has been set. We need to do
# this like this because we can not adjust the params hash after it has been
# defined.
if $::percona::tmpdir {
$tempdir = { 'tmpdir' => $::percona::tmpdir, }
} else {
$tempdir = {}
}
# these are all the hashes we are going to merge. The my_configuration is the
# most specific (its stuff WE have set) and others will be used as 'defaults'
$hashes = [
$default_version,
$default_global,
$params_version,
$params_global,
$tempdir,
]
# One big hash to rule them all (and use in templates or augeas or ...)
$options = percona_hash_merge($my_configuration, $hashes)
# Use provided content or default/overriden template.
if $config_content {
$file_content = $config_content
}
else {
$file_content = template($template)
}
## Required directories.
# Only certain distros use a config_dir.
if $config_dir {
file { $config_dir:
ensure => 'directory';
}
}
# We have a config_include_dir configured and it doesnt exist yet:
# try to create it.
if $config_includedir and ! (defined(File[$config_includedir])) {
file {$config_includedir:
ensure => 'directory',
mode => $config_dir_mode,
}
}
file { $logdir :
ensure => 'directory',
mode => $config_dir_mode,
owner => $daemon_user,
group => $logdir_group,
}
if $config_skip != true {
file { $config_file:
ensure => 'present',
mode => $config_file_mode,
content => $file_content,
replace => $config_replace,
}
}
}
|