Skip to content

Release Notes

Eric Schreiber edited this page Dec 30, 2021 · 15 revisions

1.2.10 (2021-12-30)

  • Migrate ci builds from Fedora 33 to 35.

  • Remove duplicate dependency.

1.2.9 (2021-10-13)

  • Add endpoint argument to ostatistic snapshot wrapper.

  • Change MGEN wrapper epochtimestamp argument default value to True - do run mgen with epochtimestamp option by default.

  • Add new ETCE reserved overlays "etce_indices" and "etce_TEMPLATENAME_indices" which contain the values of template indices values specified in test.xml. The overlay values are comma separated strings of the indices provided.

    As an example, the test.xml snippet:

      <templates indices="1-4,101-102">
        <directory name="ue" indices="1-4"/>
        <directory name="enb" indices="101-102"/>
        <directory name="epc" indices="1"/>
      </templates>

generates mako template variable/value pairs:

        etce_indices="1,2,3,4,101,102"
        etce_ue_indices="1,2,3,4"
        etce_enb_indices="101,102"
        etce_epc_indices="1"

The indices are added to provide mako loop variables helpful for generating configuration that automatically adapts to changes in number of nodes - as an example here is an OpenTestpoint Broker template configuration file that uses the indices values to create a testpoint connection to all nodes from the example above:

       <otestpoint-broker discovery="0.0.0.0:9001" publish="0.0.0.0:9002">
          <!-- epcs -->
       % for epc in etce_epc_indices.split(','):
          <testpoint discovery="10.76.1.${epc}:8881" publish="10.76.1.${epc}:8882"/>
       % endfor

         <!-- enbs -->
       % for enb in etce_enb_indices.split(','):
         <testpoint discovery="10.76.1.${enb}:8881" publish="10.76.1.${enb}:8882"/>
       % endfor

       <!-- ues -->
       % for ue in etce_ue_indices.split(','):
         <testpoint discovery="10.76.1.${ue}:8881" publish="10.76.1.${ue}:8882"/>
       % endfor
       </otestpoint-broker>
  • Change srsue-emane wrapper pidincrement to 1 to align daemonized PID saved to lockfile with actualy process PID.

  • Add etce-lte-connected-rnti-vs-time script.

  • Add keepgoing option to etce-analyze-session to log errors without quitting during analysis.

  • Various changes for MGEN analysis:

    1. Guard against missing Tx table. Add various exception handling cases to graphing routines, especially for cases where the target DataFrame may not exist.

    2. Handle case of a trial with no completions in etce-mgen-completions-by-flow.

    3. Fix warning of editing a pandas DataFrame slice in the when removing rxflow subscriptions with no corresponding txflow.

    4. Change default flowid format to 3 digits for nodeid and 2 for flowid (0:3:2)

    5. Ignore any flows that a node registers to listen for but are not actually transmitted by any node in the scenario

  • Add debian/source/format and set it to "3.0 (native)".

1.2.8 (2021-04-29)

  • Add etceanalytics and etceanalyzers packages and related scripts. etce-analyze-session operates on a directory of etce test outputs to generate tidy sqlite3 or csv datasets of MGEN, opentestpoint and emane configuration data. New analyzers can be added as dynamically loadable plugins and added to etceanalyzers. Several scripts are added to plot MGEN, opentestpoint system and lte data.

  • Bug fixes

    Only copy template directories that are part of the current test to the merge directory.

    Provide substitute scatterplot implementation for seaborn versions prior to 0.11.

    Remove overlaycsv element from test file schema - unused.

    Fix the full wrapper name determined when loading a wrapper for the case where no package is specified.

    Make user friendly error message for case where the steps.xml file does not validate against the schema.

    Add improved error messages for etce-test list when provided directory is not found.

    Fix bug that causes wrappers to store their module relative name, rather than their fully scoped name, when loaded from a step file with "using" directives. The bug manifests when a wrapper scoped argument is specified in a config file it is not passed to the wrapper because of name mismatch; the config file uses the fully scoped name.

  • Add google cloudbuild configuration to automatically perform package builds for supported distros on develop branch commits.

  • Add epochtimestamp argument to mgen wrapper (default off). epochtimestamp will configure mgen to log Unix epoch timestamps rather than HH:MM:SS.sssssss format which avoids midnight rollover and local vs. UTC time complications.

  • Lint whitespace and docstring improvements.

  • Set etce-test publish logdirectory arg default value to /tmp.

  • Add utils interfacecheck and socketcheck wrappers to generically check for the presence of an network interface or listening socket independent of the application instantiating them.

