annotate mongo_required.py @ 39:c538dc39b851

user login fixes
author drewp@bigasterisk.com
date Sat, 19 Nov 2022 17:06:36 -0800
parents f3a15a724483
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
1 import contextlib
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
2 import os
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
3 import traceback
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
4
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
5 import pymongo
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
6 import pymongo.errors
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
7
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
8
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
9 @contextlib.contextmanager
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
10 def die_on_mongo_connection_errors():
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
11 try:
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
12 yield
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
13 except pymongo.errors.ServerSelectionTimeoutError:
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
14 traceback.print_exc()
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
15 os.abort()
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
16
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
17
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
18 def open_mongo_or_die():
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
19 client = pymongo.MongoClient(host=os.environ['MONGODB_SERVICE_HOST'],
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
20 tz_aware=True,
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
21 connectTimeoutMS=3000,
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
22 serverSelectionTimeoutMS=3000)
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
23 with die_on_mongo_connection_errors():
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
24 client.admin.command('ismaster')
f3a15a724483 mongo api and up-checking
drewp@bigasterisk.com
parents:
diff changeset
25 return client