Search in sources :

Example 61 with Environment

use of org.opensearch.env.Environment in project OpenSearch by opensearch-project.

the class HunspellServiceTests method testDicWithTwoAffs.

public void testDicWithTwoAffs() throws Exception {
    Settings settings = Settings.builder().put(HUNSPELL_LAZY_LOAD.getKey(), randomBoolean()).put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()).build();
    IllegalStateException e = expectThrows(IllegalStateException.class, () -> {
        final Environment environment = new Environment(settings, getDataPath("/indices/analyze/two_aff_conf_dir"));
        new HunspellService(settings, environment, emptyMap()).getDictionary("en_US");
    });
    assertEquals("failed to load hunspell dictionary for locale: en_US", e.getMessage());
    assertThat(e.getCause(), hasToString(containsString("Too many affix files")));
}
Also used : HunspellService(org.opensearch.indices.analysis.HunspellService) Environment(org.opensearch.env.Environment) Settings(org.opensearch.common.settings.Settings)

Example 62 with Environment

use of org.opensearch.env.Environment in project OpenSearch by opensearch-project.

the class HunspellServiceTests method testDicWithNoAff.

public void testDicWithNoAff() throws Exception {
    Settings settings = Settings.builder().put(HUNSPELL_LAZY_LOAD.getKey(), randomBoolean()).put(Environment.PATH_HOME_SETTING.getKey(), createTempDir()).build();
    IllegalStateException e = expectThrows(IllegalStateException.class, () -> {
        final Environment environment = new Environment(settings, getDataPath("/indices/analyze/no_aff_conf_dir"));
        new HunspellService(settings, environment, emptyMap()).getDictionary("en_US");
    });
    assertEquals("failed to load hunspell dictionary for locale: en_US", e.getMessage());
    assertThat(e.getCause(), hasToString(containsString("Missing affix file")));
}
Also used : HunspellService(org.opensearch.indices.analysis.HunspellService) Environment(org.opensearch.env.Environment) Settings(org.opensearch.common.settings.Settings)

Example 63 with Environment

use of org.opensearch.env.Environment in project OpenSearch by opensearch-project.

the class AnalysisModule method setupTokenFilters.

