ScriptBasedMapping (Apache Hadoop Main 3.5.0 API)
Description: declaration: package: org.apache.hadoop.net, class: ScriptBasedMapping

Package org.apache.hadoop.net

# Class ScriptBasedMapping

java.lang.Object
org.apache.hadoop.net.AbstractDNSToSwitchMapping
org.apache.hadoop.net.CachedDNSToSwitchMapping
org.apache.hadoop.net.ScriptBasedMapping

All Implemented Interfaces:
  `Configurable`, `DNSToSwitchMapping`

@Public @Evolving public class ScriptBasedMapping extends CachedDNSToSwitchMapping
This class implements the `DNSToSwitchMapping` interface using a script configured via the `CommonConfigurationKeysPublic.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.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected static class`
  `org.apache.hadoop.net.ScriptBasedMapping.RawScriptBasedMapping`
  This is the uncached script mapping that is fed into the cache managed by the superclass `CachedDNSToSwitchMapping`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `NO_SCRIPT`
  Text used in the `toString()` method if there is no string "no script"

  ### Fields inherited from class org.apache.hadoop.net.CachedDNSToSwitchMapping

  `rawMapping`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScriptBasedMapping()`
  Create an instance with the default configuration.
  `ScriptBasedMapping(Configuration conf)`
  Create an instance from the given configuration
  `ScriptBasedMapping(DNSToSwitchMapping rawMap)`
  Create an instance from the given raw mapping

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Configuration`
  `getConf()`
  Return the configuration used by this object.
  `void`
  `setConf(Configuration conf)`
  Set the configuration to be used by this object.
  `String`
  `toString()`

  ### Methods inherited from class org.apache.hadoop.net.CachedDNSToSwitchMapping

  `getSwitchMap, isSingleSwitch, reloadCachedMappings, reloadCachedMappings, resolve`

  ### Methods inherited from class org.apache.hadoop.net.AbstractDNSToSwitchMapping

  `dumpTopology, isMappingSingleSwitch, isSingleSwitchByScriptPolicy`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Field Details

  - ### NO_SCRIPT

    public static final String NO_SCRIPT
    Text used in the `toString()` method if there is no string "no script"
    See Also:
      - Constant Field Values

- ## 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(DNSToSwitchMapping rawMap)
    Create an instance from the given raw mapping
    Parameters:
      `rawMap` - raw DNSTOSwithMapping

  - ### ScriptBasedMapping

    public ScriptBasedMapping(Configuration conf)
    Create an instance from the given configuration
    Parameters:
      `conf` - configuration

- ## Method Details

  - ### getConf

    public Configuration getConf()
    Description copied from interface: `Configurable`
    Return the configuration used by this object.
    Specified by:
      `getConf` in interface `Configurable`
    Overrides:
      `getConf` in class `AbstractDNSToSwitchMapping`
    Returns:
      Configuration

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `CachedDNSToSwitchMapping`

  - ### setConf

    public void setConf(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:
      `setConf` in interface `Configurable`
    Overrides:
      `setConf` in class `AbstractDNSToSwitchMapping`
    Parameters:
      `conf` - input Configuration.