]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/nominatim/recipes/master.rb
nominatim: fix slave list
[chef.git] / cookbooks / nominatim / recipes / master.rb
index 2e0094152c7cfa865420703e3856868f2402b519..96117a44014a5369312acd63c243b3a7c2f5e3ea 100644 (file)
 # limitations under the License.
 #
 
-include_recipe "nominatim::base"
+include_recipe "git"
 
 passwords = data_bag_item("nominatim", "passwords")
 database_cluster = node[:nominatim][:database][:cluster]
 home_directory = data_bag_item("accounts", "nominatim")["home"]
 
+wal_archives = node[:rsyncd][:modules][:archive][:path]
+slaves = search(:node, 'role:nominatim-slave').map{ |result| result['name'] }.join(' ')
+
+git "#{home_directory}/nominatim" do
+  action :checkout
+  repository node[:nominatim][:repository]
+  enable_submodules true
+  user "nominatim"
+  group "nominatim"
+  notifies :run, "execute[compile_nominatim]"
+end
+
+include_recipe "nominatim::base"
+
 superusers = %w(tomh lonvia twain nominatim)
 
 superusers.each do |user|
@@ -42,11 +56,22 @@ postgresql_user "replication" do
   replication true
 end
 
-git "#{home_directory}/nominatim" do
-  action :checkout
-  repository node[:nominatim][:repository]
-  enable_submodules true
-  user "nominatim"
-  group "nominatim"
-  notifies :run, "execute[compile_nominatim]"
+directory wal_archives do
+  owner "postgres"
+  group "postgres"
+  mode 0700
+  only_if { node[:postgresql][:settings][:defaults][:archive_mode] == "on" }
+end
+
+template "/usr/local/bin/clean-db-nominatim" do
+  source "clean-db-nominatim.erb"
+  owner "root"
+  group "root"
+  mode 0755
+  variables :archive_dir => wal_archives,
+            :update_stop_file => "{home_directory}/status/updates_disabled",
+            :streaming_clients => slaves
+  only_if { node[:postgresql][:settings][:defaults][:archive_mode] == "on" }
 end
+
+