class Rbeapi::Api::OspfInterfaces

The OspfInterfaces class is a global class that provides an instance for working with the node's OSPF interface configuration.

Public Instance Methods

get(name) click to toggle source

Returns a single MLAG interface configuration.

Example

{
   network_type: <string>
}

@param name [String] The interface name to return the configuration

values for. This must be the full interface identifier.

@return [nil, Hash<String, String>] A Ruby hash that represents the

MLAG interface configuration. A nil object is returned if the
specified interface is not configured
# File lib/rbeapi/api/ospf.rb, line 388
def get(name)
  config = get_block("interface #{name}")
  return nil unless config
  unless /no switchport$/ =~ config || /^interface (Lo|Vl)/ =~ config
    return nil
  end

  response = {}
  nettype = /ip ospf network point-to-point/ =~ config
  response[:network_type] = nettype.nil? ? 'broadcast' : 'point-to-point'
  response
end
getall() click to toggle source

Returns the collection of MLAG interfaces as a hash index by the interface name.

Example

{
  <name>: {
    network_type: <string>
  },
  <name>: {
    network_type: <string>
  },
  ...
}

@return [nil, Hash<String, String>] A Ruby hash that represents the

MLAG interface configuration. A nil object is returned if no
interfaces are configured.
# File lib/rbeapi/api/ospf.rb, line 419
def getall
  interfaces = config.scan(/(?<=interface\s)[Et|Po|Lo|Vl].+/)
  interfaces.each_with_object({}) do |intf, hsh|
    values = get(intf)
    hsh[intf] = values if values
  end
end
set_network_type(name, opts = {}) click to toggle source

set_network_type sets network type with options.

@param name [String] The name of the interface.

@param opts [hash] Optional keyword arguments.

@option opts value [String] The point-to-point value.

@option opts enable [Boolean] If false then the command is

negated. Default is true.

@option opts default [Boolean] Configure the ip ospf network

to default.

@return [Boolean] Returns true if the command completed successfully.

# File lib/rbeapi/api/ospf.rb, line 443
def set_network_type(name, opts = {})
  value = opts[:value]
  return false unless [nil, 'point-to-point'].include?(value)
  cmd = command_builder('ip ospf network', opts)
  configure_interface(name, cmd)
end