Stp

Module for working with spanning-tree in EOS

This module provides an API for working with spanning-tree configuration in EOS. This includes both global spanning-tree configuration as well as interface config.

Global Parameters:
mode (string): The spanning-tree operational mode. Accepted values
for this version are ‘mstp’ or ‘none’. This configuration parameter is not defaultable

interfaces (StpInterfaces): The collection of STP enabled interfaces.

Interface Parameters:
name (string): The name of the interface the STP configuration is in
reference to. The interface name is the full interface identifier
portfast (string): The portfast configuration value for the interface.
Accepted values are ‘edge’, ‘network’, or ‘disabled’
bpduguard (boolean): True if the BPDU Guard feature is enabled on the
interface or False if it is disabled
class pyeapi.api.stp.Stp(*args, **kwargs)

Bases: pyeapi.api.abstract.Entity

The Stp class implements global configuration for spanning-tree

The spanning-tree protocol provides both global and interface configuration options. This class is the top-level class that provides access to all spanning-tree configuration options supported.

Example

The below example demonstrates how to use the STP class to work with both global configuration and interface configuration.

>>> import pyeapi.resources.stp
>>> stp = pyeapi.resources.stp.instance(node)
>>> stp.set_mode('mstp')
True
>>> stp.interfaces.set_bpduguard('Ethernet1', True)
True
interfaces

StpInterfaces – An instance for configuration spanning-tree configuration interfaces

instances

StpInstances – An instance object for working with spanning-tree global instances

get()

Returns the spanning-tree configuration as a dict object

The dictionary object represents the entire spanning-tree configuration derived from the nodes running config. This includes both globally configuration attributes as well as interfaces and instances. See the StpInterfaces and StpInstances classes for the key/value pair definitions.

Note

See the individual classes for detailed message structures

Returns:A Python dictionary object of key/value pairs the represent the entire supported spanning-tree configuration:
{
    "mode": [mstp, none],
    "interfaces": {...},
    "instances": {...}
}
instances
interfaces
set_mode(value=None, default=False, disable=False)

Configures the global spanning-tree mode

Note

This configuration parameter is not defaultable

Parameters:
  • value (string) – The value to configure the global spanning-tree mode of operation. Valid values include ‘mstp’, ‘none’
  • default (bool) – Set the global spanning-tree mode to default.
  • disable (bool) – Negate the global spanning-tree mode.
Returns:

True if the configuration operation succeeds otherwise False

Raises:

ValueError if the value is not in the accepted range

class pyeapi.api.stp.StpInstances(node)

Bases: pyeapi.api.abstract.EntityCollection

Provides a configuration resource for spanning-tree instances

This class provides an API for working with spanning-tree instances from the global configuration. Spanning tree instances work with MST configuration

getall()
class pyeapi.api.stp.StpInterfaces(node)

Bases: pyeapi.api.abstract.EntityCollection

Provides a configuration resource for spanning-tree interfaces

This class provides an API for working with spanning-tree interface configurations. It provides access to managing specific interface spanning-tree configuration options. Note that spanning-tree interfaces cannot be created or deleted.

configure_interface(name, cmds)
get(name)

Returns the specified interfaces STP configuration resource

The STP interface resource contains the following

  • name (str): The interface name
  • portfast (bool): The spanning-tree portfast admin state
  • bpduguard (bool): The spanning-tree bpduguard admin state
  • portfast_type (str): The spanning-tree portfast <type> value.
    Valid values include “edge”, “network”, “normal”
Parameters:name (string) – The interface identifier to retrieve the config for. Note: Spanning-tree interfaces are only supported on Ethernet and Port-Channel interfaces
Returns:
A resource dict object that represents the interface
configuration.

None: If the specified interace is not a STP port

Return type:dict
getall()

Returns the collection of STP interfaces

This method will return all of the configured spanning-tree interfaces from the current nodes configuration.

Returns:
A Python dictionary object that represents all configured
spanning-tree interfaces indexed by interface name.
set_bpduguard(name, value=False, default=False, disable=False)

Configures the bpduguard value for the specified interface

Parameters:
  • name (string) – The interface identifier to configure. The name must be the full interface name (eg Ethernet1, not Et1)
  • value (bool) – True if bpduguard is enabled otherwise False
  • default (bool) – Configures the bpduguard parameter to its default value using the EOS CLI default config command
  • disable (bool) – Negates the bpduguard parameter using the EOS CLI no config command
Returns:

True if the command succeeds, otherwise False

Raises:
  • ValueError – Rasied if an invalid interface name is specified
  • TypeError – Raised if the value keyword argument does not evaluate to a valid boolean
set_portfast(name, value=None, default=False, disable=False)

Configures the portfast value for the specified interface

Parameters:
  • name (string) – The interface identifier to configure. The name must be the full interface name (eg Ethernet1, not Et1)
  • value (bool) – True if portfast is enabled otherwise False
  • default (bool) – Configures the portfast parameter to its default value using the EOS CLI default config command
  • disable (bool) – Negates the portfast parameter using the EOS CLI no config command
Returns:

True if the command succeeds, otherwise False

Raises:
  • ValueError – Rasied if an invalid interface name is specified
  • TypeError – Raised if the value keyword argument does not evaluate to a valid boolean
set_portfast_type(name, value='normal')

Configures the portfast value for the specified interface

Parameters:
  • name (string) – The interface identifier to configure. The name must be the full interface name (eg Ethernet1, not Et1).
  • value (string) – The value to configure the portfast setting to. Valid values include “edge”, “network”, “normal”. The default value is “normal”
Returns:

True if the command succeeds, otherwise False

Raises:

ValueError – Raised if an invalid interface name or value is specified

pyeapi.api.stp.instance(api)
pyeapi.api.stp.isvalidinterface(value)

Checks value to see if it could be a spanning-tree interface

This function will check the value and return a boolean whether or not the interface could be a spanning-tree interface

Note

This function only checks if the interface could be a spanning-tree
interface but does not check if it is configured as a spanning-tree interface
Parameters:value (string) – The interface name to validate
Returns:True if it could be a spanning-tree interface, otherwise False