Package org.elasticsearch.transport
Class RemoteClusterAware
java.lang.Object
org.elasticsearch.transport.RemoteClusterAware
- Direct Known Subclasses:
RemoteClusterService
public abstract class RemoteClusterAware
extends java.lang.Object
Base class for all services and components that need up-to-date information about the registered remote clusters
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
LOCAL_CLUSTER_GROUP_KEY
static char
REMOTE_CLUSTER_INDEX_SEPARATOR
protected Settings
settings
-
Constructor Summary
Constructors Modifier Constructor Description protected
RemoteClusterAware(Settings settings)
Creates a newRemoteClusterAware
instance -
Method Summary
Modifier and Type Method Description static java.lang.String
buildRemoteIndexName(java.lang.String clusterAlias, java.lang.String indexName)
protected static java.util.Set<java.lang.String>
getEnabledRemoteClusters(Settings settings)
Returns remote clusters that are enabled in these settingsprotected java.util.Map<java.lang.String,java.util.List<java.lang.String>>
groupClusterIndices(java.util.Set<java.lang.String> remoteClusterNames, java.lang.String[] requestIndices, java.util.function.Predicate<java.lang.String> indexExists)
Groups indices per cluster by splitting remote cluster-alias, index-name pairs onREMOTE_CLUSTER_INDEX_SEPARATOR
.void
listenForUpdates(ClusterSettings clusterSettings)
Registers this instance to listen to updates on the cluster settings.protected abstract void
updateRemoteCluster(java.lang.String clusterAlias, Settings settings)
Subclasses must implement this to receive information about updated cluster aliases.
-
Field Details
-
REMOTE_CLUSTER_INDEX_SEPARATOR
public static final char REMOTE_CLUSTER_INDEX_SEPARATOR- See Also:
- Constant Field Values
-
LOCAL_CLUSTER_GROUP_KEY
public static final java.lang.String LOCAL_CLUSTER_GROUP_KEY- See Also:
- Constant Field Values
-
settings
-
-
Constructor Details
-
RemoteClusterAware
Creates a newRemoteClusterAware
instance- Parameters:
settings
- the nodes level settings
-
-
Method Details
-
getEnabledRemoteClusters
Returns remote clusters that are enabled in these settings -
groupClusterIndices
protected java.util.Map<java.lang.String,java.util.List<java.lang.String>> groupClusterIndices(java.util.Set<java.lang.String> remoteClusterNames, java.lang.String[] requestIndices, java.util.function.Predicate<java.lang.String> indexExists)Groups indices per cluster by splitting remote cluster-alias, index-name pairs onREMOTE_CLUSTER_INDEX_SEPARATOR
. All indices per cluster are collected as a list in the returned map keyed by the cluster alias. Local indices are grouped underLOCAL_CLUSTER_GROUP_KEY
. The returned map is mutable.- Parameters:
remoteClusterNames
- the remote cluster namesrequestIndices
- the indices in the search request to filterindexExists
- a predicate that can test if a certain index or alias exists in the local cluster- Returns:
- a map of grouped remote and local indices
-
updateRemoteCluster
Subclasses must implement this to receive information about updated cluster aliases. -
listenForUpdates
Registers this instance to listen to updates on the cluster settings. -
buildRemoteIndexName
public static java.lang.String buildRemoteIndexName(java.lang.String clusterAlias, java.lang.String indexName)
-