Class ScriptBasedMapping

All Implemented Interfaces:
Configurable, DNSToSwitchMapping

public final class ScriptBasedMapping extends CachedDNSToSwitchMapping
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 Details

    • MIN_ALLOWABLE_ARGS

      static final int MIN_ALLOWABLE_ARGS
      Minimum number of arguments: 1.
      See Also:
    • DEFAULT_ARG_COUNT

      static final int DEFAULT_ARG_COUNT
      Default number of arguments: 100.
      See Also:
    • SCRIPT_FILENAME_KEY

      static final String SCRIPT_FILENAME_KEY
      Key to the script filename "networkTopologyScriptFileName".
      See Also:
    • SCRIPT_ARG_COUNT_KEY

      static final String SCRIPT_ARG_COUNT_KEY
      Key to the argument count that the script supports "networkTopologyScriptNumberArgs".
      See Also:
    • NO_SCRIPT

      public static final String NO_SCRIPT
      Text used in the toString() 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: Configurable
      Return the configuration used by this object.
      Specified by:
      getConf in interface Configurable
      Overrides:
      getConf in class AbstractDNSToSwitchMapping
      Returns:
      configuration used by this object.
    • toString

      public String toString()
      Overrides:
      toString in class CachedDNSToSwitchMapping
    • 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:
      setConf in interface Configurable
      Overrides:
      setConf in class AbstractDNSToSwitchMapping
      Parameters:
      conf -