diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/100_avg_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/100_avg_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/100_avg_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/100_avg_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/10_histogram.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/10_histogram.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/10_histogram.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/10_histogram.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/110_max_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/110_max_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/110_max_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/110_max_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/120_min_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/120_min_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/120_min_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/120_min_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/130_sum_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/130_sum_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/130_sum_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/130_sum_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/140_value_count_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/140_value_count_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/140_value_count_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/140_value_count_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/150_stats_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/150_stats_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/150_stats_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/150_stats_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/160_extended_stats_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/160_extended_stats_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/160_extended_stats_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/160_extended_stats_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/170_cardinality_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/170_cardinality_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/170_cardinality_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/170_cardinality_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/180_percentiles_tdigest_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/180_percentiles_tdigest_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/180_percentiles_tdigest_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/180_percentiles_tdigest_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/190_percentiles_hdr_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/190_percentiles_hdr_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/190_percentiles_hdr_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/190_percentiles_hdr_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/200_top_hits.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/200_top_hits.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/200_top_hits.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/200_top_hits.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/20_terms.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/20_terms.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/20_terms.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/20_terms.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/210_top_hits_nested_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/210_top_hits_nested_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/210_top_hits_nested_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/210_top_hits_nested_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/220_filters_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/220_filters_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/220_filters_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/22_terms_disable_opt.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/22_terms_disable_opt.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/22_terms_disable_opt.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/22_terms_disable_opt.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/230_composite.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/230_composite.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/230_composite.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/230_composite.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/235_composite_sorted.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/235_composite_sorted.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/235_composite_sorted.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/235_composite_sorted.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/240_max_buckets.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/240_max_buckets.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/240_max_buckets.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/240_max_buckets.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/24_terms_flattened_field.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/24_terms_flattened_field.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/24_terms_flattened_field.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/24_terms_flattened_field.yml diff --git a/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/250_moving_fn.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/250_moving_fn.yml new file mode 100644 index 0000000000000..4e977468927f9 --- /dev/null +++ b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/250_moving_fn.yml @@ -0,0 +1,47 @@ +# There are many more tests under modules/lang-painless/...moving_fn.yml so they can use painless +--- +"Bad window": + + - skip: + version: " - 7.1.99" + reason: "calendar_interval added in 7.2" + + - do: + catch: /\[window\] must be a positive, non-zero integer\./ + search: + rest_total_hits_as_int: true + body: + size: 0 + aggs: + the_histo: + date_histogram: + field: "date" + calendar_interval: "1d" + aggs: + the_avg: + avg: + field: "value_field" + the_mov_fn: + moving_fn: + buckets_path: "the_avg" + window: -1 + script: "MovingFunctions.max(values)" + +--- +"Not under date_histo": + + - do: + catch: /moving_fn aggregation \[the_mov_fn\] must have a histogram, date_histogram or auto_date_histogram as parent but doesn't have a parent/ + search: + rest_total_hits_as_int: true + body: + size: 0 + aggs: + the_avg: + avg: + field: "value_field" + the_mov_fn: + moving_fn: + buckets_path: "the_avg" + window: 1 + script: "MovingFunctions.max(values)" diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/260_weighted_avg.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/260_weighted_avg.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/260_weighted_avg.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/260_weighted_avg.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/270_median_absolute_deviation_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/270_median_absolute_deviation_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/270_median_absolute_deviation_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/270_median_absolute_deviation_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/280_geohash_grid.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/280_geohash_grid.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/280_geohash_grid.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/280_geohash_grid.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/280_rare_terms.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/280_rare_terms.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/280_rare_terms.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/280_rare_terms.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/290_geotile_grid.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/290_geotile_grid.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/290_geotile_grid.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/290_geotile_grid.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/300_pipeline.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/300_pipeline.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/300_pipeline.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/300_pipeline.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/30_sig_terms.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/30_sig_terms.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/30_sig_terms.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/30_sig_terms.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/310_date_agg_per_day_of_week.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/310_date_agg_per_day_of_week.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/310_date_agg_per_day_of_week.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/310_date_agg_per_day_of_week.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/320_missing.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/320_missing.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/320_missing.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/320_missing.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/340_geo_distance.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/340_geo_distance.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/340_geo_distance.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/340_geo_distance.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/350_variable_width_histogram.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/350_variable_width_histogram.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/350_variable_width_histogram.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/350_variable_width_histogram.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/360_date_histogram.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/360_date_histogram.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/360_date_histogram.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/360_date_histogram.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/370_doc_count_field.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/370_doc_count_field.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/370_doc_count_field.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/370_doc_count_field.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/380_global.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/380_global.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/380_global.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/380_global.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/380_nested.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/380_nested.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/380_nested.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/380_nested.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/390_geo_bounds_centroid.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/390_geo_bounds_centroid.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/390_geo_bounds_centroid.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/390_geo_bounds_centroid.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/400_sampler.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/400_sampler.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/400_sampler.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/400_sampler.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/40_range.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/40_range.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/40_range.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/40_range.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/410_diversified_sampler.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/410_diversified_sampler.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/410_diversified_sampler.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/410_diversified_sampler.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/41_date_range.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/41_date_range.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/41_date_range.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/41_date_range.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/420_percentile_ranks_tdigest_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/420_percentile_ranks_tdigest_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/420_percentile_ranks_tdigest_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/420_percentile_ranks_tdigest_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/42_ip_range.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/42_ip_range.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/42_ip_range.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/42_ip_range.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/430_percentile_ranks_hdr_metric.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/430_percentile_ranks_hdr_metric.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/430_percentile_ranks_hdr_metric.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/430_percentile_ranks_hdr_metric.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/440_weighted_avg.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/440_weighted_avg.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/440_weighted_avg.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/440_weighted_avg.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_ip_prefix.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_ip_prefix.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_ip_prefix.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_ip_prefix.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_random_sampler.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_random_sampler.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_random_sampler.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_random_sampler.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_time_series.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_time_series.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/450_time_series.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/450_time_series.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/470_significant_texts.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/470_significant_texts.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/470_significant_texts.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/470_significant_texts.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/49_range_timezone_bug.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/49_range_timezone_bug.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/49_range_timezone_bug.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/49_range_timezone_bug.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_avg_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_avg_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_avg_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_avg_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_cumulative_sum.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_cumulative_sum.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_cumulative_sum.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_cumulative_sum.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_extended_stats_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_extended_stats_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_extended_stats_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_extended_stats_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_max_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_max_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_max_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_max_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_min_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_min_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_min_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_min_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_percentiles_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_percentiles_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_percentiles_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_percentiles_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_serial_diff.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_serial_diff.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_serial_diff.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_serial_diff.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_stats_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_stats_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_stats_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_stats_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_sum_bucket.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_sum_bucket.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/500_sum_bucket.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/500_sum_bucket.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/50_filter.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/50_filter.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/50_filter.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/50_filter.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/80_typed_keys.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/80_typed_keys.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/80_typed_keys.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/80_typed_keys.yml diff --git a/rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/90_significant_text.yml b/modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/90_significant_text.yml similarity index 100% rename from rest-api-spec/src/yamlRestTest/resources/rest-api-spec/test/search.aggregation/90_significant_text.yml rename to modules/aggregations/src/yamlRestTest/resources/rest-api-spec/test/aggregations/90_significant_text.yml diff --git a/server/src/main/java/org/elasticsearch/action/ActionListenerResponseHandler.java b/server/src/main/java/org/elasticsearch/action/ActionListenerResponseHandler.java index 6ed52445d9886..8fc2e7e0e436b 100644 --- a/server/src/main/java/org/elasticsearch/action/ActionListenerResponseHandler.java +++ b/server/src/main/java/org/elasticsearch/action/ActionListenerResponseHandler.java @@ -24,7 +24,7 @@ */ public class ActionListenerResponseHandler implements TransportResponseHandler { - private final ActionListener listener; + protected final ActionListener listener; private final Writeable.Reader reader; private final String executor; diff --git a/server/src/main/java/org/elasticsearch/action/resync/TransportResyncReplicationAction.java b/server/src/main/java/org/elasticsearch/action/resync/TransportResyncReplicationAction.java index c409339a4ff0b..fa7bef5f53924 100644 --- a/server/src/main/java/org/elasticsearch/action/resync/TransportResyncReplicationAction.java +++ b/server/src/main/java/org/elasticsearch/action/resync/TransportResyncReplicationAction.java @@ -8,6 +8,7 @@ package org.elasticsearch.action.resync; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.ActionListenerResponseHandler; import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.replication.ReplicationOperation; import org.elasticsearch.action.support.replication.ReplicationResponse; @@ -31,8 +32,6 @@ import org.elasticsearch.indices.SystemIndices; import org.elasticsearch.tasks.Task; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.transport.TransportException; -import org.elasticsearch.transport.TransportResponseHandler; import org.elasticsearch.transport.TransportService; import java.io.IOException; @@ -191,11 +190,7 @@ public void sync( new ConcreteShardRequest<>(request, primaryAllocationId, primaryTerm), parentTask, transportOptions, - new TransportResponseHandler() { - @Override - public ResyncReplicationResponse read(StreamInput in) throws IOException { - return newResponseInstance(in); - } + new ActionListenerResponseHandler<>(listener, TransportResyncReplicationAction.this::newResponseInstance) { @Override public void handleResponse(ResyncReplicationResponse response) { @@ -210,11 +205,6 @@ public void handleResponse(ResyncReplicationResponse response) { } listener.onResponse(response); } - - @Override - public void handleException(TransportException exp) { - listener.onFailure(exp); - } } ); } diff --git a/server/src/main/java/org/elasticsearch/action/support/single/instance/TransportInstanceSingleOperationAction.java b/server/src/main/java/org/elasticsearch/action/support/single/instance/TransportInstanceSingleOperationAction.java index deb584e450ae6..40cad946df763 100644 --- a/server/src/main/java/org/elasticsearch/action/support/single/instance/TransportInstanceSingleOperationAction.java +++ b/server/src/main/java/org/elasticsearch/action/support/single/instance/TransportInstanceSingleOperationAction.java @@ -9,6 +9,7 @@ package org.elasticsearch.action.support.single.instance; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.ActionListenerResponseHandler; import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.UnavailableShardsException; import org.elasticsearch.action.support.ActionFilters; @@ -38,7 +39,6 @@ import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequestHandler; import org.elasticsearch.transport.TransportRequestOptions; -import org.elasticsearch.transport.TransportResponseHandler; import org.elasticsearch.transport.TransportService; import java.io.IOException; @@ -184,29 +184,24 @@ protected void doStart(ClusterState clusterState) { request.shardId = shardIt.shardId(); DiscoveryNode node = clusterState.nodes().get(shard.currentNodeId()); - transportService.sendRequest(node, shardActionName, request, transportOptions(), new TransportResponseHandler() { - - @Override - public Response read(StreamInput in) throws IOException { - return newResponse(in); - } - - @Override - public void handleResponse(Response response) { - listener.onResponse(response); - } - - @Override - public void handleException(TransportException exp) { - final Throwable cause = exp.unwrapCause(); - // if we got disconnected from the node, or the node / shard is not in the right state (being closed) - if (cause instanceof ConnectTransportException || cause instanceof NodeClosedException || retryOnFailure(exp)) { - retry((Exception) cause); - } else { - listener.onFailure(exp); + transportService.sendRequest( + node, + shardActionName, + request, + transportOptions(), + new ActionListenerResponseHandler<>(listener, TransportInstanceSingleOperationAction.this::newResponse) { + @Override + public void handleException(TransportException exp) { + final Throwable cause = exp.unwrapCause(); + // if we got disconnected from the node, or the node / shard is not in the right state (being closed) + if (cause instanceof ConnectTransportException || cause instanceof NodeClosedException || retryOnFailure(exp)) { + retry((Exception) cause); + } else { + listener.onFailure(exp); + } } } - }); + ); } void retry(@Nullable final Exception failure) { diff --git a/server/src/main/java/org/elasticsearch/snapshots/SnapshotShardsService.java b/server/src/main/java/org/elasticsearch/snapshots/SnapshotShardsService.java index 5c8a2668d1d59..8357e34673365 100644 --- a/server/src/main/java/org/elasticsearch/snapshots/SnapshotShardsService.java +++ b/server/src/main/java/org/elasticsearch/snapshots/SnapshotShardsService.java @@ -13,6 +13,7 @@ import org.apache.lucene.index.IndexCommit; import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.ActionListenerResponseHandler; import org.elasticsearch.action.ActionResponse; import org.elasticsearch.action.ResultDeduplicator; import org.elasticsearch.cluster.ClusterChangedEvent; @@ -24,7 +25,6 @@ import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.component.AbstractLifecycleComponent; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.core.IOUtils; import org.elasticsearch.core.Nullable; @@ -47,8 +47,6 @@ import org.elasticsearch.repositories.ShardSnapshotResult; import org.elasticsearch.repositories.SnapshotShardContext; import org.elasticsearch.threadpool.ThreadPool; -import org.elasticsearch.transport.TransportException; -import org.elasticsearch.transport.TransportResponseHandler; import org.elasticsearch.transport.TransportService; import java.io.IOException; @@ -530,22 +528,7 @@ public void onFailure(Exception e) { transportService.getLocalNode(), SnapshotsService.UPDATE_SNAPSHOT_STATUS_ACTION_NAME, req, - new TransportResponseHandler() { - @Override - public ActionResponse.Empty read(StreamInput in) { - return ActionResponse.Empty.INSTANCE; - } - - @Override - public void handleResponse(ActionResponse.Empty response) { - reqListener.onResponse(null); - } - - @Override - public void handleException(TransportException exp) { - reqListener.onFailure(exp); - } - } + new ActionListenerResponseHandler<>(reqListener.map(res -> null), in -> ActionResponse.Empty.INSTANCE) ) ); } diff --git a/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java b/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java index 8f076e539e5df..253cc2ec6d24b 100644 --- a/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java +++ b/server/src/main/java/org/elasticsearch/transport/OutboundHandler.java @@ -24,6 +24,8 @@ import org.elasticsearch.common.transport.NetworkExceptionHelper; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.Nullable; +import org.elasticsearch.core.Releasable; +import org.elasticsearch.core.Releasables; import org.elasticsearch.core.TimeValue; import org.elasticsearch.threadpool.ThreadPool; @@ -100,14 +102,13 @@ void sendRequest( assert false : "request [" + request + "] has been released already"; throw new AlreadyClosedException("request [" + request + "] has been released already"); } - ActionListener listener = ActionListener.wrap(() -> { + sendMessage(channel, message, () -> { try { messageListener.onRequestSent(node, requestId, action, request, options); } finally { request.decRef(); } }); - sendMessage(channel, message, listener); } /** @@ -134,14 +135,13 @@ void sendResponse( isHandshake, compressionScheme ); - ActionListener listener = ActionListener.wrap(() -> { + sendMessage(channel, message, () -> { try { messageListener.onResponseSent(requestId, action, response); } finally { response.decRef(); } }); - sendMessage(channel, message, listener); } /** @@ -157,22 +157,35 @@ void sendErrorResponse( Version version = Version.min(this.version, nodeVersion); RemoteTransportException tx = new RemoteTransportException(nodeName, channel.getLocalAddress(), action, error); OutboundMessage.Response message = new OutboundMessage.Response(threadPool.getThreadContext(), tx, version, requestId, false, null); - ActionListener listener = ActionListener.wrap(() -> messageListener.onResponseSent(requestId, action, error)); - sendMessage(channel, message, listener); + sendMessage(channel, message, () -> messageListener.onResponseSent(requestId, action, error)); } - private void sendMessage(TcpChannel channel, OutboundMessage networkMessage, ActionListener listener) throws IOException { - final RecyclerBytesStreamOutput byteStreamOutput = new RecyclerBytesStreamOutput(recycler); - final ActionListener wrappedListener = ActionListener.runBefore(listener, byteStreamOutput::close); + private void sendMessage(TcpChannel channel, OutboundMessage networkMessage, Releasable onAfter) throws IOException { + final RecyclerBytesStreamOutput byteStreamOutput; + boolean bufferSuccess = false; + try { + byteStreamOutput = new RecyclerBytesStreamOutput(recycler); + bufferSuccess = true; + } finally { + if (bufferSuccess == false) { + Releasables.closeExpectNoException(onAfter); + } + } + final Releasable release = Releasables.wrap(byteStreamOutput, onAfter); final BytesReference message; + boolean serializeSuccess = false; try { message = networkMessage.serialize(byteStreamOutput); + serializeSuccess = true; } catch (Exception e) { logger.warn(() -> "failed to serialize outbound message [" + networkMessage + "]", e); - wrappedListener.onFailure(e); throw e; + } finally { + if (serializeSuccess == false) { + release.close(); + } } - internalSend(channel, message, networkMessage, wrappedListener); + internalSend(channel, message, networkMessage, ActionListener.wrap(release::close)); } private void internalSend( @@ -230,8 +243,7 @@ private void maybeLogSlowMessage(boolean success) { } }); } catch (RuntimeException ex) { - listener.onFailure(ex); - CloseableChannel.closeChannel(channel); + Releasables.closeExpectNoException(() -> listener.onFailure(ex), () -> CloseableChannel.closeChannel(channel)); throw ex; } } diff --git a/server/src/main/java/org/elasticsearch/transport/RemoteClusterConnection.java b/server/src/main/java/org/elasticsearch/transport/RemoteClusterConnection.java index 2d72d0056238e..c6fc5b25d7c72 100644 --- a/server/src/main/java/org/elasticsearch/transport/RemoteClusterConnection.java +++ b/server/src/main/java/org/elasticsearch/transport/RemoteClusterConnection.java @@ -8,13 +8,12 @@ package org.elasticsearch.transport; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.ActionListenerResponseHandler; import org.elasticsearch.action.admin.cluster.state.ClusterStateAction; import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest; import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.action.support.ContextPreservingActionListener; import org.elasticsearch.cluster.node.DiscoveryNode; -import org.elasticsearch.cluster.node.DiscoveryNodes; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.util.concurrent.ThreadContext; import org.elasticsearch.core.IOUtils; @@ -122,24 +121,10 @@ void collectNodes(ActionListener> listener) { ClusterStateAction.NAME, request, TransportRequestOptions.EMPTY, - new TransportResponseHandler() { - - @Override - public ClusterStateResponse read(StreamInput in) throws IOException { - return new ClusterStateResponse(in); - } - - @Override - public void handleResponse(ClusterStateResponse response) { - DiscoveryNodes nodes = response.getState().nodes(); - contextPreservingActionListener.onResponse(nodes::get); - } - - @Override - public void handleException(TransportException exp) { - contextPreservingActionListener.onFailure(exp); - } - } + new ActionListenerResponseHandler<>( + contextPreservingActionListener.map(response -> response.getState().nodes()::get), + ClusterStateResponse::new + ) ); } }; diff --git a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java index 894a4de73f9b2..666cfc457763c 100644 --- a/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java +++ b/test/framework/src/main/java/org/elasticsearch/test/AbstractQueryTestCase.java @@ -99,6 +99,7 @@ protected QB createQueryWithInnerQuery(QueryBuilder queryBuilder) { throw new UnsupportedOperationException(); } + @AwaitsFix(bugUrl = "https://github.com/elastic/elasticsearch/issues/90984") public void testMaxNestedDepth() throws IOException { QB query = null; try { diff --git a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportGetCheckpointAction.java b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportGetCheckpointAction.java index 0397c38ec90e5..579a76626d16d 100644 --- a/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportGetCheckpointAction.java +++ b/x-pack/plugin/transform/src/main/java/org/elasticsearch/xpack/transform/action/TransportGetCheckpointAction.java @@ -10,6 +10,7 @@ import org.apache.logging.log4j.Logger; import org.elasticsearch.Version; import org.elasticsearch.action.ActionListener; +import org.elasticsearch.action.ActionListenerResponseHandler; import org.elasticsearch.action.NoShardAvailableActionException; import org.elasticsearch.action.OriginalIndices; import org.elasticsearch.action.UnavailableShardsException; @@ -24,21 +25,17 @@ import org.elasticsearch.cluster.routing.ShardsIterator; import org.elasticsearch.cluster.service.ClusterService; import org.elasticsearch.common.inject.Inject; -import org.elasticsearch.common.io.stream.StreamInput; import org.elasticsearch.index.shard.ShardId; import org.elasticsearch.indices.IndicesService; import org.elasticsearch.tasks.Task; import org.elasticsearch.transport.ActionNotFoundTransportException; -import org.elasticsearch.transport.TransportException; import org.elasticsearch.transport.TransportRequestOptions; -import org.elasticsearch.transport.TransportResponseHandler; import org.elasticsearch.transport.TransportService; import org.elasticsearch.xpack.core.transform.action.GetCheckpointAction; import org.elasticsearch.xpack.core.transform.action.GetCheckpointAction.Request; import org.elasticsearch.xpack.core.transform.action.GetCheckpointAction.Response; import org.elasticsearch.xpack.core.transform.action.GetCheckpointNodeAction; -import java.io.IOException; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; @@ -200,24 +197,7 @@ public void start() { nodeCheckpointsRequest, task, TransportRequestOptions.EMPTY, - new TransportResponseHandler() { - - @Override - public GetCheckpointNodeAction.Response read(StreamInput in) throws IOException { - return new GetCheckpointNodeAction.Response(in); - } - - @Override - public void handleResponse(GetCheckpointNodeAction.Response response) { - groupedListener.onResponse(response); - } - - @Override - public void handleException(TransportException exp) { - groupedListener.onFailure(exp); - } - - } + new ActionListenerResponseHandler<>(groupedListener, GetCheckpointNodeAction.Response::new) ); } } diff --git a/x-pack/qa/runtime-fields/build.gradle b/x-pack/qa/runtime-fields/build.gradle index 5f141c15363c1..968e5609cc58d 100644 --- a/x-pack/qa/runtime-fields/build.gradle +++ b/x-pack/qa/runtime-fields/build.gradle @@ -25,6 +25,7 @@ subprojects { dependencies { yamlRestTestImplementation project(":x-pack:qa:runtime-fields") + restTestConfig project(path: ':modules:aggregations', configuration: 'restTests') } restResources { @@ -50,7 +51,7 @@ subprojects { def suites = [ 'async_search', 'search', - 'search.aggregation', + 'aggregations', 'search.highlight', 'search.inner_hits', 'search_shards', @@ -69,10 +70,10 @@ subprojects { systemProperty 'tests.rest.blacklist', [ /////// TO FIX /////// - 'search.aggregation/40_range/Date range', //source only date field should also emit values for numbers, it expects strings only + 'aggregations/40_range/Date range', //source only date field should also emit values for numbers, it expects strings only 'search/115_multiple_field_collapsing/two levels fields collapsing', // Field collapsing on a runtime field does not work 'field_caps/30_index_filter/Field caps with index filter', // We don't support filtering field caps on runtime fields. What should we do? - 'search.aggregation/220_filters_bucket/cache busting', // runtime keyword does not support split_queries_on_whitespace + 'aggregations/220_filters_bucket/cache busting', // runtime keyword does not support split_queries_on_whitespace 'search/140_pre_filter_search_shards/pre_filter_shard_size with shards that have no hit', //completion suggester does not return options when the context field is a geo_point runtime field 'suggest/30_context/Multi contexts should work', @@ -84,25 +85,25 @@ subprojects { /////// NOT SUPPORTED /////// 'search.highlight/40_keyword_ignore/Plain Highligher should skip highlighting ignored keyword values', // The plain highlighter is incompatible with the prefix queries that we make for runtime fields, use unified highlighter instead. - 'search.aggregation/280_rare_terms/*', // Requires an index and we won't have it - 'search.aggregation/22_terms_disable_opt/*', // Optimization requires an index and runtime fields don't have one + 'aggregations/280_rare_terms/*', // Requires an index and we won't have it + 'aggregations/22_terms_disable_opt/*', // Optimization requires an index and runtime fields don't have one // Runtime fields don't support sub-fields - 'search.aggregation/10_histogram/*', + 'aggregations/10_histogram/*', 'suggest/50_completion_with_multi_fields/Search by suggestion on geofield-hash on sub field should work', // Runtime fields don't have global ords 'analytics/nested_top_metrics_sort/*', - 'search.aggregation/20_terms/string profiler via global ordinals filters implementation', - 'search.aggregation/20_terms/string profiler via global ordinals native implementation', - 'search.aggregation/20_terms/Global ordinals are loaded with the global_ordinals execution hint', - 'search.aggregation/170_cardinality_metric/profiler string', - 'search.aggregation/170_cardinality_metric/profiler string segment ords hint', - 'search.aggregation/170_cardinality_metric/profiler string global ords hint', - 'search.aggregation/170_cardinality_metric/profiler string direct hint', - 'search.aggregation/170_cardinality_metric/profiler string save memory hint', - 'search.aggregation/170_cardinality_metric/profiler string save time hint', - 'search.aggregation/235_composite_sorted/*', + 'aggregations/20_terms/string profiler via global ordinals filters implementation', + 'aggregations/20_terms/string profiler via global ordinals native implementation', + 'aggregations/20_terms/Global ordinals are loaded with the global_ordinals execution hint', + 'aggregations/170_cardinality_metric/profiler string', + 'aggregations/170_cardinality_metric/profiler string segment ords hint', + 'aggregations/170_cardinality_metric/profiler string global ords hint', + 'aggregations/170_cardinality_metric/profiler string direct hint', + 'aggregations/170_cardinality_metric/profiler string save memory hint', + 'aggregations/170_cardinality_metric/profiler string save time hint', + 'aggregations/235_composite_sorted/*', // timeseries dimensions can't be runtime fields - 'search.aggregation/450_time_series/*', + 'aggregations/450_time_series/*', // The error messages are different 'search/330_fetch_fields/error includes field name', 'search/330_fetch_fields/error includes glob pattern', @@ -112,7 +113,7 @@ subprojects { // Synthetic source needs doc values that runtime fields tests disable 'search/400_synthetic_source/*', 'search.highlight/50_synthetic_source/*', - 'search.aggregation/200_top_hits/synthetic _source', + 'aggregations/200_top_hits/synthetic _source', /////// NOT SUPPORTED /////// ].join(',') }