- All Implemented Interfaces:
Iterable<DiscoveryNode>,Collection<DiscoveryNode>,Diffable<DiscoveryNodes>,SimpleDiffable<DiscoveryNodes>,Writeable
public class DiscoveryNodes
extends AbstractCollection<DiscoveryNode>
implements SimpleDiffable<DiscoveryNodes>
This class holds all
DiscoveryNode in the cluster and provides convenience methods to
access, modify merge / diff discovery nodes.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classNested classes/interfaces inherited from interface org.elasticsearch.cluster.SimpleDiffable
SimpleDiffable.CompleteDiff<T extends Diffable<T>>Nested classes/interfaces inherited from interface org.elasticsearch.common.io.stream.Writeable
Writeable.Reader<V>, Writeable.Writer<V> -
Field Summary
FieldsFields inherited from interface org.elasticsearch.cluster.SimpleDiffable
EMPTY -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddCommaSeparatedNodesWithoutAttributes(Iterator<DiscoveryNode> iterator, StringBuilder stringBuilder) static DiscoveryNodes.Builderbuilder()static DiscoveryNodes.Builderbuilder(DiscoveryNodes nodes) delta(DiscoveryNodes other) Returns the changes comparing this nodes to the provided nodes.findByAddress(TransportAddress address) Get a node by its addressGet a node by its idGet aMapof the coordinating only nodes (nodes which are neither master, nor data, nor ingest nodes) arranged by their idsGet aMapof the discovered data nodes arranged by their idsGet the local nodeGet the id of the local nodeGet aMapof the discovered master and data nodes arranged by their idsReturns the master node, ornullif there is no master nodeGet the id of the master nodeGet aMapof the discovered master nodes arranged by their idsReturns the version of the node with the youngest version in the clusterReturns the version of the node with the oldest version in the cluster.getNodes()Get aMapof the discovered nodes arranged by their idsintgetSize()Get the number of known nodesReturns the version of the node with the oldest version in the cluster that is not a client node If there are no non-client nodes, Version.CURRENT will be returned.booleanReturnstrueif the local node is the elected master node.booleanisRoleAvailable(String roleName) Checks if any node has the role with the givenroleName.iterator()Returns a stream of all nodes, with master nodes at the frontbooleannodeExists(String nodeId) Determine if a given node id existsbooleannodeExists(DiscoveryNode node) Determine if a given node existsbooleannodeExistsWithSameRoles(DiscoveryNode discoveryNode) Determine if the given node exists and has the right roles.static Diff<DiscoveryNodes>readDiffFrom(StreamInput in, DiscoveryNode localNode) static DiscoveryNodesreadFrom(StreamInput in, DiscoveryNode localNode) resolveNode(String node) Resolve a node with a given idString[]resolveNodes(String... nodes) Resolves a set of nodes according to the given sequence of node specifications.intsize()toString()voidwriteTo(StreamOutput out) Write this into the StreamOutput.Methods inherited from class java.util.AbstractCollection
add, addAll, clear, contains, containsAll, isEmpty, remove, removeAll, retainAll, toArray, toArrayMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Collection
equals, hashCode, parallelStream, removeIf, spliterator, stream, toArrayMethods inherited from interface org.elasticsearch.cluster.SimpleDiffable
diff
-
Field Details
-
EMPTY_NODES
-
-
Method Details
-
iterator
- Specified by:
iteratorin interfaceCollection<DiscoveryNode>- Specified by:
iteratorin interfaceIterable<DiscoveryNode>- Specified by:
iteratorin classAbstractCollection<DiscoveryNode>
-
size
public int size()- Specified by:
sizein interfaceCollection<DiscoveryNode>- Specified by:
sizein classAbstractCollection<DiscoveryNode>
-
isLocalNodeElectedMaster
public boolean isLocalNodeElectedMaster()Returnstrueif the local node is the elected master node. -
isRoleAvailable
Checks if any node has the role with the givenroleName.- Parameters:
roleName- name to check- Returns:
- true if any node has the role of the given name
-
getSize
public int getSize()Get the number of known nodes- Returns:
- number of nodes
-
getNodes
Get aMapof the discovered nodes arranged by their ids- Returns:
Mapof the discovered nodes arranged by their ids
-
getDataNodes
Get aMapof the discovered data nodes arranged by their ids- Returns:
Mapof the discovered data nodes arranged by their ids
-
getMasterNodes
Get aMapof the discovered master nodes arranged by their ids- Returns:
Mapof the discovered master nodes arranged by their ids
-
getIngestNodes
- Returns:
- All the ingest nodes arranged by their ids
-
getMasterAndDataNodes
Get aMapof the discovered master and data nodes arranged by their ids- Returns:
Mapof the discovered master and data nodes arranged by their ids
-
getCoordinatingOnlyNodes
Get aMapof the coordinating only nodes (nodes which are neither master, nor data, nor ingest nodes) arranged by their ids- Returns:
Mapof the coordinating only nodes arranged by their ids
-
mastersFirstStream
Returns a stream of all nodes, with master nodes at the front -
get
Get a node by its id- Parameters:
nodeId- id of the wanted node- Returns:
- wanted node if it exists. Otherwise
null
-
nodeExists
Determine if a given node id exists- Parameters:
nodeId- id of the node which existence should be verified- Returns:
trueif the node exists. Otherwisefalse
-
nodeExists
Determine if a given node exists- Parameters:
node- of the node which existence should be verified- Returns:
trueif the node exists. Otherwisefalse
-
nodeExistsWithSameRoles
Determine if the given node exists and has the right roles. Supported roles vary by version, and our local cluster state might have come via an older master, so the roles may differ even if the node is otherwise identical. -
getMasterNodeId
Get the id of the master node- Returns:
- id of the master
-
getLocalNodeId
Get the id of the local node- Returns:
- id of the local node
-
getLocalNode
Get the local node- Returns:
- local node
-
getMasterNode
Returns the master node, ornullif there is no master node -
findByAddress
Get a node by its address- Parameters:
address-TransportAddressof the wanted node- Returns:
- node identified by the given address or
nullif no such node exists
-
getSmallestNonClientNodeVersion
Returns the version of the node with the oldest version in the cluster that is not a client node If there are no non-client nodes, Version.CURRENT will be returned.- Returns:
- the oldest version in the cluster
-
getMinNodeVersion
Returns the version of the node with the oldest version in the cluster.- Returns:
- the oldest version in the cluster
-
getMaxNodeVersion
Returns the version of the node with the youngest version in the cluster- Returns:
- the youngest version in the cluster
-
resolveNode
Resolve a node with a given id- Parameters:
node- id of the node to discover- Returns:
- discovered node matching the given id
- Throws:
IllegalArgumentException- if more than one node matches the request or no nodes have been resolved
-
resolveNodes
Resolves a set of nodes according to the given sequence of node specifications. Implements the logic in various APIs that allow the user to run the action on a subset of the nodes in the cluster. See [Node specification] in the reference manual for full details. Works by tracking the current set of nodes and applying each node specification in sequence. The set starts out empty and each node specification may either add or remove nodes. For instance: - _local, _master and _all respectively add to the subset the local node, the currently-elected master, and all the nodes - node IDs, names, hostnames and IP addresses all add to the subset any nodes which match - a wildcard-based pattern of the form "attr*:value*" adds to the subset all nodes with a matching attribute with a matching value - role:true adds to the subset all nodes with a matching role - role:false removes from the subset all nodes with a matching role. An empty sequence of node specifications returns all nodes, since the corresponding actions run on all nodes by default. -
delta
Returns the changes comparing this nodes to the provided nodes. -
toString
- Overrides:
toStringin classAbstractCollection<DiscoveryNode>
-
writeTo
Description copied from interface:WriteableWrite this into the StreamOutput.- Specified by:
writeToin interfaceWriteable- Throws:
IOException
-
readFrom
- Throws:
IOException
-
readDiffFrom
public static Diff<DiscoveryNodes> readDiffFrom(StreamInput in, DiscoveryNode localNode) throws IOException - Throws:
IOException
-
builder
-
builder
-
addCommaSeparatedNodesWithoutAttributes
public static void addCommaSeparatedNodesWithoutAttributes(Iterator<DiscoveryNode> iterator, StringBuilder stringBuilder)
-