Supported Platforms and PowerCyclers

Note

pyATS Clean is designed modular to enable community-based contribution model. It is expected user communities will contribute to the pyATS clean stage/steps for support specifics of their given OS/Platform/Powercycler or to close the gap on an any features.

Refer to the Developer Guide documentation to get started in your development.

Supported OS/Platforms

The following table specifies the current set of OS and Platform types supported by pyATS Clean.

Product

os

platform

ASR 1000

iosxe

ASR 1000v

iosxe

ISR

iosxe

Catalyst 9000

iosxe

cat9k

Catalyst 8000v

iosxe

c8kv

Nexus 7000

nxos

n7k

Nexus 9000

nxos

n9k

Nexus 9000v

nxos

n9k

Nexus 9000 (aci mode)

nxos

aci

NCS 5500

iosxr

ASR 9000 x64

iosxr

ASR 9000 px

iosxr

APIC

apic

Catalyst WS-C3560CX

ios

cat3k

To use this table, locate the Product that corresponds with your device and fill the os and platform keys into your Testbed YAML.

For example, if the device was a Catalyst 9000, then the Testbed YAML should be as follows:

1
2
3
4
5
6
7
devices:
  catalyst-9000:
    os: iosxe
    platform: cat9k
    custom:
      abstraction:
        order: [os, platform]

Supported Power Cyclers

Power cyclers connection to devices are important to auto-recover the device by force reset/power off/on the devices when they have lost connectivity. pyATS Clean provides a feature for recovering devices in the testbed if they are in a hung state. Recovery is invoked if connecting to the device fails, or if an exception is thrown while the device is being upgraded.

As a brief overview, recovery includes the following steps:

  • Connect to Power Cycler and perform power cycle.

  • Connect to device and break the boot sequence, in order to bring the device to loader/rommon prompt.

  • Boots the devices with ‘golden_image’ provided as part of clean file.

  • Pass control back to pyATS Clean.

The following table specifies the current set of PowerCycler types supported by pyATS Clean.

PowerCycler

Arguments

raritan-px

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        type: raritan-px
        connection_type: snmp
        host (str): Ip address for Powercycler.
        outlets (list): Power ports associated with your device.
        read_community (str, optional): 'private' or 'public'.
            Defaults to 'public'.
        write_community (str, optional): 'private' or 'public'.
            Defaults to 'private'.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: raritan-px
          connection_type: snmp
          host: 127.0.0.1
          outlets: [20]

raritan-px2

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: raritan-px2
          connection_type: snmp
          host (str): Ip address for Powercycler.
          outlets (list): Power ports associated with your device.
          read_community (str, optional): 'private' or 'public'.
              Defaults to 'public'.
          write_community (str, optional): 'private' or 'public'.
              Defaults to 'private'.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: raritan-px2
          connection_type: snmp
          host: 127.0.0.1
          outlets: [20]

apc

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: apc
          connection_type: snmp
          host (str): Ip address for Powercycler.
          outlets (list): Power ports associated with your device.
          read_community (str, optional): 'private' or 'public'.
              Defaults to 'public'.
          write_community (str, optional): 'private' or 'public'.
              Defaults to 'private'.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: apc
          connection_type: snmp
          host: 127.0.0.1
          outlets: [20]

apc-rpdu

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: apc-rpdu
          connection_type: snmp
          host (str): Ip address for Powercycler.
          outlets (list): Power ports associated with your device.
          read_community (str, optional): 'private' or 'public'.
              Defaults to 'public'.
          write_community (str, optional): 'private' or 'public'.
              Defaults to 'private'.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: apc-rpdu
          connection_type: snmp
          host: 127.0.0.1
          outlets: [20]

dualcomm

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: dualcomm
          connection_type: snmp
          host (str): Ip address for Powercycler.
          outlets (list): Power ports associated with your device.
          read_community (str, optional): 'private' or 'public'.
              Defaults to 'public'.
          write_community (str, optional): 'private' or 'public'.
              Defaults to 'private'.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: dualcomm
          connection_type: snmp
          host: 127.0.0.1
          outlets: [20]

cyberswitching

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: cyberswitching
          connection_type: telnet
          host (str): Cyberswitching device from Testbed YAML.
          outlets (list): Lines associated with your device.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: cyberswitching
          connection_type: telnet
          host: my-cyberswitching
          outlets: [20]

  my-cyberswitching:
    # Fill out the rest of this device as normal
    # such as connection info, credentials, etc

ESXi

Testbed Schema
--------------
devices:
  <device>:
    peripherals:
      power_cycler:
        - type: esxi
          connection_type: ssh
          host (str): ESXi device from Testbed YAML.
          outlets (list): VM IDs associated with your device.

Testbed Example
---------------
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: esxi
          connection_type: ssh
          host: my-esxi
          outlets: [20]

  my-esxi:
    # Fill out the rest of this device as normal
    # such as connection info, credentials, etc

To use this table, locate the PowerCycler that corresponds with yours and fill the arguments into your Testbed YAML under the device peripherals key.

For example, if the PowerCycler was a dualcomm connected to PE1, then the Testbed YAML should be modified as follows:

1
2
3
4
5
6
7
8
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: dualcomm
          connect_type: snmp
          host: 127.0.0.1
          outlets: [22]

You could have more than one PowerCyclers connected to your device. For example, if you have two PowerCycler with dualcomm type connected to PE1, then the Testbed Yaml looks like this:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
devices:
  PE1:
    peripherals:
      power_cycler:
        - type: dualcomm
          connect_type: snmp
          host: 127.0.0.1
          outlets: [22]
        - type: dualcomm
          connect_type: snmp
          host: 127.0.0.2
          outlets: [20]

See Device Recovery for additional information.