1.2.6 (2020-11-25)

  • For emanephyinit wrapper - fix antenna profile and fading selection events to be broadcast to all nems.

  • Add protective coding to check for existence of bridge multicast_snooping kernel parameter before trying to set it. Resolves Issue 7.

1.2.5 (October 2020)

  • Change the names of the output files that the openstatistic snapshot wrapper writes to.

  • Migrated deb build support to Python 3 only.

  • In etce-test:

    Reorder etce-test run to call (optional) hookscript before trying to create to test clients. One intention for hookscript is to allow starting and stopping lxc container at the beginning and end of each test.

    Set default delaysecs value to 60 seconds.

    Add configfile existence and validation check before running any tests.

    Add missing "file" print keyword for some stderr messages.

  • Add google cloudbuild yaml and Dockerfile(s).

  • Remove net-tools dependency. Motivated by removal of bridge-utils package from Centos 8.

  • Make user friendly error for instance of etce-test configuration file has incorrect syntax.

  • For python3, fix pruning of unused template directories when publishing a test.

  • Fix timeutils bug that causes a testing failure when a test start to end time bridges datetime day rollover at midnight.

1.2.4 (July 2020)

  • Add user friendly error messages for trying to start and stop LXC container without superuser euid.

  • Add protective code to prevent launching containers for an LXC Plan File with a container element that reference a non-existent container template.

  • Export smcrouted -N option in smcroute wrapper.

  • Allow one template directory to be used multiple times in a test file.

  • Fix platform_dist call.

  • In generating LXC configuration, remove flags=up config item for the loopback device. lxc-execute fails with that in place, first seen on LXC v4.02 on Ubuntu 20.04.

  • Conditionally use distro.linux_distribution as a substitute for platform.dist method which is removed in python 3.8.

  • Add net-tools dependency.

  • Fix shebang replacement for deb builds on ubuntu 20.04.

  • Relax test file schema to allow any order of overlay and overlaylist elements.

1.2.3 (April 2020)

  • Change emanephyinit wrapper to use the same syntax as location events as the emaneeventservice. Location events are always sent to all nodes. This breaks backward compatibility with existing scripts. Add antennaprofile sentences that match emaneeventservice format.

  • Update iperf wrappers. Use -D option to run server as daemon natively. Add -o option to client and server to log report to output file. Rename input files.

  • Add user friendly error message for case when an overlay value is not found when launching containers.

  • When printing exceptions, replace exception.message with str(exception).

  • Fix distro dependent and python version dependent package names in debian rules and rpm spec file.

1.2.2 (October 2019)

  • Add support for Python 3. Package build defaults to Python 3. Use the configure option --with-python2 to build Python 2 packages.

  • Modify package building to build rpm and deb directly without distutils.

  • Add CentOS 8 rpm spec support.

  • Handle ssh connection failure for the case where ~/.ssh/known_hosts file doesn't exist, by quitting and prompting user to create it.

  • Fix LTE UE wrapper PID calculation.

  • Add emane-spectrum-monitor wrapper.

