[CCR] Get all auto follow patterns and no auto follow metadata (#35381)

Return empty response when querying all auto follow patterns,
but there is no auto follow metadata.
This commit is contained in:
Martijn van Groningen 2018-11-09 14:24:27 +01:00 committed by GitHub
parent 36da6e1671
commit 83152b3835
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 1 deletions

View File

@ -72,7 +72,11 @@ public class TransportGetAutoFollowPatternAction
static Map<String, AutoFollowPattern> getAutoFollowPattern(MetaData metaData, String name) {
AutoFollowMetadata autoFollowMetadata = metaData.custom(AutoFollowMetadata.TYPE);
if (autoFollowMetadata == null) {
throw new ResourceNotFoundException("auto-follow pattern [{}] is missing", name);
if (name == null) {
return Collections.emptyMap();
} else {
throw new ResourceNotFoundException("auto-follow pattern [{}] is missing", name);
}
}
if (name == null) {

View File

@ -52,12 +52,18 @@ public class TransportGetAutoFollowPatternActionTests extends ESTestCase {
.build();
expectThrows(ResourceNotFoundException.class,
() -> TransportGetAutoFollowPatternAction.getAutoFollowPattern(metaData, "name1"));
Map<String, AutoFollowPattern> result = TransportGetAutoFollowPatternAction.getAutoFollowPattern(metaData, null);
assertThat(result.size(), equalTo(0));
}
public void testGetAutoFollowPatternNoAutoFollowMetadata() {
MetaData metaData = MetaData.builder().build();
expectThrows(ResourceNotFoundException.class,
() -> TransportGetAutoFollowPatternAction.getAutoFollowPattern(metaData, "name1"));
Map<String, AutoFollowPattern> result = TransportGetAutoFollowPatternAction.getAutoFollowPattern(metaData, null);
assertThat(result.size(), equalTo(0));
}
}