diff --git a/src/main/java/org/opensearch/timeseries/indices/IndexManagement.java b/src/main/java/org/opensearch/timeseries/indices/IndexManagement.java index 57e25fb79..39b64c0a9 100644 --- a/src/main/java/org/opensearch/timeseries/indices/IndexManagement.java +++ b/src/main/java/org/opensearch/timeseries/indices/IndexManagement.java @@ -1052,6 +1052,14 @@ public void initFlattenedResultIndex(String flattenedResultIndexAlias, ActionLis })); } + public String getFlattenedResultIndexAlias(String indexOrAliasName, String configId) { + return indexOrAliasName + "_flattened_" + configId.toLowerCase(Locale.ROOT); + } + + public String getFlattenResultIndexIngestPipelineId(String configId) { + return "flatten_result_index_ingest_pipeline" + configId.toLowerCase(Locale.ROOT); + } + public void validateCustomIndexForBackendJob( String resultIndexOrAlias, String securityLogId, diff --git a/src/main/java/org/opensearch/timeseries/rest/handler/AbstractTimeSeriesActionHandler.java b/src/main/java/org/opensearch/timeseries/rest/handler/AbstractTimeSeriesActionHandler.java index 69cf0ddcc..61c47888d 100644 --- a/src/main/java/org/opensearch/timeseries/rest/handler/AbstractTimeSeriesActionHandler.java +++ b/src/main/java/org/opensearch/timeseries/rest/handler/AbstractTimeSeriesActionHandler.java @@ -454,14 +454,6 @@ protected void prepareConfigIndexing(boolean indexingDryRun, ActionListener l } } - private String getFlattenedResultIndexAlias(String configId) { - return config.getCustomResultIndexOrAlias() + "_flattened_" + configId.toLowerCase(Locale.ROOT); - } - - private String getFlattenResultIndexIngestPipelineId(String configId) { - return "flatten_result_index_ingest_pipeline" + configId.toLowerCase(Locale.ROOT); - } - private void handlePutRequest(boolean indexingDryRun, ActionListener listener) { handler.confirmJobRunning(clusterService, client, id, listener, () -> { handleFlattenResultIndexMappingUpdate(listener); @@ -474,8 +466,9 @@ private void handlePostRequest(boolean indexingDryRun, ActionListener listene if (shouldHandleFlattening(indexingDryRun, createConfigResponse)) { IndexAnomalyDetectorResponse response = (IndexAnomalyDetectorResponse) createConfigResponse; String configId = response.getId(); - String flattenedResultIndexAlias = getFlattenedResultIndexAlias(configId); - String pipelineId = getFlattenResultIndexIngestPipelineId(configId); + String flattenedResultIndexAlias = timeSeriesIndices + .getFlattenedResultIndexAlias(config.getCustomResultIndexOrAlias(), configId); + String pipelineId = timeSeriesIndices.getFlattenResultIndexIngestPipelineId(configId); timeSeriesIndices .initFlattenedResultIndex( @@ -504,8 +497,8 @@ private boolean shouldHandleFlattening(boolean indexingDryRun, Object createConf } protected void setupIngestPipeline(String configId, ActionListener listener) { - String flattenedResultIndexAlias = getFlattenedResultIndexAlias(configId); - String pipelineId = getFlattenResultIndexIngestPipelineId(configId); + String flattenedResultIndexAlias = timeSeriesIndices.getFlattenedResultIndexAlias(config.getCustomResultIndexOrAlias(), configId); + String pipelineId = timeSeriesIndices.getFlattenResultIndexIngestPipelineId(configId); try { BytesReference pipelineSource = createPipelineDefinition(flattenedResultIndexAlias); @@ -588,7 +581,7 @@ private void handleFlattenResultIndexMappingUpdate(ActionListener listener) { if (config.getFlattenResultIndexMapping() != null && config.getFlattenResultIndexMapping()) { setupIngestPipeline(id, listener); } else { - String pipelineId = getFlattenResultIndexIngestPipelineId(config.getId()); + String pipelineId = timeSeriesIndices.getFlattenResultIndexIngestPipelineId(config.getId()); client.admin().cluster().deletePipeline(new DeletePipelineRequest(pipelineId), new ActionListener() { @Override diff --git a/src/test/java/org/opensearch/ad/model/AnomalyDetectorTests.java b/src/test/java/org/opensearch/ad/model/AnomalyDetectorTests.java index 4bc0e6b9e..bc634a869 100644 --- a/src/test/java/org/opensearch/ad/model/AnomalyDetectorTests.java +++ b/src/test/java/org/opensearch/ad/model/AnomalyDetectorTests.java @@ -1007,7 +1007,7 @@ public void testParseAnomalyDetector_withCustomIndex_withFlattenResultIndexMappi + "\"aggregation_query\":{\"XzewX\":{\"value_count\":{\"field\":\"ok\"}}}}],\"recency_emphasis\":3342," + "\"history\":62,\"last_update_time\":1717192049845,\"category_field\":[\"Tcqcb\"],\"result_index\":" + "\"opensearch-ad-plugin-result-test\",\"imputation_option\":{\"method\":\"ZERO\"},\"suggested_seasonality\":64,\"detection_interval\":{\"period\":" - + "{\"interval\":5,\"unit\":\"Minutes\"}},\"detector_type\":\"MULTI_ENTITY\",\"rules\":[],\"flatten_result_index_mapping\":true}"; + + "{\"interval\":5,\"unit\":\"Minutes\"}},\"detector_type\":\"MULTI_ENTITY\",\"rules\":[],\"flatten_custom_result_index\":true}"; AnomalyDetector parsedDetector = AnomalyDetector.parse(TestHelpers.parser(detectorString), "id", 1L, null, null); assertEquals(true, (boolean) parsedDetector.getFlattenResultIndexMapping()); }