Skip to content

Commit

Permalink
Fixes SecurityIntegTestCase so it always adds at least one alias (#33296
Browse files Browse the repository at this point in the history
)

* Fixes SecurityIntegTestCase so it always adds at least one alias

`SecurityIntegTestCase.createIndicesWithRandomAliases` could randomly
fail because its not gauranteed that the randomness of which aliases to
add to the `IndicesAliasesRequestBuilder` would always select at least
one alias to add. This change fixes the problem by keeping track of
whether we have added an alias to teh request and forcing the last
alias to be added if no other aliases have been added so far.

Closes #30098
Closes #33123e

* Addresses review comments
  • Loading branch information
colings86 authored Aug 31, 2018
1 parent db3d32c commit 436d5c4
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

import io.netty.util.ThreadDeathWatcher;
import io.netty.util.concurrent.GlobalEventExecutor;

import org.elasticsearch.Version;
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
import org.elasticsearch.action.admin.cluster.node.info.NodeInfo;
Expand Down Expand Up @@ -44,7 +45,6 @@
import org.elasticsearch.xpack.core.security.authc.support.UsernamePasswordToken;
import org.elasticsearch.xpack.core.security.client.SecurityClient;
import org.elasticsearch.xpack.security.LocalStateSecurity;

import org.elasticsearch.xpack.security.support.SecurityIndexManager;
import org.junit.AfterClass;
import org.junit.Before;
Expand Down Expand Up @@ -420,14 +420,18 @@ protected void createIndicesWithRandomAliases(String... indices) {
createIndex(indices);

if (frequently()) {
boolean aliasAdded = false;
IndicesAliasesRequestBuilder builder = client().admin().indices().prepareAliases();
for (String index : indices) {
if (frequently()) {
//one alias per index with prefix "alias-"
builder.addAlias(index, "alias-" + index);
aliasAdded = true;
}
}
if (randomBoolean()) {
// If we get to this point and we haven't added an alias to the request we need to add one
// or the request will fail so use noAliasAdded to force adding the alias in this case
if (aliasAdded == false || randomBoolean()) {
//one alias pointing to all indices
for (String index : indices) {
builder.addAlias(index, "alias");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,6 @@ public void testEmptyAuthorizedIndicesSearchForAll() {
assertNoSearchHits(client().prepareSearch().get());
}

@AwaitsFix(bugUrl="https://github.com/elastic/elasticsearch/issues/33123")
public void testEmptyAuthorizedIndicesSearchForAllDisallowNoIndices() {
createIndicesWithRandomAliases("index1", "index2");
IndexNotFoundException e = expectThrows(IndexNotFoundException.class, () -> client().prepareSearch()
Expand Down

0 comments on commit 436d5c4

Please sign in to comment.