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