Files
cookbook-openstack-common/resources/database.rb
Henrique Santos f8590d5fec Adds provides method to define name of resources
In Chef Infra Client 16.2, resources have to be named using the provides
method. The resource_name method has not been changed in order to be
compatible with Chef Infra Client <16.2.

Also fix URI.encode and URI.decode deprecations.

Update etcd depends to ~> 6.0 to fix Chef 16 deprecation warnings.

Backport ChefSpec fix for cookstyle.

Depends-On: https://review.opendev.org/749561
Change-Id: Ia520aa74197c30f61424dd2b6ff1ccfb359f7163
Signed-off-by: Henrique Santos <hfigueiredosantos@tecnico.ulisboa.pt>
Signed-off-by: Lance Albertson <lance@osuosl.org>
2020-09-08 10:13:25 -07:00

57 lines
1.7 KiB
Ruby

#
# Author:: Lance Albertson (<lance@osuosl.org>)
# Cookbook:: openstack-common
# Resource:: openstack_database
#
# Copyright:: 2020, 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
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