private NamedRegistry<AnalysisProvider<TokenFilterFactory>> setupTokenFilters(List<AnalysisPlugin> plugins, HunspellService hunspellService) {
    NamedRegistry<AnalysisProvider<TokenFilterFactory>> tokenFilters = new NamedRegistry<>("token_filter");
    tokenFilters.register("stop", StopTokenFilterFactory::new);
    // Add "standard" for old indices (bwc)
    tokenFilters.register("standard", new AnalysisProvider<TokenFilterFactory>() {

        @Override
        public TokenFilterFactory get(IndexSettings indexSettings, Environment environment, String name, Settings settings) {
            if (indexSettings.getIndexVersionCreated().before(LegacyESVersion.V_7_0_0)) {
                deprecationLogger.deprecate("standard_deprecation", "The [standard] token filter name is deprecated and will be removed in a future version.");
            } else {
                throw new IllegalArgumentException("The [standard] token filter has been removed.");
            }
            return new AbstractTokenFilterFactory(indexSettings, name, settings) {

                @Override
                public TokenStream create(TokenStream tokenStream) {
                    return tokenStream;
                }
            };
        }

        @Override
        public boolean requiresAnalysisSettings() {
            return false;
        }
    });
    tokenFilters.register("shingle", ShingleTokenFilterFactory::new);
    tokenFilters.register("hunspell", requiresAnalysisSettings((indexSettings, env, name, settings) -> new HunspellTokenFilterFactory(indexSettings, name, settings, hunspellService)));
    tokenFilters.extractAndRegister(plugins, AnalysisPlugin::getTokenFilters);
    return tokenFilters;
}
Also used : TokenizerFactory(org.opensearch.index.analysis.TokenizerFactory) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) PreBuiltAnalyzerProviderFactory(org.opensearch.index.analysis.PreBuiltAnalyzerProviderFactory) StopAnalyzerProvider(org.opensearch.index.analysis.StopAnalyzerProvider) TokenFilterFactory(org.opensearch.index.analysis.TokenFilterFactory) Version(org.opensearch.Version) StopTokenFilterFactory(org.opensearch.index.analysis.StopTokenFilterFactory) DeprecationLogger(org.opensearch.common.logging.DeprecationLogger) SimpleAnalyzerProvider(org.opensearch.index.analysis.SimpleAnalyzerProvider) AnalysisRegistry(org.opensearch.index.analysis.AnalysisRegistry) LegacyESVersion(org.opensearch.LegacyESVersion) KeywordAnalyzerProvider(org.opensearch.index.analysis.KeywordAnalyzerProvider) AnalysisPlugin.requiresAnalysisSettings(org.opensearch.plugins.AnalysisPlugin.requiresAnalysisSettings) CharFilterFactory(org.opensearch.index.analysis.CharFilterFactory) Locale(java.util.Locale) Map(java.util.Map) StandardTokenizerFactory(org.opensearch.index.analysis.StandardTokenizerFactory) PreConfiguredTokenizer(org.opensearch.index.analysis.PreConfiguredTokenizer) Environment(org.opensearch.env.Environment) LowerCaseFilter(org.apache.lucene.analysis.LowerCaseFilter) TokenStream(org.apache.lucene.analysis.TokenStream) PreConfiguredTokenFilter(org.opensearch.index.analysis.PreConfiguredTokenFilter) AbstractTokenFilterFactory(org.opensearch.index.analysis.AbstractTokenFilterFactory) Settings(org.opensearch.common.settings.Settings) IOException(java.io.IOException) PreConfiguredCharFilter(org.opensearch.index.analysis.PreConfiguredCharFilter) ShingleTokenFilterFactory(org.opensearch.index.analysis.ShingleTokenFilterFactory) LowercaseNormalizerProvider(org.opensearch.index.analysis.LowercaseNormalizerProvider) AnalysisPlugin(org.opensearch.plugins.AnalysisPlugin) List(java.util.List) AnalyzerProvider(org.opensearch.index.analysis.AnalyzerProvider) NamedRegistry(org.opensearch.common.NamedRegistry) IndexSettings(org.opensearch.index.IndexSettings) WhitespaceAnalyzerProvider(org.opensearch.index.analysis.WhitespaceAnalyzerProvider) HunspellTokenFilterFactory(org.opensearch.index.analysis.HunspellTokenFilterFactory) Collections.unmodifiableMap(java.util.Collections.unmodifiableMap) StandardAnalyzerProvider(org.opensearch.index.analysis.StandardAnalyzerProvider) StopTokenFilterFactory(org.opensearch.index.analysis.StopTokenFilterFactory) TokenStream(org.apache.lucene.analysis.TokenStream) ShingleTokenFilterFactory(org.opensearch.index.analysis.ShingleTokenFilterFactory) IndexSettings(org.opensearch.index.IndexSettings) AbstractTokenFilterFactory(org.opensearch.index.analysis.AbstractTokenFilterFactory) TokenFilterFactory(org.opensearch.index.analysis.TokenFilterFactory) StopTokenFilterFactory(org.opensearch.index.analysis.StopTokenFilterFactory) AbstractTokenFilterFactory(org.opensearch.index.analysis.AbstractTokenFilterFactory) ShingleTokenFilterFactory(org.opensearch.index.analysis.ShingleTokenFilterFactory) HunspellTokenFilterFactory(org.opensearch.index.analysis.HunspellTokenFilterFactory) NamedRegistry(org.opensearch.common.NamedRegistry) Environment(org.opensearch.env.Environment) AnalysisPlugin.requiresAnalysisSettings(org.opensearch.plugins.AnalysisPlugin.requiresAnalysisSettings) Settings(org.opensearch.common.settings.Settings) IndexSettings(org.opensearch.index.IndexSettings) HunspellTokenFilterFactory(org.opensearch.index.analysis.HunspellTokenFilterFactory) AnalysisPlugin(org.opensearch.plugins.AnalysisPlugin)

Example 64 with Environment

use of org.opensearch.env.Environment in project OpenSearch by opensearch-project.

the class MetadataCreateIndexServiceTests method testIndexLifecycleNameSetting.

