def byogdc_main()

in migration/bring-your-own-gdc-assets/bring_your_own_gdc_assets.py [0:0]


def byogdc_main():
    args = _parse_args()
    if args.region:
        session = boto3.Session(region_name=args.region)
    else:
        session = boto3.Session()
    lf_client = session.client('lakeformation')
    glue_client = session.client('glue')

    try:
        _check_database_managed_by_iam_access_and_enable_opt_in(args.database_name, args.project_role_arn, lf_client)

        if args.table_name:
            tables = [_get_table(args.database_name, args.table_name, glue_client)]
        else:
            tables = _get_all_tables_for_a_database(args.database_name, glue_client)

        _check_and_register_location(tables, args.iam_role_arn_lf_resource_register, lf_client)

        for table in tables:
            table_name = table['Name']
            _check_table_managed_by_iam_access_and_enable_opt_in(args.database_name, table_name, args.project_role_arn, lf_client)
            _grant_permissions_to_table(args.project_role_arn, args.database_name, table_name, lf_client)

    except Exception as e:
        print(f"An error occurred during import process: {e}")
        raise