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
#configure, #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.
160 161 162 |
# File 'lib/rbeapi/api/vlans.rb', line 160 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.
197 198 199 |
# File 'lib/rbeapi/api/vlans.rb', line 197 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.
178 179 180 |
# File 'lib/rbeapi/api/vlans.rb', line 178 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.
65 66 67 68 69 70 71 72 73 |
# File 'lib/rbeapi/api/vlans.rb', line 65 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
91 92 93 94 95 96 97 |
# File 'lib/rbeapi/api/vlans.rb', line 91 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 the value is not provided 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 value keyword
230 231 232 233 234 235 236 237 238 239 240 241 242 |
# File 'lib/rbeapi/api/vlans.rb', line 230 def set_name(id, opts = {}) value = opts[:value] default = opts[:default] || false cmds = ["vlan #{id}"] case default when true cmds << 'default name' when false cmds << (value.nil? ? 'no name' : "name #{value}") end 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 the value is not provided 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 value keyword
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 |
# File 'lib/rbeapi/api/vlans.rb', line 276 def set_state(id, opts = {}) value = opts[:value] default = opts[:default] || false unless ['active', 'suspend', nil].include?(value) raise ArgumentError, 'state must be active, suspend or nil' end cmds = ["vlan #{id}"] case default when true cmds << 'default state' when false cmds << (value.nil? ? 'no state' : "state #{value}") end configure(cmds) end |