public void testIndexLifecycleNameSetting() {
    // see: https://github.com/opensearch-project/OpenSearch/issues/1019
    final Settings ilnSetting = Settings.builder().put("index.lifecycle.name", "dummy").build();
    withTemporaryClusterService(((clusterService, threadPool) -> {
        MetadataCreateIndexService checkerService = new MetadataCreateIndexService(Settings.EMPTY, clusterService, null, null, null, createTestShardLimitService(randomIntBetween(1, 1000), clusterService), new Environment(Settings.builder().put("path.home", "dummy").build(), null), new IndexScopedSettings(ilnSetting, Collections.emptySet()), threadPool, null, new SystemIndices(Collections.emptyMap()), true);
        final List<String> validationErrors = checkerService.getIndexSettingsValidationErrors(ilnSetting, true);
        assertThat(validationErrors.size(), is(1));
        assertThat(validationErrors.get(0), is("expected [index.lifecycle.name] to be private but it was not"));
    }));
}
Also used : ImmutableOpenMap(org.opensearch.common.collect.ImmutableOpenMap) Arrays(java.util.Arrays) MetadataCreateIndexService.resolveAndValidateAliases(org.opensearch.cluster.metadata.MetadataCreateIndexService.resolveAndValidateAliases) IndexScopedSettings(org.opensearch.common.settings.IndexScopedSettings) AllocationService(org.opensearch.cluster.routing.allocation.AllocationService) TestThreadPool(org.opensearch.threadpool.TestThreadPool) INDEX_NUMBER_OF_SHARDS_SETTING(org.opensearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_SHARDS_SETTING) Version(org.opensearch.Version) MetadataCreateIndexService.getIndexNumberOfRoutingShards(org.opensearch.cluster.metadata.MetadataCreateIndexService.getIndexNumberOfRoutingShards) Matchers.hasValue(org.hamcrest.Matchers.hasValue) INDEX_NUMBER_OF_ROUTING_SHARDS_SETTING(org.opensearch.cluster.metadata.IndexMetadata.INDEX_NUMBER_OF_ROUTING_SHARDS_SETTING) Strings(org.opensearch.common.Strings) Collections.singletonList(java.util.Collections.singletonList) INDEX_SOFT_DELETES_SETTING(org.opensearch.index.IndexSettings.INDEX_SOFT_DELETES_SETTING) Alias(org.opensearch.action.admin.indices.alias.Alias) OpenSearchAllocationTestCase(org.opensearch.cluster.OpenSearchAllocationTestCase) Map(java.util.Map) Matchers.nullValue(org.hamcrest.Matchers.nullValue) IndexModule(org.opensearch.index.IndexModule) AllocationDeciders(org.opensearch.cluster.routing.allocation.decider.AllocationDeciders) TimeValue(org.opensearch.common.unit.TimeValue) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) Index(org.opensearch.index.Index) MetadataCreateIndexService.parseV1Mappings(org.opensearch.cluster.metadata.MetadataCreateIndexService.parseV1Mappings) ExceptionsHelper(org.opensearch.ExceptionsHelper) Set(java.util.Set) Settings(org.opensearch.common.settings.Settings) DiscoveryNodeRole(org.opensearch.cluster.node.DiscoveryNodeRole) Matchers.startsWith(org.hamcrest.Matchers.startsWith) Stream(java.util.stream.Stream) SystemIndexDescriptor(org.opensearch.indices.SystemIndexDescriptor) Matchers.is(org.hamcrest.Matchers.is) Matchers.endsWith(org.hamcrest.Matchers.endsWith) MetadataCreateIndexService.aggregateIndexSettings(org.opensearch.cluster.metadata.MetadataCreateIndexService.aggregateIndexSettings) ThreadPool(org.opensearch.threadpool.ThreadPool) ArrayList(java.util.ArrayList) ClusterState(org.opensearch.cluster.ClusterState) LegacyESVersion(org.opensearch.LegacyESVersion) VersionUtils(org.opensearch.test.VersionUtils) INDEX_READ_ONLY_BLOCK(org.opensearch.cluster.metadata.IndexMetadata.INDEX_READ_ONLY_BLOCK) BiConsumer(java.util.function.BiConsumer) ClusterBlocks(org.opensearch.cluster.block.ClusterBlocks) TestGatewayAllocator(org.opensearch.test.gateway.TestGatewayAllocator) Before(org.junit.Before) Environment(org.opensearch.env.Environment) IOException(java.io.IOException) SystemIndices(org.opensearch.indices.SystemIndices) NamedXContentRegistry(org.opensearch.common.xcontent.NamedXContentRegistry) ClusterService(org.opensearch.cluster.service.ClusterService) RoutingTable(org.opensearch.cluster.routing.RoutingTable) SETTING_NUMBER_OF_SHARDS(org.opensearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_SHARDS) CreateIndexClusterStateUpdateRequest(org.opensearch.action.admin.indices.create.CreateIndexClusterStateUpdateRequest) InvalidAliasNameException(org.opensearch.indices.InvalidAliasNameException) SETTING_VERSION_CREATED(org.opensearch.cluster.metadata.IndexMetadata.SETTING_VERSION_CREATED) BiFunction(java.util.function.BiFunction) Matchers.hasKey(org.hamcrest.Matchers.hasKey) ObjectObjectCursor(com.carrotsearch.hppc.cursors.ObjectObjectCursor) DiscoveryNode(org.opensearch.cluster.node.DiscoveryNode) MapperService(org.opensearch.index.mapper.MapperService) Collections.singleton(java.util.Collections.singleton) XContentFactory(org.opensearch.common.xcontent.XContentFactory) BalancedShardsAllocator(org.opensearch.cluster.routing.allocation.allocator.BalancedShardsAllocator) SETTING_NUMBER_OF_REPLICAS(org.opensearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_REPLICAS) Collections.emptyList(java.util.Collections.emptyList) OpenSearchTestCase(org.opensearch.test.OpenSearchTestCase) Collection(java.util.Collection) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) MetadataCreateIndexService.clusterStateCreateIndex(org.opensearch.cluster.metadata.MetadataCreateIndexService.clusterStateCreateIndex) SETTING_READ_ONLY(org.opensearch.cluster.metadata.IndexMetadata.SETTING_READ_ONLY) InvalidIndexNameException(org.opensearch.indices.InvalidIndexNameException) List(java.util.List) ShardLimitValidatorTests.createTestShardLimitService(org.opensearch.indices.ShardLimitValidatorTests.createTestShardLimitService) Matchers.equalTo(org.hamcrest.Matchers.equalTo) EmptyClusterInfoService(org.opensearch.cluster.EmptyClusterInfoService) IndexSettings(org.opensearch.index.IndexSettings) QueryShardContext(org.opensearch.index.query.QueryShardContext) ResourceAlreadyExistsException(org.opensearch.ResourceAlreadyExistsException) BigArrays(org.opensearch.common.util.BigArrays) ClusterServiceUtils(org.opensearch.test.ClusterServiceUtils) DiscoveryNodes(org.opensearch.cluster.node.DiscoveryNodes) CompressedXContent(org.opensearch.common.compress.CompressedXContent) AtomicBoolean(java.util.concurrent.atomic.AtomicBoolean) HashMap(java.util.HashMap) HashSet(java.util.HashSet) Collections.singletonMap(java.util.Collections.singletonMap) Collections.emptyMap(java.util.Collections.emptyMap) ResizeType(org.opensearch.action.admin.indices.shrink.ResizeType) Setting(org.opensearch.common.settings.Setting) ShardLimitValidator(org.opensearch.indices.ShardLimitValidator) MaxRetryAllocationDecider(org.opensearch.cluster.routing.allocation.decider.MaxRetryAllocationDecider) IndexNotFoundException(org.opensearch.index.IndexNotFoundException) Matchers(org.hamcrest.Matchers) Consumer(java.util.function.Consumer) EmptySnapshotsInfoService(org.opensearch.snapshots.EmptySnapshotsInfoService) ClusterName(org.opensearch.cluster.ClusterName) Comparator(java.util.Comparator) Collections(java.util.Collections) MetadataCreateIndexService.buildIndexMetadata(org.opensearch.cluster.metadata.MetadataCreateIndexService.buildIndexMetadata) IndexScopedSettings(org.opensearch.common.settings.IndexScopedSettings) Environment(org.opensearch.env.Environment) Collections.singletonList(java.util.Collections.singletonList) ArrayList(java.util.ArrayList) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) SystemIndices(org.opensearch.indices.SystemIndices) IndexScopedSettings(org.opensearch.common.settings.IndexScopedSettings) Settings(org.opensearch.common.settings.Settings) MetadataCreateIndexService.aggregateIndexSettings(org.opensearch.cluster.metadata.MetadataCreateIndexService.aggregateIndexSettings) IndexSettings(org.opensearch.index.IndexSettings)

