From 7f00d1603d7733a96adb3f837200a30d3b52ffaa Mon Sep 17 00:00:00 2001 From: Sriharsha Chintalapani Date: Wed, 15 Sep 2021 22:23:35 -0700 Subject: [PATCH] Fix #501: ElasticSearchEvent handler should separate tier tag from tags (#502) --- .../events/ElasticSearchEventHandler.java | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java index d67c1e19ebe..246930d3334 100644 --- a/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java +++ b/catalog-rest-service/src/main/java/org/openmetadata/catalog/events/ElasticSearchEventHandler.java @@ -111,8 +111,20 @@ public class ElasticSearchEventHandler implements EventHandler { columnDescriptions.add(column.getDescription()); } } + if (!tags.isEmpty()) { List tagsList = new ArrayList<>(tags); + String tierTag = null; + for (String tag: tagsList) { + if (tag.toLowerCase().matches("(.*)tier(.*)")) { + tierTag = tag; + break; + } + } + if (tierTag != null) { + tagsList.remove(tierTag); + jsonMap.put("tier", tierTag); + } jsonMap.put("tags", tagsList); } if (!columnDescriptions.isEmpty()) { @@ -144,8 +156,20 @@ public class ElasticSearchEventHandler implements EventHandler { } if (!tags.isEmpty()) { List tagsList = new ArrayList<>(tags); + String tierTag = null; + for (String tag: tagsList) { + if (tag.toLowerCase().matches("(.*)tier(.*)")) { + tierTag = tag; + break; + } + } + if (tierTag != null) { + tagsList.remove(tierTag); + jsonMap.put("tier", tierTag); + } jsonMap.put("tags", tagsList); } + if(instance.getOwner() != null) { jsonMap.put("owner", instance.getOwner().getId().toString()); } @@ -169,10 +193,23 @@ public class ElasticSearchEventHandler implements EventHandler { if (instance.getTags() != null) { instance.getTags().forEach(tag -> tags.add(tag.getTagFQN())); } + if (!tags.isEmpty()) { List tagsList = new ArrayList<>(tags); + String tierTag = null; + for (String tag: tagsList) { + if (tag.toLowerCase().matches("(.*)tier(.*)")) { + tierTag = tag; + break; + } + } + if (tierTag != null) { + tagsList.remove(tierTag); + jsonMap.put("tier", tierTag); + } jsonMap.put("tags", tagsList); } + if(instance.getOwner() != null) { jsonMap.put("owner", instance.getOwner().getId().toString()); }