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

jsinovassinnaik pushed a commit to branch UNOMI-862
in repository https://gitbox.apache.org/repos/asf/unomi.git

commit 99e116e9a503d117ac03e99166f324855d85bee2
Author: jsinovassin <[email protected]>
AuthorDate: Thu Oct 31 12:02:03 2024 +0100

    UNOMI-862: fix scope check on migration
---
 .../java/org/apache/unomi/shell/migration/utils/HttpUtils.java    | 2 +-
 .../META-INF/cxs/migration/migrate-2.0.0-20-scopes.groovy         | 8 +++++---
 .../main/resources/requestBody/2.0.0/scope_search_by_item_id.json | 8 ++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git 
a/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/utils/HttpUtils.java
 
b/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/utils/HttpUtils.java
index 503714a18..faa341e8a 100644
--- 
a/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/utils/HttpUtils.java
+++ 
b/tools/shell-commands/src/main/java/org/apache/unomi/shell/migration/utils/HttpUtils.java
@@ -124,7 +124,7 @@ public class HttpUtils {
         httpPost.addHeader("accept", "application/json");
 
         if (jsonData != null) {
-            StringEntity input = new StringEntity(jsonData);
+            StringEntity input = new StringEntity(jsonData, "UTF-8");
             input.setContentType("application/json");
             httpPost.setEntity(input);
         }
diff --git 
a/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.0.0-20-scopes.groovy
 
b/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.0.0-20-scopes.groovy
index 7b291abcd..71868ad82 100644
--- 
a/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.0.0-20-scopes.groovy
+++ 
b/tools/shell-commands/src/main/resources/META-INF/cxs/migration/migrate-2.0.0-20-scopes.groovy
@@ -25,6 +25,7 @@ MigrationContext context = migrationContext
 def jsonSlurper = new JsonSlurper()
 String searchScopesRequest = 
MigrationUtils.resourceAsString(bundleContext,"requestBody/2.0.0/scope_search.json")
 String saveScopeRequestBulk = MigrationUtils.resourceAsString(bundleContext, 
"requestBody/2.0.0/scope_save_bulk.ndjson")
+String searchScopeById = MigrationUtils.resourceAsString(bundleContext, 
"requestBody/2.0.0/scope_search_by_item_id.json")
 String esAddress = context.getConfigString("esAddress")
 String indexPrefix = context.getConfigString("indexPrefix")
 String scopeIndex = indexPrefix + "-scope"
@@ -55,8 +56,9 @@ 
context.performMigrationStep("2.0.0-create-scopes-from-existing-events", () -> {
                     // check that the scope doesn't already exists
                     def scopeAlreadyExists = false
                     try {
-                        def existingScope = 
jsonSlurper.parseText(HttpUtils.executeGetRequest(context.getHttpClient(), 
esAddress + "/" + scopeIndex + "/_doc/" + bucket.key, null));
-                        scopeAlreadyExists = existingScope.found
+                        context.printMessage("Check if " + bucket.key + " 
exists")
+                        def existingScope = 
jsonSlurper.parseText(HttpUtils.executePostRequest(context.getHttpClient(), 
esAddress + "/" + scopeIndex + "/_search/", 
searchScopeById.replace("##scope##", bucket.key), null));
+                        scopeAlreadyExists = existingScope.hits.total.value > 0
                     } catch (HttpRequestException e) {
                         // can happen in case response code > 400 due to item 
not exist in ElasticSearch
                     }
@@ -77,4 +79,4 @@ 
context.performMigrationStep("2.0.0-create-scopes-from-existing-events", () -> {
             HttpUtils.executeGetRequest(context.getHttpClient(), esAddress + 
"/" + scopeIndex + "/_refresh", null)
         }
     }
-})
\ No newline at end of file
+})
diff --git 
a/tools/shell-commands/src/main/resources/requestBody/2.0.0/scope_search_by_item_id.json
 
b/tools/shell-commands/src/main/resources/requestBody/2.0.0/scope_search_by_item_id.json
new file mode 100644
index 000000000..54362daf4
--- /dev/null
+++ 
b/tools/shell-commands/src/main/resources/requestBody/2.0.0/scope_search_by_item_id.json
@@ -0,0 +1,8 @@
+{
+  "query": {
+    "size": 1,
+    "term": {
+      "itemId": "##scope##"
+    }
+  }
+}

Reply via email to