Event logging, add pluggable interfaces and AuditLog, ElasticSearch implementations

This commit is contained in:
Suresh Srinivas 2021-08-05 02:08:26 -07:00
parent 6950c3d7df
commit d8e31c11a5

View File

@ -61,16 +61,21 @@ public class ElasticSearchEventHandler implements EventHandler {
Table instance = (Table) entity; Table instance = (Table) entity;
Map<String, Object> jsonMap = new HashMap<>(); Map<String, Object> jsonMap = new HashMap<>();
jsonMap.put("description", instance.getDescription()); jsonMap.put("description", instance.getDescription());
Set<String> tags = new HashSet<String>(); Set<String> tags = new HashSet<>();
List<String> columnDescriptions = new ArrayList<>();
instance.getTags().forEach(tag -> tags.add(tag.getTagFQN())); instance.getTags().forEach(tag -> tags.add(tag.getTagFQN()));
for(Column column: instance.getColumns()) { for(Column column: instance.getColumns()) {
column.getTags().forEach(tag -> tags.add(tag.getTagFQN())); column.getTags().forEach(tag -> tags.add(tag.getTagFQN()));
columnDescriptions.add(column.getDescription());
} }
if (!tags.isEmpty()) { if (!tags.isEmpty()) {
List<String> tagsList = new ArrayList<>(); List<String> tagsList = new ArrayList<>();
tagsList.addAll(tags); tagsList.addAll(tags);
jsonMap.put("tags", tagsList); jsonMap.put("tags", tagsList);
} }
if (!columnDescriptions.isEmpty()) {
jsonMap.put("column_descriptions", columnDescriptions);
}
UpdateRequest updateRequest = new UpdateRequest("table_search_index", instance.getId().toString()); UpdateRequest updateRequest = new UpdateRequest("table_search_index", instance.getId().toString());
updateRequest.doc(jsonMap); updateRequest.doc(jsonMap);
client.updateAsync(updateRequest, RequestOptions.DEFAULT, listener); client.updateAsync(updateRequest, RequestOptions.DEFAULT, listener);