Class: Rbeapi::Api::Stp

Inherits:
Entity
  • Object
show all
Defined in:
lib/rbeapi/api/stp.rb

Overview

The Stp class provides a base class instance for working with the EOS spanning-tree configuration.

Instance Attribute Summary

Attributes inherited from Entity

#config, #error, #node

Instance Method Summary collapse

Methods inherited from Entity

#command_builder, #configure, #configure_interface, #get_block, #initialize, instance

Constructor Details

This class inherits a constructor from Rbeapi::Api::Entity

Instance Method Details

#getHash

get returns the current stp configuration parsed from the nodes current running configuration.

Examples:

{
  mode: <string>
  instances: {
    <string>: {
      priority: <string>
    }
  }
  interfaces: {
    <name>: {
      portfast: <boolean>,
      portfast_type: <string>,
      bpduguard: <boolean>
    }
  }
}

Returns:

  • (Hash)

    returns a Hash of attributes derived from eAPI.



66
67
68
69
70
71
72
# File 'lib/rbeapi/api/stp.rb', line 66

def get
  response = {}
  response.merge!(parse_mode)
  response[:instances] = instances.getall
  response[:interfaces] = interfaces.getall
  response
end

#instancesStpInstances

instances returns a memoized instance of StpInstances for configuring individual stp instances.

Returns:



93
94
95
96
97
# File 'lib/rbeapi/api/stp.rb', line 93

def instances
  return @instances if @instances
  @instances = StpInstances.new(node)
  @instances
end

#interfacesStpInterfaces

interfaces returns a memoized instance of StpInterfaces for configuring individual stp interfaces.

Returns:



104
105
106
107
108
# File 'lib/rbeapi/api/stp.rb', line 104

def interfaces
  return @interfaces if @interfaces
  @interfaces = StpInterfaces.new(node)
  @interfaces
end

#parse_modeHash<Symbol, Object>

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

parse_mode scans the nodes running configuration and extracts the value of the spanning-tree mode. The spanning tree mode is expected to be always be available in the running config. The return value is intended to be merged into the stp resource hash.

Returns:

  • (Hash<Symbol, Object>)

    Resource hash attribute.



83
84
85
86
# File 'lib/rbeapi/api/stp.rb', line 83

def parse_mode
  mdata = /(?<=spanning-tree\smode\s)(\w+)$/.match(config)
  { mode: mdata[1] }
end

#set_mode(opts = {}) ⇒ Boolean

set_mode configures the stp mode in the global nodes running configuration. If the enable option is false, then the stp mode is configured with the no keyword argument. If the default option is specified then the mode is configured with the default keyword argument. The default keyword argument takes precedence over the enable option if both are provided.

Commands

spanning-tree mode <value>
no spanning-tree mode
default spanning-tree mode

Parameters:

  • opts (Hash) (defaults to: {})

    Optional keyword arguments.

Options Hash (opts):

  • value (String)

    The value to configure the stp mode to in the nodes current running configuration.

  • enable (Boolean)

    If false then the command is negated. Default is true.

  • default (Boolean)

    Configure the stp mode value using the default keyword.

Returns:

  • (Boolean)

    returns true if the command completed successfully.

Since:

  • eos_version 4.13.7M



138
139
140
141
# File 'lib/rbeapi/api/stp.rb', line 138

def set_mode(opts = {})
  cmd = command_builder('spanning-tree mode', opts)
  configure cmd
end