This is an automated email from the ASF dual-hosted git repository. sebb pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git
commit 6d02e81d1ee747d0cb8c56cb9b32dd152835c707 Author: Sebb <[email protected]> AuthorDate: Wed Dec 29 00:28:55 2021 +0000 Extract various versions --- server/endpoints/preferences.py | 9 +++++++++ server/main.py | 5 +++++ server/plugins/background.py | 7 +++++++ 3 files changed, 21 insertions(+) diff --git a/server/endpoints/preferences.py b/server/endpoints/preferences.py index dcf49b1..c082a50 100644 --- a/server/endpoints/preferences.py +++ b/server/endpoints/preferences.py @@ -29,7 +29,16 @@ import fnmatch async def process( server: plugins.server.BaseServer, session: plugins.session.SessionObject, indata: dict ) -> typing.Union[dict, aiohttp.web.Response]: + + versions: dict = { + "server": server.server_version, + "foal": server.foal_version, + "elasticsearch_engine": server.engine_version, + "elasticsearch_library": server.library_version + } + prefs: dict = {"login": {}} + prefs['versions'] = versions lists: dict = {} for ml, entry in server.data.lists.items(): if "@" in ml: diff --git a/server/main.py b/server/main.py index 09fc483..b7e9447 100644 --- a/server/main.py +++ b/server/main.py @@ -66,6 +66,11 @@ class Server(plugins.server.BaseServer): self.server = None self.streamlock = asyncio.Lock() self.api_logger = None + self.foal_version = PONYMAIL_FOAL_VERSION + self.server_version = PONYMAIL_SERVER_VERSION + # provided by background.py + self.library_version: str + self.engine_version: str # Make a pool of database connections for async queries pool_size = self.config.database.pool_size diff --git a/server/plugins/background.py b/server/plugins/background.py index d61f872..cc08052 100644 --- a/server/plugins/background.py +++ b/server/plugins/background.py @@ -24,6 +24,7 @@ import sys import time from elasticsearch_dsl import Search +from elasticsearch import VERSION as ES_VERSION import plugins.configuration import plugins.server @@ -215,6 +216,12 @@ async def run_tasks(server: plugins.server.BaseServer) -> None: Generally runs every 2½ minutes, or whatever is set in tasks/refresh_rate in ponymail.yaml """ + + # Initial setup + server.library_version = ".".join([str(v) for v in ES_VERSION]) + db = plugins.database.Database(server.config.database) + server.engine_version = (await db.info())['version']['number'] + while True: async with ProgTimer("Gathering list of archived mailing lists"): try:
