From 6c8f49c37d03bc6f7ca66d6839b3d68106f9d84d Mon Sep 17 00:00:00 2001 From: kimchy Date: Wed, 2 Jun 2010 16:59:55 +0300 Subject: [PATCH] REST API does not expose node-master status, closes #203. --- .../admin/cluster/state/RestClusterStateAction.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/cluster/state/RestClusterStateAction.java b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/cluster/state/RestClusterStateAction.java index 3221095069f..f574aa67f03 100644 --- a/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/cluster/state/RestClusterStateAction.java +++ b/modules/elasticsearch/src/main/java/org/elasticsearch/rest/action/admin/cluster/state/RestClusterStateAction.java @@ -25,6 +25,7 @@ import org.elasticsearch.action.admin.cluster.state.ClusterStateResponse; import org.elasticsearch.client.Client; import org.elasticsearch.cluster.ClusterState; import org.elasticsearch.cluster.metadata.IndexMetaData; +import org.elasticsearch.cluster.node.DiscoveryNode; import org.elasticsearch.cluster.routing.IndexRoutingTable; import org.elasticsearch.cluster.routing.IndexShardRoutingTable; import org.elasticsearch.cluster.routing.RoutingNode; @@ -62,6 +63,17 @@ public class RestClusterStateAction extends BaseRestHandler { XContentBuilder builder = RestXContentBuilder.restContentBuilder(request); builder.startObject(); + // nodes + builder.startObject("nodes"); + builder.field("_master", state.nodes().masterNodeId()); + for (DiscoveryNode node : state.nodes()) { + builder.startObject(node.id()); + builder.field("name", node.name()); + builder.field("transport_address", node.address().toString()); + builder.endObject(); + } + builder.endObject(); + // meta data builder.startObject("metadata"); builder.field("max_number_of_shards_per_node", state.metaData().maxNumberOfShardsPerNode()); @@ -113,6 +125,7 @@ public class RestClusterStateAction extends BaseRestHandler { jsonShardRouting(builder, shardRouting); } builder.endArray(); + builder.startObject("nodes"); for (RoutingNode routingNode : state.readOnlyRoutingNodes()) { builder.startArray(routingNode.nodeId());