Browse Source

Change CCR API request classes to use Writeable serialization instead of Streamable (#34911)

Only the follow stats request couldn't be changed to use Writeable serialization,
because that requires changes in `TransportTasksAction` and `BaseTasksRequest` base classes.
Martijn van Groningen 7 years ago
parent
commit
6da2fb7d5b
15 changed files with 48 additions and 53 deletions
  1. 1 1
      x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportDeleteAutoFollowPatternAction.java
  2. 1 1
      x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportPutAutoFollowPatternAction.java
  3. 2 2
      x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportPutFollowAction.java
  4. 1 1
      x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java
  5. 1 2
      x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/rest/RestDeleteAutoFollowPatternAction.java
  6. 1 2
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/AutoFollowIT.java
  7. 6 7
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/DeleteAutoFollowPatternRequestTests.java
  8. 5 4
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/PutAutoFollowPatternRequestTests.java
  9. 5 4
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/PutFollowActionRequestTests.java
  10. 5 4
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/ResumeFollowActionRequestTests.java
  11. 3 6
      x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/TransportDeleteAutoFollowPatternActionTests.java
  12. 7 8
      x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/DeleteAutoFollowPatternAction.java
  13. 5 3
      x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/PutAutoFollowPatternAction.java
  14. 3 5
      x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/PutFollowAction.java
  15. 2 3
      x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/ResumeFollowAction.java

+ 1 - 1
x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportDeleteAutoFollowPatternAction.java

@@ -37,7 +37,7 @@ public class TransportDeleteAutoFollowPatternAction extends
                                                   ThreadPool threadPool, ActionFilters actionFilters,
                                                   IndexNameExpressionResolver indexNameExpressionResolver) {
         super(settings, DeleteAutoFollowPatternAction.NAME, transportService, clusterService, threadPool, actionFilters,
-            indexNameExpressionResolver, DeleteAutoFollowPatternAction.Request::new);
+            DeleteAutoFollowPatternAction.Request::new, indexNameExpressionResolver);
     }
 
     @Override

+ 1 - 1
x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportPutAutoFollowPatternAction.java

@@ -53,7 +53,7 @@ public class TransportPutAutoFollowPatternAction extends
             final IndexNameExpressionResolver indexNameExpressionResolver,
             final CcrLicenseChecker ccrLicenseChecker) {
         super(settings, PutAutoFollowPatternAction.NAME, transportService, clusterService, threadPool, actionFilters,
-            indexNameExpressionResolver, PutAutoFollowPatternAction.Request::new);
+            PutAutoFollowPatternAction.Request::new, indexNameExpressionResolver);
         this.client = client;
         this.ccrLicenseChecker = Objects.requireNonNull(ccrLicenseChecker, "ccrLicenseChecker");
     }

+ 2 - 2
x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportPutFollowAction.java

@@ -68,8 +68,8 @@ public final class TransportPutFollowAction
                 clusterService,
                 threadPool,
                 actionFilters,
-                indexNameExpressionResolver,
-                PutFollowAction.Request::new);
+                PutFollowAction.Request::new,
+                indexNameExpressionResolver);
         this.client = client;
         this.allocationService = allocationService;
         this.activeShardsObserver = new ActiveShardsObserver(settings, clusterService, threadPool);

+ 1 - 1
x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java

