Mercurial > code > home > repos > video
diff mongo_required.py @ 16:838eb0223bdb
cp mongo_required
author | drewp@bigasterisk.com |
---|---|
date | Sun, 16 Apr 2023 03:17:48 -0700 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mongo_required.py Sun Apr 16 03:17:48 2023 -0700 @@ -0,0 +1,25 @@ +import contextlib +import os +import traceback + +import pymongo +import pymongo.errors + + +@contextlib.contextmanager +def die_on_mongo_connection_errors(): + try: + yield + except pymongo.errors.ServerSelectionTimeoutError: + traceback.print_exc() + os.abort() + + +def open_mongo_or_die() -> pymongo.MongoClient: + client = pymongo.MongoClient(host=os.environ['MONGODB_SERVICE_HOST'], + tz_aware=True, + connectTimeoutMS=3000, + serverSelectionTimeoutMS=3000) + with die_on_mongo_connection_errors(): + client.admin.command('ismaster') + return client