Class: Rbeapi::Api::VarpInterfaces
- Defined in:
- lib/rbeapi/api/varp.rb
Overview
The VarpInterfaces class provides an instance for working with the global VARP interface configuration of the node
Instance Attribute Summary
Attributes inherited from Entity
Instance Method Summary collapse
- #add_address(name, value) ⇒ Object
-
#get(name) ⇒ nil, Hash<String, String>
Returns a single VARP interface configuration.
-
#getall ⇒ nil, Hash<String, String>
Returns the collection of MLAG interfaces as a hash index by the interface name.
- #remove_address(name, value) ⇒ Object
-
#set_addresses(name, opts = {}) ⇒ Boolean
The set_addresses method assigns one or more virtual IPv4 address to the specified VLAN interface.
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
#add_address(name, value) ⇒ Object
175 176 177 |
# File 'lib/rbeapi/api/varp.rb', line 175 def add_address(name, value) configure(["interface #{name}", "ip virtual-router address #{value}"]) end |
#get(name) ⇒ nil, Hash<String, String>
Returns a single VARP interface configuration
Example
{
"name": <string>,
"addresses": array<string>
}
108 109 110 111 112 113 |
# File 'lib/rbeapi/api/varp.rb', line 108 def get(name) config = get_block("^interface #{name}") return nil unless config addrs = config.scan(/(?<=\s{3}ip\svirtual-router\saddress\s).+$/) { 'addresses' => addrs } end |
#getall ⇒ nil, Hash<String, String>
Returns the collection of MLAG interfaces as a hash index by the interface name
Example
{
<name>: {...},
<name>: {...}
}
128 129 130 131 132 133 134 |
# File 'lib/rbeapi/api/varp.rb', line 128 def getall interfaces = config.scan(/(?<=^interface\s)(Vl.+)$/) interfaces.first.each_with_object({}) do |name, resp| data = get(name) resp[name] = data if data end end |
#remove_address(name, value) ⇒ Object
179 180 181 182 |
# File 'lib/rbeapi/api/varp.rb', line 179 def remove_address(name, value) configure(["interface #{name}", "no ip virtual-router address #{value}"]) end |
#set_addresses(name, opts = {}) ⇒ Boolean
The set_addresses method assigns one or more virtual IPv4 address to the specified VLAN interface. All existing addresses are removed before the ones in value are added.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/rbeapi/api/varp.rb', line 152 def set_addresses(name, opts = {}) value = opts[:value] enable = opts.fetch(:enable, true) default = opts[:default] || false case default when true configure(["interface #{name}", 'default ip virtual-router address']) when false get(name)['addresses'].each do |addr| result = remove_address(name, addr) return result unless result end if enable value.each do |addr| result = add_address(name, addr) return result unless result end end end true end |