for (String database : databases) {
DatabaseSchema dbSchema = getSchema(database).get();
if(dbSchema != null) {
- Set<String> tables = dbSchema.getTables();
- if(tables != null) {
- List<MonitorRequest<GenericTableSchema>> monitorRequests = Lists.newArrayList();
- for (String tableName : tables) {
- GenericTableSchema tableSchema = dbSchema.table(tableName, GenericTableSchema.class);
- Set<String> columns = tableSchema.getColumns();
- MonitorRequestBuilder<GenericTableSchema> monitorBuilder = MonitorRequestBuilder.builder(tableSchema);
- for (String column : columns) {
- monitorBuilder.addColumn(column);
- }
- monitorRequests.add(monitorBuilder.with(new MonitorSelect(true, true, true, true)).build());
- }
- this.callback.update(monitor(dbSchema, monitorRequests, callback),dbSchema);
- } else {
- LOG.warn("No tables for schema {} for database {} for key {}",dbSchema,database,key);
- }
+ monitorAllTables(database, dbSchema);
} else {
LOG.warn("No schema reported for database {} for key {}",database,key);
}
}
}
+ private void monitorAllTables(String database, DatabaseSchema dbSchema) {
+ Set<String> tables = dbSchema.getTables();
+ if(tables != null) {
+ List<MonitorRequest<GenericTableSchema>> monitorRequests = Lists.newArrayList();
+ for (String tableName : tables) {
+ GenericTableSchema tableSchema = dbSchema.table(tableName, GenericTableSchema.class);
+ Set<String> columns = tableSchema.getColumns();
+ MonitorRequestBuilder<GenericTableSchema> monitorBuilder = MonitorRequestBuilder.builder(tableSchema);
+ for (String column : columns) {
+ monitorBuilder.addColumn(column);
+ }
+ monitorRequests.add(monitorBuilder.with(new MonitorSelect(true, true, true, true)).build());
+ }
+ this.callback.update(monitor(dbSchema, monitorRequests, callback),dbSchema);
+ } else {
+ LOG.warn("No tables for schema {} for database {} for key {}",dbSchema,database,key);
+ }
+ }
+
public ListenableFuture<List<String>> getDatabases() {
return client.getDatabases();
}