def create()

in src/functions/noproxy/cr_add_users_noproxy.py [0:0]


def create(event, context):
    logger.info("Got Create")

    secret_value = json.loads(
        secretsmanager.get_secret_value(SecretId=secret_arn)["SecretString"]
    )
    password = secret_value["password"]

    num_rows = int(NUMBER_OF_ROWS)

    try:
        conn = pymysql.connect(
            host=ENDPOINT,
            user=USR,
            password=password,
            port=PORT,
            database=DBNAME,
            cursorclass=pymysql.cursors.DictCursor,
        )
        cur = conn.cursor()
        for i in range(int(NUMBER_OF_USERS)):
            dbusername = "user" + str(i)
            dbname = "user_database" + str(i)
            query1 = f"CREATE USER {dbusername} IDENTIFIED WITH AWSAuthenticationPlugin as 'RDS';"
            query2 = f"CREATE DATABASE {dbname};"
            query3 = f"GRANT CREATE VIEW, SHOW VIEW, SELECT, INSERT, UPDATE ON {dbname}.* TO {dbusername};"
            query4 = f"USE {dbname}"
            query5 = f"CREATE TABLE mytable (ID INT AUTO_INCREMENT PRIMARY KEY, Column_A VARCHAR(10), Column_B VARCHAR(10), Column_C VARCHAR(10), Column_D VARCHAR(10), Column_E VARCHAR(10));"
            insert_query = [
                f"INSERT INTO mytable (Column_A,Column_B,Column_C,Column_D,Column_E) VALUES ({random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)},{random.randint(1, 1000000)});"
                for i in range(num_rows)
            ]
            for query in [query1, query2, query3, query4, query5]:
                cur.execute(query)
            for insert in insert_query:
                cur.execute(insert)
        print("Success")

    except Exception as e:
        error_statement = "Database connection failed due to {}".format(e)
        print(error_statement)
        raise Exception(error_statement)

    return helper.PhysicalResourceId