Class DiscoveryNodeRole

java.lang.Object
org.opensearch.cluster.node.DiscoveryNodeRole
All Implemented Interfaces:
Comparable<DiscoveryNodeRole>

@PublicApi(since="1.0.0") public abstract class DiscoveryNodeRole extends Object implements Comparable<DiscoveryNodeRole>
Represents a node role.
Opensearch.api:
  • Field Details

    • MASTER_ROLE_DEPRECATION_MESSAGE

      public static final String MASTER_ROLE_DEPRECATION_MESSAGE
      See Also:
    • DATA_ROLE

      public static final DiscoveryNodeRole DATA_ROLE
      Represents the role for a data node.
    • INGEST_ROLE

      public static final DiscoveryNodeRole INGEST_ROLE
      Represents the role for an ingest node.
    • MASTER_ROLE

      @Deprecated public static final DiscoveryNodeRole MASTER_ROLE
      Deprecated.
      As of 2.0, because promoting inclusive language, replaced by CLUSTER_MANAGER_ROLE
      Represents the role for a cluster-manager-eligible node.
    • CLUSTER_MANAGER_ROLE

      public static final DiscoveryNodeRole CLUSTER_MANAGER_ROLE
      Represents the role for a cluster-manager-eligible node.
    • REMOTE_CLUSTER_CLIENT_ROLE

      public static final DiscoveryNodeRole REMOTE_CLUSTER_CLIENT_ROLE
    • SEARCH_ROLE

      public static final DiscoveryNodeRole SEARCH_ROLE
      Represents the role for a search node, which is dedicated to provide search capability.
    • BUILT_IN_ROLES

      public static SortedSet<DiscoveryNodeRole> BUILT_IN_ROLES
      The built-in node roles.
    • REMOTE_CLUSTER_CLIENT_ROLE_VERSION

      public static final org.opensearch.Version REMOTE_CLUSTER_CLIENT_ROLE_VERSION
      The version that REMOTE_CLUSTER_CLIENT_ROLE is introduced. Nodes before this version do not have that role even they can connect to remote clusters.
  • Constructor Details

    • DiscoveryNodeRole

      protected DiscoveryNodeRole(String roleName, String roleNameAbbreviation)
    • DiscoveryNodeRole

      protected DiscoveryNodeRole(String roleName, String roleNameAbbreviation, boolean canContainData)
  • Method Details

    • roleName

      public final String roleName()
      The name of the role.
      Returns:
      the role name
    • roleNameAbbreviation

      public final String roleNameAbbreviation()
      The abbreviation of the name of the role. This is used in the cat nodes API to display an abbreviated version of the name of the role.
      Returns:
      the role name abbreviation
    • canContainData

      public final boolean canContainData()
      Indicates whether a node with this role can contain data.
      Returns:
      true if a node with this role can contain data, otherwise false
    • isKnownRole

      public final boolean isKnownRole()
      Whether this role is known by this node, or is an DiscoveryNodeRole.UnknownRole.
    • isDynamicRole

      public final boolean isDynamicRole()
    • isEnabledByDefault

      public boolean isEnabledByDefault(Settings settings)
    • legacySetting

      public abstract Setting<Boolean> legacySetting()
    • getCompatibilityRole

      public DiscoveryNodeRole getCompatibilityRole(org.opensearch.Version nodeVersion)
      When serializing a DiscoveryNodeRole, the role may not be available to nodes of previous versions, where the role had not yet been added. This method allows overriding the role that should be serialized when communicating to versions prior to the introduction of the discovery node role.
    • validateRole

      public void validateRole(List<DiscoveryNodeRole> roles)
      Validate the role is compatible with the other roles in the list, when assigning the list of roles to a node. An IllegalArgumentException is expected to be thrown, if the role can't coexist with the other roles.
      Parameters:
      roles - a List of DiscoveryNodeRole that a node is going to have
    • equals

      public final boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public final int hashCode()
      Overrides:
      hashCode in class Object
    • compareTo

      public final int compareTo(DiscoveryNodeRole o)
      Specified by:
      compareTo in interface Comparable<DiscoveryNodeRole>
    • toString

      public final String toString()
      Overrides:
      toString in class Object
    • isClusterManager

      @Deprecated public boolean isClusterManager()
      Deprecated.
      As of 2.0, because promoting inclusive language. MASTER_ROLE is deprecated.
      Check if the role is CLUSTER_MANAGER_ROLE or MASTER_ROLE.
      Returns:
      true if the node role isCLUSTER_MANAGER_ROLE or MASTER_ROLE