Class: Rbeapi::Api::StpInterfaces
- Defined in:
- lib/rbeapi/api/stp.rb
Overview
The StpInterfaces class provides a class instance for working with spanning-tree interfaces in EOS
Instance Attribute Summary
Attributes inherited from Entity
Instance Method Summary collapse
-
#get(name) ⇒ nil, Hash<Symbol, Object>
get returns the configured stp interfaces from the nodes running configuration as a resource hash.
-
#getall ⇒ Hash<Symbol, Object>
getall returns all of the configured stp interfaces parsed from the nodes current running configuration.
-
#set_bpduguard(name, opts = {}) ⇒ Boolean
Configures the interface bpdu guard value.
-
#set_portfast(name, opts = {}) ⇒ Boolean
Configures the interface portfast value.
-
#set_portfast_type(name, opts = {}) ⇒ Boolean
Configures the interface portfast type value.
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
#get(name) ⇒ nil, Hash<Symbol, Object>
get returns the configured stp interfaces from the nodes running configuration as a resource hash. If the specified interface is not configured as a switchport then this method will return nil
291 292 293 294 295 296 297 298 299 300 |
# File 'lib/rbeapi/api/stp.rb', line 291 def get(name) config = get_block("interface #{name}") return nil unless config return nil if /no switchport$/ =~ config response = {} response.merge!(parse_portfast(config)) response.merge!(parse_portfast_type(config)) response.merge!(parse_bpduguard(config)) response end |
#getall ⇒ Hash<Symbol, Object>
getall returns all of the configured stp interfaces parsed from the nodes current running configuration. The returned hash is keyed by the interface name
324 325 326 327 328 329 330 331 |
# File 'lib/rbeapi/api/stp.rb', line 324 def getall interfaces = config.scan(/(?<=^interface\s)[Et|Po].+/) resp = interfaces.each_with_object({}) do |name, hsh| values = get(name) hsh[name] = values if values end resp end |
#set_bpduguard(name, opts = {}) ⇒ Boolean
Configures the interface bpdu guard value
439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 |
# File 'lib/rbeapi/api/stp.rb', line 439 def set_bpduguard(name, opts = {}) enable = opts.fetch(:enable, true) default = opts[:default] || false case default when true cmds = 'default spanning-tree bpduguard' when false if enable cmds = 'spanning-tree bpduguard enable' else cmds = 'spanning-tree bpduguard disable' end end configure_interface(name, cmds) end |
#set_portfast(name, opts = {}) ⇒ Boolean
Configures the interface portfast value
392 393 394 395 |
# File 'lib/rbeapi/api/stp.rb', line 392 def set_portfast(name, opts = {}) cmd = command_builder('spanning-tree portfast', opts) configure_interface(name, cmd) end |
#set_portfast_type(name, opts = {}) ⇒ Boolean
Configures the interface portfast type value
409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
# File 'lib/rbeapi/api/stp.rb', line 409 def set_portfast_type(name, opts = {}) value = opts[:value] fail ArgumentError, 'value must be set' unless value enable = opts.fetch(:enable, true) default = opts[:default] || false case default when true cmds = "default spanning-tree portfast #{value}" when false if enable cmds = "spanning-tree portfast #{value}" else cmds = "no spanning-tree portfast #{value}" end end configure_interface(name, cmds) end |