Class: Rbeapi::Api::Vlans
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
Instance Method Summary collapse
-
#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.
-
#create(id) ⇒ Boolean
create will create a new vlan resource in the nodes current configuration with the specified vlan id.
-
#default(id) ⇒ Boolean
default will configure the vlan using the default keyword.
-
#delete(id) ⇒ Boolean
delete will delete an existing vlan resource from the nodes current running configuration.
-
#get(id) ⇒ nil, Hash<Symbol, Object>
get returns the specified vlan resource Hash that represents the nodes current vlan configuration.
-
#getall ⇒ Hash<Symbol, Object>
getall returns the collection of vlan resources from the nodes running configuration as a hash.
-
#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.
-
#set_name(id, opts = {}) ⇒ Boolean
set_name configures the name value for the specified vlan id in the nodes running configuration.
-
#set_state(id, opts = {}) ⇒ Boolean
set_state configures the state value for the specified vlan id in the nodes running configuration.
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 _
312 313 314 |
# File 'lib/rbeapi/api/vlans.rb', line 312 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.
169 170 171 |
# File 'lib/rbeapi/api/vlans.rb', line 169 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.
206 207 208 |
# File 'lib/rbeapi/api/vlans.rb', line 206 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.
187 188 189 |
# File 'lib/rbeapi/api/vlans.rb', line 187 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.
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 |
#getall ⇒ Hash<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
100 101 102 103 104 105 106 |
# File 'lib/rbeapi/api/vlans.rb', line 100 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
333 334 335 |
# File 'lib/rbeapi/api/vlans.rb', line 333 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
242 243 244 245 246 |
# File 'lib/rbeapi/api/vlans.rb', line 242 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
283 284 285 286 287 288 289 290 291 292 |
# File 'lib/rbeapi/api/vlans.rb', line 283 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 |