cookbook-openstack-common/resources/database.rb

58 lines
1.7 KiB
Ruby

#
# Author:: Lance Albertson (<lance@osuosl.org>)
# Cookbook:: openstack-common
# Resource:: openstack_database
#
# Copyright:: 2020-2021, Oregon State University
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# this file is originally from the database cookbook, preserved for legacy
# purposes until the functionality can be refactored into a custom resource.
# Original: https://github.com/chef-boneyard/database
resource_name :openstack_database
provides :openstack_database
unified_mode true
default_action :create
property :service, String, name_property: true
property :user, String, required: true
property :pass, String, required: true
action :create do
service_info = db new_resource.service
db_name = service_info['db_name']
db_type = service_info['service_type']
user_key = node['openstack']['db']['root_user_key']
super_password = get_password 'db', user_key
mariadb_database db_name do
encoding node['openstack']['db']['charset'][db_type]
password super_password
end
mariadb_user new_resource.user do
password new_resource.pass
database_name db_name
host '%'
privileges [:all]
ctrl_password super_password
action [:create, :grant]
end
end
action_class do
include ::Openstack
end