]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/nominatim/templates/default/nominatim-update.erb
nominatim: need extra pip repo on updates
[chef.git] / cookbooks / nominatim / templates / default / nominatim-update.erb
index 9f122206ce2cbdbdfc6767894cdb734a5aebd08b..e7f8a5f67daab42950d3c52050cc4a3ed6d6e581 100644 (file)
@@ -6,16 +6,37 @@ date "+%c === Starting Nominatim update cycle"
 
 starttime=`date +%s`
 
-<% if node[:nominatim][:enable_git_updates] -%>
-if /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-source; then
-  pushd <%= @builddir %>
-  make install
-
-  if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
-    date "+%c === Database refresh failed. Stopping updates."
-    exit 1
+<% if node.platform?("debian") -%>
+  EXTRA_PIP='--extra-index-url <%= node[:nominatim][:pip_index] %>'
+
+  # First update the importer and run the migrations.
+  if <%= @venvprefix %>pip list $EXTRA_PIP --outdated | fgrep -q nominatim-db; then
+    <%= @venvprefix %>pip install $EXTRA_PIP -U nominatim-db
+    if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
+      date "+%c === Database refresh failed. Stopping updates."
+      exit 1
+    fi
   fi
-fi
+  # Then only attempt to update the frontend.
+  if <%= @venvprefix %>pip list $EXTRA_PIP --outdated | fgrep -q nominatim-api; then
+    <%= @venvprefix %>pip install $EXTRA_PIP -U nominatim-api
+    systemctl reload nominatim
+  fi
+<% else -%>
+  <% if node[:nominatim][:enable_git_updates] -%>
+  if /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-source; then
+
+    if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-refresh-db; then
+      date "+%c === Database refresh failed. Stopping updates."
+      exit 1
+    fi
+
+    pushd <%= @builddir %>
+    make install
+
+    systemctl reload nominatim
+  fi
+  <% end -%>
 <% end -%>
 
 if ! /sbin/runuser -u nominatim -- <%= @bindir %>/nominatim-update-data; then