5 # Copyright:: 2013, OpenStreetMap Foundation
7 # Licensed under the Apache License, Version 2.0 (the "License");
8 # you may not use this file except in compliance with the License.
9 # You may obtain a copy of the License at
11 # https://www.apache.org/licenses/LICENSE-2.0
13 # Unless required by applicable law or agreed to in writing, software
14 # distributed under the License is distributed on an "AS IS" BASIS,
15 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 # See the License for the specific language governing permissions and
17 # limitations under the License.
22 include_recipe "accounts"
23 include_recipe "osmosis"
25 db_passwords = data_bag_item("db", "passwords")
40 remote_directory "/opt/flush" do
50 execute "/opt/flush/Makefile" do
56 subscribes :run, "remote_directory[/opt/flush]"
59 remote_directory "/usr/local/bin" do
60 source "replication-bin"
69 template "/usr/local/bin/users-agreed" do
70 source "users-agreed.erb"
76 template "/usr/local/bin/users-deleted" do
77 source "users-deleted.erb"
83 remote_directory "/store/planet/users_deleted" do
84 source "users_deleted"
93 remote_directory "/store/planet/replication" do
94 source "replication-cgi"
103 directory "/store/planet/replication/changesets" do
109 directory "/store/planet/replication/day" do
115 directory "/store/planet/replication/hour" do
121 directory "/store/planet/replication/minute" do
127 directory "/store/planet/replication/test" do
133 directory "/store/planet/replication/test/minute" do
139 systemd_tmpfile "/run/replication" do
146 directory "/etc/replication" do
152 directory "/var/run/lock/changeset-replication/" do
158 template "/etc/replication/auth.conf" do
159 source "replication.auth.erb"
163 variables :password => db_passwords["planetdiff"]
168 "host" => node[:web][:database_host],
169 "dbname" => "openstreetmap",
170 "user" => "planetdiff",
171 "password" => db_passwords["planetdiff"],
172 "replication_slot" => "osmdbt"
174 "log_dir" => "/var/lib/replication/minute",
175 "changes_dir" => "/store/planet/replication/test/minute",
177 "run_dir" => "/run/replication"
180 file "/etc/replication/osmdbt-config.yaml" do
184 content YAML.dump(osmdbt_config)
187 template "/etc/replication/changesets.conf" do
188 source "changesets.conf.erb"
192 variables :password => db_passwords["planetdiff"]
195 template "/etc/replication/users-agreed.conf" do
196 source "users-agreed.conf.erb"
200 variables :password => db_passwords["planetdiff"]
203 directory "/var/lib/replication" do
209 directory "/var/lib/replication/minute" do
215 directory "/var/lib/replication/hour" do
221 template "/var/lib/replication/hour/configuration.txt" do
222 source "replication.config.erb"
226 variables :base => "minute", :interval => 3600
229 link "/var/lib/replication/hour/data" do
230 to "/store/planet/replication/hour"
233 directory "/var/lib/replication/day" do
239 template "/var/lib/replication/day/configuration.txt" do
240 source "replication.config.erb"
244 variables :base => "hour", :interval => 86400
247 link "/var/lib/replication/day/data" do
248 to "/store/planet/replication/day"
251 if node[:planet][:replication] == "enabled"
252 cron_d "users-agreed" do
256 command "/usr/local/bin/users-agreed"
257 mailto "zerebubuth@gmail.com"
260 cron_d "users-deleted" do
264 command "/usr/local/bin/users-deleted"
265 mailto "zerebubuth@gmail.com"
268 cron_d "replication-changesets" do
270 command "/usr/local/bin/replicate-changesets /etc/replication/changesets.conf"
271 mailto "zerebubuth@gmail.com"
274 cron_d "replication-minutely" do
276 command "/usr/local/bin/osmosis -q --replicate-apidb authFile=/etc/replication/auth.conf validateSchemaVersion=false --write-replication workingDirectory=/store/planet/replication/minute"
277 mailto "brett@bretth.com"
278 environment "LD_PRELOAD" => "/opt/flush/flush.so"
281 cron_d "replication-hourly" do
284 command "/usr/local/bin/osmosis -q --merge-replication-files workingDirectory=/var/lib/replication/hour"
285 mailto "brett@bretth.com"
286 environment "LD_PRELOAD" => "/opt/flush/flush.so"
289 cron_d "replication-daily" do
292 command "/usr/local/bin/osmosis -q --merge-replication-files workingDirectory=/var/lib/replication/day"
293 mailto "brett@bretth.com"
294 environment "LD_PRELOAD" => "/opt/flush/flush.so"
297 cron_d "users-agreed" do
301 cron_d "users-deleted" do
305 cron_d "replication-changesets" do
309 cron_d "replication-minutely" do
313 cron_d "replication-hourly" do
317 cron_d "replication-daily" do