diff --git a/CHANGELOG.md b/CHANGELOG.md index e07e9334e..bed2483f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ Inspired from [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) ### Refactoring - Updates search handler to consume resource authz and updates resource authz related tests ([#1546](https://github.com/opensearch-project/anomaly-detection/pull/1546)) +- Adds resource types to DocRequests ([#1566](https://github.com/opensearch-project/anomaly-detection/pull/1566)) ## [Unreleased 2.x](https://github.com/opensearch-project/anomaly-detection/compare/2.19...2.x) ### Features diff --git a/src/main/java/org/opensearch/ad/transport/IndexAnomalyDetectorRequest.java b/src/main/java/org/opensearch/ad/transport/IndexAnomalyDetectorRequest.java index 20bd3a704..a493031de 100644 --- a/src/main/java/org/opensearch/ad/transport/IndexAnomalyDetectorRequest.java +++ b/src/main/java/org/opensearch/ad/transport/IndexAnomalyDetectorRequest.java @@ -17,6 +17,7 @@ import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; import org.opensearch.action.support.WriteRequest; +import org.opensearch.ad.constant.ADCommonName; import org.opensearch.ad.indices.ADIndex; import org.opensearch.ad.model.AnomalyDetector; import org.opensearch.common.unit.TimeValue; @@ -147,6 +148,11 @@ public ActionRequestValidationException validate() { return null; } + @Override + public String type() { + return ADCommonName.AD_RESOURCE_TYPE; + } + @Override public String index() { return ADIndex.CONFIG.getIndexName(); diff --git a/src/main/java/org/opensearch/ad/transport/PreviewAnomalyDetectorRequest.java b/src/main/java/org/opensearch/ad/transport/PreviewAnomalyDetectorRequest.java index 24e07a7d1..9dc5cb5a5 100644 --- a/src/main/java/org/opensearch/ad/transport/PreviewAnomalyDetectorRequest.java +++ b/src/main/java/org/opensearch/ad/transport/PreviewAnomalyDetectorRequest.java @@ -17,6 +17,7 @@ import org.opensearch.action.ActionRequest; import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; +import org.opensearch.ad.constant.ADCommonName; import org.opensearch.ad.indices.ADIndex; import org.opensearch.ad.model.AnomalyDetector; import org.opensearch.core.common.io.stream.StreamInput; @@ -76,6 +77,11 @@ public ActionRequestValidationException validate() { return null; } + @Override + public String type() { + return ADCommonName.AD_RESOURCE_TYPE; + } + @Override public String index() { return ADIndex.CONFIG.getIndexName(); diff --git a/src/main/java/org/opensearch/forecast/transport/IndexForecasterRequest.java b/src/main/java/org/opensearch/forecast/transport/IndexForecasterRequest.java index e002a513a..a560d1920 100644 --- a/src/main/java/org/opensearch/forecast/transport/IndexForecasterRequest.java +++ b/src/main/java/org/opensearch/forecast/transport/IndexForecasterRequest.java @@ -20,6 +20,7 @@ import org.opensearch.common.unit.TimeValue; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.forecast.constant.ForecastCommonName; import org.opensearch.forecast.indices.ForecastIndex; import org.opensearch.forecast.model.Forecaster; import org.opensearch.rest.RestRequest; @@ -144,6 +145,11 @@ public ActionRequestValidationException validate() { return null; } + @Override + public String type() { + return ForecastCommonName.FORECAST_RESOURCE_TYPE; + } + @Override public String index() { return ForecastIndex.CONFIG.getIndexName(); diff --git a/src/main/java/org/opensearch/timeseries/transport/DeleteConfigRequest.java b/src/main/java/org/opensearch/timeseries/transport/DeleteConfigRequest.java index a48f11a4f..9752f5258 100644 --- a/src/main/java/org/opensearch/timeseries/transport/DeleteConfigRequest.java +++ b/src/main/java/org/opensearch/timeseries/transport/DeleteConfigRequest.java @@ -18,9 +18,12 @@ import org.opensearch.action.ActionRequest; import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; +import org.opensearch.ad.constant.ADCommonName; +import org.opensearch.ad.indices.ADIndex; import org.opensearch.core.common.Strings; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.forecast.constant.ForecastCommonName; import org.opensearch.timeseries.constant.CommonMessages; public class DeleteConfigRequest extends ActionRequest implements DocRequest { @@ -60,6 +63,13 @@ public ActionRequestValidationException validate() { return validationException; } + @Override + public String type() { + return configIndex.startsWith(ADIndex.CONFIG.getIndexName()) + ? ADCommonName.AD_RESOURCE_TYPE + : ForecastCommonName.FORECAST_RESOURCE_TYPE; + } + @Override public String index() { return configIndex; diff --git a/src/main/java/org/opensearch/timeseries/transport/GetConfigRequest.java b/src/main/java/org/opensearch/timeseries/transport/GetConfigRequest.java index 6b54dd45c..755d69dce 100644 --- a/src/main/java/org/opensearch/timeseries/transport/GetConfigRequest.java +++ b/src/main/java/org/opensearch/timeseries/transport/GetConfigRequest.java @@ -18,10 +18,13 @@ import org.opensearch.action.ActionRequest; import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; +import org.opensearch.ad.constant.ADCommonName; +import org.opensearch.ad.indices.ADIndex; import org.opensearch.core.common.io.stream.InputStreamStreamInput; import org.opensearch.core.common.io.stream.OutputStreamStreamOutput; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.forecast.constant.ForecastCommonName; import org.opensearch.timeseries.model.Entity; public class GetConfigRequest extends ActionRequest implements DocRequest { @@ -145,6 +148,13 @@ public static GetConfigRequest fromActionRequest(final ActionRequest actionReque } } + @Override + public String type() { + return configIndex.startsWith(ADIndex.CONFIG.getIndexName()) + ? ADCommonName.AD_RESOURCE_TYPE + : ForecastCommonName.FORECAST_RESOURCE_TYPE; + } + @Override public String index() { return configIndex; diff --git a/src/main/java/org/opensearch/timeseries/transport/JobRequest.java b/src/main/java/org/opensearch/timeseries/transport/JobRequest.java index 80c21dc22..b97f80c23 100644 --- a/src/main/java/org/opensearch/timeseries/transport/JobRequest.java +++ b/src/main/java/org/opensearch/timeseries/transport/JobRequest.java @@ -16,8 +16,11 @@ import org.opensearch.action.ActionRequest; import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; +import org.opensearch.ad.constant.ADCommonName; +import org.opensearch.ad.indices.ADIndex; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.forecast.constant.ForecastCommonName; import org.opensearch.timeseries.model.DateRange; public class JobRequest extends ActionRequest implements DocRequest { @@ -102,6 +105,13 @@ public ActionRequestValidationException validate() { return null; } + @Override + public String type() { + return configIndex.startsWith(ADIndex.CONFIG.getIndexName()) + ? ADCommonName.AD_RESOURCE_TYPE + : ForecastCommonName.FORECAST_RESOURCE_TYPE; + } + @Override public String index() { return configIndex; diff --git a/src/main/java/org/opensearch/timeseries/transport/SuggestConfigParamRequest.java b/src/main/java/org/opensearch/timeseries/transport/SuggestConfigParamRequest.java index 34ee49e1d..18b642728 100644 --- a/src/main/java/org/opensearch/timeseries/transport/SuggestConfigParamRequest.java +++ b/src/main/java/org/opensearch/timeseries/transport/SuggestConfigParamRequest.java @@ -16,11 +16,13 @@ import org.opensearch.action.ActionRequest; import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.DocRequest; +import org.opensearch.ad.constant.ADCommonName; import org.opensearch.ad.indices.ADIndex; import org.opensearch.ad.model.AnomalyDetector; import org.opensearch.common.unit.TimeValue; import org.opensearch.core.common.io.stream.StreamInput; import org.opensearch.core.common.io.stream.StreamOutput; +import org.opensearch.forecast.constant.ForecastCommonName; import org.opensearch.forecast.indices.ForecastIndex; import org.opensearch.forecast.model.Forecaster; import org.opensearch.timeseries.AnalysisType; @@ -85,6 +87,11 @@ public AnalysisType getContext() { return context; } + @Override + public String type() { + return context.isAD() ? ADCommonName.AD_RESOURCE_TYPE : ForecastCommonName.FORECAST_RESOURCE_TYPE; + } + @Override public String index() { if (context.isAD()) { diff --git a/src/test/java/org/opensearch/timeseries/transport/DeleteAnomalyDetectorActionTests.java b/src/test/java/org/opensearch/timeseries/transport/DeleteAnomalyDetectorActionTests.java index dd8a84de1..471cbe7ea 100644 --- a/src/test/java/org/opensearch/timeseries/transport/DeleteAnomalyDetectorActionTests.java +++ b/src/test/java/org/opensearch/timeseries/transport/DeleteAnomalyDetectorActionTests.java @@ -25,6 +25,7 @@ import org.opensearch.action.ActionRequestValidationException; import org.opensearch.action.delete.DeleteResponse; import org.opensearch.action.support.ActionFilters; +import org.opensearch.ad.constant.ADCommonName; import org.opensearch.ad.indices.ADIndex; import org.opensearch.ad.settings.AnomalyDetectorSettings; import org.opensearch.ad.task.ADTaskManager; @@ -95,6 +96,7 @@ public void testDeleteRequest() throws IOException { DeleteConfigRequest newRequest = new DeleteConfigRequest(input); Assert.assertEquals(request.getConfigID(), newRequest.getConfigID()); Assert.assertNull(newRequest.validate()); + Assert.assertEquals(newRequest.type(), ADCommonName.AD_RESOURCE_TYPE); } @Test