Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@
package org.elasticsearch.integration;

import org.elasticsearch.action.admin.cluster.snapshots.status.SnapshotsStatusResponse;
import org.elasticsearch.action.admin.cluster.state.ClusterStateRequest;
import org.elasticsearch.client.Request;
import org.elasticsearch.cluster.SnapshotsInProgress;
import org.elasticsearch.common.Strings;
import org.elasticsearch.common.settings.SecureString;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.xpack.core.security.authc.support.Hasher;
import org.hamcrest.Matchers;
import org.junit.AfterClass;
import org.junit.BeforeClass;

Expand Down Expand Up @@ -203,5 +205,12 @@ private void waitForSnapshotToFinish(String repo, String snapshot) throws Except
SnapshotsStatusResponse response = client().admin().cluster().prepareSnapshotStatus(repo).setSnapshots(snapshot).get();
assertThat(response.getSnapshots().get(0).getState(), is(SnapshotsInProgress.State.SUCCESS));
});
// The status of the snapshot in the repository can become SUCCESS before it is fully finalized in the cluster state so wait for
// it to disappear from the cluster state as well
assertBusy(() -> {
SnapshotsInProgress response =
client().admin().cluster().state(new ClusterStateRequest()).get().getState().custom(SnapshotsInProgress.TYPE);
assertThat(response.entries(), Matchers.empty());
});
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@original-brownbear you've got my rubber stamp LGTM , but shouldn't we fix the prepareSnapshotStatus(repo).setSnapshots(snapshot) API to not return SUCCESS if there is still an SnapshotsInProgress.TYPE entry?

}
}