Puppet Class: ceilometer::db
- Defined in:
- manifests/db.pp
Overview
Configures the ceilometer database This class will install the required libraries depending on the driver specified in the connection_string parameter
Parameters
[*database_connection*]
the connection string. format: [driver]://[user]:[password]@[host]/[database]
[*sync_db*]
enable dbsync.
[*mysql_module*]
(optional) Deprecated. Does nothing.
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 |
# File 'manifests/db.pp', line 15
class ceilometer::db (
$database_connection = 'mysql://ceilometer:ceilometer@localhost/ceilometer',
$sync_db = true,
$mysql_module = undef,
) {
include ceilometer::params
if $mysql_module {
warning('The mysql_module parameter is deprecated. The latest 2.x mysql module will be used.')
}
Package<| title == 'ceilometer-common' |> -> Class['ceilometer::db']
validate_re($database_connection,
'(sqlite|mysql|postgresql|mongodb):\/\/(\S+:\S+@\S+\/\S+)?')
case $database_connection {
/^mysql:\/\//: {
$backend_package = false
include mysql::bindings::python
}
/^postgresql:\/\//: {
$backend_package = $::ceilometer::params::psycopg_package_name
}
/^mongodb:\/\//: {
$backend_package = $::ceilometer::params::pymongo_package_name
}
/^sqlite:\/\//: {
$backend_package = $::ceilometer::params::sqlite_package_name
}
default: {
fail('Unsupported backend configured')
}
}
if $sync_db {
$command = $::ceilometer::params::dbsync_command
} else {
$command = '/bin/true'
}
if $backend_package and !defined(Package[$backend_package]) {
package {'ceilometer-backend-package':
ensure => present,
name => $backend_package,
}
}
ceilometer_config {
'database/connection': value => $database_connection, secret => true;
}
Ceilometer_config['database/connection'] ~> Exec['ceilometer-dbsync']
exec { 'ceilometer-dbsync':
command => $command,
path => '/usr/bin',
user => $::ceilometer::params::user,
refreshonly => true,
logoutput => on_failure,
subscribe => Ceilometer_config['database/connection']
}
}
|