Skip to content
Eric Schreiber edited this page Apr 8, 2018 · 30 revisions

Welcome to the python-etce wiki!

ETCE is the Extendable Test Control Environment, a Pure Python framework for efficiently writing and running EMANE emulations. ETCE was initially developed as Adjacent Link's internal tool for performing EMANE regression tests. It's goal is to standardize and automate emulation workflow:

  • Establish a concise and uniform format for defining emulations
  • Control emulation applications across distributed hosts
  • Provide a clear method for bringing new applications under automated control
  • Collect and organize test outputs

Some key terms:

  • ETCE operates from a Control Node to orchestrate application set up and tear down on a set of worker nodes. The set of worker nodes is referred to as an ETCE Field. The ETCE Control Node communicates with Field members via SSH using the Paramiko library. Field members may be any physical or virtual host reachable from the Control Node via public key authentication.

  • Applications are made available to ETCE control through ETCE Wrappers. An ETCE Wrapper is a dynamically loadable Python module that inherits from the common Wrapper base class and encapsulates the specifics of starting and stopping an application. Adjacent Link maintains a repository of publicly available wrappers. Users are encouraged to write their own wrappers to extend ETCE.

  • Emulations are organized into a set of ETCE Test Directories. An ETCE Test Directory is marked by the presence of the required test.xml file that names and describes the test. The Test Directory organizes application configuration into subdirectories named by target host. To minimize configuration effort, a test directory may inherit from a common base directory and/or generate configuration files from templates. ETCE uses the Mako library for templating.

Clone this wiki locally