1.2.1

  • Move etce-wrappers-emane into this project as a namespace package etcewrappers. The etce-wrappers-emane project is deprecated and will be removed on the next ETCE release.

  • SSH connection is revised in several ways. ETCE no longer tries to authenticate through a running SSH agent and requires the user to specify an SSH key via (in order of priority) the sshkey command line argument, the ~/.ssh/config file or via the default RSA key name ~/.ssh/id_rsa. ETCE will prompt for the key passphrase if required. ETCE will populate the ~/.ssh/known_hosts file for new hosts when permitted by the user. The etce-check-connection helper script (formerly etce-populate-knownhosts) can be used to verify SSH connectivity and update known_hosts outside of running a test.

  • Replace ETCE_HOSTNAME_FORMAT configuration parameter with TEMPLATE_HOSTNUMBER_DIGITS. Change default naming of test subdirectories generated from a template directory to use the name of the template directory with a numeric suffix field that is TEMPLATE_HOSTNUMBER_DIGITS wide. Retain template directory attribute hostname_format to override default naming.

  • Remove TEMPLATE_DIRECTORY_SUFFIX from example etce.conf file. tpl remains the default template directory suffix.

  • Trigger user-friendly error when a test directory is missing a template directory referenced in/required by the text.xml file.

  • Remove etce-hello and etce-kill scripts, rarely used.

  • Remove forcelxcroot option from etce-lxc. etce-lxc removes the contents of WORK_DIRECTORY/lxcroot when it detects previous configuration there.

  • In LXC Plan File, change bridge persistent attribute from required to optional with default "False". The persistent attribute signals whether the bridge is under ETCE control. The default value covers the usual case - that ETCE creates and destroys the bridge.

  • Add lxc 2 to 3 lxc.console to lxc.console.path conversion.

  • Change sshclient collect method to ignore data collection when the target source node is local and the source and destination file/directory are the same - the transfer is unnecessary.

  • Incorporate fix from pull request 3.

1.1.3

  • Add etce-populate-knownhosts script to assist adding field node keys to ssh known_hosts in a format paramiko clients can parse.

1.1.2

  • Add ParameterConverter class to detect, warn and automatically convert LXC parameters from their LXC version 2 to version 3 names.

  • Add an optional attribute "type" to test file overlay and overlaylist argument. type accepts enumerated values string,bool,int or float to explicitly declare the overlay value's type. This fixes cases where the automatic type conversion doesn't work as desired. As an example, a numeric value with leading zeros: 00034, will be converted to an integer 34 internally. For string fields where the leading zeros are required, setting attribute type=string solves the issue.

1.1.1

  • Change the WrapperContext run and daemonize methods to find, print and run the absolute name of the application name requested by the wrapper. The context searches the environment PATH directories and then a list of optional extra_paths provided by the wrapper to find the requested command.

  • Add an etce.conf IGNORE_RUN_WITH_SUDO configuration parameter to ignore wrapper requests to execute commands with sudo. The default setting "yes" sets ETCE to ignore wrapper sudo requests but allows experimentation with creating a non-root user that can execute privileged applications.

  • Remove the initscript element filename attribute in the lxcplanfile.xsd schema. etce-lxc expects a fixed filename and ignored the user specified value.

  • Improve the configure.ac DISTRIB_ environment variable tests to determine distribution dependent package names, especially for Ubuntu 16 and 18.

  • Fix a bug that prevented some field member exceptions from being reported to the user when running a test.

1.0.3

  • Add policy argument to SSHClient to set the policy to follow when a destination host is not present in the local known_hosts file:

    reject: reject the host and quit

    warning: warn that the host is not trusted but proceed

    autoadd: automatically add the host to known_hosts.

    The default policy is reject.

    Add policy command line arguments to scripts that act as an SSH client.

  • Add arguments to etce-kill:

    nosudo: do not preface the kill command with sudo on the remote hosts

    signal: specify the numeric signal to use to kill

  • Change etce-field-exec to create the WORKING_DIRECTORY when it is not present.

  • Fix a bug in the platform kill command that allowed a host to errantly read PID files of another host when its hostname is a prefix of the other hostname.

  • Add a run_with_sudo method to ArgRegistar to facilitate wrappers that need elevated privileges to run their applications. Print wrapper sudo request in etce-wrapper printouts. Remove the decorator attribute from the steps file schema.

  • Add a sudo option to platform kill method so attempts to kill running applications may be done with elevated privileges.

  • Improve error messages for errors that occur with ill-formatted mako templates.

  • Improve error messages for various errors that may occur starting and stopping lxc containers.

  • Add missing files to make dist target.