Skip to content

Commit

Permalink
Replace IndexAbstraction.Alias.getFirstAliasMetadata(...) method and …
Browse files Browse the repository at this point in the history
…related casts.

Backport elastic#66178 to 7.x branch.

This change is part of series of changes to clean up the usage IndexAbstraction.Alias in the codebase,
so that it is no longer needed to cast to IndexAbstraction.Alias and just use the methods on the IndexAbstraction
interface. This should help adding data stream aliases, so that IndexAbstraction instances of type ALIAS can
also be data stream aliases.

Relates to elastic#66163
  • Loading branch information
martijnvg committed Jan 7, 2021
1 parent 142a24b commit 977b2e7
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -679,8 +679,8 @@ public void testSameAlias() throws Exception {
assertThat(stopWatch.stop().lastTaskTime().millis(), lessThan(timeout.millis()));

logger.info("--> verify that filter was updated");
AliasMetadata aliasMetadata = ((IndexAbstraction.Alias) internalCluster()
.clusterService().state().metadata().getIndicesLookup().get("alias1")).getFirstAliasMetadata();
IndexAbstraction ia = internalCluster().clusterService().state().metadata().getIndicesLookup().get("alias1");
AliasMetadata aliasMetadata = AliasMetadata.getFirstAliasMetadata(ia);
assertThat(aliasMetadata.getFilter().toString(), equalTo("{\"term\":{\"name\":{\"value\":\"bar\",\"boost\":1.0}}}"));

logger.info("--> deleting alias1");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,14 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws
return builder;
}

public static AliasMetadata getFirstAliasMetadata(IndexAbstraction ia) {
if (ia.getType() != IndexAbstraction.Type.ALIAS) {
throw new IllegalArgumentException("unexpected type: [" + ia.getType() + "]");
}

return ia.getIndices().get(0).getAliases().get(ia.getName());
}

public static class Builder {

private final String alias;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -242,10 +242,6 @@ public boolean isSystem() {
return referenceIndexMetadatas.stream().allMatch(IndexMetadata::isSystem);
}

public AliasMetadata getFirstAliasMetadata() {
return referenceIndexMetadatas.get(0).getAliases().get(aliasName);
}

private void validateAliasProperties() {
// Validate hidden status
final Map<Boolean, List<IndexMetadata>> groupedByHiddenStatus = referenceIndexMetadatas.stream()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -651,11 +651,10 @@ public String resolveIndexRouting(@Nullable String routing, String aliasOrIndex)
if (result == null || result.getType() != IndexAbstraction.Type.ALIAS) {
return routing;
}
IndexAbstraction.Alias alias = (IndexAbstraction.Alias) result;
if (result.getIndices().size() > 1) {
rejectSingleIndexOperation(aliasOrIndex, result);
}
AliasMetadata aliasMd = alias.getFirstAliasMetadata();
AliasMetadata aliasMd = AliasMetadata.getFirstAliasMetadata(result);
if (aliasMd.indexRouting() != null) {
if (aliasMd.indexRouting().indexOf(',') != -1) {
throw new IllegalArgumentException("index/alias [" + aliasOrIndex + "] provided with routing value [" +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,14 +142,12 @@ static void validateRequest(ClusterState currentState, MigrateToDataStreamCluste
if (ia == null || ia.getType() != IndexAbstraction.Type.ALIAS) {
throw new IllegalArgumentException("alias [" + request.aliasName + "] does not exist");
}
IndexAbstraction.Alias alias = (IndexAbstraction.Alias) ia;

if (alias.getWriteIndex() == null) {
if (ia.getWriteIndex() == null) {
throw new IllegalArgumentException("alias [" + request.aliasName + "] must specify a write index");
}

// check for "clean" alias without routing or filter query
AliasMetadata aliasMetadata = alias.getFirstAliasMetadata();
AliasMetadata aliasMetadata = AliasMetadata.getFirstAliasMetadata(ia);
assert aliasMetadata != null : "alias metadata may not be null";
if (aliasMetadata.filteringRequired() || aliasMetadata.getIndexRouting() != null || aliasMetadata.getSearchRouting() != null) {
throw new IllegalArgumentException("alias [" + request.aliasName + "] may not have custom filtering or routing");
Expand Down

0 comments on commit 977b2e7

Please sign in to comment.