diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/ml/datafeed/DatafeedUpdate.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/ml/datafeed/DatafeedUpdate.java index 15598de91d468..96c4d9b2b9f78 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/ml/datafeed/DatafeedUpdate.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/ml/datafeed/DatafeedUpdate.java @@ -287,6 +287,7 @@ public Builder(DatafeedUpdate config) { this.delayedDataCheckConfig = config.delayedDataCheckConfig; } + @Deprecated public Builder setJobId(String jobId) { this.jobId = jobId; return this; diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/MachineLearningIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/MachineLearningIT.java index 61b414509cf91..6376c1f91353e 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/MachineLearningIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/MachineLearningIT.java @@ -478,6 +478,11 @@ public void testUpdateDatafeed_UpdatingJobIdIsDeprecated() throws Exception { DatafeedConfig datafeedConfig = DatafeedConfig.builder(datafeedId, jobId).setIndices("some_data_index").build(); execute(new PutDatafeedRequest(datafeedConfig), machineLearningClient::putDatafeed, machineLearningClient::putDatafeedAsync); + DatafeedUpdate datafeedUpdateWithUnchangedJobId = DatafeedUpdate.builder(datafeedId).setJobId(jobId).build(); + execute(new UpdateDatafeedRequest(datafeedUpdateWithUnchangedJobId), + machineLearningClient::updateDatafeed, + machineLearningClient::updateDatafeedAsync); + DatafeedUpdate datafeedUpdateWithChangedJobId = DatafeedUpdate.builder(datafeedId).setJobId(anotherJobId).build(); WarningFailureException exception = expectThrows( WarningFailureException.class, diff --git a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdate.java b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdate.java index dab9bf1180ffa..1c7d6e46b0a92 100644 --- a/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdate.java +++ b/x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ml/datafeed/DatafeedUpdate.java @@ -110,9 +110,6 @@ private DatafeedUpdate(String id, String jobId, TimeValue queryDelay, TimeValue this.scrollSize = scrollSize; this.chunkingConfig = chunkingConfig; this.delayedDataCheckConfig = delayedDataCheckConfig; - if (jobId != null) { - deprecationLogger.deprecated(DEPRECATION_MESSAGE_ON_JOB_ID_UPDATE); - } } public DatafeedUpdate(StreamInput in) throws IOException { @@ -304,6 +301,9 @@ public DatafeedConfig apply(DatafeedConfig datafeedConfig, Map h DatafeedConfig.Builder builder = new DatafeedConfig.Builder(datafeedConfig); if (jobId != null) { + if (datafeedConfig.getJobId() != null && datafeedConfig.getJobId().equals(jobId) == false) { + deprecationLogger.deprecated(DEPRECATION_MESSAGE_ON_JOB_ID_UPDATE); + } builder.setJobId(jobId); } if (queryDelay != null) { diff --git a/x-pack/plugin/src/test/resources/rest-api-spec/test/ml/datafeeds_crud.yml b/x-pack/plugin/src/test/resources/rest-api-spec/test/ml/datafeeds_crud.yml index 91722dded5aa3..2ae53b56926f5 100644 --- a/x-pack/plugin/src/test/resources/rest-api-spec/test/ml/datafeeds_crud.yml +++ b/x-pack/plugin/src/test/resources/rest-api-spec/test/ml/datafeeds_crud.yml @@ -215,6 +215,16 @@ setup: "indexes":["index-foo"], "scroll_size": 2000 } + - match: { job_id: "datafeeds-crud-1" } + + - do: + ml.update_datafeed: + datafeed_id: test-datafeed-1 + body: > + { + "job_id": "datafeeds-crud-1" + } + - match: { job_id: "datafeeds-crud-1" } - do: warnings: