import io import yaml import mysql.connector def getConnection(inputHost, inputSchema=None, connHost=None, connSchema=None): '''Get DB creds from Perl connect yml file Should probably replace this with AWS Secrets Manager ''' # Read YAML file confYaml = "/app/tools/common/lib/Common/DB/Connect.yml" with open(confYaml, 'r') as stream: conf = yaml.load(stream, Loader=yaml.BaseLoader) dbhosts = conf['dbhost'] if inputHost in dbhosts.keys() and inputHost != 'localhost': connInfo = dbhosts[inputHost] connHost = connInfo['host'] if 'schema' in connInfo.keys(): connSchema = connInfo['schema'] elif inputHost == 'localhost': connHost = '127.0.0.1' conn = { 'host': connHost or inputHost, 'user': conf['default_user'], 'passwd': conf['default_pass'], 'database': connSchema or inputSchema, 'raise_on_warnings': True, } cnx = mysql.connector.connect(**conn) return cnx def getExecCursor(cxn, sql): cur = cxn.cursor(named_tuple=True) cur.execute(sql) return cur