mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-06 04:58:50 +00:00
491a945ac8
Today when a node starts, we create dynamic socket permissions based on the configured HTTP ports and transport ports. If no ports are configured, we use the default port ranges. When a tribe node starts, a tribe node creates an internal node client for connecting to each remote cluster. If neither an explicit HTTP port nor transport ports were specified, the default port ranges are large enough for the tribe node and its internal node clients. If an explicit HTTP port or transport port was specified for the tribe node, then socket permissions for those ports will be created, but not for the internal node clients. Whether the internal node clients have explicit ports specified, or attempt to bind within the default range, socket permissions for these will not have been created and the internal node clients will hit a permissions issue when attempting to bind. This commit addresses this issue by also accounting for tribe nodes when creating the dynamic socket permissions. Additionally, we add our first real integration test for tribe nodes.
116 lines
3.5 KiB
Groovy
116 lines
3.5 KiB
Groovy
rootProject.name = 'elasticsearch'
|
|
|
|
List projects = [
|
|
'build-tools',
|
|
'rest-api-spec',
|
|
'core',
|
|
'docs',
|
|
'client:rest',
|
|
'client:sniffer',
|
|
'client:transport',
|
|
'client:test',
|
|
'client:client-benchmark-noop-api-plugin',
|
|
'client:benchmark',
|
|
'benchmarks',
|
|
'distribution:integ-test-zip',
|
|
'distribution:zip',
|
|
'distribution:tar',
|
|
'distribution:deb',
|
|
'distribution:rpm',
|
|
'test:framework',
|
|
'test:fixtures:example-fixture',
|
|
'test:fixtures:hdfs-fixture',
|
|
'test:logger-usage',
|
|
'modules:aggs-matrix-stats',
|
|
'modules:ingest-common',
|
|
'modules:lang-expression',
|
|
'modules:lang-groovy',
|
|
'modules:lang-mustache',
|
|
'modules:lang-painless',
|
|
'modules:transport-netty3',
|
|
'modules:transport-netty4',
|
|
'modules:reindex',
|
|
'modules:percolator',
|
|
'plugins:analysis-icu',
|
|
'plugins:analysis-kuromoji',
|
|
'plugins:analysis-phonetic',
|
|
'plugins:analysis-smartcn',
|
|
'plugins:analysis-stempel',
|
|
'plugins:analysis-ukrainian',
|
|
'plugins:discovery-azure-classic',
|
|
'plugins:discovery-ec2',
|
|
'plugins:discovery-file',
|
|
'plugins:discovery-gce',
|
|
'plugins:ingest-geoip',
|
|
'plugins:ingest-attachment',
|
|
'plugins:ingest-user-agent',
|
|
'plugins:lang-javascript',
|
|
'plugins:lang-python',
|
|
'plugins:mapper-murmur3',
|
|
'plugins:mapper-size',
|
|
'plugins:repository-azure',
|
|
'plugins:repository-gcs',
|
|
'plugins:repository-hdfs',
|
|
'plugins:repository-s3',
|
|
'plugins:jvm-example',
|
|
'plugins:store-smb',
|
|
'qa:backwards-5.0',
|
|
'qa:evil-tests',
|
|
'qa:rolling-upgrade',
|
|
'qa:smoke-test-client',
|
|
'qa:smoke-test-http',
|
|
'qa:smoke-test-ingest-with-all-dependencies',
|
|
'qa:smoke-test-ingest-disabled',
|
|
'qa:smoke-test-multinode',
|
|
'qa:smoke-test-plugins',
|
|
'qa:smoke-test-reindex-with-painless',
|
|
'qa:smoke-test-tribe-node',
|
|
'qa:vagrant',
|
|
]
|
|
|
|
boolean isEclipse = System.getProperty("eclipse.launcher") != null || gradle.startParameter.taskNames.contains('eclipse') || gradle.startParameter.taskNames.contains('cleanEclipse')
|
|
if (isEclipse) {
|
|
// eclipse cannot handle an intermediate dependency between main and test, so we must create separate projects
|
|
// for core-src and core-tests
|
|
projects << 'core-tests'
|
|
}
|
|
|
|
include projects.toArray(new String[0])
|
|
|
|
project(':build-tools').projectDir = new File(rootProject.projectDir, 'buildSrc')
|
|
|
|
if (isEclipse) {
|
|
project(":core").projectDir = new File(rootProject.projectDir, 'core/src/main')
|
|
project(":core").buildFileName = 'eclipse-build.gradle'
|
|
project(":core-tests").projectDir = new File(rootProject.projectDir, 'core/src/test')
|
|
project(":core-tests").buildFileName = 'eclipse-build.gradle'
|
|
}
|
|
|
|
/**
|
|
* Iterates over sub directories, looking for build.gradle, and adds a project if found
|
|
* for that dir with the given path prefix. Note that this requires each level
|
|
* of the dir hiearchy to have a build.gradle. Otherwise we would have to iterate
|
|
* all files/directories in the source tree to find all projects.
|
|
*/
|
|
void addSubProjects(String path, File dir) {
|
|
if (dir.isDirectory() == false) return;
|
|
if (dir.name == 'buildSrc') return;
|
|
if (new File(dir, 'build.gradle').exists() == false) return;
|
|
|
|
String projectName = "${path}:${dir.name}"
|
|
include projectName
|
|
for (File subdir : dir.listFiles()) {
|
|
addSubProjects(projectName, subdir)
|
|
}
|
|
}
|
|
|
|
// look for extra plugins for elasticsearch
|
|
File xplugins = new File(rootProject.projectDir.parentFile, 'x-plugins')
|
|
if (xplugins.exists()) {
|
|
include ':x-plugins'
|
|
project(':x-plugins').projectDir = xplugins
|
|
for (File extraPluginDir : xplugins.listFiles()) {
|
|
addSubProjects(':x-plugins', extraPluginDir)
|
|
}
|
|
}
|