Glossary

This glossary defines the terminology that we use to describe pyATS and the pyATS Library.

Abstraction

The term abstraction refers to the separation of network control from the actual, physical network infrastructure (devices). This enables you to use pyATS and the pyATS Library across different platforms, operating systems, and hardware.

Arguments

Arguments are simply input parameters.

Conf

The pyATS Library Conf module provides a way for you to configure a network device without having to build the configuration yourself. Instead, you can generate reusable, multi-line configuration strings and apply them to one or more devices all at once.

Devices

Devices are network components such as routers, switches, servers, traffic generators, and other hardware products.

Diff

The pyATS Library Diff functionality enables you to compare “snapshots” of your network so that you can easily see any changes. For any two Python dictionaries or objects with a consistent data structure (the set of key-value pairs), the system compares the keys and identifies differences. You can exclude keys that you don’t want to compare.

Feature

The term feature typically refers to a network protocol, represented by the pyATS Library as a Python object, with attributes that represent the feature (protocol) configuration on a device. Many networks use a combination of different features, such as BGP, OSPF, and Interface.

Harness

The pyATS Library Harness module controls the flow of your network automation and testing, based on user-provided Arguments (input). For example, you can input the sequence of setup, triggers, verifications, and tear-down (cleanup) that you want to execute.

Key-value pair

A key-value pair is a set of linked data, where the key is an identifier and the value is the actual information. For example, Device name: nx-osv-1 has the key Device name and the value nx-osv-1.

Library command line

The pyATS Library command line interface (CLI) is a powerful, Linux-based command-line utility that gives you pyATS Library Python functionality directly from a Linux terminal (or emulator). The CLI is easy to use, even if you don’t know anything about Python or programming.

Mock devices

The term mock device refers to a set of recorded device interactions that you can replay any time you want to practice with or demo the pyATS ecosystem.

Object

The term object refers to an entity that the pyATS ecosystem can access and act on. You can think of an object as a “container” of information, with actual values.

Ops

The pyATS Library Ops module provides a representation of the current operational state of a device, per feature (protocol). It “learns” the operational state by executing a series of commands and parsing the output into a common data structure across different operating systems.

Parser

A parser converts device output into a Python dictionary, which stores the device data as a set of key-value pairs. This process harmonizes the data structure for different types of communication interfaces, including CLI, REST, NETCONF, and others.

The pyATS Library parsers create standardized output for commands, which means that you can write and run reusable automation scripts. In the pyATS ecosystem, parsers are typically written using the genie.metaparser module.

Platform

The name of the hardware or chassis, or the name of the virtual hardware. The system uses the os and platform values to determine the pyATS Library functionality to load and the correct connection plugin and services to use.

pyATS packages

The pyATS ecosystem is available externally through Cisco DevNet. We release slightly different packages for internal and external users to ensure that the packages work correctly in different environments. Differences include:

  • Package format - where the code is not open source

  • Package names - ats internally, pyats externally

  • Source location for installation files

  • Architecture 64-bit (32-bit available internally only)

  • Defaults - no Cisco-specific defaults for external release

Robot Framework

Robot Framework is a generic Python test automation framework that focuses on acceptance test automation using English-like, easy-to-use keywords to define test cases.

SDK library functions/API

A pyATS Library function is a series of actions or retrieval commands executed on a device, such as an interface shutdown. The functions provide clear exception messages if an action fails.

Show command

The term show command refers to a type of Cisco IOS command that you use to retrieve device information. For example, show version returns information about the OS version of a device.

Software-defined network

A software-defined network (SDN) decouples network control from network forwarding, which makes the control functions programmable and the network itself more dynamic and scalable. The pyATS ecosystem helps you test, maintain, and diagnose the operational state of your agile SDN network.

pyATS provides a framework that standardizes how to programmatically interact with devices (routers, switches, servers, traffic generators, and other hardware products). The ecosystem provides the mechanisms you need to parse, model, configure, and test your SDN, and includes a set of ready-to-use test automation libraries built by the same engineering teams that built your Cisco products.

Stateful validation

Configuration changes often result in a series of operational state changes. For example, you might see changes to the following items:

  • Interface status

  • Routing

  • Neighbors

With just a few commands or an automated script, you can use the pyATS Library to profile your system before and after a configuration change to see a detailed list of the changes.

Test automation

The term test automation refers to how you use the pyATS Library to combine any number of test scripts and run them at scheduled intervals, under different test conditions. The pyATS Library gives you the flexibility to scale coverage, configuration, and runtime based on your testing requirements.

Testbed

In the pyATS ecosystem, a testbed represents a set of devices. You run your automated network tests on the testbed that you define.

Testbed YAML file

With pyATS and the pyATS Library, you describe your devices under test (your testbed) in a YAML file named testbed.yaml. The file describes your physical devices and how they link together to form the testbed network topology.

Trigger

A trigger is an action or sequence of actions performed on a device, which changes the device state or configuration.

Unicon

Unicon is a framework for developing device control libraries for routers, switches and servers. It is developed purely in Python, with no dependency on Tcl-based infrastructure. Unicon is also test framework agnostic and can be used with pyATS. We use Unicon.playback to create Mock devices.

Verification

A verification is the execution of a show command to retrieve the current state of one or more devices. A verification typically runs before and after an action (trigger) to compare the previous and current device states.