|
@@ -38,6 +38,7 @@ import org.gradle.api.tasks.Copy
|
|
|
import org.gradle.api.tasks.Delete
|
|
|
import org.gradle.api.tasks.Exec
|
|
|
|
|
|
+import java.nio.charset.StandardCharsets
|
|
|
import java.nio.file.Paths
|
|
|
import java.util.concurrent.TimeUnit
|
|
|
|
|
@@ -157,10 +158,14 @@ class ClusterFormationTasks {
|
|
|
node.cwd.mkdirs()
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
setup = configureCheckPreviousTask(taskName(prefix, node, 'checkPrevious'), project, setup, node)
|
|
|
setup = configureStopTask(taskName(prefix, node, 'stopPrevious'), project, setup, node)
|
|
|
setup = configureExtractTask(taskName(prefix, node, 'extract'), project, setup, node, configuration)
|
|
|
setup = configureWriteConfigTask(taskName(prefix, node, 'configure'), project, setup, node, seedNode)
|
|
|
+ setup = configureCreateKeystoreTask(taskName(prefix, node, 'createKeystore'), project, setup, node)
|
|
|
+ setup = configureAddKeystoreSettingTasks(prefix, project, setup, node)
|
|
|
+
|
|
|
if (node.config.plugins.isEmpty() == false) {
|
|
|
if (node.nodeVersion == VersionProperties.elasticsearch) {
|
|
|
setup = configureCopyPluginsTask(taskName(prefix, node, 'copyPlugins'), project, setup, node)
|
|
@@ -303,6 +308,33 @@ class ClusterFormationTasks {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ /** Adds a task to create keystore */
|
|
|
+ static Task configureCreateKeystoreTask(String name, Project project, Task setup, NodeInfo node) {
|
|
|
+ if (node.config.keystoreSettings.isEmpty()) {
|
|
|
+ return setup
|
|
|
+ } else {
|
|
|
+ File esKeystoreUtil = Paths.get(node.homeDir.toString(), "bin/" + "elasticsearch-keystore").toFile()
|
|
|
+ return configureExecTask(name, project, setup, node, esKeystoreUtil, 'create')
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /** Adds tasks to add settings to the keystore */
|
|
|
+ static Task configureAddKeystoreSettingTasks(String parent, Project project, Task setup, NodeInfo node) {
|
|
|
+ Map kvs = node.config.keystoreSettings
|
|
|
+ File esKeystoreUtil = Paths.get(node.homeDir.toString(), "bin/" + "elasticsearch-keystore").toFile()
|
|
|
+ Task parentTask = setup
|
|
|
+ for (Map.Entry<String, String> entry in kvs) {
|
|
|
+ String key = entry.getKey()
|
|
|
+ String name = taskName(parent, node, 'addToKeystore#' + key)
|
|
|
+ Task t = configureExecTask(name, project, parentTask, node, esKeystoreUtil, 'add', key, '-x')
|
|
|
+ t.doFirst {
|
|
|
+ standardInput = new ByteArrayInputStream(entry.getValue().getBytes(StandardCharsets.UTF_8))
|
|
|
+ }
|
|
|
+ parentTask = t
|
|
|
+ }
|
|
|
+ return parentTask
|
|
|
+ }
|
|
|
+
|
|
|
static Task configureExtraConfigFilesTask(String name, Project project, Task setup, NodeInfo node) {
|
|
|
if (node.config.extraConfigFiles.isEmpty()) {
|
|
|
return setup
|