|
|
@@ -10,28 +10,34 @@ package org.elasticsearch.action.admin.indices.shrink;
|
|
|
|
|
|
import org.elasticsearch.action.admin.indices.alias.Alias;
|
|
|
import org.elasticsearch.action.admin.indices.create.CreateIndexRequest;
|
|
|
-import org.elasticsearch.action.admin.indices.create.CreateIndexRequestTests;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
import org.elasticsearch.common.bytes.BytesReference;
|
|
|
+import org.elasticsearch.common.io.stream.BytesStreamOutput;
|
|
|
+import org.elasticsearch.common.io.stream.NamedWriteableAwareStreamInput;
|
|
|
+import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
|
|
|
+import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
+import org.elasticsearch.common.io.stream.Writeable;
|
|
|
+import org.elasticsearch.common.network.NetworkModule;
|
|
|
import org.elasticsearch.common.settings.Settings;
|
|
|
import org.elasticsearch.common.unit.ByteSizeUnit;
|
|
|
import org.elasticsearch.common.unit.ByteSizeValue;
|
|
|
import org.elasticsearch.common.xcontent.XContentParser;
|
|
|
import org.elasticsearch.common.xcontent.XContentType;
|
|
|
import org.elasticsearch.index.RandomCreateIndexGenerator;
|
|
|
-import org.elasticsearch.test.ESTestCase;
|
|
|
+import org.elasticsearch.test.AbstractWireSerializingTestCase;
|
|
|
import org.elasticsearch.test.hamcrest.ElasticsearchAssertions;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.function.Consumer;
|
|
|
import java.util.function.Supplier;
|
|
|
|
|
|
+import static org.elasticsearch.action.admin.indices.create.CreateIndexRequestTests.assertAliasesEqual;
|
|
|
import static org.elasticsearch.cluster.metadata.IndexMetadata.SETTING_NUMBER_OF_SHARDS;
|
|
|
import static org.elasticsearch.common.xcontent.ToXContent.EMPTY_PARAMS;
|
|
|
import static org.hamcrest.Matchers.containsString;
|
|
|
import static org.hamcrest.Matchers.hasToString;
|
|
|
|
|
|
-public class ResizeRequestTests extends ESTestCase {
|
|
|
+public class ResizeRequestTests extends AbstractWireSerializingTestCase<ResizeRequest> {
|
|
|
|
|
|
public void testCopySettingsValidation() {
|
|
|
runTestCopySettingsValidation(false, r -> {
|
|
|
@@ -83,39 +89,63 @@ public class ResizeRequestTests extends ESTestCase {
|
|
|
}
|
|
|
|
|
|
public void testToAndFromXContent() throws IOException {
|
|
|
- final ResizeRequest resizeRequest = createTestItem();
|
|
|
+ final ResizeRequest resizeRequest = createTestInstance();
|
|
|
|
|
|
boolean humanReadable = randomBoolean();
|
|
|
final XContentType xContentType = randomFrom(XContentType.values());
|
|
|
BytesReference originalBytes = toShuffledXContent(resizeRequest, xContentType, EMPTY_PARAMS, humanReadable);
|
|
|
|
|
|
- ResizeRequest parsedResizeRequest = new ResizeRequest(resizeRequest.getTargetIndexRequest().index(),
|
|
|
- resizeRequest.getSourceIndex());
|
|
|
+ ResizeRequest parsedResizeRequest = new ResizeRequest(
|
|
|
+ randomValueOtherThan(resizeRequest.getTargetIndexRequest().index(), () -> randomAlphaOfLength(5)),
|
|
|
+ randomValueOtherThan(resizeRequest.getSourceIndex(), () -> randomAlphaOfLength(5))
|
|
|
+ );
|
|
|
try (XContentParser xParser = createParser(xContentType.xContent(), originalBytes)) {
|
|
|
parsedResizeRequest.fromXContent(xParser);
|
|
|
}
|
|
|
|
|
|
- assertEquals(resizeRequest.getSourceIndex(), parsedResizeRequest.getSourceIndex());
|
|
|
- assertEquals(resizeRequest.getTargetIndexRequest().index(), parsedResizeRequest.getTargetIndexRequest().index());
|
|
|
- CreateIndexRequestTests.assertAliasesEqual(resizeRequest.getTargetIndexRequest().aliases(),
|
|
|
- parsedResizeRequest.getTargetIndexRequest().aliases());
|
|
|
+ // these are not expected to be equal in the general case because ResizeRequest.toXContent doesn't include everything
|
|
|
+ assertNotEquals(resizeRequest, parsedResizeRequest);
|
|
|
+ assertNotEquals(resizeRequest.getSourceIndex(), parsedResizeRequest.getSourceIndex());
|
|
|
+ assertNotEquals(resizeRequest.getTargetIndexRequest(), parsedResizeRequest.getTargetIndexRequest());
|
|
|
+ assertNotEquals(resizeRequest.getTargetIndexRequest().index(), parsedResizeRequest.getTargetIndexRequest().index());
|
|
|
+
|
|
|
+ // but these are expected to be equal
|
|
|
+ assertAliasesEqual(resizeRequest.getTargetIndexRequest().aliases(), parsedResizeRequest.getTargetIndexRequest().aliases());
|
|
|
assertEquals(resizeRequest.getTargetIndexRequest().settings(), parsedResizeRequest.getTargetIndexRequest().settings());
|
|
|
+ assertEquals(resizeRequest.getMaxPrimaryShardSize(), parsedResizeRequest.getMaxPrimaryShardSize());
|
|
|
|
|
|
BytesReference finalBytes = toShuffledXContent(parsedResizeRequest, xContentType, EMPTY_PARAMS, humanReadable);
|
|
|
ElasticsearchAssertions.assertToXContentEquivalent(originalBytes, finalBytes, xContentType);
|
|
|
}
|
|
|
|
|
|
- private static ResizeRequest createTestItem() {
|
|
|
+ public void testSerializeRequest() throws IOException {
|
|
|
+ ResizeRequest request = createTestInstance();
|
|
|
+ BytesStreamOutput out = new BytesStreamOutput();
|
|
|
+ request.writeTo(out);
|
|
|
+ BytesReference bytes = out.bytes();
|
|
|
+ NamedWriteableRegistry namedWriteableRegistry = new NamedWriteableRegistry(NetworkModule.getNamedWriteables());
|
|
|
+ StreamInput wrap = new NamedWriteableAwareStreamInput(bytes.streamInput(), namedWriteableRegistry);
|
|
|
+ ResizeRequest deserializedReq = new ResizeRequest(wrap);
|
|
|
+
|
|
|
+ assertEquals(request.getSourceIndex(), deserializedReq.getSourceIndex());
|
|
|
+ assertEquals(request.getTargetIndexRequest().settings(), deserializedReq.getTargetIndexRequest().settings());
|
|
|
+ assertEquals(request.getTargetIndexRequest().aliases(), deserializedReq.getTargetIndexRequest().aliases());
|
|
|
+ assertEquals(request.getCopySettings(), deserializedReq.getCopySettings());
|
|
|
+ assertEquals(request.getResizeType(), deserializedReq.getResizeType());
|
|
|
+ assertEquals(request.getMaxPrimaryShardSize(), deserializedReq.getMaxPrimaryShardSize());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected Writeable.Reader<ResizeRequest> instanceReader() { return ResizeRequest::new; }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ protected ResizeRequest createTestInstance() {
|
|
|
ResizeRequest resizeRequest = new ResizeRequest(randomAlphaOfLengthBetween(3, 10), randomAlphaOfLengthBetween(3, 10));
|
|
|
if (randomBoolean()) {
|
|
|
- CreateIndexRequest createIndexRequest = new CreateIndexRequest(randomAlphaOfLengthBetween(3, 10));
|
|
|
- if (randomBoolean()) {
|
|
|
- RandomCreateIndexGenerator.randomAliases(createIndexRequest);
|
|
|
- }
|
|
|
- if (randomBoolean()) {
|
|
|
- createIndexRequest.settings(RandomCreateIndexGenerator.randomIndexSettings());
|
|
|
- }
|
|
|
- resizeRequest.setTargetIndex(createIndexRequest);
|
|
|
+ resizeRequest.setTargetIndex(RandomCreateIndexGenerator.randomCreateIndexRequest());
|
|
|
+ }
|
|
|
+ if (randomBoolean()) {
|
|
|
+ resizeRequest.setMaxPrimaryShardSize(new ByteSizeValue(randomIntBetween(1, 100)));
|
|
|
}
|
|
|
return resizeRequest;
|
|
|
}
|