Browse Source

Fix metrics_syntax capabilities (#108783)

The metrics command is available only in snapshot builds. However, in my 
previous PR, I mistakenly included the counter_types feature instead.
Nhat Nguyen 1 year ago
parent
commit
024ea6ca4c

+ 2 - 3
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/plugin/EsqlFeatures.java

@@ -176,7 +176,7 @@ public class EsqlFeatures implements FeatureSpecification {
 
     private Set<NodeFeature> snapshotBuildFeatures() {
         assert Build.current().isSnapshot() : Build.current();
-        return Set.of(COUNTER_TYPES);
+        return Set.of(METRICS_SYNTAX);
     }
 
     @Override
@@ -202,8 +202,7 @@ public class EsqlFeatures implements FeatureSpecification {
             STRING_LITERAL_AUTO_CASTING_EXTENDED,
             METADATA_FIELDS,
             TIMESPAN_ABBREVIATIONS,
-            COUNTER_TYPES,
-            METRICS_SYNTAX
+            COUNTER_TYPES
         );
         if (Build.current().isSnapshot()) {
             return Collections.unmodifiableSet(Sets.union(features, snapshotBuildFeatures()));

+ 9 - 5
x-pack/plugin/esql/src/test/java/org/elasticsearch/xpack/esql/CsvTests.java

@@ -9,6 +9,7 @@ package org.elasticsearch.xpack.esql;
 
 import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
 
+import org.elasticsearch.Build;
 import org.elasticsearch.Version;
 import org.elasticsearch.action.ActionListener;
 import org.elasticsearch.action.support.PlainActionFuture;
@@ -222,11 +223,13 @@ public class CsvTests extends ESTestCase {
         try {
             assumeTrue("Test " + testName + " is not enabled", isEnabled(testName, Version.CURRENT));
 
-            assertThat(
-                "nonexistent capabilities declared as required",
-                testCase.requiredCapabilities,
-                everyItem(in(EsqlCapabilities.CAPABILITIES))
-            );
+            if (Build.current().isSnapshot()) {
+                assertThat(
+                    "nonexistent capabilities declared as required",
+                    testCase.requiredCapabilities,
+                    everyItem(in(EsqlCapabilities.CAPABILITIES))
+                );
+            }
 
             /*
              * The csv tests support all but a few features. The unsupported features
@@ -234,6 +237,7 @@ public class CsvTests extends ESTestCase {
              */
             assumeFalse("metadata fields aren't supported", testCase.requiredCapabilities.contains(cap(EsqlFeatures.METADATA_FIELDS)));
             assumeFalse("enrich can't load fields in csv tests", testCase.requiredCapabilities.contains(cap(EsqlFeatures.ENRICH_LOAD)));
+            assumeFalse("can't load metrics in csv tests", testCase.requiredCapabilities.contains(cap(EsqlFeatures.METRICS_SYNTAX)));
 
             doTest();
         } catch (Throwable th) {