# Switchports

Module for working with logical layer 2 switchports in EOS

This module provides an API for working with logical layer 2 interfaces (switchports) in EOS. Switchports are interfaces built on top of physical Ethernet and bundled Port-Channel interfaces.

class pyeapi.api.switchports.Switchports(node)

  Bases: `EntityCollection`

  The Switchports class provides a configuration resource for swichports

  Logical layer 2 interfaces built on top of physical Ethernet and bundled Port-Channel interfaces can be configured and managed with an instance of Switchports. The Switchports class is a resource collection and supports get and getall methods. The Switchports class is derived from the BaseResource class

  add_trunk_group(intf, value)

    Adds the specified trunk group to the interface

    Parameters:

      - intf (str) – The interface name to apply the trunk group to

      - value (str) – The trunk group value to apply to the interface

    Returns:

      True if the operation as successfully applied otherwise false

  create(name)

    Creates a new logical layer 2 interface

    This method will create a new switchport for the interface specified in the arguments (name). If the logical switchport already exists then this command will have no effect

    Parameters:

      name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

    Returns:

      True if the create operation succeeds otherwise False. If the

        interface specified in args is already a switchport then this method will have no effect but will still return True

  default(name)

    Defaults the configuration of the switchport interface

    This method will default the configuration state of the logical layer 2 interface.

    Parameters:

      name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

    Returns:

      True if the create operation succeeds otherwise False. If the

        interface specified in args is already a switchport then this method will have no effect but will still return True

  delete(name)

    Deletes the logical layer 2 interface

    This method will delete the logical switchport for the interface specified in the arguments. If the interface doe not have a logical layer 2 interface defined, then this method will have no effect.

    Parameters:

      name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

    Returns:

      True if the create operation succeeds otherwise False. If the

        interface specified in args is already a switchport then this method will have no effect but will still return True

  get(name)

    Returns a dictionary object that represents a switchport

    The Switchport resource returns the following:

    > - name (str): The name of the interface

    > - mode (str): The switchport mode value

    > - access_vlan (str): The switchport access vlan value

    > - trunk_native_vlan (str): The switchport trunk native vlan vlaue

    > - trunk_allowed_vlans (str): The trunk allowed vlans value

    > - trunk_groups (list): The list of trunk groups configured

    Parameters:

      name (string) – The interface identifier to get. Note: Switchports are only supported on Ethernet and Port-Channel interfaces

    Returns:

      A Python dictionary object of key/value pairs that represent

        the switchport configuration for the interface specified If the specified argument is not a switchport then None is returned

    Return type:

      dict

  getall()

    Returns a dict object to all Switchports

    This method will return all of the configured switchports as a dictionary object keyed by the interface identifier.

    Returns:

      A Python dictionary object that represents all configured

        switchports in the current running configuration

  remove_trunk_group(intf, value)

    Removes a specified trunk group to the interface

    Parameters:

      - intf (str) – The interface name to remove the trunk group from

      - value (str) – The trunk group value

    Returns:

      True if the operation as successfully applied otherwise false

  set_access_vlan(name, value=None, default=False, disable=False)

    Configures the switchport access vlan

    Parameters:

      - name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

      - value (string) – The value to set the access vlan to. The value must be a valid VLAN ID in the range of 1 to 4094.

      - default (bool) – Configures the access vlan parameter to its default value using the EOS CLI

      - disable (bool) – Negate the access vlan parameter using the EOS CLI

    Returns:

      True if the create operation succeeds otherwise False.

  set_mode(name, value=None, default=False, disable=False)

    Configures the switchport mode

    Parameters:

      - name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

      - value (string) – The value to set the mode to. Accepted values for this argument are access or trunk

      - default (bool) – Configures the mode parameter to its default value using the EOS CLI

      - disable (bool) – Negate the mode parameter using the EOS CLI

    Returns:

      True if the create operation succeeds otherwise False.

  set_trunk_allowed_vlans(name, value=None, default=False, disable=False)

    Configures the switchport trunk allowed vlans value

    Parameters:

      - name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

      - value (string) – The value to set the trunk allowed vlans to. The value must be a valid VLAN ID in the range of 1 to 4094.

      - default (bool) – Configures the access vlan parameter to its default value using the EOS CLI

      - disable (bool) – Negate the access vlan parameter using the EOS CLI

    Returns:

      True if the create operation succeeds otherwise False.

  set_trunk_groups(intf, value=None, default=False, disable=False)

    Configures the switchport trunk group value

    Parameters:

      - intf (str) – The interface identifier to configure.

      - value (str) – The set of values to configure the trunk group

      - default (bool) – Configures the trunk group default value

      - disable (bool) – Negates all trunk group settings

    Returns:

      True if the config operation succeeds otherwise False

  set_trunk_native_vlan(name, value=None, default=False, disable=False)

    Configures the switchport trunk native vlan value

    Parameters:

      - name (string) – The interface identifier to create the logical layer 2 switchport for. The name must be the full interface name and not an abbreviated interface name (eg Ethernet1, not Et1)

      - value (string) – The value to set the trunk nativevlan to. The value must be a valid VLAN ID in the range of 1 to 4094.

      - default (bool) – Configures the access vlan parameter to its default value using the EOS CLI

      - disable (bool) – Negate the access vlan parameter using the EOS CLI

    Returns:

      True if the create operation succeeds otherwise False.

pyeapi.api.switchports.instance(node)

  Returns an instance of Switchports

  This method will create and return an instance of the Switchports object passing the value of node to the instance. The module method is required for the resource to be autoloaded by the Node object

  Parameters:

    node (Node) – The node argument provides an instance of Node to the resource