Class DiscoveryNodes

java.lang.Object
org.elasticsearch.cluster.AbstractDiffable<DiscoveryNodes>
org.elasticsearch.cluster.node.DiscoveryNodes
All Implemented Interfaces:
java.lang.Iterable<DiscoveryNode>, Diffable<DiscoveryNodes>, Writeable

public class DiscoveryNodes
extends AbstractDiffable<DiscoveryNodes>
implements java.lang.Iterable<DiscoveryNode>
This class holds all DiscoveryNode in the cluster and provides convenience methods to access, modify merge / diff discovery nodes.
  • Field Details

  • Method Details

    • iterator

      public java.util.Iterator<DiscoveryNode> iterator()
      Specified by:
      iterator in interface java.lang.Iterable<DiscoveryNode>
    • isLocalNodeElectedMaster

      public boolean isLocalNodeElectedMaster()
      Returns true if the local node is the elected master node.
    • getSize

      public int getSize()
      Get the number of known nodes
      Returns:
      number of nodes
    • getNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getNodes()
      Get a Map of the discovered nodes arranged by their ids
      Returns:
      Map of the discovered nodes arranged by their ids
    • getDataNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getDataNodes()
      Get a Map of the discovered data nodes arranged by their ids
      Returns:
      Map of the discovered data nodes arranged by their ids
    • getMasterNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getMasterNodes()
      Get a Map of the discovered master nodes arranged by their ids
      Returns:
      Map of the discovered master nodes arranged by their ids
    • getIngestNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getIngestNodes()
      Returns:
      All the ingest nodes arranged by their ids
    • getMasterAndDataNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getMasterAndDataNodes()
      Get a Map of the discovered master and data nodes arranged by their ids
      Returns:
      Map of the discovered master and data nodes arranged by their ids
    • getCoordinatingOnlyNodes

      public ImmutableOpenMap<java.lang.String,​DiscoveryNode> getCoordinatingOnlyNodes()
      Get a Map of the coordinating only nodes (nodes which are neither master, nor data, nor ingest nodes) arranged by their ids
      Returns:
      Map of the coordinating only nodes arranged by their ids
    • mastersFirstStream

      public java.util.stream.Stream<DiscoveryNode> mastersFirstStream()
      Returns a stream of all nodes, with master nodes at the front
    • get

      public DiscoveryNode get​(java.lang.String nodeId)
      Get a node by its id
      Parameters:
      nodeId - id of the wanted node
      Returns:
      wanted node if it exists. Otherwise null
    • nodeExists

      public boolean nodeExists​(java.lang.String nodeId)
      Determine if a given node id exists
      Parameters:
      nodeId - id of the node which existence should be verified
      Returns:
      true if the node exists. Otherwise false
    • nodeExists

      public boolean nodeExists​(DiscoveryNode node)
      Determine if a given node exists
      Parameters:
      node - of the node which existence should be verified
      Returns:
      true if the node exists. Otherwise false
    • getMasterNodeId

      public java.lang.String getMasterNodeId()
      Get the id of the master node
      Returns:
      id of the master
    • getLocalNodeId

      public java.lang.String getLocalNodeId()
      Get the id of the local node
      Returns:
      id of the local node
    • getLocalNode

      public DiscoveryNode getLocalNode()
      Get the local node
      Returns:
      local node
    • getMasterNode

      @Nullable public DiscoveryNode getMasterNode()
      Returns the master node, or null if there is no master node
    • findByAddress

      public DiscoveryNode findByAddress​(TransportAddress address)
      Get a node by its address
      Parameters:
      address - TransportAddress of the wanted node
      Returns:
      node identified by the given address or null if no such node exists
    • getSmallestNonClientNodeVersion

      public Version 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
    • getLargestNonClientNodeVersion

      public Version getLargestNonClientNodeVersion()
      Returns the version of the node with the youngest version in the cluster that is not a client node. If there are no non-client nodes, Version.CURRENT will be returned.
      Returns:
      the youngest version in the cluster
    • getMinNodeVersion

      public Version getMinNodeVersion()
      Returns the version of the node with the oldest version in the cluster.
      Returns:
      the oldest version in the cluster
    • getMaxNodeVersion

      public Version getMaxNodeVersion()
      Returns the version of the node with the youngest version in the cluster
      Returns:
      the youngest version in the cluster
    • resolveNode

      public DiscoveryNode resolveNode​(java.lang.String node)
      Resolve a node with a given id
      Parameters:
      node - id of the node to discover
      Returns:
      discovered node matching the given id
      Throws:
      java.lang.IllegalArgumentException - if more than one node matches the request or no nodes have been resolved
    • resolveNodes

      public java.lang.String[] resolveNodes​(java.lang.String... nodes)
      resolves a set of node "descriptions" to concrete and existing node ids. "descriptions" can be (resolved in this order): - "_local" or "_master" for the relevant nodes - a node id - a wild card pattern that will be matched against node names - a "attr:value" pattern, where attr can be a node role (master, data, ingest etc.) in which case the value can be true or false, or a generic node attribute name in which case value will be treated as a wildcard and matched against the node attribute values.
    • newNode

      public DiscoveryNodes newNode​(DiscoveryNode node)
    • delta

      public DiscoveryNodes.Delta delta​(DiscoveryNodes other)
      Returns the changes comparing this nodes to the provided nodes.
    • toString

      public java.lang.String toString()
      Overrides:
      toString in class java.lang.Object
    • writeTo

      public void writeTo​(StreamOutput out) throws java.io.IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Throws:
      java.io.IOException
    • readFrom

      public static DiscoveryNodes readFrom​(StreamInput in, DiscoveryNode localNode) throws java.io.IOException
      Throws:
      java.io.IOException
    • readDiffFrom

      public static Diff<DiscoveryNodes> readDiffFrom​(StreamInput in, DiscoveryNode localNode) throws java.io.IOException
      Throws:
      java.io.IOException
    • builder

      public static DiscoveryNodes.Builder builder()
    • builder

      public static DiscoveryNodes.Builder builder​(DiscoveryNodes nodes)