|
@@ -19,16 +19,13 @@
|
|
|
|
|
|
package org.elasticsearch.action.admin.cluster.repositories.verify;
|
|
|
|
|
|
-import org.elasticsearch.Version;
|
|
|
import org.elasticsearch.action.ActionResponse;
|
|
|
-import org.elasticsearch.cluster.ClusterName;
|
|
|
import org.elasticsearch.cluster.node.DiscoveryNode;
|
|
|
import org.elasticsearch.common.ParseField;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
import org.elasticsearch.common.io.stream.StreamInput;
|
|
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
|
|
import org.elasticsearch.common.io.stream.Writeable;
|
|
|
-import org.elasticsearch.common.transport.TransportAddress;
|
|
|
import org.elasticsearch.common.xcontent.ObjectParser;
|
|
|
import org.elasticsearch.common.xcontent.ToXContentObject;
|
|
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
@@ -36,7 +33,6 @@ import org.elasticsearch.common.xcontent.XContentParser;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.Arrays;
|
|
|
-import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.Objects;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -92,20 +88,6 @@ public class VerifyRepositoryResponse extends ActionResponse implements ToXConte
|
|
|
return builder;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * Temporary method that allows turning a {@link NodeView} into a {@link DiscoveryNode}. This representation will never be used in
|
|
|
- * practice, because in >= 6.4 a consumer of the response will only be able to retrieve a representation of {@link NodeView}
|
|
|
- * objects.
|
|
|
- *
|
|
|
- * Effectively this will be used to hold the state of the object in 6.x so there is no need to have 2 backing objects that
|
|
|
- * represent the state of the Response. In practice these will always be read by a consumer as a NodeView, but it eases the
|
|
|
- * transition to master which will not contain any representation of a {@link DiscoveryNode}.
|
|
|
- */
|
|
|
- DiscoveryNode convertToDiscoveryNode() {
|
|
|
- return new DiscoveryNode(name, nodeId, "", "", "", new TransportAddress(TransportAddress.META_ADDRESS, 0),
|
|
|
- Collections.emptyMap(), Collections.emptySet(), Version.CURRENT);
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
public boolean equals(Object obj) {
|
|
|
if (obj == null) {
|
|
@@ -125,10 +107,7 @@ public class VerifyRepositoryResponse extends ActionResponse implements ToXConte
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- private List<DiscoveryNode> nodes;
|
|
|
-
|
|
|
- private ClusterName clusterName;
|
|
|
-
|
|
|
+ private List<NodeView> nodes;
|
|
|
|
|
|
private static final ObjectParser<VerifyRepositoryResponse, Void> PARSER =
|
|
|
new ObjectParser<>(VerifyRepositoryResponse.class.getName(), VerifyRepositoryResponse::new);
|
|
@@ -139,43 +118,28 @@ public class VerifyRepositoryResponse extends ActionResponse implements ToXConte
|
|
|
VerifyRepositoryResponse() {
|
|
|
}
|
|
|
|
|
|
- public VerifyRepositoryResponse(ClusterName clusterName, DiscoveryNode[] nodes) {
|
|
|
- this.clusterName = clusterName;
|
|
|
- this.nodes = Arrays.asList(nodes);
|
|
|
+ public VerifyRepositoryResponse(DiscoveryNode[] nodes) {
|
|
|
+ this.nodes = Arrays.stream(nodes).map(dn -> new NodeView(dn.getId(), dn.getName())).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void readFrom(StreamInput in) throws IOException {
|
|
|
super.readFrom(in);
|
|
|
- if (in.getVersion().onOrAfter(Version.V_6_4_0)) {
|
|
|
- this.nodes = in.readList(NodeView::new).stream().map(n -> n.convertToDiscoveryNode()).collect(Collectors.toList());
|
|
|
- } else {
|
|
|
- clusterName = new ClusterName(in);
|
|
|
- this.nodes = in.readList(DiscoveryNode::new);
|
|
|
- }
|
|
|
+ this.nodes = in.readList(NodeView::new);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void writeTo(StreamOutput out) throws IOException {
|
|
|
super.writeTo(out);
|
|
|
- if (out.getVersion().onOrAfter(Version.V_6_4_0)) {
|
|
|
- out.writeList(getNodes());
|
|
|
- } else {
|
|
|
- clusterName.writeTo(out);
|
|
|
- out.writeList(nodes);
|
|
|
- }
|
|
|
+ out.writeList(nodes);
|
|
|
}
|
|
|
|
|
|
public List<NodeView> getNodes() {
|
|
|
- return nodes.stream().map(dn -> new NodeView(dn.getId(), dn.getName())).collect(Collectors.toList());
|
|
|
- }
|
|
|
-
|
|
|
- public ClusterName getClusterName() {
|
|
|
- return clusterName;
|
|
|
+ return nodes;
|
|
|
}
|
|
|
|
|
|
protected void setNodes(List<NodeView> nodes) {
|
|
|
- this.nodes = nodes.stream().map(n -> n.convertToDiscoveryNode()).collect(Collectors.toList());
|
|
|
+ this.nodes = nodes;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -184,12 +148,8 @@ public class VerifyRepositoryResponse extends ActionResponse implements ToXConte
|
|
|
{
|
|
|
builder.startObject(NODES);
|
|
|
{
|
|
|
- for (DiscoveryNode node : nodes) {
|
|
|
- builder.startObject(node.getId());
|
|
|
- {
|
|
|
- builder.field(NAME, node.getName());
|
|
|
- }
|
|
|
- builder.endObject();
|
|
|
+ for (NodeView node : nodes) {
|
|
|
+ node.toXContent(builder, params);
|
|
|
}
|
|
|
}
|
|
|
builder.endObject();
|