Skip to content

Commit

Permalink
Fix LifecycleLicenseIT failures (#66039)
Browse files Browse the repository at this point in the history
This attempts to fix the flakiness in the LifecycleLicenseIT tests.
This waits for an active license to be available in the cluster (REST layer
comes up before) and adds busy waiting for setting/checking the licenses
with logging of responses.

Co-authored-by: Elastic Machine <[email protected]>
  • Loading branch information
andreidan and elasticmachine authored Dec 8, 2020
1 parent 9e57a46 commit d1ac92a
Showing 1 changed file with 15 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@

import org.apache.http.util.EntityUtils;
import org.elasticsearch.client.Request;
import org.elasticsearch.client.Response;
import org.elasticsearch.client.ResponseException;
import org.elasticsearch.cluster.metadata.DataStream;
import org.elasticsearch.cluster.metadata.Template;
Expand Down Expand Up @@ -48,9 +49,10 @@ public class LifecycleLicenseIT extends ESRestTestCase {
private String dataStream;

@Before
public void refreshDatastream() {
public void refreshDatastream() throws Exception {
dataStream = "logs-" + randomAlphaOfLength(10).toLowerCase(Locale.ROOT);
policy = "policy-" + randomAlphaOfLength(5);
waitForActiveLicense(adminClient());
}

@After
Expand Down Expand Up @@ -130,11 +132,20 @@ private void putTrialLicense() throws Exception {
XContentBuilder builder = JsonXContent.contentBuilder();
builder = signedLicense.toXContent(builder, ToXContent.EMPTY_PARAMS);
putTrialRequest.setJsonEntity("{\"licenses\":[\n " + Strings.toString(builder) + "\n]}");
client().performRequest(putTrialRequest);
assertBusy(() -> {
Response putLicenseResponse = client().performRequest(putTrialRequest);
logger.info("put trial license response body is [{}]", EntityUtils.toString(putLicenseResponse.getEntity()));
assertOK(putLicenseResponse);
});
}

private void checkCurrentLicenseIs(String type) throws Exception {
assertBusy(() -> assertThat(EntityUtils.toString(client().performRequest(new Request("GET", "/_license")).getEntity()),
containsStringIgnoringCase("\"type\" : \"" + type + "\"")));
assertBusy(() -> {
Response getLicense = client().performRequest(new Request("GET", "/_license"));
String responseBody = EntityUtils.toString(getLicense.getEntity());
logger.info("get license response body is [{}]", responseBody);
assertThat(responseBody,
containsStringIgnoringCase("\"type\" : \"" + type + "\""));
});
}
}

0 comments on commit d1ac92a

Please sign in to comment.