Class ZkClientClusterStateProvider
- java.lang.Object
-
- org.apache.solr.client.solrj.impl.ZkClientClusterStateProvider
-
- All Implemented Interfaces:
Closeable,AutoCloseable,ClusterStateProvider,SolrCloseable
public class ZkClientClusterStateProvider extends Object implements ClusterStateProvider
-
-
Constructor Summary
Constructors Constructor Description ZkClientClusterStateProvider(String zkHost)ZkClientClusterStateProvider(Collection<String> zkHosts, String chroot)ZkClientClusterStateProvider(ZkStateReader zkStateReader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidconnect()voiddownloadConfig(String configName, Path downloadPath)Download a named config from Zookeeper to a location on the filesystemMap<String,String>getAliasProperties(String alias)Return alias properties, or an empty map if the alias has no properties.Map<String,Object>getClusterProperties()Obtain cluster properties.ObjectgetClusterProperty(String propertyName)Obtain a cluster property, or null if it doesn't exist.<T> TgetClusterProperty(String propertyName, T def)Obtain a cluster property, or the default value if it doesn't exist.ClusterStategetClusterState()Obtain the current cluster state.Set<String>getLiveNodes()Obtain set of live_nodes for the cluster.StringgetPolicyNameByCollection(String coll)Get the collection-specific policyClusterState.CollectionRefgetState(String collection)Obtain the state of the collection (cluster status).ZkStateReadergetZkStateReader()booleanisClosed()List<String>resolveAlias(String alias)Given a collection alias, returns a list of collections it points to, or returns a singleton list of the input if it's not an alias.StringresolveSimpleAlias(String alias)Given a collection alias, return a single collection it points to, or the original name if it's not an alias.StringtoString()voiduploadConfig(Path configPath, String configName)Upload a set of config files to Zookeeper and give it a name NOTE: You should only allow trusted users to upload configs.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.solr.client.solrj.impl.ClusterStateProvider
getCollection, isRoutedAlias
-
-
-
-
Constructor Detail
-
ZkClientClusterStateProvider
public ZkClientClusterStateProvider(ZkStateReader zkStateReader)
-
ZkClientClusterStateProvider
public ZkClientClusterStateProvider(Collection<String> zkHosts, String chroot)
-
ZkClientClusterStateProvider
public ZkClientClusterStateProvider(String zkHost)
-
-
Method Detail
-
getState
public ClusterState.CollectionRef getState(String collection)
Description copied from interface:ClusterStateProviderObtain the state of the collection (cluster status).- Specified by:
getStatein interfaceClusterStateProvider- Returns:
- the collection state, or null is collection doesn't exist
-
getLiveNodes
public Set<String> getLiveNodes()
Description copied from interface:ClusterStateProviderObtain set of live_nodes for the cluster.- Specified by:
getLiveNodesin interfaceClusterStateProvider
-
resolveAlias
public List<String> resolveAlias(String alias)
Description copied from interface:ClusterStateProviderGiven a collection alias, returns a list of collections it points to, or returns a singleton list of the input if it's not an alias.- Specified by:
resolveAliasin interfaceClusterStateProvider
-
getAliasProperties
public Map<String,String> getAliasProperties(String alias)
Description copied from interface:ClusterStateProviderReturn alias properties, or an empty map if the alias has no properties.- Specified by:
getAliasPropertiesin interfaceClusterStateProvider
-
resolveSimpleAlias
public String resolveSimpleAlias(String alias) throws IllegalArgumentException
Description copied from interface:ClusterStateProviderGiven a collection alias, return a single collection it points to, or the original name if it's not an alias.- Specified by:
resolveSimpleAliasin interfaceClusterStateProvider- Throws:
IllegalArgumentException- if an alias points to more than 1 collection, either directly or indirectly.
-
getClusterProperty
public Object getClusterProperty(String propertyName)
Description copied from interface:ClusterStateProviderObtain a cluster property, or null if it doesn't exist.- Specified by:
getClusterPropertyin interfaceClusterStateProvider
-
getClusterProperty
public <T> T getClusterProperty(String propertyName, T def)
Description copied from interface:ClusterStateProviderObtain a cluster property, or the default value if it doesn't exist.- Specified by:
getClusterPropertyin interfaceClusterStateProvider
-
getClusterState
public ClusterState getClusterState() throws IOException
Description copied from interface:ClusterStateProviderObtain the current cluster state.- Specified by:
getClusterStatein interfaceClusterStateProvider- Throws:
IOException
-
getClusterProperties
public Map<String,Object> getClusterProperties()
Description copied from interface:ClusterStateProviderObtain cluster properties.- Specified by:
getClusterPropertiesin interfaceClusterStateProvider- Returns:
- configured cluster properties, or an empty map, never null.
-
getPolicyNameByCollection
public String getPolicyNameByCollection(String coll)
Description copied from interface:ClusterStateProviderGet the collection-specific policy- Specified by:
getPolicyNameByCollectionin interfaceClusterStateProvider
-
downloadConfig
public void downloadConfig(String configName, Path downloadPath) throws IOException
Download a named config from Zookeeper to a location on the filesystem- Parameters:
configName- the name of the configdownloadPath- the path to write config files to- Throws:
IOException- if an I/O exception occurs
-
uploadConfig
public void uploadConfig(Path configPath, String configName) throws IOException
Upload a set of config files to Zookeeper and give it a name NOTE: You should only allow trusted users to upload configs. If you are allowing client access to zookeeper, you should protect the /configs node against unauthorised write access.- Parameters:
configPath-Pathto the config filesconfigName- the name of the config- Throws:
IOException- if an IO error occurs
-
connect
public void connect()
- Specified by:
connectin interfaceClusterStateProvider
-
getZkStateReader
public ZkStateReader getZkStateReader()
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
isClosed
public boolean isClosed()
- Specified by:
isClosedin interfaceSolrCloseable
-
-