Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add database connection helper #61

Merged
merged 4 commits into from Nov 17, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 6 additions & 0 deletions .kitchen.yml
Expand Up @@ -20,14 +20,20 @@ platforms:
image: centos-7-0-x64

- name: ubuntu-12.04
run_list:
- recipe[apt]

This comment was marked as outdated.

This comment was marked as outdated.

driver:
box: bento/ubuntu-12.04
image: ubuntu-12-04-x64
- name: ubuntu-14.04
run_list:
- recipe[apt]
driver:
box: bento/ubuntu-14.04
image: ubuntu-14-04-x64
- name: ubuntu-15.04
run_list:
- recipe[apt]
driver:
box: bento/ubuntu-15.04
image: ubuntu-15-04-x64
Expand Down
1 change: 1 addition & 0 deletions Berksfile
Expand Up @@ -2,4 +2,5 @@ source 'https://supermarket.chef.io'

metadata

cookbook 'apt'
cookbook 'java'
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -6,6 +6,8 @@
[[GH-40]](https://github.com/bflad/chef-confluence/issues/40)
* Added Crowd SSO support.
[[GH-26]](https://github.com/parallels-cookbooks/confluence/pull/26)
* Create database connection helper.
[[GH-61]](https://github.com/parallels-cookbooks/confluence/pull/61)

## 1.7.1

Expand Down
21 changes: 21 additions & 0 deletions libraries/helpers.rb
Expand Up @@ -36,6 +36,26 @@ def confluence_version
end
end

# rubocop:disable Metrics/AbcSize
def confluence_database_connection
settings = merge_confluence_settings

database_connection = {
:host => settings['database']['host'],
:port => settings['database']['port']
}

case settings['database']['type']
when 'mysql'
database_connection.merge!(:username => 'root', :password => node['mysql']['server_root_password'])
when 'postgresql'
database_connection.merge!(:username => 'postgres', :password => node['postgresql']['password']['postgres'])
end

database_connection
end
# rubocop:enable Metrics/AbcSize

# Merges Confluence settings from data bag and node attributes.
# Data dag settings always has a higher priority.
#
Expand Down Expand Up @@ -244,3 +264,4 @@ def confluence_checksum_map
end

::Chef::Recipe.send(:include, Confluence::Helpers)
::Chef::Resource.send(:include, Confluence::Helpers)
18 changes: 5 additions & 13 deletions recipes/database.rb
Expand Up @@ -19,11 +19,6 @@

settings = merge_confluence_settings

database_connection = {
:host => settings['database']['host'],
:port => settings['database']['port']
}

case settings['database']['type']
when 'mysql'
mysql2_chef_gem 'confluence' do
Expand All @@ -40,24 +35,22 @@
action [:create, :start]
end

database_connection.merge!(:username => 'root', :password => node['mysql']['server_root_password'])

mysql_database settings['database']['name'] do
connection database_connection
connection confluence_database_connection
collation 'utf8_bin'
encoding 'utf8'
action :create
end

# See this MySQL bug: http://bugs.mysql.com/bug.php?id=31061
mysql_database_user '' do
connection database_connection
connection confluence_database_connection
host 'localhost'
action :drop
end

mysql_database_user settings['database']['user'] do
connection database_connection
connection confluence_database_connection
host '%'
password settings['database']['password']
database_name settings['database']['name']
Expand All @@ -67,16 +60,15 @@
when 'postgresql'
include_recipe 'postgresql::server'
include_recipe 'database::postgresql'
database_connection.merge!(:username => 'postgres', :password => node['postgresql']['password']['postgres'])

postgresql_database_user settings['database']['user'] do
connection database_connection
connection confluence_database_connection
password settings['database']['password']
action :create
end

postgresql_database settings['database']['name'] do
connection database_connection
connection confluence_database_connection
connection_limit '-1'
encoding 'utf8'
owner settings['database']['user']
Expand Down