diff --git a/data-node/src/main/java/org/graylog/datanode/Configuration.java b/data-node/src/main/java/org/graylog/datanode/Configuration.java index 7410dc9388..42888f7020 100644 --- a/data-node/src/main/java/org/graylog/datanode/Configuration.java +++ b/data-node/src/main/java/org/graylog/datanode/Configuration.java @@ -28,7 +28,6 @@ import com.github.joschi.jadconfig.validators.PositiveIntegerValidator; import com.github.joschi.jadconfig.validators.StringNotBlankValidator; import com.github.joschi.jadconfig.validators.URIAbsoluteValidator; import com.google.common.annotations.VisibleForTesting; -import com.google.common.net.HostAndPort; import com.google.common.net.InetAddresses; import org.graylog.datanode.configuration.BaseConfiguration; import org.graylog2.plugin.Tools; @@ -39,6 +38,7 @@ import org.slf4j.LoggerFactory; import javax.annotation.Nullable; import java.io.File; +import java.io.IOException; import java.net.Inet4Address; import java.net.InetAddress; import java.net.URI; @@ -224,6 +224,16 @@ public class Configuration extends BaseConfiguration { } } + @ValidatorMethod + @SuppressWarnings("unused") + public void validateOpenSearchDistribution() throws ValidationException { + try { + OpensearchDistribution.detectInDirectory(Path.of(getOpensearchDistributionRoot())); + } catch (RuntimeException | IOException e) { + throw new ValidationException("Could not detect OpenSearch in " + getOpensearchDistributionRoot() + ", please check your installation. Error was: " + e.getMessage()); + } + } + @Parameter(value = "node_id_file", validators = NodeIdFileValidator.class) private String nodeIdFile = "data/node-id";