add a basic cluster info IT to the found qa module
Original commit: elastic/x-pack-elasticsearch@8f6334ef2b
This commit is contained in:
parent
40e1376ec9
commit
09990dbeee
|
@ -0,0 +1,102 @@
|
||||||
|
/*
|
||||||
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||||
|
* or more contributor license agreements. Licensed under the Elastic License;
|
||||||
|
* you may not use this file except in compliance with the Elastic License.
|
||||||
|
*/
|
||||||
|
package org.elasticsearch.smoketest;
|
||||||
|
|
||||||
|
import org.elasticsearch.Version;
|
||||||
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
|
import org.elasticsearch.common.Strings;
|
||||||
|
import org.elasticsearch.common.settings.Settings;
|
||||||
|
import org.elasticsearch.index.IndexNotFoundException;
|
||||||
|
import org.elasticsearch.plugins.Plugin;
|
||||||
|
import org.elasticsearch.shield.ShieldPlugin;
|
||||||
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
|
import org.hamcrest.Matcher;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
import static org.hamcrest.Matchers.is;
|
||||||
|
import static org.hamcrest.Matchers.nullValue;
|
||||||
|
|
||||||
|
public class MarvelClusterInfoIT extends ESIntegTestCase {
|
||||||
|
|
||||||
|
static final String ADMIN_USER_PW = "test_admin:changeme";
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Settings externalClusterClientSettings() {
|
||||||
|
return Settings.builder()
|
||||||
|
.put("shield.user", ADMIN_USER_PW)
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected Collection<Class<? extends Plugin>> transportClientPlugins() {
|
||||||
|
return Collections.singletonList(ShieldPlugin.class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testMarvelClusterInfoCollectorWorks() throws Exception {
|
||||||
|
final String clusterUUID = client().admin().cluster().prepareState().setMetaData(true).get().getState().metaData().clusterUUID();
|
||||||
|
assertTrue(Strings.hasText(clusterUUID));
|
||||||
|
awaitIndexExists(".marvel-es-data");
|
||||||
|
ensureMarvelIndicesGreen();
|
||||||
|
awaitMarvelDocsCount(equalTo(1L), "cluster_info");
|
||||||
|
GetResponse response = client().prepareGet(".marvel-es-data", "cluster_info", clusterUUID).get();
|
||||||
|
assertTrue(".marvel-es-data" + " document does not exist", response.isExists());
|
||||||
|
Map<String, Object> source = response.getSource();
|
||||||
|
assertThat((String) source.get("cluster_name"), equalTo(cluster().getClusterName()));
|
||||||
|
assertThat((String) source.get("version"), equalTo(Version.CURRENT.toString()));
|
||||||
|
|
||||||
|
Object licenseObj = source.get("license");
|
||||||
|
assertThat(licenseObj, nullValue());
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void ensureMarvelIndicesGreen() {
|
||||||
|
try {
|
||||||
|
ensureGreen(".marvel-es-*");
|
||||||
|
} catch (IndexNotFoundException e) {
|
||||||
|
// might happen with shield...
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void awaitMarvelDocsCount(Matcher<Long> matcher, String... types) throws Exception {
|
||||||
|
flush();
|
||||||
|
refresh();
|
||||||
|
assertBusy(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
assertMarvelDocsCount(matcher, types);
|
||||||
|
}
|
||||||
|
}, 30, TimeUnit.SECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertMarvelDocsCount(Matcher<Long> matcher, String... types) {
|
||||||
|
try {
|
||||||
|
long count = client().prepareSearch(".marvel-es-*").setSize(0)
|
||||||
|
.setTypes(types).get().getHits().totalHits();
|
||||||
|
logger.trace("--> searched for [{}] documents, found [{}]", Strings.arrayToCommaDelimitedString(types), count);
|
||||||
|
assertThat(count, matcher);
|
||||||
|
} catch (IndexNotFoundException e) {
|
||||||
|
assertThat(0L, matcher);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void awaitIndexExists(final String... indices) throws Exception {
|
||||||
|
assertBusy(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
assertIndicesExists(indices);
|
||||||
|
}
|
||||||
|
}, 30, TimeUnit.SECONDS);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void assertIndicesExists(String... indices) {
|
||||||
|
logger.trace("checking if index exists [{}]", Strings.arrayToCommaDelimitedString(indices));
|
||||||
|
assertThat(client().admin().indices().prepareExists(indices).get().isExists(), is(true));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue