This is an automated email from the ASF dual-hosted git repository.

dgriffon pushed a commit to branch add-operation-logs
in repository https://gitbox.apache.org/repos/asf/unomi.git

commit 6f2a3ac0e2af4b73b5c251e014ede2e9923e2ed2
Author: David Griffon <[email protected]>
AuthorDate: Thu Nov 23 07:28:43 2023 +0100

    UNOMI-810 : add log on ES operation onto Metadata items.
---
 .../ElasticSearchPersistenceServiceImpl.java        | 21 +++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)

diff --git 
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
 
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
index 8ca6526f1..fbfa508b1 100644
--- 
a/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
+++ 
b/persistence-elasticsearch/core/src/main/java/org/apache/unomi/persistence/elasticsearch/ElasticSearchPersistenceServiceImpl.java
@@ -890,7 +890,7 @@ public class ElasticSearchPersistenceServiceImpl implements 
PersistenceService,
         }.catchingExecuteInClassLoader(true);
 
     }
-    
+
     private void setMetadata(Item item, String itemId, long version, long 
seqNo, long primaryTerm, String index) {
         if (!systemItems.contains(item.getItemType()) && item.getItemId() == 
null) {
             item.setItemId(itemId);
@@ -970,6 +970,7 @@ public class ElasticSearchPersistenceServiceImpl implements 
PersistenceService,
                         } else {
                             bulkProcessor.add(indexRequest);
                         }
+                        logMetadataItemOperation("saved", item);
                     } catch (IndexNotFoundException e) {
                         logger.error("Could not find index {}, could not 
register item type {} with id {} ", index, itemType, item.getItemId(), e);
                         return false;
@@ -1026,6 +1027,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
                     } else {
                         bulkProcessor.add(updateRequest);
                     }
+                    logMetadataItemOperation("updated", item);
                     return true;
                 } catch (IndexNotFoundException e) {
                     throw new Exception("No index found for itemType=" + 
clazz.getName() + "itemId=" + item.getItemId(), e);
@@ -1322,6 +1324,9 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
 
                     DeleteRequest deleteRequest = new DeleteRequest(index, 
documentId);
                     client.delete(deleteRequest, RequestOptions.DEFAULT);
+                    if (MetadataItem.class.isAssignableFrom(clazz)) {
+                        logger.info("Item of type {} with ID {} has been 
removed", customItemType != null ? customItemType : clazz.getSimpleName(), 
itemId);
+                    }
                     return true;
                 } catch (Exception e) {
                     throw new Exception("Cannot remove", e);
@@ -1352,6 +1357,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
     public <T extends Item> boolean removeByQuery(QueryBuilder queryBuilder, 
final Class<T> clazz) throws Exception {
         try {
             String itemType = Item.getItemType(clazz);
+            logger.debug("Remove item of type {} using a query", itemType);
             final DeleteByQueryRequest deleteByQueryRequest = new 
DeleteByQueryRequest(getIndexNameForQuery(itemType))
                     .setQuery(wrapWithItemTypeQuery(itemType, queryBuilder))
                     // Setting slices to auto will let Elasticsearch choose 
the number of slices to use.
@@ -1442,7 +1448,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
     }
 
     public boolean createIndex(final String itemType) {
-
+        logger.debug("Create index {}", itemType);
         Boolean result = new InClassLoaderExecute<Boolean>(metricsService, 
this.getClass().getName() + ".createIndex", this.bundleContext, 
this.fatalIllegalStateErrors, throwExceptions) {
             protected Boolean execute(Object... args) throws IOException {
                 String index = getIndex(itemType);
@@ -1528,7 +1534,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
         CreateIndexRequest createIndexRequest = new 
CreateIndexRequest(indexName + "-000001")
                 .alias(new Alias(indexName).writeIndex(true));
         CreateIndexResponse createIndexResponse = 
client.indices().create(createIndexRequest, RequestOptions.DEFAULT);
-        logger.info("Index created: [{}], acknowledge: [{}], shards 
acknowledge: [{}]", createIndexResponse.index(),
+        logger.debug("Index created: [{}], acknowledge: [{}], shards 
acknowledge: [{}]", createIndexResponse.index(),
                 createIndexResponse.isAcknowledged(), 
createIndexResponse.isShardsAcknowledged());
     }
 
@@ -2477,6 +2483,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
 
     @Override
     public void purge(final String scope) {
+        logger.debug("Purge scope {}", scope);
         new InClassLoaderExecute<Void>(metricsService, 
this.getClass().getName() + ".purgeWithScope", this.bundleContext, 
this.fatalIllegalStateErrors, throwExceptions) {
             @Override
             protected Void execute(Object... args) throws IOException {
@@ -2672,7 +2679,7 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
     private String getIndexNameForQuery(String itemType) {
         return isItemTypeRollingOver(itemType) ? 
getRolloverIndexForQuery(itemType) : getIndex(itemType);
     }
-    
+
     private String getRolloverIndexForQuery(String itemType) {
         return indexPrefix + "-" + itemType.toLowerCase() + "-*";
     }
@@ -2737,4 +2744,10 @@ public class ElasticSearchPersistenceServiceImpl 
implements PersistenceService,
         }
         return WriteRequest.RefreshPolicy.NONE;
     }
+
+    private void logMetadataItemOperation (String operation, Item item) {
+        if (item instanceof MetadataItem) {
+            logger.info("Item of type {} with ID {} has been {}", 
item.getItemType(), item.getItemId(), operation);
+        }
+    }
 }

Reply via email to