Skip to content

Commit aea4e65

Browse files
jkakavasjasontedor
authored andcommitted
Source additional files correctly in elasticsearch-cli (#40890)
Since we only source additional sources from the same dir as our cli scripts, resolve the path relevant to $ES_HOME
1 parent f434884 commit aea4e65

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

distribution/src/bin/elasticsearch-cli

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ source "`dirname "$0"`"/elasticsearch-env
77
IFS=';' read -r -a additional_sources <<< "$ES_ADDITIONAL_SOURCES"
88
for additional_source in "${additional_sources[@]}"
99
do
10-
source "`dirname "$0"`"/$additional_source
10+
source "$ES_HOME"/bin/$additional_source
1111
done
1212

1313
IFS=';' read -r -a additional_classpath_directories <<< "$ES_ADDITIONAL_CLASSPATH_DIRECTORIES"

qa/vagrant/src/main/java/org/elasticsearch/packaging/test/ArchiveTestCase.java

+29
Original file line numberDiff line numberDiff line change
@@ -439,4 +439,33 @@ public void test93ElasticsearchNodeCustomDataPathAndNotEsHomeWorkDir() throws Ex
439439
assertThat(result.stdout, containsString("Master node was successfully bootstrapped"));
440440
}
441441

442+
public void test94ElasticsearchNodeExecuteCliNotEsHomeWorkDir() throws Exception {
443+
assumeThat(installation, is(notNullValue()));
444+
445+
final Installation.Executables bin = installation.executables();
446+
final Shell sh = newShell();
447+
// Run the cli tools from the tmp dir
448+
sh.setWorkingDirectory(getTempDir());
449+
450+
Platforms.PlatformAction action = () -> {
451+
Result result = sh.run(bin.elasticsearchCertutil+ " -h");
452+
assertThat(result.stdout,
453+
containsString("Simplifies certificate creation for use with the Elastic Stack"));
454+
result = sh.run(bin.elasticsearchSyskeygen+ " -h");
455+
assertThat(result.stdout,
456+
containsString("system key tool"));
457+
result = sh.run(bin.elasticsearchSetupPasswords+ " -h");
458+
assertThat(result.stdout,
459+
containsString("Sets the passwords for reserved users"));
460+
result = sh.run(bin.elasticsearchUsers+ " -h");
461+
assertThat(result.stdout,
462+
containsString("Manages elasticsearch file users"));
463+
};
464+
465+
if (distribution().equals(Distribution.DEFAULT_LINUX) || distribution().equals(Distribution.DEFAULT_WINDOWS)) {
466+
Platforms.onLinux(action);
467+
Platforms.onWindows(action);
468+
}
469+
}
470+
442471
}

qa/vagrant/src/main/java/org/elasticsearch/packaging/util/Installation.java

+3
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ public class Executables {
104104
public final Path elasticsearchCertutil = platformExecutable("elasticsearch-certutil");
105105
public final Path elasticsearchShard = platformExecutable("elasticsearch-shard");
106106
public final Path elasticsearchNode = platformExecutable("elasticsearch-node");
107+
public final Path elasticsearchSetupPasswords = platformExecutable("elasticsearch-setup-passwords");
108+
public final Path elasticsearchSyskeygen = platformExecutable("elasticsearch-syskeygen");
109+
public final Path elasticsearchUsers = platformExecutable("elasticsearch-users");
107110

108111
private Path platformExecutable(String name) {
109112
final String platformExecutableName = Platforms.WINDOWS

0 commit comments

Comments
 (0)