Browse Source

Remove xpack actions for the flattened field. (#53076)

The current consensus is that we don't need info actions for smaller items like
field mappers. We can also remove the usage action since the cluster stats API
now tracks information about mappings, like what field types are defined.
Julie Tibshirani 5 years ago
parent
commit
90b723b8f6

+ 0 - 4
docs/reference/rest-api/info.asciidoc

@@ -75,10 +75,6 @@ Example response:
           "available" : true,
           "enabled" : true
       },
-      "flattened" : {
-         "available" : true,
-         "enabled" : true
-      },
       "frozen_indices" : {
          "available" : true,
          "enabled" : true

+ 1 - 6
docs/reference/rest-api/usage.asciidoc

@@ -242,11 +242,6 @@ GET /_xpack/usage
     "available" : true,
     "enabled" : true
   },
-  "flattened" : {
-    "available" : true,
-    "enabled" : true,
-    "field_count" : 0
-  },
   "vectors" : {
     "available" : true,
     "enabled" : true,
@@ -289,4 +284,4 @@ GET /_xpack/usage
 // 3. Ignore the contents of the `slm` object because it might contain policies
 // 4. All of the numbers and strings on the right hand side of *every* field in
 //    the response are ignored. So we're really only asserting things about the
-//    the shape of this response, not the values in it.
+//    the shape of this response, not the values in it.

+ 0 - 2
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackClientPlugin.java

@@ -38,7 +38,6 @@ import org.elasticsearch.xpack.core.beats.BeatsFeatureSetUsage;
 import org.elasticsearch.xpack.core.ccr.AutoFollowMetadata;
 import org.elasticsearch.xpack.core.deprecation.DeprecationInfoAction;
 import org.elasticsearch.xpack.core.eql.EqlFeatureSetUsage;
-import org.elasticsearch.xpack.core.flattened.FlattenedFeatureSetUsage;
 import org.elasticsearch.xpack.core.frozen.FrozenIndicesFeatureSetUsage;
 import org.elasticsearch.xpack.core.frozen.action.FreezeIndexAction;
 import org.elasticsearch.xpack.core.graph.GraphFeatureSetUsage;
@@ -556,7 +555,6 @@ public class XPackClientPlugin extends Plugin implements ActionPlugin, NetworkPl
                 new NamedWriteableRegistry.Entry(Task.Status.class, TransformField.TASK_NAME, TransformState::new),
                 new NamedWriteableRegistry.Entry(PersistentTaskState.class, TransformField.TASK_NAME, TransformState::new),
                 new NamedWriteableRegistry.Entry(SyncConfig.class, TransformField.TIME_BASED_SYNC.getPreferredName(), TimeSyncConfig::new),
-                new NamedWriteableRegistry.Entry(XPackFeatureSet.Usage.class, XPackField.FLATTENED, FlattenedFeatureSetUsage::new),
                 // Vectors
                 new NamedWriteableRegistry.Entry(XPackFeatureSet.Usage.class, XPackField.VECTORS, VectorsFeatureSetUsage::new),
                 // Voting Only Node

+ 0 - 1
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/XPackField.java

@@ -42,7 +42,6 @@ public final class XPackField {
     /** Name constant for the transform feature. */
     public static final String TRANSFORM = "transform";
     /** Name constant for flattened fields. */
-    public static final String FLATTENED = "flattened";
     /** Name constant for the vectors feature. */
     public static final String VECTORS = "vectors";
     /** Name constant for the voting-only-node feature. */

+ 1 - 2
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/action/XPackInfoFeatureAction.java

@@ -35,7 +35,6 @@ public class XPackInfoFeatureAction extends ActionType<XPackInfoFeatureResponse>
     public static final XPackInfoFeatureAction SNAPSHOT_LIFECYCLE = new XPackInfoFeatureAction(XPackField.SNAPSHOT_LIFECYCLE);
     public static final XPackInfoFeatureAction CCR = new XPackInfoFeatureAction(XPackField.CCR);
     public static final XPackInfoFeatureAction TRANSFORM = new XPackInfoFeatureAction(XPackField.TRANSFORM);
-    public static final XPackInfoFeatureAction FLATTENED = new XPackInfoFeatureAction(XPackField.FLATTENED);
     public static final XPackInfoFeatureAction VECTORS = new XPackInfoFeatureAction(XPackField.VECTORS);
     public static final XPackInfoFeatureAction VOTING_ONLY = new XPackInfoFeatureAction(XPackField.VOTING_ONLY);
     public static final XPackInfoFeatureAction FROZEN_INDICES = new XPackInfoFeatureAction(XPackField.FROZEN_INDICES);
@@ -45,7 +44,7 @@ public class XPackInfoFeatureAction extends ActionType<XPackInfoFeatureResponse>
 
     public static final List<XPackInfoFeatureAction> ALL = Arrays.asList(
         SECURITY, MONITORING, WATCHER, GRAPH, MACHINE_LEARNING, LOGSTASH, EQL, SQL, ROLLUP, INDEX_LIFECYCLE, SNAPSHOT_LIFECYCLE, CCR,
-        TRANSFORM, FLATTENED, VECTORS, VOTING_ONLY, FROZEN_INDICES, SPATIAL, ANALYTICS, ENRICH
+        TRANSFORM, VECTORS, VOTING_ONLY, FROZEN_INDICES, SPATIAL, ANALYTICS, ENRICH
     );
 
     private XPackInfoFeatureAction(String name) {

+ 1 - 2
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/action/XPackUsageFeatureAction.java

@@ -35,7 +35,6 @@ public class XPackUsageFeatureAction extends ActionType<XPackUsageFeatureRespons
     public static final XPackUsageFeatureAction SNAPSHOT_LIFECYCLE = new XPackUsageFeatureAction(XPackField.SNAPSHOT_LIFECYCLE);
     public static final XPackUsageFeatureAction CCR = new XPackUsageFeatureAction(XPackField.CCR);
     public static final XPackUsageFeatureAction TRANSFORM = new XPackUsageFeatureAction(XPackField.TRANSFORM);
-    public static final XPackUsageFeatureAction FLATTENED = new XPackUsageFeatureAction(XPackField.FLATTENED);
     public static final XPackUsageFeatureAction VECTORS = new XPackUsageFeatureAction(XPackField.VECTORS);
     public static final XPackUsageFeatureAction VOTING_ONLY = new XPackUsageFeatureAction(XPackField.VOTING_ONLY);
     public static final XPackUsageFeatureAction FROZEN_INDICES = new XPackUsageFeatureAction(XPackField.FROZEN_INDICES);
@@ -44,7 +43,7 @@ public class XPackUsageFeatureAction extends ActionType<XPackUsageFeatureRespons
 
     public static final List<XPackUsageFeatureAction> ALL = Arrays.asList(
         SECURITY, MONITORING, WATCHER, GRAPH, MACHINE_LEARNING, LOGSTASH, EQL, SQL, ROLLUP, INDEX_LIFECYCLE, SNAPSHOT_LIFECYCLE, CCR,
-        TRANSFORM, FLATTENED, VECTORS, VOTING_ONLY, FROZEN_INDICES, SPATIAL, ANALYTICS
+        TRANSFORM, VECTORS, VOTING_ONLY, FROZEN_INDICES, SPATIAL, ANALYTICS
     );
 
     private XPackUsageFeatureAction(String name) {

+ 0 - 62
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/flattened/FlattenedFeatureSetUsage.java

@@ -1,62 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
- */
-
-package org.elasticsearch.xpack.core.flattened;
-
-import org.elasticsearch.Version;
-import org.elasticsearch.common.io.stream.StreamInput;
-import org.elasticsearch.common.io.stream.StreamOutput;
-import org.elasticsearch.common.xcontent.XContentBuilder;
-import org.elasticsearch.xpack.core.XPackFeatureSet;
-import org.elasticsearch.xpack.core.XPackField;
-
-import java.io.IOException;
-import java.util.Objects;
-
-public class FlattenedFeatureSetUsage extends XPackFeatureSet.Usage {
-    private final int fieldCount;
-
-    public FlattenedFeatureSetUsage(StreamInput input) throws IOException {
-        super(input);
-        this.fieldCount = input.getVersion().onOrAfter(Version.V_7_6_0) ? input.readInt() : 0;
-    }
-
-    public FlattenedFeatureSetUsage(boolean available, boolean enabled, int fieldCount) {
-        super(XPackField.FLATTENED, available, enabled);
-        this.fieldCount = fieldCount;
-    }
-
-    int fieldCount() {
-        return fieldCount;
-    }
-
-    @Override
-    public void writeTo(StreamOutput out) throws IOException {
-        super.writeTo(out);
-        if (out.getVersion().onOrAfter(Version.V_7_6_0)) {
-            out.writeInt(fieldCount);
-        }
-    }
-
-    @Override
-    protected void innerXContent(XContentBuilder builder, Params params) throws IOException {
-        super.innerXContent(builder, params);
-        builder.field("field_count", fieldCount);
-    }
-
-    @Override
-    public boolean equals(Object o) {
-        if (this == o) return true;
-        if (o == null || getClass() != o.getClass()) return false;
-        FlattenedFeatureSetUsage that = (FlattenedFeatureSetUsage) o;
-        return available == that.available && enabled == that.enabled && fieldCount == that.fieldCount;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(available, enabled, fieldCount);
-    }
-}

+ 0 - 47
x-pack/plugin/core/src/test/java/org/elasticsearch/xpack/core/flattened/FlattenedFeatureSetUsageTests.java

@@ -1,47 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
- */
-package org.elasticsearch.xpack.core.flattened;
-
-import org.elasticsearch.common.io.stream.Writeable;
-import org.elasticsearch.test.AbstractWireSerializingTestCase;
-
-import java.io.IOException;
-
-public class FlattenedFeatureSetUsageTests extends AbstractWireSerializingTestCase<FlattenedFeatureSetUsage> {
-
-    @Override
-    protected FlattenedFeatureSetUsage createTestInstance() {
-        return new FlattenedFeatureSetUsage(randomBoolean(), randomBoolean(), randomIntBetween(0, 1000));
-    }
-
-    @Override
-    protected FlattenedFeatureSetUsage mutateInstance(FlattenedFeatureSetUsage instance) throws IOException {
-
-        boolean available = instance.available();
-        boolean enabled = instance.enabled();
-        int fieldCount = instance.fieldCount();
-
-        switch (between(0, 2)) {
-            case 0:
-                available = !available;
-                break;
-            case 1:
-                enabled = !enabled;
-                break;
-            case 2:
-                fieldCount = randomValueOtherThan(instance.fieldCount(), () -> randomIntBetween(0, 1000));
-                break;
-        }
-
-        return new FlattenedFeatureSetUsage(available, enabled, fieldCount);
-    }
-
-    @Override
-    protected Writeable.Reader<FlattenedFeatureSetUsage> instanceReader() {
-        return FlattenedFeatureSetUsage::new;
-    }
-
-}

+ 0 - 47
x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/FlattenedInfoTransportAction.java

@@ -1,47 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
- */
-
-package org.elasticsearch.xpack.flattened;
-
-import org.elasticsearch.action.support.ActionFilters;
-import org.elasticsearch.common.inject.Inject;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.license.XPackLicenseState;
-import org.elasticsearch.transport.TransportService;
-import org.elasticsearch.xpack.core.XPackField;
-import org.elasticsearch.xpack.core.XPackSettings;
-import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction;
-import org.elasticsearch.xpack.core.action.XPackInfoFeatureTransportAction;
-
-public class FlattenedInfoTransportAction extends XPackInfoFeatureTransportAction {
-
-    private final boolean enabled;
-    private final XPackLicenseState licenseState;
-
-    @Inject
-    public FlattenedInfoTransportAction(TransportService transportService, ActionFilters actionFilters,
-                                        Settings settings, XPackLicenseState licenseState) {
-        super(XPackInfoFeatureAction.FLATTENED.name(), transportService, actionFilters);
-        this.enabled = XPackSettings.FLATTENED_ENABLED.get(settings);
-        this.licenseState = licenseState;
-    }
-
-    @Override
-    public String name() {
-        return XPackField.FLATTENED;
-    }
-
-    @Override
-    public boolean available() {
-        return licenseState.isFlattenedAllowed();
-    }
-
-    @Override
-    public boolean enabled() {
-        return enabled;
-    }
-
-}

+ 1 - 15
x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/FlattenedMapperPlugin.java

@@ -6,26 +6,19 @@
 
 package org.elasticsearch.xpack.flattened;
 
-import org.elasticsearch.action.ActionRequest;
-import org.elasticsearch.action.ActionResponse;
 import org.elasticsearch.common.settings.Settings;
 import org.elasticsearch.index.mapper.Mapper;
-import org.elasticsearch.plugins.ActionPlugin;
 import org.elasticsearch.plugins.MapperPlugin;
 import org.elasticsearch.plugins.Plugin;
 import org.elasticsearch.xpack.core.XPackSettings;
-import org.elasticsearch.xpack.core.action.XPackInfoFeatureAction;
-import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction;
 import org.elasticsearch.xpack.flattened.mapper.FlatObjectFieldMapper;
 
-import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
 import static java.util.Collections.emptyMap;
 import static java.util.Collections.singletonMap;
 
-public class FlattenedMapperPlugin extends Plugin implements MapperPlugin, ActionPlugin {
+public class FlattenedMapperPlugin extends Plugin implements MapperPlugin {
 
     protected final boolean enabled;
 
@@ -40,11 +33,4 @@ public class FlattenedMapperPlugin extends Plugin implements MapperPlugin, Actio
         }
         return singletonMap(FlatObjectFieldMapper.CONTENT_TYPE, new FlatObjectFieldMapper.TypeParser());
     }
-
-    @Override
-    public List<ActionHandler<? extends ActionRequest, ? extends ActionResponse>> getActions() {
-        return Arrays.asList(
-            new ActionHandler<>(XPackUsageFeatureAction.FLATTENED, FlattenedUsageTransportAction.class),
-            new ActionHandler<>(XPackInfoFeatureAction.FLATTENED, FlattenedInfoTransportAction.class));
-    }
 }

+ 0 - 79
x-pack/plugin/mapper-flattened/src/main/java/org/elasticsearch/xpack/flattened/FlattenedUsageTransportAction.java

@@ -1,79 +0,0 @@
-/*
- * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
- * or more contributor license agreements. Licensed under the Elastic License;
- * you may not use this file except in compliance with the Elastic License.
- */
-
-package org.elasticsearch.xpack.flattened;
-
-import org.elasticsearch.action.ActionListener;
-import org.elasticsearch.action.support.ActionFilters;
-import org.elasticsearch.cluster.ClusterState;
-import org.elasticsearch.cluster.metadata.IndexMetaData;
-import org.elasticsearch.cluster.metadata.IndexNameExpressionResolver;
-import org.elasticsearch.cluster.metadata.MappingMetaData;
-import org.elasticsearch.cluster.service.ClusterService;
-import org.elasticsearch.common.inject.Inject;
-import org.elasticsearch.common.settings.Settings;
-import org.elasticsearch.license.XPackLicenseState;
-import org.elasticsearch.protocol.xpack.XPackUsageRequest;
-import org.elasticsearch.tasks.Task;
-import org.elasticsearch.threadpool.ThreadPool;
-import org.elasticsearch.transport.TransportService;
-import org.elasticsearch.xpack.core.XPackSettings;
-import org.elasticsearch.xpack.core.action.XPackUsageFeatureAction;
-import org.elasticsearch.xpack.core.action.XPackUsageFeatureResponse;
-import org.elasticsearch.xpack.core.action.XPackUsageFeatureTransportAction;
-import org.elasticsearch.xpack.core.flattened.FlattenedFeatureSetUsage;
-import org.elasticsearch.xpack.flattened.mapper.FlatObjectFieldMapper;
-
-import java.util.Map;
-
-public class FlattenedUsageTransportAction extends XPackUsageFeatureTransportAction {
-
-    private final Settings settings;
-    private final XPackLicenseState licenseState;
-
-    @Inject
-    public FlattenedUsageTransportAction(TransportService transportService, ClusterService clusterService, ThreadPool threadPool,
-                                         ActionFilters actionFilters, IndexNameExpressionResolver indexNameExpressionResolver,
-                                         Settings settings, XPackLicenseState licenseState) {
-        super(XPackUsageFeatureAction.FLATTENED.name(), transportService, clusterService,
-            threadPool, actionFilters, indexNameExpressionResolver);
-        this.settings = settings;
-        this.licenseState = licenseState;
-    }
-
-    @Override
-    protected void masterOperation(Task task, XPackUsageRequest request, ClusterState state,
-                                   ActionListener<XPackUsageFeatureResponse> listener) {
-        boolean allowed = licenseState.isFlattenedAllowed();
-        boolean enabled = XPackSettings.FLATTENED_ENABLED.get(settings);
-        int fieldCount = 0;
-
-        if (allowed && enabled && state != null) {
-            for (IndexMetaData indexMetaData : state.metaData()) {
-                MappingMetaData mappingMetaData = indexMetaData.mapping();
-
-                if (mappingMetaData != null) {
-                    Map<String, Object> mappings = mappingMetaData.getSourceAsMap();
-
-                    if (mappings.containsKey("properties")) {
-                        @SuppressWarnings("unchecked")
-                        Map<String, Map<String, Object>> fieldMappings = (Map<String, Map<String, Object>>) mappings.get("properties");
-
-                        for (Map<String, Object> fieldMapping : fieldMappings.values()) {
-                            String fieldType = (String) fieldMapping.get("type");
-                            if (fieldType != null && fieldType.equals(FlatObjectFieldMapper.CONTENT_TYPE)) {
-                                fieldCount++;
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        FlattenedFeatureSetUsage usage = new FlattenedFeatureSetUsage(allowed, enabled, fieldCount);
-        listener.onResponse(new XPackUsageFeatureResponse(usage));
-    }
-}

+ 0 - 41
x-pack/plugin/src/test/resources/rest-api-spec/test/flattened/20_flattened_stats.yml

@@ -1,41 +0,0 @@
-setup:
-  - skip:
-      version: " - 7.5.99"
-      reason: "telemetry for flattened fields was added in 7.6.0"
-
----
-"Usage stats for flattened fields":
-  - do:
-      xpack.usage: {}
-
-  - match: { flattened.available: true }
-  - match: { flattened.enabled: true }
-  - match: { flattened.field_count: 0 }
-
-  - do:
-      indices.create:
-        index: test-index1
-        body:
-          mappings:
-            properties:
-              flattened_1:
-                type: flattened
-
-  - do:
-      indices.create:
-        index: test-index2
-        body:
-          mappings:
-            properties:
-              flattened_2:
-                type: flattened
-              flattened_3:
-                type: flattened
-                ignore_above: 10
-
-  - do:
-      xpack.usage: {}
-
-  - match: { flattened.available: true }
-  - match: { flattened.enabled: true }
-  - match: { flattened.field_count: 3 }