From 12b5c2827886d1ba64854a9ec1e8af53f4c8a18d Mon Sep 17 00:00:00 2001 From: Bhanu Agrawal Date: Thu, 25 Sep 2025 14:25:13 +0100 Subject: [PATCH] Refactored duplicate methods createEntity and createTimeSeriesEntity --- .../ElasticSearchEntityManager.java | 72 +++++++------------ .../opensearch/OpenSearchEntityManager.java | 70 +++++++----------- 2 files changed, 50 insertions(+), 92 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java index 7a13e4ab20c..ab3bb6e040f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/elasticsearch/ElasticSearchEntityManager.java @@ -62,28 +62,7 @@ public class ElasticSearchEntityManager implements EntityManagementClient { @Override public void createEntity(String indexName, String docId, String doc) { - if (!isClientAvailable) { - LOG.error("ElasticSearch client is not available. Cannot create entity."); - return; - } - - try { - client.update( - u -> - u.index(indexName) - .id(docId) - .docAsUpsert(true) - .refresh(Refresh.True) - .doc(toJsonData(doc)), - Map.class); - LOG.info( - "Successfully created entity in ElasticSearch for index: {}, docId: {}", - indexName, - docId); - } catch (Exception e) { - LOG.error( - "Failed to create entity in ElasticSearch for index: {}, docId: {}", indexName, docId, e); - } + upsertDocument(indexName, docId, doc, "create entity"); } @Override @@ -148,31 +127,7 @@ public class ElasticSearchEntityManager implements EntityManagementClient { @Override public void createTimeSeriesEntity(String indexName, String docId, String doc) { - if (!isClientAvailable) { - LOG.error("ElasticSearch client is not available. Cannot create time series entity."); - return; - } - - try { - client.update( - u -> - u.index(indexName) - .id(docId) - .docAsUpsert(true) - .refresh(Refresh.True) - .doc(toJsonData(doc)), - Map.class); - LOG.info( - "Successfully created time series entity in ElasticSearch for index: {}, docId: {}", - indexName, - docId); - } catch (Exception e) { - LOG.error( - "Failed to create time series entity in ElasticSearch for index: {}, docId: {}", - indexName, - docId, - e); - } + upsertDocument(indexName, docId, doc, "create time series entity"); } @Override @@ -629,6 +584,29 @@ public class ElasticSearchEntityManager implements EntityManagementClient { } } + private void upsertDocument(String indexName, String docId, String doc, String operation) { + if (!isClientAvailable) { + LOG.error("ElasticSearch client is not available. Cannot {}.", operation); + return; + } + + try { + client.update( + u -> + u.index(indexName) + .id(docId) + .docAsUpsert(true) + .refresh(Refresh.True) + .doc(toJsonData(doc)), + Map.class); + LOG.info( + "Successfully {} in ElasticSearch for index: {}, docId: {}", operation, indexName, docId); + } catch (Exception e) { + LOG.error( + "Failed to {} in ElasticSearch for index: {}, docId: {}", operation, indexName, docId, e); + } + } + private Map convertToJsonDataMap(Map map) { return JsonUtils.getMap(map).entrySet().stream() .filter(entry -> entry.getValue() != null) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java index 05356b963e0..fc0957436ff 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/search/opensearch/OpenSearchEntityManager.java @@ -63,26 +63,7 @@ public class OpenSearchEntityManager implements EntityManagementClient { @Override public void createEntity(String indexName, String docId, String doc) { - if (!isClientAvailable) { - LOG.error("OpenSearch client is not available. Cannot create entity."); - return; - } - - try { - client.update( - u -> - u.index(indexName) - .id(docId) - .refresh(Refresh.True) - .docAsUpsert(true) - .doc(toJsonData(doc)), - Map.class); - LOG.info( - "Successfully created entity in OpenSearch for index: {}, docId: {}", indexName, docId); - } catch (Exception e) { - LOG.error( - "Failed to create entity in OpenSearch for index: {}, docId: {}", indexName, docId, e); - } + upsertDocument(indexName, docId, doc, "create entity"); } @Override @@ -145,31 +126,7 @@ public class OpenSearchEntityManager implements EntityManagementClient { @Override public void createTimeSeriesEntity(String indexName, String docId, String doc) { - if (!isClientAvailable) { - LOG.error("OpenSearch client is not available. Cannot create time series entity."); - return; - } - - try { - client.update( - u -> - u.index(indexName) - .id(docId) - .refresh(Refresh.True) - .docAsUpsert(true) - .doc(toJsonData(doc)), - Map.class); - LOG.info( - "Successfully created time series entity in OpenSearch for index: {}, docId: {}", - indexName, - docId); - } catch (Exception e) { - LOG.error( - "Failed to create time series entity in OpenSearch for index: {}, docId: {}", - indexName, - docId, - e); - } + upsertDocument(indexName, docId, doc, "create time series entity"); } @Override @@ -627,6 +584,29 @@ public class OpenSearchEntityManager implements EntityManagementClient { } } + private void upsertDocument(String indexName, String docId, String doc, String operation) { + if (!isClientAvailable) { + LOG.error("OpenSearch client is not available. Cannot {}.", operation); + return; + } + + try { + client.update( + u -> + u.index(indexName) + .id(docId) + .refresh(Refresh.True) + .docAsUpsert(true) + .doc(toJsonData(doc)), + Map.class); + LOG.info( + "Successfully {} in OpenSearch for index: {}, docId: {}", operation, indexName, docId); + } catch (Exception e) { + LOG.error( + "Failed to {} in OpenSearch for index: {}, docId: {}", operation, indexName, docId, e); + } + } + private Map convertToJsonDataMap(Map map) { return JsonUtils.getMap(map).entrySet().stream() .filter(entry -> entry.getValue() != null)