import psycopg2 from loguru import logger import os import configparser DB_USER = "" DB_PASS = "" DB_HOST = "" DB_NAME = "" try: DB_USER = os.environ["DB_USER"] DB_PASS = os.environ["DB_PASS"] DB_HOST = os.environ["DB_HOST"] DB_NAME = os.environ["DB_NAME"] except KeyError: config = configparser.ConfigParser() config.read('/opt/app/config/dbconfig.ini') DB_USER = config["database"]["user"] DB_PASS = config["database"]["pass"] DB_HOST = config["database"]["host"] DB_NAME = config["database"]["name"] def databaseOperation(cursor, params): cursor.execute('SELECT key, value FROM claims_for_user_v where "user" = %s and application = %s', params) for claimObj in cursor: logger.debug("add claim {} -> {}".format(claimObj[0], claimObj[1])) return [] def execDatabaseOperation(func, params): conn = None cur = None try: conn = psycopg2.connect(user = DB_USER, password = DB_PASS, host = DB_HOST, database = DB_NAME) conn.autocommit = False with conn.cursor() as cur: return func(cur, params) except psycopg2.Error as err: raise Exception("Error when connecting to database: {}".format(err)) finally: if conn: conn.close()