Class: Rbeapi::Api::Vlans

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

Overview

The Vlan class provides a class implementation for working with the collection of Vlans on the node. This class presents an abstraction of the nodes configured vlan id’s from the running 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

#add_trunk_group(id, value) ⇒ Boolean

add_trunk_group adds a new trunk group value to the specified vlan id in the nodes running configuration. The trunk group name value accepts a-z 0-9 and _

Version:

  • 4.13.7M



302
303
304
# File 'lib/rbeapi/api/vlans.rb', line 302

def add_trunk_group(id, value)
  configure(["vlan #{id}", "trunk group #{value}"])
end

#create(id) ⇒ Boolean

create will create a new vlan resource in the nodes current configuration with the specified vlan id. If the create method is called and the vlan id already exists, this method will still return true.



159
160
161
# File 'lib/rbeapi/api/vlans.rb', line 159

def create(id)
  configure("vlan #{id}")
end

#default(id) ⇒ Boolean

default will configure the vlan using the default keyword. This command has the same effect as deleting the vlan from the nodes running configuration.



196
197
198
# File 'lib/rbeapi/api/vlans.rb', line 196

def default(id)
  configure("default vlan #{id}")
end

#delete(id) ⇒ Boolean

delete will delete an existing vlan resource from the nodes current running configuration. If the delete method is called and the vlan id does not exist, this method will succeed.



177
178
179
# File 'lib/rbeapi/api/vlans.rb', line 177

def delete(id)
  configure("no vlan #{id}")
end

#get(id) ⇒ nil, Hash<Symbol, Object>

get returns the specified vlan resource Hash that represents the nodes current vlan configuration.

Examples:

{
  name: <string>
  state: <string>
  trunk_groups: array[<string]
}


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

def get(id)
  config = get_block("vlan #{id}")
  return nil unless config
  response = {}
  response.merge!(parse_name(config))
  response.merge!(parse_state(config))
  response.merge!(parse_trunk_groups(config))
  response
end

#getallHash<Symbol, Object>

getall returns the collection of vlan resources from the nodes running configuration as a hash. The vlan resource collection hash is keyed by the unique vlan id

Examples:

{
  <vlanid>: {...}
}

See Also:



90
91
92
93
94
95
96
# File 'lib/rbeapi/api/vlans.rb', line 90

def getall
  vlans = config.scan(/(?<=^vlan\s)\d+$/)
  vlans.each_with_object({}) do |vid, hsh|
    resource = get vid
    hsh[vid] = resource if resource
  end
end

#remove_trunk_group(id, value) ⇒ Object

remove_trunk_group removes the specified trunk group value from the specified vlan id in the node’s configuration. If the trunk group name does not exist, this method will return success



323
324
325
# File 'lib/rbeapi/api/vlans.rb', line 323

def remove_trunk_group(id, value)
  configure(["vlan #{id}", "no trunk group #{value}"])
end

#set_name(id, opts = {}) ⇒ Boolean

set_name configures the name value for the specified vlan id in the nodes running configuration. If enable is false in the opts keyword Hash then the name value is negated using the no keyword. If the default keyword is set to true, then the name value is defaulted using the default keyword. The default keyword takes precedence over the enable keyword



232
233
234
235
236
# File 'lib/rbeapi/api/vlans.rb', line 232

def set_name(id, opts = {})
  cmd = command_builder('name', opts)
  cmds = ["vlan #{id}", cmd]
  configure(cmds)
end

#set_state(id, opts = {}) ⇒ Boolean

set_state configures the state value for the specified vlan id in the nodes running configuration. If enable is set to false in the opts keyword Hash then the state value is negated using the no keyword. If the default keyword is set to true, then the state value is defaulted using the default keyword. The default keyword takes precedence over the enable keyword

Raises:

  • (ArgumentError)

    if the value is not in the accept list of values



273
274
275
276
277
278
279
280
281
282
# File 'lib/rbeapi/api/vlans.rb', line 273

def set_state(id, opts = {})
  value = opts[:value]
  unless ['active', 'suspend', nil].include?(value)
    fail ArgumentError, 'state must be active, suspend or nil'
  end

  cmd = command_builder('state', opts)
  cmds = ["vlan #{id}", cmd]
  configure(cmds)
end