From a837a160f9fff193ebd28e66f1d1a21ed7df1b01 Mon Sep 17 00:00:00 2001 From: shizhendong Date: Fri, 2 Aug 2024 18:27:22 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=20pcap=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=A7=A3=E6=9E=90=20index=5Fname=3D=20workspace-{work?= =?UTF-8?q?space.name}-{pcap.md5}?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../module/runner/util/PcapParserThread.java | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/src/main/java/net/geedge/asw/module/runner/util/PcapParserThread.java b/src/main/java/net/geedge/asw/module/runner/util/PcapParserThread.java index abd3d31..dc91382 100644 --- a/src/main/java/net/geedge/asw/module/runner/util/PcapParserThread.java +++ b/src/main/java/net/geedge/asw/module/runner/util/PcapParserThread.java @@ -17,6 +17,7 @@ import org.opensearch.client.opensearch.core.BulkRequest; import org.opensearch.client.opensearch.core.BulkResponse; import org.opensearch.client.opensearch.core.bulk.BulkResponseItem; import org.opensearch.client.opensearch.indices.CreateIndexRequest; +import org.opensearch.client.opensearch.indices.DeleteIndexRequest; import org.opensearch.client.opensearch.indices.ExistsRequest; import org.opensearch.client.opensearch.indices.IndexSettings; @@ -152,8 +153,12 @@ public class PcapParserThread implements Runnable { * @param jsonArray */ private void uploadToOpenSearch(JSONArray jsonArray) { + String pcapPath = pcapEntity.getPath(); + String md5Hex = T.DigestUtil.md5Hex(T.FileUtil.file(pcapPath)); + String workspaceName = pcapEntity.getWorkspace().getName(); - String indexName = String.format("workspace-%s", workspaceName); + String indexName = String.format("workspace-%s-%s", workspaceName, md5Hex); + try { // check if index exists boolean indexExists = openSearchClient.indices() @@ -162,23 +167,25 @@ public class PcapParserThread implements Runnable { if (log.isDebugEnabled()) { log.debug("[uploadToOpenSearch] [index: {}] [exists: {}]", indexName, indexExists); } - // if index not exists, create index with default settings - if (!indexExists) { - openSearchClient.indices().create( - new CreateIndexRequest.Builder() - .index(indexName) - .settings(new IndexSettings.Builder().build()) - .build() - ); - log.debug("[uploadToOpenSearch] [index: {}] [created]", indexName); + // if index exists, delete + if (indexExists) { + openSearchClient.indices().delete(new DeleteIndexRequest.Builder().index(indexName).build()); + log.debug("[uploadToOpenSearch] [index: {}] [deleted]", indexName); } + // create index with default settings + openSearchClient.indices().create( + new CreateIndexRequest.Builder() + .index(indexName) + .settings(new IndexSettings.Builder().build()) + .build() + ); + // upload data in bulk BulkRequest.Builder br = new BulkRequest.Builder(); - String pcapId = pcapEntity.getId(); for (int i = 0; i < jsonArray.size(); i++) { JSONObject jsonObject = (JSONObject) jsonArray.get(i); - String id = pcapId + "-" + String.valueOf(i); + String id = String.valueOf(i); br.operations(op -> op.index( idx -> idx.index(indexName) .id(id)