]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/db/status.py
introduce custom UsageError
[nominatim.git] / nominatim / db / status.py
index a0454771e0e0653d386d480050082fa047e0ca2c..75da3c166029fa8cc4266b9a76aed5fe97b7dcdc 100644 (file)
@@ -1,11 +1,12 @@
 """
-Access and helper functions for the status table.
+Access and helper functions for the status and status log table.
 """
 import datetime as dt
 import logging
 import re
 
 from ..tools.exec_utils import get_url
+from ..errors import UsageError
 
 LOG = logging.getLogger()
 
@@ -19,7 +20,7 @@ def compute_database_date(conn):
 
         if osmid is None:
             LOG.fatal("No data found in the database.")
-            raise RuntimeError("No data found in the database.")
+            raise UsageError("No data found in the database.")
 
     LOG.info("Using node id %d for timestamp lookup", osmid)
     # Get the node from the API to find the timestamp when it was created.
@@ -31,7 +32,7 @@ def compute_database_date(conn):
     if match is None:
         LOG.fatal("The node data downloaded from the API does not contain valid data.\n"
                   "URL used: %s", node_url)
-        raise RuntimeError("Bad API data.")
+        raise UsageError("Bad API data.")
 
     LOG.debug("Found timestamp %s", match[1])
 
@@ -61,3 +62,21 @@ def get_status(conn):
 
         row = cur.fetchone()
         return row['lastimportdate'], row['sequence_id'], row['indexed']
+
+
+def set_indexed(conn, state):
+    """ Set the indexed flag in the status table to the given state.
+    """
+    with conn.cursor() as cur:
+        cur.execute("UPDATE import_status SET indexed = %s", (state, ))
+    conn.commit()
+
+
+def log_status(conn, start, event, batchsize=None):
+    """ Write a new status line to the `import_osmosis_log` table.
+    """
+    with conn.cursor() as cur:
+        cur.execute("""INSERT INTO import_osmosis_log
+                       (batchend, batchseq, batchsize, starttime, endtime, event)
+                       SELECT lastimportdate, sequence_id, %s, %s, now(), %s FROM import_status""",
+                    (batchsize, start, event))