Skip to content

Commit 00c123b

Browse files
committed
Plugins: Remove IndexTemplateFilter
How index templates match is currently controlled by the IndexTemplateFilter interface. It is pluggable, to add additional filter implementations to the default glob matcher. This change removes the IndexTemplateFilter interface completely. This is a very esoteric extension point, and not worth maintaining. Instead, any improvements should be made to all of our glob matching.
1 parent 8281a3c commit 00c123b

File tree

8 files changed

+5
-162
lines changed

8 files changed

+5
-162
lines changed

core/src/main/java/org/elasticsearch/cluster/ClusterModule.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ public class ClusterModule extends AbstractModule {
8383

8484
private final Settings settings;
8585
private final ExtensionPoint.SelectedType<ShardsAllocator> shardsAllocators = new ExtensionPoint.SelectedType<>("shards_allocator", ShardsAllocator.class);
86-
private final ExtensionPoint.ClassSet<IndexTemplateFilter> indexTemplateFilters = new ExtensionPoint.ClassSet<>("index_template_filter", IndexTemplateFilter.class);
8786
private final ClusterService clusterService;
8887
private final IndexNameExpressionResolver indexNameExpressionResolver;
8988
// pkg private for tests
@@ -105,10 +104,6 @@ public void registerShardsAllocator(String name, Class<? extends ShardsAllocator
105104
shardsAllocators.registerExtension(name, clazz);
106105
}
107106

108-
public void registerIndexTemplateFilter(Class<? extends IndexTemplateFilter> indexTemplateFilter) {
109-
indexTemplateFilters.registerExtension(indexTemplateFilter);
110-
}
111-
112107
public IndexNameExpressionResolver getIndexNameExpressionResolver() {
113108
return indexNameExpressionResolver;
114109
}
@@ -156,7 +151,6 @@ protected void configure() {
156151
final ESLogger logger = Loggers.getLogger(getClass(), settings);
157152
logger.warn("{} allocator has been removed in 2.0 using {} instead", ClusterModule.EVEN_SHARD_COUNT_ALLOCATOR, ClusterModule.BALANCED_ALLOCATOR);
158153
}
159-
indexTemplateFilters.bind(binder());
160154

161155
bind(ClusterInfoService.class).to(clusterInfoServiceImpl).asEagerSingleton();
162156
bind(GatewayAllocator.class).asEagerSingleton();

core/src/main/java/org/elasticsearch/cluster/metadata/IndexTemplateFilter.java

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,4 @@ public interface IndexTemplateFilter {
3131
* {@code false} otherwise.
3232
*/
3333
boolean apply(CreateIndexClusterStateUpdateRequest request, IndexTemplateMetaData template);
34-
35-
class Compound implements IndexTemplateFilter {
36-
37-
private IndexTemplateFilter[] filters;
38-
39-
Compound(IndexTemplateFilter... filters) {
40-
this.filters = filters;
41-
}
42-
43-
@Override
44-
public boolean apply(CreateIndexClusterStateUpdateRequest request, IndexTemplateMetaData template) {
45-
for (IndexTemplateFilter filter : filters) {
46-
if (!filter.apply(request, template)) {
47-
return false;
48-
}
49-
}
50-
return true;
51-
}
52-
}
5334
}

core/src/main/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexService.java

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -102,13 +102,11 @@
102102
public class MetaDataCreateIndexService extends AbstractComponent {
103103

104104
public static final int MAX_INDEX_NAME_BYTES = 255;
105-
private static final DefaultIndexTemplateFilter DEFAULT_INDEX_TEMPLATE_FILTER = new DefaultIndexTemplateFilter();
106105

107106
private final ClusterService clusterService;
108107
private final IndicesService indicesService;
109108
private final AllocationService allocationService;
110109
private final AliasValidator aliasValidator;
111-
private final IndexTemplateFilter indexTemplateFilter;
112110
private final Environment env;
113111
private final NodeServicesProvider nodeServicesProvider;
114112
private final IndexScopedSettings indexScopedSettings;
@@ -117,8 +115,7 @@ public class MetaDataCreateIndexService extends AbstractComponent {
117115
@Inject
118116
public MetaDataCreateIndexService(Settings settings, ClusterService clusterService,
119117
IndicesService indicesService, AllocationService allocationService,
120-
AliasValidator aliasValidator,
121-
Set<IndexTemplateFilter> indexTemplateFilters, Environment env,
118+
AliasValidator aliasValidator, Environment env,
122119
NodeServicesProvider nodeServicesProvider, IndexScopedSettings indexScopedSettings,
123120
ThreadPool threadPool) {
124121
super(settings);
@@ -129,18 +126,6 @@ public MetaDataCreateIndexService(Settings settings, ClusterService clusterServi
129126
this.env = env;
130127
this.nodeServicesProvider = nodeServicesProvider;
131128
this.indexScopedSettings = indexScopedSettings;
132-
133-
if (indexTemplateFilters.isEmpty()) {
134-
this.indexTemplateFilter = DEFAULT_INDEX_TEMPLATE_FILTER;
135-
} else {
136-
IndexTemplateFilter[] templateFilters = new IndexTemplateFilter[indexTemplateFilters.size() + 1];
137-
templateFilters[0] = DEFAULT_INDEX_TEMPLATE_FILTER;
138-
int i = 1;
139-
for (IndexTemplateFilter indexTemplateFilter : indexTemplateFilters) {
140-
templateFilters[i++] = indexTemplateFilter;
141-
}
142-
this.indexTemplateFilter = new IndexTemplateFilter.Compound(templateFilters);
143-
}
144129
this.activeShardsObserver = new ActiveShardsObserver(settings, clusterService, threadPool);
145130
}
146131

@@ -242,7 +227,7 @@ public ClusterState execute(ClusterState currentState) throws Exception {
242227

243228
// we only find a template when its an API call (a new index)
244229
// find templates, highest order are better matching
245-
List<IndexTemplateMetaData> templates = findTemplates(request, currentState, indexTemplateFilter);
230+
List<IndexTemplateMetaData> templates = findTemplates(request, currentState);
246231

247232
Map<String, Custom> customs = new HashMap<>();
248233

@@ -470,11 +455,11 @@ public void onFailure(String source, Exception e) {
470455
});
471456
}
472457

473-
private List<IndexTemplateMetaData> findTemplates(CreateIndexClusterStateUpdateRequest request, ClusterState state, IndexTemplateFilter indexTemplateFilter) throws IOException {
458+
private List<IndexTemplateMetaData> findTemplates(CreateIndexClusterStateUpdateRequest request, ClusterState state) throws IOException {
474459
List<IndexTemplateMetaData> templates = new ArrayList<>();
475460
for (ObjectCursor<IndexTemplateMetaData> cursor : state.metaData().templates().values()) {
476461
IndexTemplateMetaData template = cursor.value;
477-
if (indexTemplateFilter.apply(request, template)) {
462+
if (Regex.simpleMatch(template.template(), request.index())) {
478463
templates.add(template);
479464
}
480465
}
@@ -525,13 +510,6 @@ List<String> getIndexSettingsValidationErrors(Settings settings) {
525510
return validationErrors;
526511
}
527512

528-
private static class DefaultIndexTemplateFilter implements IndexTemplateFilter {
529-
@Override
530-
public boolean apply(CreateIndexClusterStateUpdateRequest request, IndexTemplateMetaData template) {
531-
return Regex.simpleMatch(template.template(), request.index());
532-
}
533-
}
534-
535513
/**
536514
* Validates the settings and mappings for shrinking an index.
537515
* @return the list of nodes at least one instance of the source index shards are allocated

core/src/test/java/org/elasticsearch/action/admin/indices/template/put/MetaDataIndexTemplateServiceTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ private static List<Throwable> putTemplate(PutRequest request) {
158158
null,
159159
null,
160160
null,
161-
new HashSet<>(),
162161
null,
163162
null, null, null);
164163
MetaDataIndexTemplateService service = new MetaDataIndexTemplateService(Settings.EMPTY, null, createIndexService, new AliasValidator(Settings.EMPTY), null, null);
@@ -188,7 +187,6 @@ private List<Throwable> putTemplateDetail(PutRequest request) throws Exception {
188187
indicesService,
189188
null,
190189
null,
191-
new HashSet<>(),
192190
null,
193191
nodeServicesProvider,
194192
null,

core/src/test/java/org/elasticsearch/cluster/ClusterModuleTests.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -65,13 +65,6 @@ public Map<DiscoveryNode, Float> weighShard(RoutingAllocation allocation, ShardR
6565
}
6666
}
6767

68-
static class FakeIndexTemplateFilter implements IndexTemplateFilter {
69-
@Override
70-
public boolean apply(CreateIndexClusterStateUpdateRequest request, IndexTemplateMetaData template) {
71-
return false;
72-
}
73-
}
74-
7568
public void testRegisterClusterDynamicSettingDuplicate() {
7669
try {
7770
new SettingsModule(Settings.EMPTY, EnableAllocationDecider.CLUSTER_ROUTING_ALLOCATION_ENABLE_SETTING);
@@ -154,21 +147,4 @@ public void testEvenShardsAllocatorBackcompat() {
154147
ClusterModule module = new ClusterModule(settings, clusterService, Collections.emptyList());
155148
assertBinding(module, ShardsAllocator.class, BalancedShardsAllocator.class);
156149
}
157-
158-
public void testRegisterIndexTemplateFilterDuplicate() {
159-
ClusterModule module = new ClusterModule(Settings.EMPTY, clusterService, Collections.emptyList());
160-
try {
161-
module.registerIndexTemplateFilter(FakeIndexTemplateFilter.class);
162-
module.registerIndexTemplateFilter(FakeIndexTemplateFilter.class);
163-
} catch (IllegalArgumentException e) {
164-
assertEquals(e.getMessage(),
165-
"Can't register the same [index_template_filter] more than once for [" + FakeIndexTemplateFilter.class.getName() + "]");
166-
}
167-
}
168-
169-
public void testRegisterIndexTemplateFilter() {
170-
ClusterModule module = new ClusterModule(Settings.EMPTY, clusterService, Collections.emptyList());
171-
module.registerIndexTemplateFilter(FakeIndexTemplateFilter.class);
172-
assertSetMultiBinding(module, IndexTemplateFilter.class, FakeIndexTemplateFilter.class);
173-
}
174150
}

core/src/test/java/org/elasticsearch/cluster/metadata/MetaDataCreateIndexServiceTests.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ private MetaDataCreateIndexService getCreateIndexService() {
215215
null,
216216
null,
217217
null,
218-
new HashSet<>(),
219218
null,
220219
null,
221220
null,

core/src/test/java/org/elasticsearch/indices/cluster/ClusterStateChanges.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ public IndexMetaData upgradeIndexMetaData(IndexMetaData indexMetaData) {
165165
MetaDataUpdateSettingsService metaDataUpdateSettingsService = new MetaDataUpdateSettingsService(settings, clusterService,
166166
allocationService, IndexScopedSettings.DEFAULT_SCOPED_SETTINGS, indicesService, nodeServicesProvider);
167167
MetaDataCreateIndexService createIndexService = new MetaDataCreateIndexService(settings, clusterService, indicesService,
168-
allocationService, new AliasValidator(settings), Collections.emptySet(), environment,
168+
allocationService, new AliasValidator(settings), environment,
169169
nodeServicesProvider, IndexScopedSettings.DEFAULT_SCOPED_SETTINGS, threadPool);
170170

171171
transportCloseIndexAction = new TransportCloseIndexAction(settings, transportService, clusterService, threadPool,

core/src/test/java/org/elasticsearch/indices/template/IndexTemplateFilteringIT.java

Lines changed: 0 additions & 83 deletions
This file was deleted.

0 commit comments

Comments
 (0)