Package org.apache.bookkeeper.net
Class ScriptBasedMapping
java.lang.Object
org.apache.bookkeeper.net.AbstractDNSToSwitchMapping
org.apache.bookkeeper.net.CachedDNSToSwitchMapping
org.apache.bookkeeper.net.ScriptBasedMapping
- All Implemented Interfaces:
Configurable,DNSToSwitchMapping
This class implements the
DNSToSwitchMapping interface using a
script configured via the
CommonConfigurationKeys.NET_TOPOLOGY_SCRIPT_FILE_NAME_KEY option.
It contains a static class RawScriptBasedMapping that performs
the work: reading the configuration parameters, executing any defined
script, handling errors and such like. The outer
class extends CachedDNSToSwitchMapping to cache the delegated
queries.
This DNS mapper's CachedDNSToSwitchMapping.isSingleSwitch() predicate returns
true if and only if a script is defined.-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final intDefault number of arguments: 100.(package private) static final intMinimum number of arguments: 1.static final StringText used in thetoString()method if there is no string "no script".(package private) static final StringKey to the argument count that the script supports "networkTopologyScriptNumberArgs".(package private) static final StringKey to the script filename "networkTopologyScriptFileName".Fields inherited from class org.apache.bookkeeper.net.CachedDNSToSwitchMapping
rawMapping -
Constructor Summary
ConstructorsConstructorDescriptionCreate an instance with the default configuration.ScriptBasedMapping(org.apache.commons.configuration2.Configuration conf) Create an instance from the given configuration. -
Method Summary
Methods inherited from class org.apache.bookkeeper.net.CachedDNSToSwitchMapping
getSwitchMap, isSingleSwitch, reloadCachedMappings, resolve, useHostNameMethods inherited from class org.apache.bookkeeper.net.AbstractDNSToSwitchMapping
dumpTopology, getBookieAddressResolver, isMappingSingleSwitch, isSingleSwitchByScriptPolicy, setBookieAddressResolver, validateConf
-
Field Details
-
MIN_ALLOWABLE_ARGS
static final int MIN_ALLOWABLE_ARGSMinimum number of arguments: 1.- See Also:
-
DEFAULT_ARG_COUNT
static final int DEFAULT_ARG_COUNTDefault number of arguments: 100.- See Also:
-
SCRIPT_FILENAME_KEY
Key to the script filename "networkTopologyScriptFileName".- See Also:
-
SCRIPT_ARG_COUNT_KEY
Key to the argument count that the script supports "networkTopologyScriptNumberArgs".- See Also:
-
NO_SCRIPT
Text used in thetoString()method if there is no string "no script".- See Also:
-
-
Constructor Details
-
ScriptBasedMapping
public ScriptBasedMapping()Create an instance with the default configuration.Calling
setConf(Configuration)will trigger a re-evaluation of the configuration settings and so be used to set up the mapping script. -
ScriptBasedMapping
public ScriptBasedMapping(org.apache.commons.configuration2.Configuration conf) Create an instance from the given configuration.- Parameters:
conf- configuration
-
-
Method Details
-
getConf
public org.apache.commons.configuration2.Configuration getConf()Description copied from interface:ConfigurableReturn the configuration used by this object.- Specified by:
getConfin interfaceConfigurable- Overrides:
getConfin classAbstractDNSToSwitchMapping- Returns:
- configuration used by this object.
-
toString
- Overrides:
toStringin classCachedDNSToSwitchMapping
-
setConf
public void setConf(org.apache.commons.configuration2.Configuration conf) Set the configuration to be used by this object.This will get called in the superclass constructor, so a check is needed to ensure that the raw mapping is defined before trying to relaying a null configuration.
- Specified by:
setConfin interfaceConfigurable- Overrides:
setConfin classAbstractDNSToSwitchMapping- Parameters:
conf-
-