From 30e2eb7ce8fa951da733a61bcc17d002811ce652 Mon Sep 17 00:00:00 2001 From: Antonio Terceiro Date: Mon, 9 Feb 2015 16:23:09 -0200 Subject: [PATCH] PostreSQL: create colab database --- config/roles/database_server.rb | 2 +- cookbooks/postgresql/recipes/colab.rb | 16 ++++++++++++++++ test/postgresql_test.sh | 4 ++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 cookbooks/postgresql/recipes/colab.rb diff --git a/config/roles/database_server.rb b/config/roles/database_server.rb index 9ea89f7..3b194ee 100644 --- a/config/roles/database_server.rb +++ b/config/roles/database_server.rb @@ -1,3 +1,3 @@ name 'database_server' description 'Database server' -run_list 'recipe[postgresql]' +run_list 'recipe[postgresql]', 'recipe[postgresql::colab]' diff --git a/cookbooks/postgresql/recipes/colab.rb b/cookbooks/postgresql/recipes/colab.rb new file mode 100644 index 0000000..4de564a --- /dev/null +++ b/cookbooks/postgresql/recipes/colab.rb @@ -0,0 +1,16 @@ +execute 'createuser:colab' do + command 'createuser colab' + user 'postgres' + only_if do + `sudo -u postgres -i psql --quiet --tuples-only -c "select count(*) from pg_user where usename = 'colab';"`.strip.to_i == 0 + end +end + +execute 'createdb:colab' do + command 'createdb --owner=colab colab' + user 'postgres' + only_if do + `sudo -u postgres -i psql --quiet --tuples-only -c "select count(1) from pg_database where datname = 'colab';"`.strip.to_i == 0 + end +end + diff --git a/test/postgresql_test.sh b/test/postgresql_test.sh index f8311d0..5be0fd4 100644 --- a/test/postgresql_test.sh +++ b/test/postgresql_test.sh @@ -4,5 +4,9 @@ test_postgresql_running() { assertTrue 'PostgreSQL running' 'run_on database pgrep -fa postgres' } +test_colab_database_created() { + assertTrue 'colab database created in PostgreSQL' 'run_on database sudo -u postgres -i psql colab < /dev/null' +} + . shunit2 -- libgit2 0.21.2