From 9a5bdabec220fb9f54cd37992859e09ef297f3e9 Mon Sep 17 00:00:00 2001 From: Przemyslaw Witek Date: Thu, 18 May 2023 15:49:10 +0200 Subject: [PATCH 1/3] [Transform] Call listener in order to prevent the request from hanging --- .../integration/TransformUpdateIT.java | 24 +++++++++++++++++++ .../TransportUpdateTransformAction.java | 2 ++ 2 files changed, 26 insertions(+) diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java index 3ea469c405957..7e222d1a1720d 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java @@ -15,6 +15,7 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; import org.elasticsearch.core.Strings; +import org.elasticsearch.xpack.core.transform.transforms.SettingsConfig; import org.junit.Before; import java.io.IOException; @@ -23,6 +24,7 @@ import java.util.concurrent.TimeUnit; import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.is; public class TransformUpdateIT extends TransformRestTestCase { @@ -148,6 +150,28 @@ public void testUpdateTransferRightsSecondaryAuthHeaders() throws Exception { updateTransferRightsTester(true); } + public void testUpdateThatChangesSettingsButNotHeaders() throws Exception { + String transformId = "test_update_that_changes_settings"; + String destIndex = transformId + "-dest"; + + // Create the transform + createPivotReviewsTransform(transformId, destIndex, null, null, null); + + final Request updateTransformRequest = createRequestWithAuth( + "POST", + getTransformEndpoint() + transformId + "/_update", + null + ); + updateTransformRequest.setJsonEntity(""" + { "settings": { "max_page_search_size": 123 } }"""); + + // Update the transform's settings + Map updatedConfig = entityAsMap(client().performRequest(updateTransformRequest)); + + // Verify that the settings got updated + assertThat(updatedConfig.get("settings"), is(equalTo(Map.of("max_page_search_size", 123)))); + } + private void updateTransferRightsTester(boolean useSecondaryAuthHeaders) throws Exception { String transformId = "transform1"; // Note: Due to a bug the transform does not fail to start after deleting the user and role, therefore invalidating diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpdateTransformAction.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpdateTransformAction.java index adb073d888699..47464ba5e8389 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpdateTransformAction.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportUpdateTransformAction.java @@ -205,6 +205,8 @@ protected void doExecute(Task task, Request request, ActionListener li authState, ActionListener.wrap(aVoid -> listener.onResponse(new Response(updatedConfig)), listener::onFailure) ); + } else { + listener.onResponse(new Response(updatedConfig)); } } else { listener.onResponse(new Response(updatedConfig)); From 3d434250977a79355c5db20604f0220e6f6c8dad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Przemys=C5=82aw=20Witek?= Date: Thu, 18 May 2023 15:52:38 +0200 Subject: [PATCH 2/3] Update docs/changelog/96221.yaml --- docs/changelog/96221.yaml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 docs/changelog/96221.yaml diff --git a/docs/changelog/96221.yaml b/docs/changelog/96221.yaml new file mode 100644 index 0000000000000..8df71102071de --- /dev/null +++ b/docs/changelog/96221.yaml @@ -0,0 +1,5 @@ +pr: 96221 +summary: Call listener in order to prevent the request from hanging +area: Transform +type: bug +issues: [] From bbf0f27ff2e954b20cb374e5d18dc7556483e922 Mon Sep 17 00:00:00 2001 From: Przemyslaw Witek Date: Thu, 18 May 2023 15:53:29 +0200 Subject: [PATCH 3/3] Apply spotless --- .../xpack/transform/integration/TransformUpdateIT.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java index 7e222d1a1720d..b554fe3173b79 100644 --- a/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java +++ b/x-pack/plugin/transform/qa/single-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/transform/integration/TransformUpdateIT.java @@ -15,7 +15,6 @@ import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.support.XContentMapValues; import org.elasticsearch.core.Strings; -import org.elasticsearch.xpack.core.transform.transforms.SettingsConfig; import org.junit.Before; import java.io.IOException; @@ -157,11 +156,7 @@ public void testUpdateThatChangesSettingsButNotHeaders() throws Exception { // Create the transform createPivotReviewsTransform(transformId, destIndex, null, null, null); - final Request updateTransformRequest = createRequestWithAuth( - "POST", - getTransformEndpoint() + transformId + "/_update", - null - ); + Request updateTransformRequest = createRequestWithAuth("POST", getTransformEndpoint() + transformId + "/_update", null); updateTransformRequest.setJsonEntity(""" { "settings": { "max_page_search_size": 123 } }""");