Method: Rbeapi::Api::VarpInterfaces#set_addresses

Defined in:
lib/rbeapi/api/varp.rb

#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.

rubocop:disable Metrics/MethodLength

Parameters:

  • name (String)

    The name of the interface. The name argument must be the full interface name. Valid interfaces are restricted to VLAN interfaces.

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

    The configuration parameters.

Options Hash (opts):

  • value (Array)

    Array of IPv4 addresses to add to the virtual router.

  • enable (Boolean)

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

  • default (Boolean)

    The value should be set to default.

Returns:

  • (Boolean)

    True if the commands succeeds otherwise False.



203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
# File 'lib/rbeapi/api/varp.rb', line 203

def set_addresses(name, opts = {})
  value = opts[:value]
  enable = opts.fetch(:enable, true)
  default = opts[:default] || false
  cmds = ["interface #{name}"]

  if value
    unless value.is_a?(Array)
      raise ArgumentError, 'value must be an Array'
    end
  end

  case default
  when true
    cmds << 'default ip virtual-router address'
  when false
    cmds << 'no ip virtual-router address'
    if enable
      unless value
        raise ArgumentError,
              'no values for addresses provided'
      end
      value.each do |addr|
        cmds << "ip virtual-router address #{addr}"
      end
    end
  end
  configure(cmds)
end