Example 65 with Environment

use of org.opensearch.env.Environment in project OpenSearch by opensearch-project.

the class RemoveCorruptedShardDataCommand method findAndProcessShardPath.

protected void findAndProcessShardPath(OptionSet options, Environment environment, Path[] dataPaths, int nodeLockId, ClusterState clusterState, CheckedConsumer<ShardPath, IOException> consumer) throws IOException {
    final Settings settings = environment.settings();
    final IndexMetadata indexMetadata;
    final int shardId;
    final int fromNodeId;
    final int toNodeId;
    if (options.has(folderOption)) {
        final Path path = getPath(folderOption.value(options)).getParent();
        final Path shardParent = path.getParent();
        final Path shardParentParent = shardParent.getParent();
        final Path indexPath = path.resolve(ShardPath.INDEX_FOLDER_NAME);
        if (Files.exists(indexPath) == false || Files.isDirectory(indexPath) == false) {
            throw new OpenSearchException("index directory [" + indexPath + "], must exist and be a directory");
        }
        final String shardIdFileName = path.getFileName().toString();
        final String nodeIdFileName = shardParentParent.getParent().getFileName().toString();
        final String indexUUIDFolderName = shardParent.getFileName().toString();
        if (Files.isDirectory(path) && // SHARD-ID path element check
        shardIdFileName.chars().allMatch(Character::isDigit) && // `indices` check
        NodeEnvironment.INDICES_FOLDER.equals(shardParentParent.getFileName().toString()) && // NODE-ID check
        nodeIdFileName.chars().allMatch(Character::isDigit) && // `nodes` check
        NodeEnvironment.NODES_FOLDER.equals(shardParentParent.getParent().getParent().getFileName().toString())) {
            shardId = Integer.parseInt(shardIdFileName);
            fromNodeId = Integer.parseInt(nodeIdFileName);
            toNodeId = fromNodeId + 1;
            indexMetadata = StreamSupport.stream(clusterState.metadata().indices().values().spliterator(), false).map(imd -> imd.value).filter(imd -> imd.getIndexUUID().equals(indexUUIDFolderName)).findFirst().orElse(null);
        } else {
            throw new OpenSearchException("Unable to resolve shard id. Wrong folder structure at [ " + path.toString() + " ], expected .../nodes/[NODE-ID]/indices/[INDEX-UUID]/[SHARD-ID]");
        }
    } else {
        // otherwise resolve shardPath based on the index name and shard id
        String indexName = Objects.requireNonNull(indexNameOption.value(options), "Index name is required");
        shardId = Objects.requireNonNull(shardIdOption.value(options), "Shard ID is required");
        indexMetadata = clusterState.metadata().index(indexName);
    }
    if (indexMetadata == null) {
        throw new OpenSearchException("Unable to find index in cluster state");
    }
    final IndexSettings indexSettings = new IndexSettings(indexMetadata, settings);
    final Index index = indexMetadata.getIndex();
    final ShardId shId = new ShardId(index, shardId);
    for (Path dataPath : dataPaths) {
        final Path shardPathLocation = dataPath.resolve(NodeEnvironment.INDICES_FOLDER).resolve(index.getUUID()).resolve(Integer.toString(shId.id()));
        if (Files.exists(shardPathLocation)) {
            final ShardPath shardPath = ShardPath.loadShardPath(logger, shId, indexSettings.customDataPath(), new Path[] { shardPathLocation }, nodeLockId, dataPath);
            if (shardPath != null) {
                consumer.accept(shardPath);
                return;
            }
        }
    }
    throw new OpenSearchException("Unable to resolve shard path for index [" + indexMetadata.getIndex().getName() + "] and shard id [" + shardId + "]");
}
Also used : Path(java.nio.file.Path) NoMergePolicy(org.apache.lucene.index.NoMergePolicy) SequenceNumbers(org.opensearch.index.seqno.SequenceNumbers) Arrays(java.util.Arrays) OpenSearchException(org.opensearch.OpenSearchException) AllocateStalePrimaryAllocationCommand(org.opensearch.cluster.routing.allocation.command.AllocateStalePrimaryAllocationCommand) Strings(org.opensearch.common.Strings) NodeMetadata(org.opensearch.env.NodeMetadata) Directory(org.apache.lucene.store.Directory) Map(java.util.Map) OptionParser(joptsimple.OptionParser) Lucene(org.opensearch.common.lucene.Lucene) Path(java.nio.file.Path) OptionSet(joptsimple.OptionSet) OptionSpec(joptsimple.OptionSpec) NodeEnvironment(org.opensearch.env.NodeEnvironment) PrintWriter(java.io.PrintWriter) SuppressForbidden(org.opensearch.common.SuppressForbidden) Index(org.opensearch.index.Index) TruncateTranslogAction(org.opensearch.index.translog.TruncateTranslogAction) Settings(org.opensearch.common.settings.Settings) Store(org.opensearch.index.store.Store) OpenSearchNodeCommand(org.opensearch.cluster.coordination.OpenSearchNodeCommand) Tuple(org.opensearch.common.collect.Tuple) Engine(org.opensearch.index.engine.Engine) Objects(java.util.Objects) IndexWriter(org.apache.lucene.index.IndexWriter) Logger(org.apache.logging.log4j.Logger) IndexSettings(org.opensearch.index.IndexSettings) IndexWriterConfig(org.apache.lucene.index.IndexWriterConfig) AllocateEmptyPrimaryAllocationCommand(org.opensearch.cluster.routing.allocation.command.AllocateEmptyPrimaryAllocationCommand) PathUtils(org.opensearch.common.io.PathUtils) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) LockObtainFailedException(org.apache.lucene.store.LockObtainFailedException) CheckedConsumer(org.opensearch.common.CheckedConsumer) NativeFSLockFactory(org.apache.lucene.store.NativeFSLockFactory) HashMap(java.util.HashMap) PersistedClusterStateService(org.opensearch.gateway.PersistedClusterStateService) ClusterState(org.opensearch.cluster.ClusterState) Lock(org.apache.lucene.store.Lock) StreamSupport(java.util.stream.StreamSupport) UUIDs(org.opensearch.common.UUIDs) FSDirectory(org.apache.lucene.store.FSDirectory) Environment(org.opensearch.env.Environment) OutputStream(java.io.OutputStream) PrintStream(java.io.PrintStream) Terminal(org.opensearch.cli.Terminal) AllocationCommands(org.opensearch.cluster.routing.allocation.command.AllocationCommands) Files(java.nio.file.Files) AllocationId(org.opensearch.cluster.routing.AllocationId) IOException(java.io.IOException) LogManager(org.apache.logging.log4j.LogManager) IndexSettings(org.opensearch.index.IndexSettings) OpenSearchException(org.opensearch.OpenSearchException) Index(org.opensearch.index.Index) IndexMetadata(org.opensearch.cluster.metadata.IndexMetadata) Settings(org.opensearch.common.settings.Settings) IndexSettings(org.opensearch.index.IndexSettings)

Aggregations

Environment (org.opensearch.env.Environment)142 TestEnvironment (org.opensearch.env.TestEnvironment)98 Path (java.nio.file.Path)80 Settings (org.opensearch.common.settings.Settings)79 Matchers.containsString (org.hamcrest.Matchers.containsString)69 Matchers.hasToString (org.hamcrest.Matchers.hasToString)40 NodeEnvironment (org.opensearch.env.NodeEnvironment)32 IOException (java.io.IOException)27 UserException (org.opensearch.cli.UserException)23 ClusterState (org.opensearch.cluster.ClusterState)22 IndexSettings (org.opensearch.index.IndexSettings)22 MockTerminal (org.opensearch.cli.MockTerminal)19 IndexMetadata (org.opensearch.cluster.metadata.IndexMetadata)19 OpenSearchException (org.opensearch.OpenSearchException)18 Map (java.util.Map)16 OptionSet (joptsimple.OptionSet)15 DiscoverySettings (org.opensearch.node.Node.DiscoverySettings)14 Version (org.opensearch.Version)13 Files (java.nio.file.Files)11 Arrays (java.util.Arrays)11