@@ -81,7 +81,7 @@ public class TransportResumeFollowAction extends HandledTransportAction<ResumeFo
             final PersistentTasksService persistentTasksService,
             final IndicesService indicesService,
             final CcrLicenseChecker ccrLicenseChecker) {
-        super(settings, ResumeFollowAction.NAME, transportService, actionFilters, ResumeFollowAction.Request::new);
+        super(settings, ResumeFollowAction.NAME, transportService, actionFilters, in -> new ResumeFollowAction.Request(in));
         this.client = client;
         this.threadPool = threadPool;
         this.clusterService = clusterService;

+ 1 - 2
x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/rest/RestDeleteAutoFollowPatternAction.java

@@ -31,8 +31,7 @@ public class RestDeleteAutoFollowPatternAction extends BaseRestHandler {
 
     @Override
     protected RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException {
-        Request request = new Request();
-        request.setName(restRequest.param("name"));
+        Request request = new Request(restRequest.param("name"));
         return channel -> client.execute(INSTANCE, request, new RestToXContentListener<>(channel));
     }
 

+ 1 - 2
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/AutoFollowIT.java

@@ -254,8 +254,7 @@ public class AutoFollowIT extends CcrIntegTestCase {
     }
 
     private void deleteAutoFollowPatternSetting() {
-        DeleteAutoFollowPatternAction.Request request = new DeleteAutoFollowPatternAction.Request();
-        request.setName("my-pattern");
+        DeleteAutoFollowPatternAction.Request request = new DeleteAutoFollowPatternAction.Request("my-pattern");
         assertTrue(followerClient().execute(DeleteAutoFollowPatternAction.INSTANCE, request).actionGet().isAcknowledged());
     }
 

+ 6 - 7
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/DeleteAutoFollowPatternRequestTests.java

@@ -5,20 +5,19 @@
  */
 package org.elasticsearch.xpack.ccr.action;
 
-import org.elasticsearch.test.AbstractStreamableTestCase;
+import org.elasticsearch.common.io.stream.Writeable;
+import org.elasticsearch.test.AbstractWireSerializingTestCase;
 import org.elasticsearch.xpack.core.ccr.action.DeleteAutoFollowPatternAction;
 
-public class DeleteAutoFollowPatternRequestTests extends AbstractStreamableTestCase<DeleteAutoFollowPatternAction.Request> {
+public class DeleteAutoFollowPatternRequestTests extends AbstractWireSerializingTestCase<DeleteAutoFollowPatternAction.Request> {
 
     @Override
-    protected DeleteAutoFollowPatternAction.Request createBlankInstance() {
-        return new DeleteAutoFollowPatternAction.Request();
+    protected Writeable.Reader<DeleteAutoFollowPatternAction.Request> instanceReader() {
+        return DeleteAutoFollowPatternAction.Request::new;
     }
 
     @Override
     protected DeleteAutoFollowPatternAction.Request createTestInstance() {
-        DeleteAutoFollowPatternAction.Request request = new DeleteAutoFollowPatternAction.Request();
-        request.setName(randomAlphaOfLength(4));
-        return request;
+        return new DeleteAutoFollowPatternAction.Request(randomAlphaOfLength(4));
     }
 }

+ 5 - 4
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/PutAutoFollowPatternRequestTests.java

@@ -6,11 +6,12 @@
 package org.elasticsearch.xpack.ccr.action;
 
 import org.elasticsearch.action.ActionRequestValidationException;
+import org.elasticsearch.common.io.stream.Writeable;
 import org.elasticsearch.common.unit.ByteSizeUnit;
 import org.elasticsearch.common.unit.ByteSizeValue;
 import org.elasticsearch.common.unit.TimeValue;
 import org.elasticsearch.common.xcontent.XContentParser;
-import org.elasticsearch.test.AbstractStreamableXContentTestCase;
+import org.elasticsearch.test.AbstractSerializingTestCase;
 import org.elasticsearch.xpack.core.ccr.action.PutAutoFollowPatternAction;
 
 import java.io.IOException;
@@ -21,7 +22,7 @@ import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
-public class PutAutoFollowPatternRequestTests extends AbstractStreamableXContentTestCase<PutAutoFollowPatternAction.Request> {
+public class PutAutoFollowPatternRequestTests extends AbstractSerializingTestCase<PutAutoFollowPatternAction.Request> {
 
     @Override
     protected boolean supportsUnknownFields() {
@@ -34,8 +35,8 @@ public class PutAutoFollowPatternRequestTests extends AbstractStreamableXContent
     }
 
     @Override
-    protected PutAutoFollowPatternAction.Request createBlankInstance() {
-        return new PutAutoFollowPatternAction.Request();
+    protected Writeable.Reader<PutAutoFollowPatternAction.Request> instanceReader() {
+        return PutAutoFollowPatternAction.Request::new;
     }
 
     @Override

+ 5 - 4
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/PutFollowActionRequestTests.java

@@ -5,17 +5,18 @@
  */
 package org.elasticsearch.xpack.ccr.action;
 
+import org.elasticsearch.common.io.stream.Writeable;
 import org.elasticsearch.common.xcontent.XContentParser;
-import org.elasticsearch.test.AbstractStreamableXContentTestCase;
+import org.elasticsearch.test.AbstractSerializingTestCase;
 import org.elasticsearch.xpack.core.ccr.action.PutFollowAction;
 
 import java.io.IOException;
 
-public class PutFollowActionRequestTests extends AbstractStreamableXContentTestCase<PutFollowAction.Request> {
+public class PutFollowActionRequestTests extends AbstractSerializingTestCase<PutFollowAction.Request> {
 
     @Override
-    protected PutFollowAction.Request createBlankInstance() {
-        return new PutFollowAction.Request();
+    protected Writeable.Reader<PutFollowAction.Request> instanceReader() {
+        return PutFollowAction.Request::new;
     }
 
     @Override

+ 5 - 4
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/ResumeFollowActionRequestTests.java

@@ -6,11 +6,12 @@
 package org.elasticsearch.xpack.ccr.action;
 
 import org.elasticsearch.action.ActionRequestValidationException;
+import org.elasticsearch.common.io.stream.Writeable;
 import org.elasticsearch.common.unit.ByteSizeUnit;
 import org.elasticsearch.common.unit.ByteSizeValue;
 import org.elasticsearch.common.unit.TimeValue;
 import org.elasticsearch.common.xcontent.XContentParser;
-import org.elasticsearch.test.AbstractStreamableXContentTestCase;
+import org.elasticsearch.test.AbstractSerializingTestCase;
 import org.elasticsearch.xpack.core.ccr.action.ResumeFollowAction;
 
 import java.io.IOException;
@@ -19,11 +20,11 @@ import static org.hamcrest.Matchers.containsString;
 import static org.hamcrest.Matchers.notNullValue;
 import static org.hamcrest.Matchers.nullValue;
 
-public class ResumeFollowActionRequestTests extends AbstractStreamableXContentTestCase<ResumeFollowAction.Request> {
+public class ResumeFollowActionRequestTests extends AbstractSerializingTestCase<ResumeFollowAction.Request> {
 
     @Override
-    protected ResumeFollowAction.Request createBlankInstance() {
-        return new ResumeFollowAction.Request();
+    protected Writeable.Reader<ResumeFollowAction.Request> instanceReader() {
+        return ResumeFollowAction.Request::new;
     }
 
     @Override

+ 3 - 6
x-pack/plugin/ccr/src/test/java/org/elasticsearch/xpack/ccr/action/TransportDeleteAutoFollowPatternActionTests.java

@@ -56,8 +56,7 @@ public class TransportDeleteAutoFollowPatternActionTests extends ESTestCase {
                 new AutoFollowMetadata(existingAutoFollowPatterns, existingAlreadyFollowedIndexUUIDS, existingHeaders)))
             .build();
 
-        Request request = new Request();
-        request.setName("name1");
+        Request request = new Request("name1");
         AutoFollowMetadata result = TransportDeleteAutoFollowPatternAction.innerDelete(request, clusterState)
             .getMetaData()
             .custom(AutoFollowMetadata.TYPE);
@@ -86,8 +85,7 @@ public class TransportDeleteAutoFollowPatternActionTests extends ESTestCase {
                 new AutoFollowMetadata(existingAutoFollowPatterns, existingAlreadyFollowedIndexUUIDS, existingHeaders)))
             .build();
 
-        Request request = new Request();
-        request.setName("name2");
+        Request request = new Request("name2");
         Exception e = expectThrows(ResourceNotFoundException.class,
             () -> TransportDeleteAutoFollowPatternAction.innerDelete(request, clusterState));
         assertThat(e.getMessage(), equalTo("auto-follow pattern [name2] is missing"));
@@ -98,8 +96,7 @@ public class TransportDeleteAutoFollowPatternActionTests extends ESTestCase {
             .metaData(MetaData.builder())
             .build();
 
-        Request request = new Request();
-        request.setName("name1");
+        Request request = new Request("name1");
         Exception e = expectThrows(ResourceNotFoundException.class,
             () -> TransportDeleteAutoFollowPatternAction.innerDelete(request, clusterState));
         assertThat(e.getMessage(), equalTo("auto-follow pattern [name1] is missing"));

+ 7 - 8
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/DeleteAutoFollowPatternAction.java

@@ -33,7 +33,11 @@ public class DeleteAutoFollowPatternAction extends Action<AcknowledgedResponse>
 
     public static class Request extends AcknowledgedRequest<Request> {
 
-        private String name;
+        private final String name;
+
+        public Request(String name) {
+            this.name = name;
+        }
 
         @Override
         public ActionRequestValidationException validate() {
@@ -48,13 +52,8 @@ public class DeleteAutoFollowPatternAction extends Action<AcknowledgedResponse>
             return name;
         }
 
-        public void setName(String name) {
-            this.name = name;
-        }
-
-        @Override
-        public void readFrom(StreamInput in) throws IOException {
-            super.readFrom(in);
+        public Request(StreamInput in) throws IOException {
+            super(in);
             name = in.readString();
         }
 

+ 5 - 3
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/PutAutoFollowPatternAction.java

@@ -110,6 +110,9 @@ public class PutAutoFollowPatternAction extends Action<AcknowledgedResponse> {
         private TimeValue maxRetryDelay;
         private TimeValue readPollTimeout;
 
+        public Request() {
+        }
+
         @Override
         public ActionRequestValidationException validate() {
             ActionRequestValidationException validationException = null;
@@ -252,9 +255,8 @@ public class PutAutoFollowPatternAction extends Action<AcknowledgedResponse> {
             this.readPollTimeout = readPollTimeout;
         }
 
-        @Override
-        public void readFrom(StreamInput in) throws IOException {
-            super.readFrom(in);
+        public Request(StreamInput in) throws IOException {
+            super(in);
             name = in.readString();
             remoteCluster = in.readString();
             leaderIndexPatterns = in.readList(StreamInput::readString);

+ 3 - 5
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/PutFollowAction.java

@@ -166,13 +166,11 @@ public final class PutFollowAction extends Action<PutFollowAction.Response> {
             return IndicesOptions.strictSingleIndexNoExpandForbidClosed();
         }
 
-        @Override
-        public void readFrom(StreamInput in) throws IOException {
-            super.readFrom(in);
+        public Request(StreamInput in) throws IOException {
+            super(in);
             remoteCluster = in.readString();
             leaderIndex = in.readString();
-            followRequest = new ResumeFollowAction.Request();
-            followRequest.readFrom(in);
+            followRequest = new ResumeFollowAction.Request(in);
         }
 
         @Override

+ 2 - 3
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ccr/action/ResumeFollowAction.java

@@ -259,9 +259,8 @@ public final class ResumeFollowAction extends Action<AcknowledgedResponse> {
             return e;
         }
 
-        @Override
-        public void readFrom(final StreamInput in) throws IOException {
-            super.readFrom(in);
+        public Request(StreamInput in) throws IOException {
+            super(in);
             followerIndex = in.readString();
             maxReadRequestOperationCount = in.readOptionalVInt();
             maxOutstandingReadRequests = in.readOptionalVInt();