From 3d92ac3e620e3ae30876c0ac49f1fd3b90b32385 Mon Sep 17 00:00:00 2001 From: RS146BIJAY Date: Thu, 22 Aug 2024 11:38:32 +0530 Subject: [PATCH] Skipping serialization of node attributes in Leader and follower checks Signed-off-by: RS146BIJAY --- .../cluster/node/DiscoveryNode.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/opensearch/cluster/node/DiscoveryNode.java b/server/src/main/java/org/opensearch/cluster/node/DiscoveryNode.java index 653f81830ed17..acac006be83f9 100644 --- a/server/src/main/java/org/opensearch/cluster/node/DiscoveryNode.java +++ b/server/src/main/java/org/opensearch/cluster/node/DiscoveryNode.java @@ -369,6 +369,26 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(entry.getKey()); out.writeString(entry.getValue()); } + + out.writeVInt(roles.size()); + for (final DiscoveryNodeRole role : roles) { + final DiscoveryNodeRole compatibleRole = role.getCompatibilityRole(out.getVersion()); + out.writeString(compatibleRole.roleName()); + out.writeString(compatibleRole.roleNameAbbreviation()); + out.writeBoolean(compatibleRole.canContainData()); + } + + out.writeVersion(version); + } + + public void writeToWithoutAttribute(StreamOutput out) throws IOException { + out.writeString(nodeName); + out.writeString(nodeId); + out.writeString(ephemeralId); + out.writeString(hostName); + out.writeString(hostAddress); + address.writeTo(out); + out.writeVInt(0); out.writeVInt(roles.size()); for (final DiscoveryNodeRole role : roles) { final DiscoveryNodeRole compatibleRole = role.getCompatibilityRole(out.getVersion()); @@ -376,6 +396,7 @@ public void writeTo(StreamOutput out) throws IOException { out.writeString(compatibleRole.roleNameAbbreviation()); out.writeBoolean(compatibleRole.canContainData()); } + out.writeVersion(version); } @@ -572,7 +593,6 @@ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws builder.field(entry.getKey(), entry.getValue()); } builder.endObject(); - builder.endObject(); return builder; }