Fix x-plugins following count/scan removal from elasticsearch-core.
Original commit: elastic/x-pack-elasticsearch@ee43991a0a
This commit is contained in:
parent
9a729638da
commit
06ec935a08
|
@ -223,7 +223,6 @@ public class InternalAuthorizationService extends AbstractComponent implements A
|
||||||
|
|
||||||
private static boolean isScrollRelatedAction(String action) {
|
private static boolean isScrollRelatedAction(String action) {
|
||||||
return action.equals(SearchScrollAction.NAME) ||
|
return action.equals(SearchScrollAction.NAME) ||
|
||||||
action.equals(SearchServiceTransportAction.SCAN_SCROLL_ACTION_NAME) ||
|
|
||||||
action.equals(SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME) ||
|
action.equals(SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME) ||
|
||||||
action.equals(SearchServiceTransportAction.QUERY_FETCH_SCROLL_ACTION_NAME) ||
|
action.equals(SearchServiceTransportAction.QUERY_FETCH_SCROLL_ACTION_NAME) ||
|
||||||
action.equals(SearchServiceTransportAction.QUERY_SCROLL_ACTION_NAME) ||
|
action.equals(SearchServiceTransportAction.QUERY_SCROLL_ACTION_NAME) ||
|
||||||
|
|
|
@ -175,9 +175,6 @@ public class InternalAuthorizationServiceTests extends ESTestCase {
|
||||||
internalAuthorizationService.authorize(user, SearchServiceTransportAction.CLEAR_SCROLL_CONTEXTS_ACTION_NAME, request);
|
internalAuthorizationService.authorize(user, SearchServiceTransportAction.CLEAR_SCROLL_CONTEXTS_ACTION_NAME, request);
|
||||||
verify(auditTrail).accessGranted(user, SearchServiceTransportAction.CLEAR_SCROLL_CONTEXTS_ACTION_NAME, request);
|
verify(auditTrail).accessGranted(user, SearchServiceTransportAction.CLEAR_SCROLL_CONTEXTS_ACTION_NAME, request);
|
||||||
|
|
||||||
internalAuthorizationService.authorize(user, SearchServiceTransportAction.SCAN_SCROLL_ACTION_NAME, request);
|
|
||||||
verify(auditTrail).accessGranted(user, SearchServiceTransportAction.SCAN_SCROLL_ACTION_NAME, request);
|
|
||||||
|
|
||||||
internalAuthorizationService.authorize(user, SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME, request);
|
internalAuthorizationService.authorize(user, SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME, request);
|
||||||
verify(auditTrail).accessGranted(user, SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME, request);
|
verify(auditTrail).accessGranted(user, SearchServiceTransportAction.FETCH_ID_SCROLL_ACTION_NAME, request);
|
||||||
|
|
||||||
|
|
|
@ -40,8 +40,6 @@ indices:data/read/search[phase/query/id]
|
||||||
indices:data/read/search[phase/query/query+fetch]
|
indices:data/read/search[phase/query/query+fetch]
|
||||||
indices:data/read/search[phase/query/scroll]
|
indices:data/read/search[phase/query/scroll]
|
||||||
indices:data/read/search[phase/query]
|
indices:data/read/search[phase/query]
|
||||||
indices:data/read/search[phase/scan/scroll]
|
|
||||||
indices:data/read/search[phase/scan]
|
|
||||||
indices:data/read/suggest[s]
|
indices:data/read/suggest[s]
|
||||||
indices:data/read/tv[s]
|
indices:data/read/tv[s]
|
||||||
indices:data/write/bulk[s]
|
indices:data/write/bulk[s]
|
||||||
|
|
|
@ -26,6 +26,7 @@ import org.elasticsearch.common.unit.TimeValue;
|
||||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
|
import org.elasticsearch.search.sort.SortBuilders;
|
||||||
import org.elasticsearch.watcher.support.init.proxy.ClientProxy;
|
import org.elasticsearch.watcher.support.init.proxy.ClientProxy;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -250,8 +251,6 @@ public class TriggeredWatchStore extends AbstractComponent {
|
||||||
throw illegalState("scan search was supposed to run on [{}] shards, but ran on [{}] shards", numPrimaryShards, response.getSuccessfulShards());
|
throw illegalState("scan search was supposed to run on [{}] shards, but ran on [{}] shards", numPrimaryShards, response.getSuccessfulShards());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.getHits().getTotalHits() > 0) {
|
|
||||||
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
|
||||||
while (response.getHits().hits().length != 0) {
|
while (response.getHits().hits().length != 0) {
|
||||||
for (SearchHit sh : response.getHits()) {
|
for (SearchHit sh : response.getHits()) {
|
||||||
String id = sh.getId();
|
String id = sh.getId();
|
||||||
|
@ -265,7 +264,6 @@ public class TriggeredWatchStore extends AbstractComponent {
|
||||||
}
|
}
|
||||||
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
client.clearScroll(response.getScrollId());
|
client.clearScroll(response.getScrollId());
|
||||||
}
|
}
|
||||||
|
@ -274,11 +272,11 @@ public class TriggeredWatchStore extends AbstractComponent {
|
||||||
|
|
||||||
private SearchRequest createScanSearchRequest() {
|
private SearchRequest createScanSearchRequest() {
|
||||||
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()
|
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder()
|
||||||
.size(scrollSize);
|
.size(scrollSize)
|
||||||
|
.sort(SortBuilders.fieldSort("_doc"));
|
||||||
|
|
||||||
SearchRequest searchRequest = new SearchRequest(INDEX_NAME);
|
SearchRequest searchRequest = new SearchRequest(INDEX_NAME);
|
||||||
searchRequest.source(sourceBuilder);
|
searchRequest.source(sourceBuilder);
|
||||||
searchRequest.searchType(SearchType.SCAN);
|
|
||||||
searchRequest.types(DOC_TYPE);
|
searchRequest.types(DOC_TYPE);
|
||||||
searchRequest.scroll(scrollTimeout);
|
searchRequest.scroll(scrollTimeout);
|
||||||
searchRequest.preference("_primary");
|
searchRequest.preference("_primary");
|
||||||
|
|
|
@ -231,9 +231,6 @@ public final class WatcherUtils {
|
||||||
searchRequest.types(Strings.delimitedListToStringArray(typesStr, ",", " \t"));
|
searchRequest.types(Strings.delimitedListToStringArray(typesStr, ",", " \t"));
|
||||||
} else if (ParseFieldMatcher.STRICT.match(currentFieldName, SEARCH_TYPE_FIELD)) {
|
} else if (ParseFieldMatcher.STRICT.match(currentFieldName, SEARCH_TYPE_FIELD)) {
|
||||||
searchType = SearchType.fromString(parser.text().toLowerCase(Locale.ROOT), ParseFieldMatcher.EMPTY);
|
searchType = SearchType.fromString(parser.text().toLowerCase(Locale.ROOT), ParseFieldMatcher.EMPTY);
|
||||||
if (searchType == SearchType.SCAN){
|
|
||||||
throw new ElasticsearchParseException("could not read search request. value [" + searchType.name() + "] is not supported for field [" + SEARCH_TYPE_FIELD.getPreferredName() + "]" );
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
throw new ElasticsearchParseException("could not read search request. unexpected string field [" + currentFieldName + "]");
|
throw new ElasticsearchParseException("could not read search request. unexpected string field [" + currentFieldName + "]");
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,6 +31,7 @@ import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
||||||
import org.elasticsearch.search.SearchHit;
|
import org.elasticsearch.search.SearchHit;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
|
import org.elasticsearch.search.sort.SortBuilders;
|
||||||
import org.elasticsearch.watcher.support.init.proxy.ClientProxy;
|
import org.elasticsearch.watcher.support.init.proxy.ClientProxy;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
@ -230,10 +231,10 @@ public class WatchStore extends AbstractComponent {
|
||||||
SearchRequest searchRequest = new SearchRequest(INDEX)
|
SearchRequest searchRequest = new SearchRequest(INDEX)
|
||||||
.types(DOC_TYPE)
|
.types(DOC_TYPE)
|
||||||
.preference("_primary")
|
.preference("_primary")
|
||||||
.searchType(SearchType.SCAN)
|
|
||||||
.scroll(scrollTimeout)
|
.scroll(scrollTimeout)
|
||||||
.source(new SearchSourceBuilder()
|
.source(new SearchSourceBuilder()
|
||||||
.size(scrollSize)
|
.size(scrollSize)
|
||||||
|
.sort(SortBuilders.fieldSort("_doc"))
|
||||||
.version(true));
|
.version(true));
|
||||||
SearchResponse response = client.search(searchRequest, null);
|
SearchResponse response = client.search(searchRequest, null);
|
||||||
try {
|
try {
|
||||||
|
@ -241,8 +242,6 @@ public class WatchStore extends AbstractComponent {
|
||||||
throw new ElasticsearchException("Partial response while loading watches");
|
throw new ElasticsearchException("Partial response while loading watches");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.getHits().getTotalHits() > 0) {
|
|
||||||
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
|
||||||
while (response.getHits().hits().length != 0) {
|
while (response.getHits().hits().length != 0) {
|
||||||
for (SearchHit hit : response.getHits()) {
|
for (SearchHit hit : response.getHits()) {
|
||||||
String id = hit.getId();
|
String id = hit.getId();
|
||||||
|
@ -258,7 +257,6 @@ public class WatchStore extends AbstractComponent {
|
||||||
}
|
}
|
||||||
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
response = client.searchScroll(response.getScrollId(), scrollTimeout);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
client.clearScroll(response.getScrollId());
|
client.clearScroll(response.getScrollId());
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package org.elasticsearch.watcher.input.search;
|
package org.elasticsearch.watcher.input.search;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
|
|
||||||
import org.elasticsearch.ElasticsearchParseException;
|
import org.elasticsearch.ElasticsearchParseException;
|
||||||
import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
|
import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
|
@ -19,6 +20,7 @@ import org.elasticsearch.common.xcontent.XContentParser;
|
||||||
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
import org.elasticsearch.common.xcontent.json.JsonXContent;
|
||||||
import org.elasticsearch.common.xcontent.support.XContentMapValues;
|
import org.elasticsearch.common.xcontent.support.XContentMapValues;
|
||||||
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
|
import org.elasticsearch.search.sort.SortBuilders;
|
||||||
import org.elasticsearch.test.ESIntegTestCase;
|
import org.elasticsearch.test.ESIntegTestCase;
|
||||||
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
import org.elasticsearch.test.ESIntegTestCase.ClusterScope;
|
||||||
import org.elasticsearch.watcher.actions.ActionStatus;
|
import org.elasticsearch.watcher.actions.ActionStatus;
|
||||||
|
@ -315,24 +317,6 @@ public class SearchInputTests extends ESIntegTestCase {
|
||||||
assertThat(names, arrayContaining("test", "test-" + DateTimeFormat.forPattern(dateFormat).print(now.minusDays(1))));
|
assertThat(names, arrayContaining("test", "test-" + DateTimeFormat.forPattern(dateFormat).print(now.minusDays(1))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = ElasticsearchParseException.class)
|
|
||||||
public void testParser_ScanNotSupported() throws Exception {
|
|
||||||
SearchRequest request = client().prepareSearch()
|
|
||||||
.setSearchType(SearchType.SCAN)
|
|
||||||
.request()
|
|
||||||
.source(searchSource()
|
|
||||||
.query(filteredQuery(matchQuery("event_type", "a"), rangeQuery("_timestamp").from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))));
|
|
||||||
|
|
||||||
XContentBuilder builder = jsonBuilder().value(new SearchInput(request, null, null, null));
|
|
||||||
XContentParser parser = JsonXContent.jsonXContent.createParser(builder.bytes());
|
|
||||||
parser.nextToken();
|
|
||||||
|
|
||||||
SearchInputFactory factory = new SearchInputFactory(Settings.EMPTY, ClientProxy.of(client()));
|
|
||||||
|
|
||||||
factory.parseInput("_id", parser);
|
|
||||||
fail("expected a SearchInputException as search type SCAN should not be supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
private WatchExecutionContext createContext() {
|
private WatchExecutionContext createContext() {
|
||||||
return new TriggeredExecutionContext(
|
return new TriggeredExecutionContext(
|
||||||
new Watch("test-watch",
|
new Watch("test-watch",
|
||||||
|
|
|
@ -255,7 +255,7 @@ public abstract class AbstractWatcherIntegrationTestCase extends ESIntegTestCase
|
||||||
}
|
}
|
||||||
|
|
||||||
protected long docCount(String index, String type, SearchSourceBuilder source) {
|
protected long docCount(String index, String type, SearchSourceBuilder source) {
|
||||||
SearchRequestBuilder builder = client().prepareSearch(index).setSearchType(SearchType.COUNT);
|
SearchRequestBuilder builder = client().prepareSearch(index).setSize(0);
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
builder.setTypes(type);
|
builder.setTypes(type);
|
||||||
}
|
}
|
||||||
|
@ -378,7 +378,7 @@ public abstract class AbstractWatcherIntegrationTestCase extends ESIntegTestCase
|
||||||
refresh();
|
refresh();
|
||||||
SearchResponse searchResponse = client().prepareSearch(HistoryStore.INDEX_PREFIX + "*")
|
SearchResponse searchResponse = client().prepareSearch(HistoryStore.INDEX_PREFIX + "*")
|
||||||
.setIndicesOptions(IndicesOptions.lenientExpandOpen())
|
.setIndicesOptions(IndicesOptions.lenientExpandOpen())
|
||||||
.setSearchType(SearchType.COUNT)
|
.setSize(0)
|
||||||
.setQuery(matchQuery("watch_id", watchName))
|
.setQuery(matchQuery("watch_id", watchName))
|
||||||
.get();
|
.get();
|
||||||
return searchResponse.getHits().getTotalHits();
|
return searchResponse.getHits().getTotalHits();
|
||||||
|
|
|
@ -6,7 +6,6 @@
|
||||||
package org.elasticsearch.watcher.transform.search;
|
package org.elasticsearch.watcher.transform.search;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableMap;
|
import com.google.common.collect.ImmutableMap;
|
||||||
import org.elasticsearch.ElasticsearchParseException;
|
|
||||||
import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
|
import org.elasticsearch.action.indexedscripts.put.PutIndexedScriptRequest;
|
||||||
import org.elasticsearch.action.search.SearchRequest;
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
import org.elasticsearch.action.search.SearchResponse;
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
|
@ -363,27 +362,6 @@ public class SearchTransformTests extends ESIntegTestCase {
|
||||||
assertThat(names, arrayContaining("idx", "idx-" + DateTimeFormat.forPattern(dateFormat).print(now.minusDays(3))));
|
assertThat(names, arrayContaining("idx", "idx-" + DateTimeFormat.forPattern(dateFormat).print(now.minusDays(3))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = ElasticsearchParseException.class)
|
|
||||||
public void testParser_ScanNotSupported() throws Exception {
|
|
||||||
SearchRequest request = client().prepareSearch()
|
|
||||||
.setSearchType(SearchType.SCAN)
|
|
||||||
.request()
|
|
||||||
.source(searchSource()
|
|
||||||
.query(filteredQuery(matchQuery("event_type", "a"), rangeQuery("_timestamp").from("{{ctx.trigger.scheduled_time}}||-30s").to("{{ctx.trigger.triggered_time}}"))));
|
|
||||||
|
|
||||||
SearchTransform searchTransform = TransformBuilders.searchTransform(request).build();
|
|
||||||
XContentBuilder builder = jsonBuilder().value(searchTransform);
|
|
||||||
XContentParser parser = JsonXContent.jsonXContent.createParser(builder.bytes());
|
|
||||||
parser.nextToken();
|
|
||||||
|
|
||||||
DynamicIndexName.Parser indexNamesParser = new DynamicIndexName.Parser();
|
|
||||||
SearchTransformFactory factory = new SearchTransformFactory(Settings.EMPTY, ClientProxy.of(client()));
|
|
||||||
|
|
||||||
factory.parseTransform("_id", parser);
|
|
||||||
fail("expected a SearchTransformException as search type SCAN should not be supported");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSearch_InlineTemplate() throws Exception {
|
public void testSearch_InlineTemplate() throws Exception {
|
||||||
WatchExecutionContext ctx = createContext();
|
WatchExecutionContext ctx = createContext();
|
||||||
|
|
Loading…
Reference in New Issue