]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/tools/replication.py
port check-for-update function to python
[nominatim.git] / nominatim / tools / replication.py
index 864051689b76394226e5148dae8b5caa8929f9f0..f278556af90d37e906dbd02f9a4ca283f7aad39c 100644 (file)
@@ -32,3 +32,28 @@ def init_replication(conn, base_url):
     status.set_status(conn, date=date, seq=seq)
 
     LOG.warning("Updates intialised at sequence %s (%s)", seq, date)
+
+
+def check_for_updates(conn, base_url):
+    """ Check if new data is available from the replication service at the
+        given base URL.
+    """
+    _, seq, _ = status.get_status(conn)
+
+    if seq is None:
+        LOG.error("Replication not set up. "
+                  "Please run 'nominatim replication --init' first.")
+        return 254
+
+    state = ReplicationServer(base_url).get_state_info()
+
+    if state is None:
+        LOG.error("Cannot get state for URL %s.", base_url)
+        return 253
+
+    if state.sequence <= seq:
+        LOG.warning("Database is up to date.")
+        return 1
+
+    LOG.warning("New data available (%i => %i).", seq, state.sequence)
+    return 0