-
Notifications
You must be signed in to change notification settings - Fork 3
Home
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 automate and organize the mechanics of emulation:
- Controlling applications across distributed hosts Generating
- emulation definitions correctly, concisely and in a uniform format
- Collecting and organizing 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.