]> git.openstreetmap.org Git - chef.git/blob - cookbooks/nominatim/templates/default/nominatim-update.erb
nominatim: clamp down on rate limits
[chef.git] / cookbooks / nominatim / templates / default / nominatim-update.erb
1 #!/bin/bash
2
3 # DO NOT EDIT - This file is being maintained by Chef
4
5 date "+%c === Starting Nominatim update cycle"
6
7 starttime=`date +%s`
8
9 EXTRA_PIP='--extra-index-url <%= node[:nominatim][:pip_index] %>'
10
11 # First update the importer and run the migrations.
12 if <%= @venvprefix %>pip list $EXTRA_PIP --outdated | fgrep -q nominatim-db; then
13   <%= @venvprefix %>pip install $EXTRA_PIP -U nominatim-db
14   if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
15     date "+%c === Database refresh failed. Stopping updates."
16     exit 1
17   fi
18 fi
19 # Then only attempt to update the frontend.
20 if <%= @venvprefix %>pip list $EXTRA_PIP --outdated | fgrep -q nominatim-api; then
21   <%= @venvprefix %>pip install $EXTRA_PIP -U nominatim-api
22   systemctl reload nominatim
23 fi
24
25 if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-data; then
26   date "+%c === Data update failed. Stopping updates."
27   exit 1
28 fi
29
30 date "+%c === Nominatim update cycle finished"
31
32 # sleep a bit if updates take less than a minute
33 endtime=`date +%s`
34 elapsed=$((endtime - starttime))
35 if [[ $elapsed -lt 60 ]]; then
36   sleepy=$((60 - $elapsed))
37   date "+%c === Sleeping for ${sleepy}s..."
38   sleep $sleepy
39 fi