repo: 'git://github.com/puppetlabs/puppetlabs-mysql.git'
ref: 'origin/2.2.x'
'nova': 'git://github.com/stackforge/puppet-nova.git'
+ 'openstacklib': 'git://github.com/stackforge/puppet-openstacklib.git'
'stdlib': 'git://github.com/puppetlabs/puppetlabs-stdlib.git'
symlinks:
'ceilometer': "#{source_dir}"
dependency 'puppetlabs/inifile', '>=1.0.0 <2.0.0'
dependency 'puppetlabs/keystone', '>=4.0.0 <5.0.0'
-dependency 'puppetlabs/mysql', '>=0.9.0 <3.0.0'
dependency 'puppetlabs/stdlib', '>= 3.2.0'
+dependency 'stackforge/openstacklib', '>=5.0.0'
# enable dbsync.
#
# [*mysql_module*]
-# (optional) Mysql puppet module version to use. Tested versions
-# are 0.9 and 2.2
-# Defaults to '2.2'
+# (optional) Deprecated. Does nothing.
#
class ceilometer::db (
$database_connection = 'mysql://ceilometer:ceilometer@localhost/ceilometer',
$sync_db = true,
- $mysql_module = '2.2',
+ $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,
/^mysql:\/\//: {
$backend_package = false
- if ($mysql_module >= 2.2) {
- include mysql::bindings::python
- } else {
- include mysql::python
- }
+ include mysql::bindings::python
}
/^postgres:\/\//: {
$backend_package = $::ceilometer::params::psycopg_package_name
# the database collation. Optional. Defaults to 'utf8_unicode_ci'
#
# [*mysql_module*]
-# (optional) Mysql module version to use. Tested versions
-# are 0.9 and 2.2
-# Defaults to '2.2'
+# (optional) Deprecated. Does nothing.
#
class ceilometer::db::mysql(
$password = false,
$dbname = 'ceilometer',
$user = 'ceilometer',
- $host = 'localhost',
+ $host = '127.0.0.1',
$allowed_hosts = undef,
$charset = 'utf8',
$collate = 'utf8_unicode_ci',
- $mysql_module = '2.2',
+ $mysql_module = undef,
) {
- validate_string($password)
-
- Class['mysql::server'] -> Class['ceilometer::db::mysql']
- Class['ceilometer::db::mysql'] -> Exec<| title == 'ceilometer-dbsync' |>
- Mysql::Db[$dbname] ~> Exec<| title == 'ceilometer-dbsync' |>
-
- if $mysql_module >= 2.2 {
- mysql::db { $dbname:
- user => $user,
- password => $password,
- host => $host,
- charset => $charset,
- collate => $collate,
- require => Class['mysql::server'],
- }
- } else {
- mysql::db { $dbname:
- user => $user,
- password => $password,
- host => $host,
- charset => $charset,
- require => Class['mysql::config'],
- }
+ if $mysql_module {
+ warning('The mysql_module parameter is deprecated. The latest 2.x mysql module will be used.')
}
- # Check allowed_hosts to avoid duplicate resource declarations
- if is_array($allowed_hosts) and delete($allowed_hosts,$host) != [] {
- $real_allowed_hosts = delete($allowed_hosts,$host)
- } elsif is_string($allowed_hosts) and ($allowed_hosts != $host) {
- $real_allowed_hosts = $allowed_hosts
- }
+ validate_string($password)
- if $real_allowed_hosts {
- ceilometer::db::mysql::host_access { $real_allowed_hosts:
- user => $user,
- password => $password,
- database => $dbname,
- mysql_module => $mysql_module,
- }
+ ::openstacklib::db::mysql { 'ceilometer':
+ user => $user,
+ password_hash => mysql_password($password),
+ dbname => $dbname,
+ host => $host,
+ charset => $charset,
+ collate => $collate,
+ allowed_hosts => $allowed_hosts,
}
+
+ ::Openstacklib::Db::Mysql['ceilometer'] ~> Exec<| title == 'ceilometer-dbsync' |>
}
+++ /dev/null
-# Allow a user to access the ceilometer database
-#
-# == Namevar
-# The host to allow
-#
-# == Parameters
-# [*user*]
-# username to allow
-#
-# [*password*]
-# user password
-#
-# [*database*]
-# the database name
-#
-define ceilometer::db::mysql::host_access ($user, $password, $database, $mysql_module='2.2') {
- # New types for mysql module v2.0+
- if ($mysql_module >= 2.2) {
- mysql_user { "${user}@${name}":
- password_hash => mysql_password($password),
- provider => 'mysql',
- require => Mysql_database[$database],
- }
-
- mysql_grant { "${user}@${name}/${database}":
- privileges => 'all',
- provider => 'mysql',
- table => "${database}.*",
- user => "${user}@${name}",
- require => Mysql_user["${user}@${name}"]
- }
-
- } else {
- database_user { "${user}@${name}":
- password_hash => mysql_password($password),
- provider => 'mysql',
- require => Database[$database],
- }
-
- database_grant { "${user}@${name}/${database}":
- # TODO figure out which privileges to grant.
- privileges => 'all',
- provider => 'mysql',
- require => Database_user["${user}@${name}"]
- }
- }
-}
:host => 'localhost',
:charset => 'utf8',
:collate => 'utf8_unicode_ci',
- :mysql_module => '0.9',
}
end
end
it 'creates a mysql database' do
- should contain_mysql__db( params[:dbname] ).with(
- :user => params[:user],
- :password => params[:password],
- :host => params[:host],
- :charset => params[:charset],
- :require => 'Class[Mysql::Config]'
+ should contain_openstacklib__db__mysql( params[:dbname] ).with(
+ :user => params[:user],
+ :password_hash => '*58C036CDA51D8E8BBBBF2F9EA5ABF111ADA444F0',
+ :host => params[:host],
+ :charset => params[:charset]
)
end
end
}
end
- it {should_not contain_ceilometer__db__mysql__host_access("localhost").with(
- :user => 'ceilometer',
- :password => 'ceilometerpass',
- :database => 'ceilometer'
- )}
- it {should contain_ceilometer__db__mysql__host_access("%").with(
- :user => 'ceilometer',
- :password => 'ceilometerpass',
- :database => 'ceilometer'
- )}
end
describe "overriding allowed_hosts param to string" do
}
end
- it {should contain_ceilometer__db__mysql__host_access("192.168.1.1").with(
- :user => 'ceilometer',
- :password => 'ceilometerpass2',
- :database => 'ceilometer'
- )}
end
describe "overriding allowed_hosts param equals to host param " do
}
end
- it {should_not contain_ceilometer__db__mysql__host_access("localhost").with(
- :user => 'ceilometer',
- :password => 'ceilometerpass2',
- :database => 'ceilometer'
- )}
end
end