Skip to content

Commit c3c8e3e

Browse files
committed
Fix rest test
1 parent 0ffa8cd commit c3c8e3e

File tree

12 files changed

+50
-12
lines changed

12 files changed

+50
-12
lines changed

Diff for: test/external-modules/esql-heap-attack/src/javaRestTest/java/org/elasticsearch/xpack/esql/heap_attack/Clusters.java

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ static ElasticsearchCluster buildCluster() {
2121
.module("test-esql-heap-attack")
2222
.setting("xpack.security.enabled", "false")
2323
.setting("xpack.license.self_generated.type", "trial")
24+
.setting("esql.query.allow_partial_results", "false")
2425
.jvmArg("-Xmx512m");
2526
String javaVersion = JvmInfo.jvmInfo().version();
2627
if (javaVersion.equals("20") || javaVersion.equals("21")) {

Diff for: x-pack/plugin/build.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ tasks.named("yamlRestCompatTestTransform").configure({ task ->
124124
task.skipTest("ml/post_data/Test POST data job api, flush, close and verify DataCounts doc", "Flush API is deprecated")
125125
task.replaceValueInMatch("Size", 49, "Test flamegraph from profiling-events")
126126
task.replaceValueInMatch("Size", 49, "Test flamegraph from test-events")
127+
task.skipTest("esql/63_enrich_int_range/Invalid age as double", "TODO: require disable allow_partial_results")
127128
})
128129

129130
tasks.named('yamlRestCompatTest').configure {

Diff for: x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/EsqlRestValidationIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,6 @@ private RestClient remoteClusterClient() throws IOException {
8383

8484
@Before
8585
public void skipTestOnOldVersions() {
86-
assumeTrue("skip on old versions", Clusters.localClusterVersion().equals(Version.V_8_16_0));
86+
assumeTrue("skip on old versions", Clusters.localClusterVersion().equals(Version.V_8_19_0));
8787
}
8888
}

Diff for: x-pack/plugin/esql/qa/server/multi-clusters/src/javaRestTest/java/org/elasticsearch/xpack/esql/ccq/RequestIndexFilteringIT.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.carrotsearch.randomizedtesting.annotations.ThreadLeakFilters;
1111

1212
import org.apache.http.HttpHost;
13+
import org.elasticsearch.Version;
1314
import org.elasticsearch.client.Request;
1415
import org.elasticsearch.client.ResponseException;
1516
import org.elasticsearch.client.RestClient;
@@ -87,6 +88,9 @@ protected String from(String... indexName) {
8788

8889
@Override
8990
public Map<String, Object> runEsql(RestEsqlTestCase.RequestObjectBuilder requestObject) throws IOException {
91+
if (requestObject.allowPartialResults() != null) {
92+
assumeTrue("require allow_partial_results on local cluster", Clusters.localClusterVersion().equals(Version.V_8_19_0));
93+
}
9094
requestObject.includeCCSMetadata(true);
9195
return super.runEsql(requestObject);
9296
}

Diff for: x-pack/plugin/esql/qa/server/single-node/src/javaRestTest/java/org/elasticsearch/xpack/esql/qa/single_node/RestEsqlIT.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void testInvalidPragma() throws IOException {
111111
request.setJsonEntity("{\"f\":" + i + "}");
112112
assertOK(client().performRequest(request));
113113
}
114-
RequestObjectBuilder builder = requestObjectBuilder().query("from test-index | limit 1 | keep f");
114+
RequestObjectBuilder builder = requestObjectBuilder().query("from test-index | limit 1 | keep f").allowPartialResults(false);
115115
builder.pragmas(Settings.builder().put("data_partitioning", "invalid-option").build());
116116
ResponseException re = expectThrows(ResponseException.class, () -> runEsqlSync(builder));
117117
assertThat(EntityUtils.toString(re.getResponse().getEntity()), containsString("No enum constant"));

Diff for: x-pack/plugin/esql/qa/server/src/main/java/org/elasticsearch/xpack/esql/qa/rest/EsqlRestValidationTestCase.java

+1
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ private Request createRequest(String indexName) throws IOException {
129129
final var request = new Request("POST", "/_query");
130130
request.addParameter("error_trace", "true");
131131
request.addParameter("pretty", "true");
132+
request.addParameter("allow_partial_results", Boolean.toString(false));
132133
request.setJsonEntity(
133134
Strings.toString(JsonXContent.contentBuilder().startObject().field("query", "from " + indexName).endObject())
134135
);

Diff for: x-pack/plugin/esql/qa/server/src/main/java/org/elasticsearch/xpack/esql/qa/rest/RequestIndexFilteringTestCase.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -198,17 +198,26 @@ public void testIndicesDontExist() throws IOException {
198198
int docsTest1 = 0; // we are interested only in the created index, not necessarily that it has data
199199
indexTimestampData(docsTest1, "test1", "2024-11-26", "id1");
200200

201-
ResponseException e = expectThrows(ResponseException.class, () -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo"))));
201+
ResponseException e = expectThrows(
202+
ResponseException.class,
203+
() -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo")).allowPartialResults(false))
204+
);
202205
assertEquals(400, e.getResponse().getStatusLine().getStatusCode());
203206
assertThat(e.getMessage(), containsString("verification_exception"));
204207
assertThat(e.getMessage(), anyOf(containsString("Unknown index [foo]"), containsString("Unknown index [remote_cluster:foo]")));
205208

206-
e = expectThrows(ResponseException.class, () -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo*"))));
209+
e = expectThrows(
210+
ResponseException.class,
211+
() -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo*")).allowPartialResults(false))
212+
);
207213
assertEquals(400, e.getResponse().getStatusLine().getStatusCode());
208214
assertThat(e.getMessage(), containsString("verification_exception"));
209215
assertThat(e.getMessage(), anyOf(containsString("Unknown index [foo*]"), containsString("Unknown index [remote_cluster:foo*]")));
210216

211-
e = expectThrows(ResponseException.class, () -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo", "test1"))));
217+
e = expectThrows(
218+
ResponseException.class,
219+
() -> runEsql(timestampFilter("gte", "2020-01-01").query(from("foo", "test1")).allowPartialResults(false))
220+
);
212221
assertEquals(404, e.getResponse().getStatusLine().getStatusCode());
213222
assertThat(e.getMessage(), containsString("index_not_found_exception"));
214223
assertThat(e.getMessage(), anyOf(containsString("no such index [foo]"), containsString("no such index [remote_cluster:foo]")));
@@ -217,7 +226,7 @@ public void testIndicesDontExist() throws IOException {
217226
var pattern = from("test1");
218227
e = expectThrows(
219228
ResponseException.class,
220-
() -> runEsql(timestampFilter("gte", "2020-01-01").query(pattern + " | LOOKUP JOIN foo ON id1"))
229+
() -> runEsql(timestampFilter("gte", "2020-01-01").query(pattern + " | LOOKUP JOIN foo ON id1").allowPartialResults(false))
221230
);
222231
assertEquals(400, e.getResponse().getStatusLine().getStatusCode());
223232
assertThat(

Diff for: x-pack/plugin/esql/qa/server/src/main/java/org/elasticsearch/xpack/esql/qa/rest/RestEsqlTestCase.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public static class RequestObjectBuilder {
132132
private Boolean includeCCSMetadata = null;
133133

134134
private CheckedConsumer<XContentBuilder, IOException> filter;
135-
private Boolean allPartialResults = null;
135+
private Boolean allowPartialResults = null;
136136

137137
public RequestObjectBuilder() throws IOException {
138138
this(randomFrom(XContentType.values()));
@@ -210,11 +210,15 @@ public RequestObjectBuilder filter(CheckedConsumer<XContentBuilder, IOException>
210210
return this;
211211
}
212212

213-
public RequestObjectBuilder allPartialResults(boolean allPartialResults) {
214-
this.allPartialResults = allPartialResults;
213+
public RequestObjectBuilder allowPartialResults(boolean allowPartialResults) {
214+
this.allowPartialResults = allowPartialResults;
215215
return this;
216216
}
217217

218+
public Boolean allowPartialResults() {
219+
return allowPartialResults;
220+
}
221+
218222
public RequestObjectBuilder build() throws IOException {
219223
if (isBuilt == false) {
220224
if (tables != null) {
@@ -1369,8 +1373,8 @@ protected static Request prepareRequestWithOptions(RequestObjectBuilder requestO
13691373
requestObject.build();
13701374
Request request = prepareRequest(mode);
13711375
String mediaType = attachBody(requestObject, request);
1372-
if (requestObject.allPartialResults != null) {
1373-
request.addParameter("allow_partial_results", String.valueOf(requestObject.allPartialResults));
1376+
if (requestObject.allowPartialResults != null) {
1377+
request.addParameter("allow_partial_results", String.valueOf(requestObject.allowPartialResults));
13741378
}
13751379

13761380
RequestOptions.Builder options = request.getOptions().toBuilder();

Diff for: x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/action/EsqlCapabilities.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -932,7 +932,12 @@ public enum Cap {
932932
/**
933933
* Support for sorting when aggregate_metric_doubles are present
934934
*/
935-
AGGREGATE_METRIC_DOUBLE_SORTING(AGGREGATE_METRIC_DOUBLE_FEATURE_FLAG);
935+
AGGREGATE_METRIC_DOUBLE_SORTING(AGGREGATE_METRIC_DOUBLE_FEATURE_FLAG),
936+
937+
/**
938+
* Support and enable partial results by default
939+
*/
940+
ESQL_PARTIAL_RESULTS;
936941

937942
private final boolean enabled;
938943

Diff for: x-pack/plugin/security/qa/multi-cluster/src/javaRestTest/java/org/elasticsearch/xpack/remotecluster/CrossClusterEsqlRCS1MissingIndicesIT.java

+2
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public class CrossClusterEsqlRCS1MissingIndicesIT extends AbstractRemoteClusterS
4747
.apply(commonClusterConfig)
4848
.setting("remote_cluster.port", "0")
4949
.setting("xpack.ml.enabled", "false")
50+
.setting("esql.query.allow_partial_results", "false")
5051
.setting("xpack.security.remote_cluster_server.ssl.enabled", () -> String.valueOf(SSL_ENABLED_REF.get()))
5152
.setting("xpack.security.remote_cluster_server.ssl.key", "remote-cluster.key")
5253
.setting("xpack.security.remote_cluster_server.ssl.certificate", "remote-cluster.crt")
@@ -62,6 +63,7 @@ public class CrossClusterEsqlRCS1MissingIndicesIT extends AbstractRemoteClusterS
6263
.module("x-pack-enrich")
6364
.apply(commonClusterConfig)
6465
.setting("xpack.ml.enabled", "false")
66+
.setting("esql.query.allow_partial_results", "false")
6567
.setting("xpack.security.remote_cluster_client.ssl.enabled", () -> String.valueOf(SSL_ENABLED_REF.get()))
6668
.build();
6769
}

Diff for: x-pack/plugin/security/qa/multi-cluster/src/javaRestTest/java/org/elasticsearch/xpack/remotecluster/RemoteClusterSecurityEsqlIT.java

+2
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ public class RemoteClusterSecurityEsqlIT extends AbstractRemoteClusterSecurityTe
7878
.apply(commonClusterConfig)
7979
.setting("remote_cluster.port", "0")
8080
.setting("xpack.ml.enabled", "false")
81+
.setting("esql.query.allow_partial_results", "false")
8182
.setting("xpack.security.remote_cluster_server.ssl.enabled", () -> String.valueOf(SSL_ENABLED_REF.get()))
8283
.setting("xpack.security.remote_cluster_server.ssl.key", "remote-cluster.key")
8384
.setting("xpack.security.remote_cluster_server.ssl.certificate", "remote-cluster.crt")
@@ -97,6 +98,7 @@ public class RemoteClusterSecurityEsqlIT extends AbstractRemoteClusterSecurityTe
9798
.module("ingest-common")
9899
.apply(commonClusterConfig)
99100
.setting("xpack.ml.enabled", "false")
101+
.setting("esql.query.allow_partial_results", "false")
100102
.setting("xpack.security.remote_cluster_client.ssl.enabled", () -> String.valueOf(SSL_ENABLED_REF.get()))
101103
.setting("xpack.security.remote_cluster_client.ssl.certificate_authorities", "remote-cluster-ca.crt")
102104
.setting("xpack.security.authc.token.enabled", "true")

Diff for: x-pack/plugin/src/yamlRestTest/resources/rest-api-spec/test/esql/63_enrich_int_range.yml

+9
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,17 @@ teardown:
192192

193193
---
194194
"Invalid age as double":
195+
- requires:
196+
test_runner_features: [ capabilities ]
197+
capabilities:
198+
- method: POST
199+
path: /_query
200+
parameters: [ ]
201+
capabilities: [ esql_allow_partial_results ]
202+
reason: "disable partial_results"
195203
- do:
196204
catch: /ENRICH range and input types are incompatible. range\[INTEGER\], input\[DOUBLE\]/
197205
esql.query:
206+
allow_partial_results: false
198207
body:
199208
query: 'FROM employees | ENRICH ages-policy ON salary | STATS count=COUNT(*) BY description | SORT count DESC, description ASC'

0 commit comments

Comments
 (0)