mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 10:25:15 +00:00
Logging - provides template usage information on index creation
Closes #7421
This commit is contained in:
parent
88e06cba80
commit
76157b8b90
@ -54,7 +54,7 @@ public class IndexTemplateMetaData {
|
||||
|
||||
// the mapping source should always include the type as top level
|
||||
private final ImmutableOpenMap<String, CompressedString> mappings;
|
||||
|
||||
|
||||
private final ImmutableOpenMap<String, AliasMetaData> aliases;
|
||||
|
||||
private final ImmutableOpenMap<String, IndexMetaData.Custom> customs;
|
||||
@ -113,7 +113,7 @@ public class IndexTemplateMetaData {
|
||||
public ImmutableOpenMap<String, AliasMetaData> aliases() {
|
||||
return this.aliases;
|
||||
}
|
||||
|
||||
|
||||
public ImmutableOpenMap<String, AliasMetaData> getAliases() {
|
||||
return this.aliases;
|
||||
}
|
||||
@ -177,7 +177,7 @@ public class IndexTemplateMetaData {
|
||||
private Settings settings = ImmutableSettings.Builder.EMPTY_SETTINGS;
|
||||
|
||||
private final ImmutableOpenMap.Builder<String, CompressedString> mappings;
|
||||
|
||||
|
||||
private final ImmutableOpenMap.Builder<String, AliasMetaData> aliases;
|
||||
|
||||
private final ImmutableOpenMap.Builder<String, IndexMetaData.Custom> customs;
|
||||
@ -238,7 +238,7 @@ public class IndexTemplateMetaData {
|
||||
mappings.put(mappingType, new CompressedString(mappingSource));
|
||||
return this;
|
||||
}
|
||||
|
||||
|
||||
public Builder putAlias(AliasMetaData aliasMetaData) {
|
||||
aliases.put(aliasMetaData.alias(), aliasMetaData);
|
||||
return this;
|
||||
@ -308,7 +308,7 @@ public class IndexTemplateMetaData {
|
||||
IndexMetaData.lookupFactorySafe(cursor.key).toXContent(cursor.value, builder, params);
|
||||
builder.endObject();
|
||||
}
|
||||
|
||||
|
||||
builder.startObject("aliases");
|
||||
for (ObjectCursor<AliasMetaData> cursor : indexTemplateMetaData.aliases().values()) {
|
||||
AliasMetaData.Builder.toXContent(cursor.value, builder, params);
|
||||
@ -318,8 +318,8 @@ public class IndexTemplateMetaData {
|
||||
builder.endObject();
|
||||
}
|
||||
|
||||
public static IndexTemplateMetaData fromXContent(XContentParser parser) throws IOException {
|
||||
Builder builder = new Builder(parser.currentName());
|
||||
public static IndexTemplateMetaData fromXContent(XContentParser parser, String templateName) throws IOException {
|
||||
Builder builder = new Builder(templateName);
|
||||
|
||||
String currentFieldName = skipTemplateName(parser);
|
||||
XContentParser.Token token;
|
||||
|
@ -319,7 +319,7 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||
}
|
||||
return mapBuilder.build();
|
||||
}
|
||||
|
||||
|
||||
private boolean matchAllAliases(final String[] aliases) {
|
||||
for (String alias : aliases) {
|
||||
if (alias.equals("_all")) {
|
||||
@ -1011,7 +1011,7 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||
public static boolean isAllIndices(String[] aliasesOrIndices) {
|
||||
return aliasesOrIndices == null || aliasesOrIndices.length == 0 || isExplicitAllPattern(aliasesOrIndices);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Identifies whether the array containing type names given as argument refers to all types
|
||||
* The empty or null array identifies all types
|
||||
@ -1359,7 +1359,7 @@ public class MetaData implements Iterable<IndexMetaData> {
|
||||
}
|
||||
} else if ("templates".equals(currentFieldName)) {
|
||||
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
|
||||
builder.put(IndexTemplateMetaData.Builder.fromXContent(parser));
|
||||
builder.put(IndexTemplateMetaData.Builder.fromXContent(parser, parser.currentName()));
|
||||
}
|
||||
} else {
|
||||
// check if its a custom index metadata
|
||||
|
@ -246,6 +246,8 @@ public class MetaDataCreateIndexService extends AbstractComponent {
|
||||
|
||||
Map<String, AliasMetaData> templatesAliases = Maps.newHashMap();
|
||||
|
||||
List<String> templateNames = Lists.newArrayList();
|
||||
|
||||
for (Map.Entry<String, String> entry : request.mappings().entrySet()) {
|
||||
mappings.put(entry.getKey(), parseMapping(entry.getValue()));
|
||||
}
|
||||
@ -256,6 +258,7 @@ public class MetaDataCreateIndexService extends AbstractComponent {
|
||||
|
||||
// apply templates, merging the mappings into the request mapping if exists
|
||||
for (IndexTemplateMetaData template : templates) {
|
||||
templateNames.add(template.getName());
|
||||
for (ObjectObjectCursor<String, CompressedString> cursor : template.mappings()) {
|
||||
if (mappings.containsKey(cursor.key)) {
|
||||
XContentHelper.mergeDefaults(mappings.get(cursor.key), parseMapping(cursor.value.string()));
|
||||
@ -446,7 +449,7 @@ public class MetaDataCreateIndexService extends AbstractComponent {
|
||||
.put(indexMetaData, false)
|
||||
.build();
|
||||
|
||||
logger.info("[{}] creating index, cause [{}], shards [{}]/[{}], mappings {}", request.index(), request.cause(), indexMetaData.numberOfShards(), indexMetaData.numberOfReplicas(), mappings.keySet());
|
||||
logger.info("[{}] creating index, cause [{}], templates {}, shards [{}]/[{}], mappings {}", request.index(), request.cause(), templateNames, indexMetaData.numberOfShards(), indexMetaData.numberOfReplicas(), mappings.keySet());
|
||||
|
||||
ClusterBlocks.Builder blocks = ClusterBlocks.builder().blocks(currentState.blocks());
|
||||
if (!request.blocks().isEmpty()) {
|
||||
@ -518,18 +521,20 @@ public class MetaDataCreateIndexService extends AbstractComponent {
|
||||
File[] templatesFiles = templatesDir.listFiles();
|
||||
if (templatesFiles != null) {
|
||||
for (File templatesFile : templatesFiles) {
|
||||
XContentParser parser = null;
|
||||
try {
|
||||
byte[] templatesData = Streams.copyToByteArray(templatesFile);
|
||||
parser = XContentHelper.createParser(templatesData, 0, templatesData.length);
|
||||
IndexTemplateMetaData template = IndexTemplateMetaData.Builder.fromXContent(parser);
|
||||
if (indexTemplateFilter.apply(request, template)) {
|
||||
templates.add(template);
|
||||
if (templatesFile.isFile()) {
|
||||
XContentParser parser = null;
|
||||
try {
|
||||
byte[] templatesData = Streams.copyToByteArray(templatesFile);
|
||||
parser = XContentHelper.createParser(templatesData, 0, templatesData.length);
|
||||
IndexTemplateMetaData template = IndexTemplateMetaData.Builder.fromXContent(parser, templatesFile.getName());
|
||||
if (indexTemplateFilter.apply(request, template)) {
|
||||
templates.add(template);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn("[{}] failed to read template [{}] from config", e, request.index(), templatesFile.getAbsolutePath());
|
||||
} finally {
|
||||
Releasables.closeWhileHandlingException(parser);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
logger.warn("[{}] failed to read template [{}] from config", e, request.index(), templatesFile.getAbsolutePath());
|
||||
} finally {
|
||||
Releasables.closeWhileHandlingException(parser);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user