Class MetadataCreateIndexService

java.lang.Object
org.elasticsearch.cluster.metadata.MetadataCreateIndexService

public class MetadataCreateIndexService
extends java.lang.Object
Service responsible for submitting create index requests
  • Field Details

  • Constructor Details

  • Method Details

    • addAdditionalIndexSettingProvider

      public void addAdditionalIndexSettingProvider​(IndexSettingProvider provider)
      Add a provider to be invoked to get additional index settings prior to an index being created
    • validateIndexName

      public void validateIndexName​(java.lang.String index, ClusterState state)
      Validate the name for an index against some static rules and a cluster state.
    • validateDotIndex

      public boolean validateDotIndex​(java.lang.String index, @Nullable java.lang.Boolean isHidden)
      Validates (if this index has a dot-prefixed name) whether it follows the rules for dot-prefixed indices.
      Parameters:
      index - The name of the index in question
      isHidden - Whether or not this is a hidden index
    • validateIndexOrAliasName

      public static void validateIndexOrAliasName​(java.lang.String index, java.util.function.BiFunction<java.lang.String,​java.lang.String,​? extends java.lang.RuntimeException> exceptionCtor)
      Validate the name for an index or alias against some static rules.
    • createIndex

      public void createIndex​(CreateIndexClusterStateUpdateRequest request, ActionListener<ShardsAcknowledgedResponse> listener)
      Creates an index in the cluster state and waits for the specified number of shard copies to become active (as specified in CreateIndexClusterStateUpdateRequest.waitForActiveShards()) before sending the response on the listener. If the index creation was successfully applied on the cluster state, then AcknowledgedResponse.isAcknowledged() will return true, otherwise it will return false and no waiting will occur for started shards (ShardsAcknowledgedResponse.isShardsAcknowledged() will also be false). If the index creation in the cluster state was successful and the requisite shard copies were started before the timeout, then ShardsAcknowledgedResponse.isShardsAcknowledged() will return true, otherwise if the operation timed out, then it will return false.
      Parameters:
      request - the index creation cluster state update request
      listener - the listener on which to send the index creation cluster state update response
    • applyCreateIndexRequest

      public ClusterState applyCreateIndexRequest​(ClusterState currentState, CreateIndexClusterStateUpdateRequest request, boolean silent, java.util.function.BiConsumer<Metadata.Builder,​IndexMetadata> metadataTransformer) throws java.lang.Exception
      Handles the cluster state transition to a version that reflects the CreateIndexClusterStateUpdateRequest. All the requested changes are firstly validated before mutating the ClusterState.
      Throws:
      java.lang.Exception
    • applyCreateIndexRequest

      public ClusterState applyCreateIndexRequest​(ClusterState currentState, CreateIndexClusterStateUpdateRequest request, boolean silent) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • collectV2Mappings

      public static java.util.List<java.util.Map<java.lang.String,​java.util.Map<java.lang.String,​java.lang.Object>>> collectV2Mappings​(java.util.Map<java.lang.String,​java.lang.String> requestMappings, ClusterState currentState, java.lang.String templateName, org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, java.lang.String indexName) throws java.lang.Exception
      Throws:
      java.lang.Exception
    • resolveAndValidateAliases

      public static java.util.List<AliasMetadata> resolveAndValidateAliases​(java.lang.String index, java.util.Set<Alias> aliases, java.util.List<java.util.Map<java.lang.String,​AliasMetadata>> templateAliases, Metadata metadata, AliasValidator aliasValidator, org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry, SearchExecutionContext searchExecutionContext)
      Validate and resolve the aliases explicitly set for the index, together with the ones inherited from the specified templates. The template mappings are applied in the order they are encountered in the list (clients should make sure the lower index, closer to the head of the list, templates have the highest IndexTemplateMetadata.order())
      Returns:
      the list of resolved aliases, with the explicitly provided aliases occurring first (having a higher priority) followed by the ones inherited from the templates
    • validateIndexSettings

      public void validateIndexSettings​(java.lang.String indexName, Settings settings, boolean forbidPrivateIndexSettings) throws IndexCreationException
      Throws:
      IndexCreationException
    • calculateNumRoutingShards

      public static int calculateNumRoutingShards​(int numShards, Version indexVersionCreated)
      Returns a default number of routing shards based on the number of shards of the index. The default number of routing shards will allow any index to be split at least once and at most 10 times by a factor of two. The closer the number or shards gets to 1024 the less default split operations are supported
    • validateTranslogRetentionSettings

      public static void validateTranslogRetentionSettings​(Settings indexSettings)