in xray-setup/handler.py [0:0]
def create(event, context):
conn = None
try:
logger.info("Got Create. Connecting to db")
conn = psycopg2.connect(
dbname=event['ResourceProperties']['XrayMasterDatabaseUrl'].split("/")[1].split("?")[0],
user=event['ResourceProperties']['DatabaseUser'],
host=event['ResourceProperties']['XrayMasterDatabaseUrl'].split(":")[0],
password=event['ResourceProperties']['DatabasePassword']
)
conn.set_isolation_level(ISOLATION_LEVEL_AUTOCOMMIT)
cur = conn.cursor()
logger.info("Start Queries")
cur.execute(f"CREATE USER {event['ResourceProperties']['XrayDatabaseUser']} WITH PASSWORD \'{event['ResourceProperties']['XrayDatabasePassword']}\';")
cur.execute(f"GRANT {event['ResourceProperties']['XrayDatabaseUser']} to {event['ResourceProperties']['DatabaseUser']};")
cur.execute(f"CREATE DATABASE xraydb WITH OWNER={event['ResourceProperties']['XrayDatabaseUser']};")
cur.execute(f"GRANT ALL PRIVILEGES ON DATABASE xraydb TO {event['ResourceProperties']['XrayDatabaseUser']};")
cur.close()
logger.info("End Queries")
except psycopg2.DatabaseError as e:
raise ValueError(e)
finally:
if conn:
conn.close()