diff --git a/src/main/java/net/geedge/asw/module/runner/service/impl/PcapServiceImpl.java b/src/main/java/net/geedge/asw/module/runner/service/impl/PcapServiceImpl.java index d59cb03..e984143 100644 --- a/src/main/java/net/geedge/asw/module/runner/service/impl/PcapServiceImpl.java +++ b/src/main/java/net/geedge/asw/module/runner/service/impl/PcapServiceImpl.java @@ -426,8 +426,28 @@ public class PcapServiceImpl extends ServiceImpl implements if (log.isDebugEnabled()) { log.debug("[generateKibanaDashboardUrl] [dashboard: {}] [exists: {}]", dashboardName, dashboardExists); } - // delete index-patten - kibanaClient.deleteIndexPattern(token, workspaceId, true); + + // check if index-pattern exists + JSONObject indexPattern = kibanaClient.findIndexPattern(token, "index-pattern", indexName); + JSONArray savedObjects = indexPattern.getJSONArray("saved_objects"); + + boolean indexExists = savedObjects.stream() + .filter(obj -> { + JSONObject attributes = ((JSONObject) obj).getJSONObject("attributes"); + if (T.ObjectUtil.isEmpty(attributes)) return false; + String title = attributes.getString("title"); + return T.StrUtil.equals(indexName, title); + }) + .findFirst() + .isPresent(); + + if (indexExists){ + // delete index-pattern + String indexId = savedObjects.stream().map(x -> { + return ((JSONObject) x).getString("id"); + }).findFirst().get(); + kibanaClient.deleteIndexPattern(token, indexId, true); + } // import dashboard Map params = T.MapUtil.builder()