Wait for watcher to be started prior to rolling upgrade tests. (#52186)
Backport: #52139 In the rolling upgrade tests, watcher is manually executed, in rare scenarios this happens before watcher is started, resulting in the manual execution to fail. Relates to #33185
This commit is contained in:
parent
cbebc26f50
commit
c14e4666df
|
@ -8,6 +8,8 @@ package org.elasticsearch.upgrades;
|
||||||
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
|
import com.carrotsearch.randomizedtesting.annotations.ParametersFactory;
|
||||||
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
|
import com.carrotsearch.randomizedtesting.annotations.TimeoutSuite;
|
||||||
import org.apache.lucene.util.TimeUnits;
|
import org.apache.lucene.util.TimeUnits;
|
||||||
|
import org.elasticsearch.client.Request;
|
||||||
|
import org.elasticsearch.client.Response;
|
||||||
import org.elasticsearch.common.settings.Settings;
|
import org.elasticsearch.common.settings.Settings;
|
||||||
import org.elasticsearch.common.util.concurrent.ThreadContext;
|
import org.elasticsearch.common.util.concurrent.ThreadContext;
|
||||||
import org.elasticsearch.test.rest.ESRestTestCase;
|
import org.elasticsearch.test.rest.ESRestTestCase;
|
||||||
|
@ -19,6 +21,10 @@ import org.junit.Before;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
|
|
||||||
@TimeoutSuite(millis = 5 * TimeUnits.MINUTE) // to account for slow as hell VMs
|
@TimeoutSuite(millis = 5 * TimeUnits.MINUTE) // to account for slow as hell VMs
|
||||||
|
@ -32,6 +38,21 @@ public class UpgradeClusterClientYamlTestSuiteIT extends ESClientYamlSuiteTestCa
|
||||||
XPackRestTestHelper.waitForTemplates(client(), XPackRestTestConstants.ML_POST_V660_TEMPLATES);
|
XPackRestTestHelper.waitForTemplates(client(), XPackRestTestConstants.ML_POST_V660_TEMPLATES);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Before
|
||||||
|
public void waitForWatcher() throws Exception {
|
||||||
|
// Wait for watcher to be in started state in order to avoid errors due
|
||||||
|
// to manually executing watches prior for watcher to be ready:
|
||||||
|
assertBusy(() -> {
|
||||||
|
Response response = client().performRequest(new Request("GET", "_watcher/stats"));
|
||||||
|
Map<String, Object> responseBody = entityAsMap(response);
|
||||||
|
List<?> stats = (List<?>) responseBody.get("stats");
|
||||||
|
for (Object stat : stats) {
|
||||||
|
Map<?, ?> statAsMap = (Map<?, ?>) stat;
|
||||||
|
assertThat(statAsMap.get("watcher_state"), equalTo("started"));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean preserveIndicesUponCompletion() {
|
protected boolean preserveIndicesUponCompletion() {
|
||||||
return true;
|
return true;
|
||||||
|
|
Loading…
Reference in New Issue