in src/main/java/software/aws/glue/tableversions/utils/GlueUtil.java [148:184]
public List<Database> getDatabases(AWSGlue glue, String homeCatalogId) {
List<Database> masterDatabaseList = new ArrayList<Database>();
GetDatabasesRequest getDatabasesRequest = new GetDatabasesRequest();
GetDatabasesResult getDatabasesResult = glue.getDatabases(getDatabasesRequest);
List<Database> databaseList = getDatabasesResult.getDatabaseList();
// filter databases that are resource linked
for (Database database : databaseList) {
if (!Optional.ofNullable(database.getTargetDatabase()).isPresent()) {
masterDatabaseList.add(database);
} else {
System.out.printf("Database '%s' seems to have resource linked from AWS Account Id: '%s'. So, it will be skipped. \n",
database.getName(), database.getTargetDatabase().getCatalogId());
}
}
String databaseResultNextToken = getDatabasesResult.getNextToken();
if (Optional.ofNullable(databaseResultNextToken).isPresent()) {
do {
// creating a new GetDatabasesRequest using next token.
getDatabasesRequest = new GetDatabasesRequest();
getDatabasesRequest.setNextToken(databaseResultNextToken);
getDatabasesResult = glue.getDatabases(getDatabasesRequest);
databaseList = getDatabasesResult.getDatabaseList();
// filter databases that are resource linked
for (Database database : databaseList) {
if (!Optional.ofNullable(database.getTargetDatabase()).isPresent()) {
masterDatabaseList.add(database);
} else {
System.out.printf("Database '%s' seems to have resource linked from AWS Account Id: '%s'. So, it will be skipped. \n",
database.getName(), database.getTargetDatabase().getCatalogId());
}
}
databaseResultNextToken = getDatabasesResult.getNextToken();
} while (Optional.ofNullable(databaseResultNextToken).isPresent());
}
return masterDatabaseList;
}