/** * It takes two steps to create a List<AliasMetadata> from the elasticsearch http response because the aliases field * is actually a Map by alias name, but the alias name is on the AliasMetadata. * * @param aliasResponse * @return */ List<AliasMetaData> convertAliasResponse(String aliasResponse) { ObjectMapper mapper = new ObjectMapper(); try { JsonNode node = mapper.readTree(aliasResponse); Iterator<String> names = node.fieldNames(); String name = names.next(); node = node.findValue("aliases"); Map<String, AliasData> aliasData = mapper.readValue(mapper.writeValueAsString(node), new TypeReference<Map<String, AliasData>>() {}); Iterable<Map.Entry<String, AliasData>> aliasIter = aliasData.entrySet(); List<AliasMetaData> aliasMetaDataList = new ArrayList<AliasMetaData>(); for (Map.Entry<String, AliasData> aliasentry : aliasIter) { AliasData data = aliasentry.getValue(); aliasMetaDataList.add(AliasMetaData.newAliasMetaDataBuilder(aliasentry.getKey()).filter(data.getFilter()) .routing(data.getRouting()).searchRouting(data.getSearch_routing()).indexRouting(data.getIndex_routing()) .build()); } return aliasMetaDataList; } catch (IOException e) { throw new ElasticsearchException("Could not map alias response : " + aliasResponse, e); } }
AliasMetaData aliasMetaData = AliasMetaData.builder(alias.name()).filter(alias.filter()) .indexRouting(alias.indexRouting()).searchRouting(alias.searchRouting()).writeIndex(alias.writeIndex()).build(); indexMetaDataBuilder.putAlias(aliasMetaData);
@Override public ClusterState execute(ClusterState currentState) throws Exception { if (request.create && currentState.metaData().templates().containsKey(request.name)) { throw new IllegalArgumentException("index_template [" + request.name + "] already exists"); } validateAndAddTemplate(request, templateBuilder, indicesService, xContentRegistry); for (Alias alias : request.aliases) { AliasMetaData aliasMetaData = AliasMetaData.builder(alias.name()).filter(alias.filter()) .indexRouting(alias.indexRouting()).searchRouting(alias.searchRouting()).build(); templateBuilder.putAlias(aliasMetaData); } IndexTemplateMetaData template = templateBuilder.build(); MetaData.Builder builder = MetaData.builder(currentState.metaData()).put(template); logger.info("adding template [{}] for index patterns {}", request.name, request.indexPatterns); return ClusterState.builder(currentState).metaData(builder).build(); }
@Override boolean apply(NewAliasValidator aliasValidator, MetaData.Builder metadata, IndexMetaData index) { aliasValidator.validate(alias, indexRouting, filter, writeIndex); AliasMetaData newAliasMd = AliasMetaData.newAliasMetaDataBuilder(alias).filter(filter).indexRouting(indexRouting) .searchRouting(searchRouting).writeIndex(writeIndex).build(); // Check if this alias already exists AliasMetaData currentAliasMd = index.getAliases().get(alias); if (currentAliasMd != null && currentAliasMd.equals(newAliasMd)) { // It already exists, ignore it return false; } metadata.put(IndexMetaData.builder(index).putAlias(newAliasMd)); return true; } }
public Builder filter(XContentBuilder filterBuilder) { return filter(Strings.toString(filterBuilder)); }
@Override boolean apply(NewAliasValidator aliasValidator, MetaData.Builder metadata, IndexMetaData index) { aliasValidator.validate(alias, indexRouting, filter); AliasMetaData newAliasMd = AliasMetaData.newAliasMetaDataBuilder(alias).filter(filter).indexRouting(indexRouting) .searchRouting(searchRouting).build(); // Check if this alias already exists AliasMetaData currentAliasMd = index.getAliases().get(alias); if (currentAliasMd != null && currentAliasMd.equals(newAliasMd)) { // It already exists, ignore it return false; } metadata.put(IndexMetaData.builder(index).putAlias(newAliasMd)); return true; } }
@Override boolean apply(NewAliasValidator aliasValidator, MetaData.Builder metadata, IndexMetaData index) { aliasValidator.validate(alias, indexRouting, filter, writeIndex); AliasMetaData newAliasMd = AliasMetaData.newAliasMetaDataBuilder(alias).filter(filter).indexRouting(indexRouting) .searchRouting(searchRouting).writeIndex(writeIndex).build(); // Check if this alias already exists AliasMetaData currentAliasMd = index.getAliases().get(alias); if (currentAliasMd != null && currentAliasMd.equals(newAliasMd)) { // It already exists, ignore it return false; } metadata.put(IndexMetaData.builder(index).putAlias(newAliasMd)); return true; } }
public Builder filter(String filter) { if (!Strings.hasLength(filter)) { this.filter = null; return this; } try { try (XContentParser parser = XContentFactory.xContent(filter).createParser(filter)) { filter(parser.mapOrdered()); } return this; } catch (IOException e) { throw new ElasticsearchGenerationException("Failed to generate [" + filter + "]", e); } }
void add(String alias, @Nullable CompressedXContent filter) { AliasMetaData aliasMetaData = AliasMetaData.builder(alias).filter(filter).build(); aliases = ImmutableOpenMap.builder(aliases).fPut(alias, aliasMetaData).build(); }
public Builder filter(XContentBuilder filterBuilder) { return filter(Strings.toString(filterBuilder)); }
public Builder filter(XContentBuilder filterBuilder) { try { return filter(filterBuilder.string()); } catch (IOException e) { throw new ElasticsearchGenerationException("Failed to build json for alias request", e); } }
public Builder filter(XContentBuilder filterBuilder) { try { return filter(filterBuilder.string()); } catch (IOException e) { throw new ElasticsearchGenerationException("Failed to build json for alias request", e); } }
public Builder filter(String filter) { if (!Strings.hasLength(filter)) { this.filter = null; return this; } return filter(XContentHelper.convertToMap(XContentFactory.xContent(filter), filter, true)); }
public Builder filter(String filter) { if (!Strings.hasLength(filter)) { this.filter = null; return this; } return filter(XContentHelper.convertToMap(XContentFactory.xContent(filter), filter, true)); }
public Builder filter(String filter) { if (!Strings.hasLength(filter)) { this.filter = null; return this; } return filter(XContentHelper.convertToMap(XContentFactory.xContent(filter), filter, true)); }
@Override public ClusterState execute(ClusterState currentState) throws Exception { if (request.create && currentState.metaData().templates().containsKey(request.name)) { throw new IllegalArgumentException("index_template [" + request.name + "] already exists"); } validateAndAddTemplate(request, templateBuilder, indicesService, xContentRegistry); for (Alias alias : request.aliases) { AliasMetaData aliasMetaData = AliasMetaData.builder(alias.name()).filter(alias.filter()) .indexRouting(alias.indexRouting()).searchRouting(alias.searchRouting()).build(); templateBuilder.putAlias(aliasMetaData); } IndexTemplateMetaData template = templateBuilder.build(); MetaData.Builder builder = MetaData.builder(currentState.metaData()).put(template); logger.info("adding template [{}] for index patterns {}", request.name, request.indexPatterns); return ClusterState.builder(currentState).metaData(builder).build(); }
@Override boolean apply(NewAliasValidator aliasValidator, MetaData.Builder metadata, IndexMetaData index) { aliasValidator.validate(alias, indexRouting, filter, writeIndex); AliasMetaData newAliasMd = AliasMetaData.newAliasMetaDataBuilder(alias).filter(filter).indexRouting(indexRouting) .searchRouting(searchRouting).writeIndex(writeIndex).build(); // Check if this alias already exists AliasMetaData currentAliasMd = index.getAliases().get(alias); if (currentAliasMd != null && currentAliasMd.equals(newAliasMd)) { // It already exists, ignore it return false; } metadata.put(IndexMetaData.builder(index).putAlias(newAliasMd)); return true; } }
public Builder filter(XContentBuilder filterBuilder) { return filter(Strings.toString(filterBuilder)); }
public Builder filter(String filter) { if (!Strings.hasLength(filter)) { this.filter = null; return this; } return filter(XContentHelper.convertToMap(XContentFactory.xContent(filter), filter, true)); }