diff --git a/marvel/src/test/java/org/elasticsearch/marvel/agent/exporter/local/LocalExporterTests.java b/marvel/src/test/java/org/elasticsearch/marvel/agent/exporter/local/LocalExporterTests.java index 3f6de59cda5..92b7e133825 100644 --- a/marvel/src/test/java/org/elasticsearch/marvel/agent/exporter/local/LocalExporterTests.java +++ b/marvel/src/test/java/org/elasticsearch/marvel/agent/exporter/local/LocalExporterTests.java @@ -35,8 +35,8 @@ import org.elasticsearch.search.SearchHit; import org.elasticsearch.test.ESIntegTestCase.ClusterScope; import org.elasticsearch.test.ESIntegTestCase.Scope; import org.elasticsearch.test.InternalTestCluster; -import org.elasticsearch.test.junit.annotations.TestLogging; import org.joda.time.format.DateTimeFormat; +import org.junit.After; import org.junit.Test; import java.util.ArrayList; @@ -60,16 +60,23 @@ public class LocalExporterTests extends MarvelIntegTestCase { protected Settings nodeSettings(int nodeOrdinal) { return Settings.builder() .put(super.nodeSettings(nodeOrdinal)) + .put(MarvelSettings.INTERVAL, "-1") .build(); } + @After + public void cleanup() throws Exception { + updateMarvelInterval(-1, TimeUnit.SECONDS); + wipeMarvelIndices(); + } + @Test public void testSimpleExport() throws Exception { internalCluster().startNode(Settings.builder() .put("marvel.agent.exporters._local.type", LocalExporter.TYPE) .put("marvel.agent.exporters._local.enabled", true) .build()); - ensureGreen(); + securedEnsureGreen(); Exporter exporter = getLocalExporter("_local"); @@ -100,12 +107,17 @@ public class LocalExporterTests extends MarvelIntegTestCase { public void testTemplateCreation() throws Exception { internalCluster().startNode(Settings.builder() .put("marvel.agent.exporters._local.type", LocalExporter.TYPE) + .put("marvel.agent.exporters._local.template.settings.index.number_of_replicas", 0) .build()); - ensureGreen(); + securedEnsureGreen(); LocalExporter exporter = getLocalExporter("_local"); assertTrue(exporter.installedTemplateVersionMandatesAnUpdate(Version.CURRENT, null)); + // start collecting + updateMarvelInterval(3L, TimeUnit.SECONDS); + waitForMarvelIndices(); + // lets wait until the marvel template will be installed awaitMarvelTemplateInstalled(); @@ -118,16 +130,25 @@ public class LocalExporterTests extends MarvelIntegTestCase { public void testTemplateUpdate() throws Exception { internalCluster().startNode(Settings.builder() .put("marvel.agent.exporters._local.type", LocalExporter.TYPE) + .put("marvel.agent.exporters._local.template.settings.index.number_of_replicas", 0) .build()); - ensureGreen(); + securedEnsureGreen(); LocalExporter exporter = getLocalExporter("_local"); Version fakeVersion = MIN_SUPPORTED_TEMPLATE_VERSION; assertThat(exporter.installedTemplateVersionMandatesAnUpdate(Version.CURRENT, fakeVersion), is(true)); + // start collecting + updateMarvelInterval(3L, TimeUnit.SECONDS); + waitForMarvelIndices(); + // first, lets wait for the marvel template to be installed awaitMarvelTemplateInstalled(); + // stop collecting before cluster restart + updateMarvelInterval(-1, TimeUnit.SECONDS); + wipeMarvelIndices(); + // now lets update the template with an old one and then restart the cluster exporter.putTemplate(Settings.builder().put(MarvelTemplateUtils.MARVEL_VERSION_FIELD, fakeVersion.toString()).build()); logger.debug("full cluster restart"); @@ -142,6 +163,10 @@ public class LocalExporterTests extends MarvelIntegTestCase { fail("waited too long (at least 30 seconds) for the cluster to restart"); } + // start collecting again + updateMarvelInterval(3L, TimeUnit.SECONDS); + waitForMarvelIndices(); + // now that the cluster is restarting, lets wait for the new template version to be installed awaitMarvelTemplateInstalled(Version.CURRENT); } @@ -184,7 +209,7 @@ public class LocalExporterTests extends MarvelIntegTestCase { verify(exporter, times(1)).installedTemplateVersionIsSufficient(Version.CURRENT, unsupportedVersion); } - @Test @TestLogging("marvel.agent:trace") + @Test public void testIndexTimestampFormat() throws Exception { long time = System.currentTimeMillis(); String timeFormat = randomFrom("YY", "YYYY", "YYYY.MM", "YYYY-MM", "MM.YYYY", "MM"); @@ -193,7 +218,7 @@ public class LocalExporterTests extends MarvelIntegTestCase { .put("marvel.agent.exporters._local.type", LocalExporter.TYPE) .put("marvel.agent.exporters._local." + LocalExporter.INDEX_NAME_TIME_FORMAT_SETTING, timeFormat) .build()); - ensureGreen(); + securedEnsureGreen(); LocalExporter exporter = getLocalExporter("_local"); @@ -239,8 +264,6 @@ public class LocalExporterTests extends MarvelIntegTestCase { } } - - private Version getCurrentlyInstalledTemplateVersion() { GetIndexTemplatesResponse response = client().admin().indices().prepareGetTemplates(MarvelTemplateUtils.INDEX_TEMPLATE_NAME).get(); assertThat(response, notNullValue());