private List<String> toString(List<AliasMetaData> aliases) { if(aliases == null || aliases.size() == 0) { return Collections.emptyList(); } final List<String> ret = new ArrayList<>(aliases.size()); for(final AliasMetaData amd: aliases) { if(amd != null) { ret.add(amd.alias()); } } return Collections.unmodifiableList(ret); } }
public String getAlias() { return alias(); }
public Builder putAlias(AliasMetaData aliasMetaData) { aliases.put(aliasMetaData.alias(), aliasMetaData); return this; }
public Builder putAlias(AliasMetaData aliasMetaData) { aliases.put(aliasMetaData.alias(), aliasMetaData); return this; }
/** * Allows to validate an {@link org.elasticsearch.cluster.metadata.AliasMetaData} and make sure * it's valid before it gets added to the index metadata. Doesn't validate the alias filter. * @throws IllegalArgumentException if the alias is not valid */ public void validateAliasMetaData(AliasMetaData aliasMetaData, String index, MetaData metaData) { validateAlias(aliasMetaData.alias(), index, aliasMetaData.indexRouting(), metaData::index); }
private static String[] concreteAliases(AliasActions action, MetaData metaData, String concreteIndex) { if (action.expandAliasesWildcards()) { //for DELETE we expand the aliases String[] indexAsArray = {concreteIndex}; ImmutableOpenMap<String, List<AliasMetaData>> aliasMetaData = metaData.findAliases(action.aliases(), indexAsArray); List<String> finalAliases = new ArrayList<>(); for (ObjectCursor<List<AliasMetaData>> curAliases : aliasMetaData.values()) { for (AliasMetaData aliasMeta: curAliases.value) { finalAliases.add(aliasMeta.alias()); } } return finalAliases.toArray(new String[finalAliases.size()]); } else { //for ADD and REMOVE_INDEX we just return the current aliases return action.aliases(); } } }
public Builder(AliasMetaData aliasMetaData) { this(aliasMetaData.alias()); filter = aliasMetaData.filter(); indexRouting = aliasMetaData.indexRouting(); searchRouting = aliasMetaData.searchRouting(); writeIndex = aliasMetaData.writeIndex(); }
/** * Checks if at least one of the specified aliases exists in the specified concrete indices. Wildcards are supported in the * alias names for partial matches. * * @param aliases The names of the index aliases to find * @param concreteIndices The concrete indexes the index aliases must point to order to be returned. * @return whether at least one of the specified aliases exists in one of the specified concrete indices. */ public boolean hasAliases(final String[] aliases, String[] concreteIndices) { assert aliases != null; assert concreteIndices != null; if (concreteIndices.length == 0) { return false; } Iterable<String> intersection = HppcMaps.intersection(ObjectHashSet.from(concreteIndices), indices.keys()); for (String index : intersection) { IndexMetaData indexMetaData = indices.get(index); List<AliasMetaData> filteredValues = new ArrayList<>(); for (ObjectCursor<AliasMetaData> cursor : indexMetaData.getAliases().values()) { AliasMetaData value = cursor.value; if (Regex.simpleMatch(aliases, value.alias())) { filteredValues.add(value); } } if (!filteredValues.isEmpty()) { return true; } } return false; }
for (ObjectCursor<AliasMetaData> cursor : indexMetaData.getAliases().values()) { AliasMetaData value = cursor.value; if (matchAllAliases || Regex.simpleMatch(aliases, value.alias())) { filteredValues.add(value);
public static void toXContent(AliasMetaData aliasMetaData, XContentBuilder builder, ToXContent.Params params) throws IOException { builder.startObject(aliasMetaData.alias()); boolean binary = params.paramAsBoolean("binary", false); if (aliasMetaData.filter() != null) { if (binary) { builder.field("filter", aliasMetaData.filter.compressed()); } else { builder.field("filter", XContentHelper.convertToMap(new BytesArray(aliasMetaData.filter().uncompressed()), true).v2()); } } if (aliasMetaData.indexRouting() != null) { builder.field("index_routing", aliasMetaData.indexRouting()); } if (aliasMetaData.searchRouting() != null) { builder.field("search_routing", aliasMetaData.searchRouting()); } if (aliasMetaData.writeIndex() != null) { builder.field("is_write_index", aliasMetaData.writeIndex()); } builder.endObject(); }
if (request.aliases().contains(new Alias(aliasMetaData.alias()))) { continue; if (aliasMetaData.alias().contains("{index}")) { String templatedAlias = aliasMetaData.alias().replace("{index}", request.index()); aliasMetaData = AliasMetaData.newAliasMetaData(aliasMetaData, templatedAlias); templatesAliases.put(aliasMetaData.alias(), aliasMetaData); aliasValidator.validateAliasFilter(aliasMetaData.alias(), aliasMetaData.filter().uncompressed(), queryShardContext, xContentRegistry);
private Table buildTable(RestRequest request, GetAliasesResponse response) { Table table = getTableWithHeader(request); for (ObjectObjectCursor<String, List<AliasMetaData>> cursor : response.getAliases()) { String indexName = cursor.key; for (AliasMetaData aliasMetaData : cursor.value) { table.startRow(); table.addCell(aliasMetaData.alias()); table.addCell(indexName); table.addCell(aliasMetaData.filteringRequired() ? "*" : "-"); String indexRouting = Strings.hasLength(aliasMetaData.indexRouting()) ? aliasMetaData.indexRouting() : "-"; table.addCell(indexRouting); String searchRouting = Strings.hasLength(aliasMetaData.searchRouting()) ? aliasMetaData.searchRouting() : "-"; table.addCell(searchRouting); table.endRow(); } } return table; }
public Builder putAlias(AliasMetaData aliasMetaData) { aliases.put(aliasMetaData.alias(), aliasMetaData); return this; }
@Override public void writeTo(StreamOutput out) throws IOException { out.writeString(alias()); if (filter() != null) { out.writeBoolean(true); filter.writeTo(out); } else { out.writeBoolean(false); } if (indexRouting() != null) { out.writeBoolean(true); out.writeString(indexRouting()); } else { out.writeBoolean(false); } if (searchRouting() != null) { out.writeBoolean(true); out.writeString(searchRouting()); } else { out.writeBoolean(false); } if (out.getVersion().onOrAfter(Version.V_6_4_0)) { out.writeOptionalBoolean(writeIndex()); } }
/** * Allows to validate an {@link org.elasticsearch.cluster.metadata.AliasMetaData} and make sure * it's valid before it gets added to the index metadata. Doesn't validate the alias filter. * @throws IllegalArgumentException if the alias is not valid */ public void validateAliasMetaData(AliasMetaData aliasMetaData, String index, MetaData metaData) { validateAlias(aliasMetaData.alias(), index, aliasMetaData.indexRouting(), metaData::index); }
/** * Allows to validate an {@link org.elasticsearch.cluster.metadata.AliasMetaData} and make sure * it's valid before it gets added to the index metadata. Doesn't validate the alias filter. * @throws IllegalArgumentException if the alias is not valid */ public void validateAliasMetaData(AliasMetaData aliasMetaData, String index, MetaData metaData) { validateAlias(aliasMetaData.alias(), index, aliasMetaData.indexRouting(), metaData::index); }
public Builder(AliasMetaData aliasMetaData) { this(aliasMetaData.alias()); filter = aliasMetaData.filter(); indexRouting = aliasMetaData.indexRouting(); searchRouting = aliasMetaData.searchRouting(); }
/** * Allows to validate an {@link org.elasticsearch.cluster.metadata.AliasMetaData} and make sure * it's valid before it gets added to the index metadata. Doesn't validate the alias filter. * @throws IllegalArgumentException if the alias is not valid */ public void validateAliasMetaData(AliasMetaData aliasMetaData, String index, MetaData metaData) { validateAlias(aliasMetaData.alias(), index, aliasMetaData.indexRouting(), name -> metaData.index(name)); }
public Builder(AliasMetaData aliasMetaData) { this(aliasMetaData.alias()); filter = aliasMetaData.filter(); indexRouting = aliasMetaData.indexRouting(); searchRouting = aliasMetaData.searchRouting(); writeIndex = aliasMetaData.writeIndex(); }