Remove password hash generation in each puppet modules

... and migrate it to openstacklib so that all logics about database
configuration are implemented in one common place.

Depends-on: https://review.opendev.org/#/c/728595/
Change-Id: I900142c35e8fb20d3279f607cdd80ad53157531c
This commit is contained in:
Takashi Kajinami 2020-05-19 22:45:44 +09:00
parent 7c565292f4
commit 52a1300566
5 changed files with 87 additions and 78 deletions

View File

@ -54,7 +54,7 @@ class ec2api::db::mysql (
::openstacklib::db::mysql { 'ec2api':
user => $user,
password_hash => mysql::password($password),
password => $password,
dbname => $dbname,
host => $host,
charset => $charset,

View File

@ -35,11 +35,11 @@ class ec2api::db::postgresql (
include ec2api::deps
::openstacklib::db::postgresql { 'ec2api':
password_hash => postgresql_password($user, $password),
dbname => $dbname,
user => $user,
encoding => $encoding,
privileges => $privileges,
password => $password,
dbname => $dbname,
user => $user,
encoding => $encoding,
privileges => $privileges,
}
Anchor['ec2api::db::begin']

View File

@ -9,10 +9,6 @@
"name": "puppetlabs/stdlib",
"version_requirement": ">=5.0.0 <7.0.0"
},
{
"name": "puppetlabs/mysql",
"version_requirement": ">=6.0.0 <11.0.0"
},
{
"name": "openstack/openstacklib",
"version_requirement": ">=16.3.0 <17.0.0"

View File

@ -1,64 +1,71 @@
require 'spec_helper'
describe 'ec2api::db::mysql' do
on_supported_os(supported_os: OSDefaults.get_supported_os).each do |os,facts|
context "on #{os}" do
shared_examples_for 'ec2api::db::mysql' do
let(:facts) { facts.merge! @default_facts }
describe 'with default parameters' do
let(:params) do
{
password: 'my_password',
}
end
db_parameters = {
user: 'ec2api',
password_hash: '*CCD3A959D6A004B9C3807B728BC2E55B67E10518',
dbname: 'ec2api',
host: '127.0.0.1',
charset: 'utf8',
collate: 'utf8_general_ci',
context 'with default parameters' do
let(:params) do
{
password: 'ec2apipass',
}
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::mysql') }
it { is_expected.to contain_openstacklib__db__mysql('ec2api').with(db_parameters) }
end
describe 'with custom parameters' do
let(:params) do
{
password: 'my_password',
user: 'ec2user',
dbname: 'ec2db',
host: '192.168.0.1',
charset: 'cp1251',
collate: 'cp1251_general_ci',
allowed_hosts: %w(192.168.0.2 192.168.0.3),
}
end
db_parameters = {
user: 'ec2api',
password: 'ec2apipass',
dbname: 'ec2api',
host: '127.0.0.1',
charset: 'utf8',
collate: 'utf8_general_ci',
}
db_parameters = {
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::mysql') }
it { is_expected.to contain_openstacklib__db__mysql('ec2api').with(db_parameters) }
end
context 'with custom parameters' do
let(:params) do
{
password: 'ec2apipass',
user: 'ec2user',
password_hash: '*CCD3A959D6A004B9C3807B728BC2E55B67E10518',
dbname: 'ec2db',
host: '192.168.0.1',
charset: 'cp1251',
collate: 'cp1251_general_ci',
allowed_hosts: %w(192.168.0.2 192.168.0.3)
allowed_hosts: %w(192.168.0.2 192.168.0.3),
}
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::mysql') }
it { is_expected.to contain_openstacklib__db__mysql('ec2api').with(db_parameters) }
end
db_parameters = {
user: 'ec2user',
password: 'ec2apipass',
dbname: 'ec2db',
host: '192.168.0.1',
charset: 'cp1251',
collate: 'cp1251_general_ci',
allowed_hosts: %w(192.168.0.2 192.168.0.3)
}
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::mysql') }
it { is_expected.to contain_openstacklib__db__mysql('ec2api').with(db_parameters) }
end
end
on_supported_os({
:supported_os => OSDefaults.get_supported_os
}).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts())
end
it_behaves_like 'ec2api::db::mysql'
end
end
end

View File

@ -1,37 +1,43 @@
require 'spec_helper'
describe 'ec2api::db::postgresql' do
let :pre_condition do
'include postgresql::server'
end
let :params do
{
:password => 'ec2apipass',
}
end
shared_examples_for 'ec2api::db::postgresql' do
context 'with only required parameters' do
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::postgresql') }
it { is_expected.to contain_openstacklib__db__postgresql('ec2api').with(
:user => 'ec2api',
:password => 'ec2apipass',
:dbname => 'ec2api',
:encoding => nil,
:privileges => 'ALL',
)}
end
end
on_supported_os(supported_os: OSDefaults.get_supported_os).each do |os,facts|
context "on #{os}" do
let (:facts) do
facts.merge!(OSDefaults.get_facts({
:processorcount => 8,
:concat_basedir => '/var/lib/puppet/concat'
}))
end
context 'with only required parameters' do
let :params do
{
:password => 'pw',
}
end
let :pre_condition do
'include postgresql::server'
end
it { is_expected.to compile.with_all_deps }
it { is_expected.to contain_class('ec2api::db::postgresql') }
it { is_expected.to contain_postgresql__server__db('ec2api').with(
:user => 'ec2api',
:password => 'md58f5ac3d04c0da5a38f9c80d62f00eb1e'
)}
end
it_behaves_like 'ec2api::db::postgresql'
end
end
end