From 9ce0c799772a5e3b963cc1390543c3eb21e5127d Mon Sep 17 00:00:00 2001 From: rebnridgway Date: Wed, 18 Jan 2017 14:56:14 +0000 Subject: [PATCH] Update ElasticSearchDao to support LogStash This allows ElasticSearchDao to push data to a LogStash instance set up with the http input plugin instead of an ElasticSearch instance. They expose a similiar API. --- .../plugins/logstash/persistence/ElasticSearchDao.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/jenkins/plugins/logstash/persistence/ElasticSearchDao.java b/src/main/java/jenkins/plugins/logstash/persistence/ElasticSearchDao.java index a7b9c009..91c29df2 100644 --- a/src/main/java/jenkins/plugins/logstash/persistence/ElasticSearchDao.java +++ b/src/main/java/jenkins/plugins/logstash/persistence/ElasticSearchDao.java @@ -24,6 +24,8 @@ package jenkins.plugins.logstash.persistence; +import static com.google.common.collect.Ranges.closedOpen; + import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.exception.ExceptionUtils; @@ -41,6 +43,8 @@ import java.net.URI; import java.net.URISyntaxException; +import com.google.common.collect.Range; + /** * Elastic Search Data Access Object. * @@ -51,6 +55,7 @@ public class ElasticSearchDao extends AbstractLogstashIndexerDao { final HttpClientBuilder clientBuilder; final URI uri; final String auth; + final Range successCodes = closedOpen(200,300); //primary constructor used by indexer factory public ElasticSearchDao(String host, int port, String key, String username, String password) { @@ -109,7 +114,7 @@ public void push(String data) throws IOException { httpClient = clientBuilder.build(); response = httpClient.execute(post); - if (response.getStatusLine().getStatusCode() != 201) { + if (!successCodes.contains(response.getStatusLine().getStatusCode())) { throw new IOException(this.getErrorMessage(response)); } } finally {