switched from db_create_with_user to lwrp openstack_common_database
- replaced db_create_with_user with lwrp from common - utilized new common attribute openstack.common.services to dry recipe - TODO: create test for rescue log message related-Change-Id: I1940cd63aa1ae95586e6ecbed9476f7ce5fe19ab Change-Id: Idb47c9b7e3ce954ddd1a544b71b96eed734e46e5
This commit is contained in:
parent
069d3c0d8b
commit
1886e38a03
|
@ -22,55 +22,14 @@ class ::Chef::Recipe # rubocop:disable Documentation
|
|||
include ::Openstack
|
||||
end
|
||||
|
||||
db_create_with_user(
|
||||
'compute',
|
||||
node['openstack']['db']['compute']['username'],
|
||||
get_password('db', 'nova')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'dashboard',
|
||||
node['openstack']['db']['dashboard']['username'],
|
||||
get_password('db', 'horizon')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'identity',
|
||||
node['openstack']['db']['identity']['username'],
|
||||
get_password('db', 'keystone')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'image',
|
||||
node['openstack']['db']['image']['username'],
|
||||
get_password('db', 'glance')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'telemetry',
|
||||
node['openstack']['db']['telemetry']['username'],
|
||||
get_password('db', 'ceilometer')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'network',
|
||||
node['openstack']['db']['network']['username'],
|
||||
get_password('db', 'neutron')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'block-storage',
|
||||
node['openstack']['db']['block-storage']['username'],
|
||||
get_password('db', 'cinder')
|
||||
)
|
||||
|
||||
db_create_with_user(
|
||||
'orchestration',
|
||||
node['openstack']['db']['orchestration']['username'],
|
||||
get_password('db', 'heat')
|
||||
)
|
||||
db_create_with_user(
|
||||
'bare-metal',
|
||||
node['openstack']['db']['bare-metal']['username'],
|
||||
get_password('db', 'ironic')
|
||||
)
|
||||
node['openstack']['common']['services'].each do |service, project|
|
||||
begin
|
||||
password = get_password('db', project)
|
||||
openstack_common_database service do
|
||||
user node['openstack']['db'][service]['username']
|
||||
pass password
|
||||
end
|
||||
rescue Net::HTTPServerException
|
||||
log "No databag item containing the database password for #{project} was found, so no database was created"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -4,31 +4,31 @@ require_relative 'spec_helper'
|
|||
|
||||
describe 'openstack-ops-database::openstack-db' do
|
||||
include_context 'database-stubs'
|
||||
describe 'ubuntu' do
|
||||
let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) }
|
||||
let(:node) { runner.node }
|
||||
let(:chef_run) { runner.converge(described_recipe) }
|
||||
|
||||
before do
|
||||
@chef_run = ::ChefSpec::SoloRunner.new ::UBUNTU_OPTS
|
||||
end
|
||||
|
||||
it 'creates databases and users' do
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with('compute', 'nova', 'test-pass')
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'dashboard', 'horizon', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'identity', 'keystone', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'image', 'glance', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'telemetry', 'ceilometer', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'network', 'neutron', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'block-storage', 'cinder', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'orchestration', 'heat', 'test-pass'
|
||||
expect_any_instance_of(Chef::Recipe).to receive(:db_create_with_user)
|
||||
.with 'bare-metal', 'ironic', 'test-pass'
|
||||
|
||||
@chef_run.converge(described_recipe)
|
||||
it 'creates all openstack service databases and the corresponding users' do
|
||||
{
|
||||
'bare-metal' => 'ironic',
|
||||
'block-storage' => 'cinder',
|
||||
'compute' => 'nova',
|
||||
'dashboard' => 'horizon',
|
||||
'database' => 'trove',
|
||||
'identity' => 'keystone',
|
||||
'image' => 'glance',
|
||||
'network' => 'neutron',
|
||||
'object-storage' => 'swift',
|
||||
'orchestration' => 'heat',
|
||||
'telemetry' => 'ceilometer'
|
||||
}.each do |service, _project|
|
||||
expect(chef_run).to create_openstack_common_database(service)
|
||||
.with(user: node['openstack']['db'][service]['username'],
|
||||
pass: 'test-pass')
|
||||
end
|
||||
## TODO: utilize _project and create test for rescue with specific log message
|
||||
## when databag does not exist
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue