@Override public Boolean call() throws Exception { return isProcessRunning(baseDir) && isInstanceRunning(clusterName, client); } }
/** * Verify that the ES instance in the Elasticsearch base directory is not running * * @param httpPort * @throws IllegalStateException */ public void verifyInstanceNotRunning(String clusterName, int httpPort) throws IllegalStateException { String path = esBaseDir.getAbsolutePath(); if (Monitor.isProcessRunning(path)) { throw new IllegalStateException(String.format( "The ES process in %s appears to be running", path)); } if (Monitor.isInstanceRunning(clusterName, httpPort)) { throw new IllegalStateException(String.format( "ES responded with valid response to GET / request on port %d", httpPort)); } }
/** * Verify that the ES instance in the Elasticsearch base directory is running * * @param httpPort * @param clusterName * @throws IllegalStateException */ public void verifyInstanceRunning(String clusterName, int httpPort) throws IllegalStateException { String path = esBaseDir.getAbsolutePath(); if (Monitor.isProcessRunning(path) == false) { throw new IllegalStateException(String.format( "The ES process in %s is not running", path)); } if (Monitor.isInstanceRunning(clusterName, httpPort) == false) { throw new IllegalStateException(String.format( "ES did not respond as expected to GET / request on port %d", httpPort)); } }
/** * Check whether the cluster with the given name exists in the ES running on the given port. * @param clusterName the ES cluster name * @param httpPort the HTTP port to connect to ES * @return true if the instance is running, false otherwise */ public static boolean isInstanceRunning(String clusterName, int httpPort) { Log log = Mockito.mock(Log.class); ElasticsearchClient client = new ElasticsearchClient.Builder() .withLog(log) .withHostname("localhost") .withPort(httpPort) .withSocketTimeout(5000) .build(); return isInstanceRunning(clusterName, client); }