parent
b4f7d56c35
commit
ad3eb997c6
|
@ -0,0 +1,99 @@
|
|||
/*
|
||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||
* or more contributor license agreements. Licensed under the Elastic License;
|
||||
* you may not use this file except in compliance with the Elastic License.
|
||||
*/
|
||||
package org.elasticsearch.xdcr;
|
||||
|
||||
import org.elasticsearch.action.admin.indices.stats.ShardStats;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.reindex.ReindexPlugin;
|
||||
import org.elasticsearch.index.translog.Translog;
|
||||
import org.elasticsearch.plugins.Plugin;
|
||||
import org.elasticsearch.xpack.XPackPlugin;
|
||||
import org.elasticsearch.xpack.XPackSettings;
|
||||
import org.elasticsearch.xpack.XPackSingleNodeTestCase;
|
||||
import org.elasticsearch.xpack.xdcr.action.ShardChangesAction;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
import static org.hamcrest.Matchers.equalTo;
|
||||
|
||||
public class ShardChangesTests extends XPackSingleNodeTestCase {
|
||||
|
||||
@Override
|
||||
protected Settings nodeSettings() {
|
||||
Settings.Builder newSettings = Settings.builder();
|
||||
newSettings.put(super.nodeSettings());
|
||||
newSettings.put(XPackSettings.SECURITY_ENABLED.getKey(), false);
|
||||
newSettings.put(XPackSettings.MONITORING_ENABLED.getKey(), false);
|
||||
newSettings.put(XPackSettings.WATCHER_ENABLED.getKey(), false);
|
||||
newSettings.put(XPackSettings.MACHINE_LEARNING_ENABLED.getKey(), false);
|
||||
newSettings.put(XPackSettings.LOGSTASH_ENABLED.getKey(), false);
|
||||
return newSettings.build();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Collection<Class<? extends Plugin>> getPlugins() {
|
||||
return pluginList(XPackPlugin.class, ReindexPlugin.class);
|
||||
}
|
||||
|
||||
public void testReadOperations() throws Exception {
|
||||
client().admin().indices().prepareCreate("index")
|
||||
.setSettings(Settings.builder().put("index.number_of_shards", 1))
|
||||
.setSettings(Settings.builder().put("index.number_of_replicas", 0))
|
||||
.get();
|
||||
|
||||
client().prepareIndex("index", "doc", "1").setSource("{}", XContentType.JSON).get();
|
||||
client().prepareIndex("index", "doc", "2").setSource("{}", XContentType.JSON).get();
|
||||
client().prepareIndex("index", "doc", "3").setSource("{}", XContentType.JSON).get();
|
||||
|
||||
ShardStats shardStats = client().admin().indices().prepareStats("index").get().getIndex("index").getShards()[0];
|
||||
long globalCheckPoint = shardStats.getSeqNoStats().getGlobalCheckpoint();
|
||||
assertThat(globalCheckPoint, equalTo(2L));
|
||||
|
||||
ShardChangesAction.Request request = new ShardChangesAction.Request(shardStats.getShardRouting().shardId());
|
||||
request.setMinSeqNo(0L);
|
||||
request.setMaxSeqNo(globalCheckPoint);
|
||||
ShardChangesAction.Response response = client().execute(ShardChangesAction.INSTANCE, request).get();
|
||||
assertThat(response.getOperations().size(), equalTo(3));
|
||||
Translog.Index operation = (Translog.Index) response.getOperations().get(0);
|
||||
assertThat(operation.seqNo(), equalTo(0L));
|
||||
assertThat(operation.id(), equalTo("1"));
|
||||
|
||||
operation = (Translog.Index) response.getOperations().get(1);
|
||||
assertThat(operation.seqNo(), equalTo(1L));
|
||||
assertThat(operation.id(), equalTo("2"));
|
||||
|
||||
operation = (Translog.Index) response.getOperations().get(2);
|
||||
assertThat(operation.seqNo(), equalTo(2L));
|
||||
assertThat(operation.id(), equalTo("3"));
|
||||
|
||||
client().prepareIndex("index", "doc", "3").setSource("{}", XContentType.JSON).get();
|
||||
client().prepareIndex("index", "doc", "4").setSource("{}", XContentType.JSON).get();
|
||||
client().prepareIndex("index", "doc", "5").setSource("{}", XContentType.JSON).get();
|
||||
|
||||
shardStats = client().admin().indices().prepareStats("index").get().getIndex("index").getShards()[0];
|
||||
globalCheckPoint = shardStats.getSeqNoStats().getGlobalCheckpoint();
|
||||
assertThat(globalCheckPoint, equalTo(5L));
|
||||
|
||||
request = new ShardChangesAction.Request(shardStats.getShardRouting().shardId());
|
||||
request.setMinSeqNo(3L);
|
||||
request.setMaxSeqNo(globalCheckPoint);
|
||||
response = client().execute(ShardChangesAction.INSTANCE, request).get();
|
||||
assertThat(response.getOperations().size(), equalTo(3));
|
||||
operation = (Translog.Index) response.getOperations().get(0);
|
||||
assertThat(operation.seqNo(), equalTo(3L));
|
||||
assertThat(operation.id(), equalTo("3"));
|
||||
|
||||
operation = (Translog.Index) response.getOperations().get(1);
|
||||
assertThat(operation.seqNo(), equalTo(4L));
|
||||
assertThat(operation.id(), equalTo("4"));
|
||||
|
||||
operation = (Translog.Index) response.getOperations().get(2);
|
||||
assertThat(operation.seqNo(), equalTo(5L));
|
||||
assertThat(operation.id(), equalTo("5"));
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue