]> git.openstreetmap.org Git - nominatim.git/blobdiff - nominatim/apicmd/status.py
add event handler for default connection settings
[nominatim.git] / nominatim / apicmd / status.py
index 628b6ce9bbb2c5320a290dd79f9ffdd027ba56b2..85071db9397853c64eb789c620a466a2cd81c313 100644 (file)
@@ -23,10 +23,9 @@ class StatusResult:
     def __init__(self, status: int, msg: str):
         self.status = status
         self.message = msg
-        # XXX versions really should stay tuples here
-        self.software_version = version.version_str()
+        self.software_version = version.NOMINATIM_VERSION
         self.data_updated: Optional[dt.datetime]  = None
-        self.database_version: Optional[str] = None
+        self.database_version: Optional[version.NominatimVersion] = None
 
 
 async def _get_database_date(conn: AsyncConnection) -> Optional[dt.datetime]:
@@ -41,13 +40,13 @@ async def _get_database_date(conn: AsyncConnection) -> Optional[dt.datetime]:
     return None
 
 
-async def _get_database_version(conn: AsyncConnection) -> Optional[str]:
+async def _get_database_version(conn: AsyncConnection) -> Optional[version.NominatimVersion]:
     sql = sqla.text("""SELECT value FROM nominatim_properties
                        WHERE property = 'database_version'""")
     result = await conn.execute(sql)
 
     for row in result:
-        return cast(str, row[0])
+        return version.parse_version(cast(str, row[0]))
 
     return None
 
@@ -60,7 +59,7 @@ async def get_status(engine: AsyncEngine) -> StatusResult:
         async with engine.begin() as conn:
             status.data_updated = await _get_database_date(conn)
             status.database_version = await _get_database_version(conn)
-    except asyncpg.PostgresError as err:
-        return StatusResult(700, str(err))
+    except asyncpg.PostgresError:
+        return StatusResult(700, 'Database connection failed')
 
     return status