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.StringLOCAL_CLUSTER_GROUP_KEYstatic charREMOTE_CLUSTER_INDEX_SEPARATORprotected Settingssettings -
Constructor Summary
Constructors Modifier Constructor Description protectedRemoteClusterAware(Settings settings)Creates a newRemoteClusterAwareinstance -
Method Summary
Modifier and Type Method Description static java.lang.StringbuildRemoteIndexName(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.voidlistenForUpdates(ClusterSettings clusterSettings)Registers this instance to listen to updates on the cluster settings.protected abstract voidupdateRemoteCluster(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 newRemoteClusterAwareinstance- 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)
-