rbeapi 0.5.0 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. data/CHANGELOG.md +4 -0
  2. data/Gemfile +1 -1
  3. data/README.md +17 -12
  4. data/guide/.gitignore +2 -0
  5. data/guide/api.rst +5894 -0
  6. data/guide/conf.py +5 -5
  7. data/guide/contributing.rst +6 -0
  8. data/guide/getting-started.rst +134 -0
  9. data/guide/index.rst +3 -5
  10. data/guide/installation.rst +56 -1
  11. data/guide/license.rst +13 -2
  12. data/guide/overview.rst +2 -5
  13. data/guide/testing.rst +5 -1
  14. data/guide/upgrading.rst +10 -0
  15. data/lib/rbeapi/api.rb +37 -36
  16. data/lib/rbeapi/api/aaa.rb +90 -90
  17. data/lib/rbeapi/api/acl.rb +70 -53
  18. data/lib/rbeapi/api/bgp.rb +186 -163
  19. data/lib/rbeapi/api/dns.rb +51 -45
  20. data/lib/rbeapi/api/interfaces.rb +344 -328
  21. data/lib/rbeapi/api/ipinterfaces.rb +92 -92
  22. data/lib/rbeapi/api/logging.rb +32 -32
  23. data/lib/rbeapi/api/mlag.rb +97 -97
  24. data/lib/rbeapi/api/ntp.rb +39 -39
  25. data/lib/rbeapi/api/ospf.rb +58 -58
  26. data/lib/rbeapi/api/prefixlists.rb +22 -22
  27. data/lib/rbeapi/api/radius.rb +77 -49
  28. data/lib/rbeapi/api/routemaps.rb +110 -64
  29. data/lib/rbeapi/api/snmp.rb +104 -100
  30. data/lib/rbeapi/api/staticroutes.rb +27 -20
  31. data/lib/rbeapi/api/stp.rb +100 -84
  32. data/lib/rbeapi/api/switchports.rb +98 -77
  33. data/lib/rbeapi/api/system.rb +93 -25
  34. data/lib/rbeapi/api/tacacs.rb +54 -35
  35. data/lib/rbeapi/api/users.rb +68 -68
  36. data/lib/rbeapi/api/varp.rb +56 -47
  37. data/lib/rbeapi/api/vlans.rb +86 -86
  38. data/lib/rbeapi/api/vrrp.rb +210 -173
  39. data/lib/rbeapi/client.rb +142 -108
  40. data/lib/rbeapi/eapilib.rb +73 -62
  41. data/lib/rbeapi/utils.rb +8 -8
  42. data/lib/rbeapi/version.rb +2 -2
  43. data/spec/fixtures/test.conf +3 -3
  44. data/spec/system/rbeapi/api/system_spec.rb +46 -2
  45. data/spec/system/rbeapi/api/vlans_spec.rb +5 -2
  46. data/spec/system/rbeapi/client_spec.rb +4 -4
  47. data/spec/unit/rbeapi/api/system/default_spec.rb +40 -4
  48. data/spec/unit/rbeapi/api/system/fixture_system.text +14 -0
  49. data/spec/unit/rbeapi/api/vlans/default_spec.rb +1 -1
  50. data/spec/unit/rbeapi/api/vlans/fixture_vlans.text +2 -0
  51. data/spec/unit/rbeapi/client_spec.rb +1 -0
  52. metadata +9 -9
  53. data/guide/cookbook.rst +0 -4
  54. data/guide/developing.rst +0 -4
  55. data/guide/faq.rst +0 -4
  56. data/guide/quickstart.rst +0 -4
  57. data/guide/troubleshooting.rst +0 -1
@@ -32,16 +32,16 @@
32
32
  require 'rbeapi/api'
33
33
 
34
34
  ##
35
- # Rbeapi toplevel namespace
35
+ # Rbeapi toplevel namespace.
36
36
  module Rbeapi
37
37
  ##
38
- # Api is module namespace for working with the EOS command API
38
+ # Api is module namespace for working with the EOS command API.
39
39
  module Api
40
40
  ##
41
41
  # The Dns class manages DNS settings on an EOS node.
42
42
  class Dns < Entity
43
43
  ##
44
- # get returns the DNS resource
44
+ # get returns the DNS resource.
45
45
  #
46
46
  # @example
47
47
  # {
@@ -50,7 +50,7 @@ module Rbeapi
50
50
  # "domain_list": array<strings>
51
51
  # }
52
52
  #
53
- # @return [Hash] A Ruby hash object that provides the SNMP settings as
53
+ # @return [Hash] A Ruby hash object that provides the SNMP settings as
54
54
  # key / value pairs.
55
55
  def get
56
56
  response = {}
@@ -61,11 +61,11 @@ module Rbeapi
61
61
  end
62
62
 
63
63
  ##
64
- # parse_domain_name parses the domain-name from config
64
+ # parse_domain_name parses the domain-name from config.
65
65
  #
66
66
  # @api private
67
67
  #
68
- # @return [Hash<Symbol, Object>] resource hash attribute
68
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
69
69
  def parse_domain_name
70
70
  mdata = /ip domain-name ([\w.]+)/.match(config)
71
71
  { domain_name: mdata.nil? ? '' : mdata[1] }
@@ -74,11 +74,11 @@ module Rbeapi
74
74
 
75
75
  ##
76
76
  # parse_name_servers parses the name-server values from
77
- # config
77
+ # config.
78
78
  #
79
79
  # @api private
80
80
  #
81
- # @return [Hash<Symbol, Array>] resource hash attribute
81
+ # @return [Hash<Symbol, Array>] Returns the resource hash attribute.
82
82
  def parse_name_servers
83
83
  servers = config.scan(/(?:ip name-server vrf )(?:\w+)\s(.+)/)
84
84
  values = servers.each_with_object([]) { |srv, arry| arry << srv.first }
@@ -87,11 +87,11 @@ module Rbeapi
87
87
  private :parse_name_servers
88
88
 
89
89
  ##
90
- # parse_domain_list parses the domain-list from config
90
+ # parse_domain_list parses the domain-list from config.
91
91
  #
92
92
  # @api private
93
93
  #
94
- # @return [Hash<Symbol, Object>] resource hash attribute
94
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
95
95
  def parse_domain_list
96
96
  search = config.scan(/(?<=^ip\sdomain-list\s).+$/)
97
97
  { domain_list: search }
@@ -99,15 +99,18 @@ module Rbeapi
99
99
  private :parse_domain_list
100
100
 
101
101
  ##
102
- # Configure the domain-name value in the running-config
102
+ # Configure the domain-name value in the running-config.
103
103
  #
104
- # @param [Hash] opts The configuration parameters
105
- # @option opts [string] :value The value to set the domain-name to
106
- # @option :opts [Boolean] :enable If false then the command is
104
+ # @param opts [Hash] The configuration parameters.
105
+ #
106
+ # @option opts value [string] The value to set the domain-name to.
107
+ #
108
+ # @option opts enable [Boolean] If false then the command is
107
109
  # negated. Default is true.
108
- # @option opts [Boolean] :default The value should be set to default
109
110
  #
110
- # @return [Boolean] returns true if the command completed successfully
111
+ # @option opts default [Boolean] The value should be set to default.
112
+ #
113
+ # @return [Boolean] Returns true if the command completed successfully.
111
114
  def set_domain_name(opts = {})
112
115
  cmds = command_builder('ip domain-name', opts)
113
116
  configure(cmds)
@@ -118,26 +121,29 @@ module Rbeapi
118
121
  # to resolve dns queries. If the enable option is false, then the
119
122
  # name-server list will be configured using the no keyword. If the
120
123
  # default option is specified, then the name server list will be
121
- # configured using the default keyword. If both options are provided the
122
- # keyword option will take precedence
124
+ # configured using the default keyword. If both options are provided the
125
+ # keyword option will take precedence.
123
126
  #
124
- # @eos_version 4.13.7M
127
+ # @since eos_version 4.13.7M
125
128
  #
126
- # @commands
129
+ # ===Commands
127
130
  # ip name-server <value>
128
131
  # no ip name-server
129
132
  # default ip name-server
130
133
  #
131
- # @param [Hash] opts The configuration parameters
132
- # @option opts [string] :value The set of name servers to configure on the
133
- # node. The list of name servers will be replace in the nodes running
134
- # configuration by the list provided in value
135
- # @option :opts [Boolean] :enable If false then the command is
134
+ # @param [Hash] opts The configuration parameters.
135
+ #
136
+ # @option opts value [string] The set of name servers to configure on the
137
+ # node. The list of name servers will be replace in the nodes running
138
+ # configuration by the list provided in value.
139
+ #
140
+ # @option opts enable [Boolean] If false then the command is
136
141
  # negated. Default is true.
137
- # @option [Boolean] :default Configures the ip name-servers using the
142
+ #
143
+ # @option default [Boolean] Configures the ip name-servers using the
138
144
  # default keyword argument. Default takes precedence over enable.
139
145
  #
140
- # @return [Boolean] returns true if the commands completed successfully
146
+ # @return [Boolean] Returns true if the commands completed successfully.
141
147
  def set_name_servers(opts = {})
142
148
  value = opts[:value]
143
149
  enable = opts.fetch(:enable, true)
@@ -160,9 +166,9 @@ module Rbeapi
160
166
  ##
161
167
  # add_name_server adds an ip name-server.
162
168
  #
163
- # @param [String] :server The name of the ip name-server to create
169
+ # @param server [String] The name of the ip name-server to create.
164
170
  #
165
- # @return [Boolean] returns true if the command completed successfully
171
+ # @return [Boolean] Returns true if the command completed successfully.
166
172
  def add_name_server(server)
167
173
  configure "ip name-server #{server}"
168
174
  end
@@ -170,36 +176,36 @@ module Rbeapi
170
176
  ##
171
177
  # remove_name_server removes the specified ip name-server.
172
178
  #
173
- # @param [String] :server The name of the ip name-server to remove
179
+ # @param server [String] The name of the ip name-server to remove.
174
180
  #
175
- # @return [Boolean] returns true if the command completed successfully
181
+ # @return [Boolean] Returns true if the command completed successfully.
176
182
  def remove_name_server(server)
177
183
  configure "no ip name-server #{server}"
178
184
  end
179
185
 
180
186
  ##
181
187
  # set_domain_list configures the set of domain names to search when
182
- # making dns queries for the FQDN. If the enable option is set to false,
188
+ # making dns queries for the FQDN. If the enable option is set to false,
183
189
  # then the domain-list will be configured using the no keyword. If the
184
190
  # default option is specified, then the domain list will be configured
185
- # using the default keyword. If both options are provided the default
191
+ # using the default keyword. If both options are provided the default
186
192
  # keyword option will take precedence.
187
193
  #
188
- # @eos_version 4.13.7M
194
+ # @since eos_version 4.13.7M
189
195
  #
190
- # @commands
196
+ # ===Commands
191
197
  # ip domain-list <value>
192
198
  # no ip domain-list
193
199
  # default ip domain-list
194
200
  #
195
- # @option [Array] :value The set of domain names to configure on the
196
- # node. The list of domain names will be replace in the nodes running
197
- # configuration by the list provided in value
201
+ # @option value [Array] The set of domain names to configure on the
202
+ # node. The list of domain names will be replace in the nodes running
203
+ # configuration by the list provided in value.
198
204
  #
199
- # @option [Boolean] :default Configures the ip domain-list using the
200
- # default keyword argument
205
+ # @option default [Boolean] Configures the ip domain-list using the
206
+ # default keyword argument.
201
207
  #
202
- # @return [Boolean] returns true if the commands completed successfully
208
+ # @return [Boolean] Returns true if the commands completed successfully.
203
209
  def set_domain_list(opts = {})
204
210
  value = opts[:value]
205
211
  enable = opts.fetch(:enable, true)
@@ -227,9 +233,9 @@ module Rbeapi
227
233
  ##
228
234
  # add_domain_list adds an ip domain-list.
229
235
  #
230
- # @param [String] :name The name of the ip domain-list to add
236
+ # @param name [String] The name of the ip domain-list to add.
231
237
  #
232
- # @return [Boolean] returns true if the command completed successfully
238
+ # @return [Boolean] Returns true if the command completed successfully.
233
239
  def add_domain_list(name)
234
240
  configure "ip domain-list #{name}"
235
241
  end
@@ -237,9 +243,9 @@ module Rbeapi
237
243
  ##
238
244
  # remove_domain_list removes a specified ip domain-list.
239
245
  #
240
- # @param [String] :name The name of the ip domain-list to remove
246
+ # @param name [String] The name of the ip domain-list to remove.
241
247
  #
242
- # @return [Boolean] returns true if the command completed successfully
248
+ # @return [Boolean] Returns true if the command completed successfully.
243
249
  def remove_domain_list(name)
244
250
  configure "no ip domain-list #{name}"
245
251
  end
@@ -33,10 +33,10 @@ require 'rbeapi/api'
33
33
  require 'rbeapi/utils'
34
34
 
35
35
  ##
36
- # Rbeapi toplevel namespace
36
+ # Rbeapi toplevel namespace.
37
37
  module Rbeapi
38
38
  ##
39
- # Api is module namespace for working with the EOS command API
39
+ # Api is module namespace for working with the EOS command API.
40
40
  module Api
41
41
  ##
42
42
  # The Interfaces class manages all physical and logical interfaces on an
@@ -48,7 +48,7 @@ module Rbeapi
48
48
  end
49
49
 
50
50
  ##
51
- # get returns a hash of interface configurations for the given name
51
+ # get returns a hash of interface configurations for the given name.
52
52
  #
53
53
  # @example
54
54
  # {
@@ -58,18 +58,18 @@ module Rbeapi
58
58
  # shutdown: <boolean>
59
59
  # }
60
60
  #
61
- # @param [String] :name The interface name to return a resource for from
62
- # the nodes configuration
61
+ # @param name [String] The interface name to return a resource for from
62
+ # the nodes configuration.
63
63
  #
64
64
  # @return [nil, Hash<Symbol, Object>] Returns the interface resource as a
65
65
  # Hash. If the specified name is not found in the nodes current
66
- # configuration a nil object is returned
66
+ # configuration a nil object is returned.
67
67
  def get(name)
68
68
  get_instance(name).get(name)
69
69
  end
70
70
 
71
71
  ##
72
- # getall returns a hash of interface configurations
72
+ # getall returns a hash of interface configurations.
73
73
  #
74
74
  # @example
75
75
  # {
@@ -91,8 +91,8 @@ module Rbeapi
91
91
  # }
92
92
  #
93
93
  # @return [Hash<Symbol, Object>] Returns the interface resources as a
94
- # Hash. If none exist in the nodes current
95
- # configuration an empty hash is returned
94
+ # Hash. If none exist in the nodes current configuration an empty
95
+ # hash is returned.
96
96
  def getall
97
97
  interfaces = config.scan(/(?<=^interface\s).+$/)
98
98
 
@@ -103,12 +103,11 @@ module Rbeapi
103
103
  end
104
104
 
105
105
  ##
106
- # get_instance returns an interface instance for the given name
106
+ # get_instance returns an interface instance for the given name.
107
107
  #
108
- # @param [String] :name The interface name to return an instance for
108
+ # @param name [String] The interface name to return an instance for.
109
109
  #
110
- # @return [Object] Returns the interface instance as an
111
- # Object.
110
+ # @return [Object] Returns the interface instance as an Object.
112
111
  def get_instance(name)
113
112
  name = name[0, 2].upcase
114
113
  case name
@@ -148,9 +147,9 @@ module Rbeapi
148
147
 
149
148
  ##
150
149
  # get returns the specified interface resource hash that represents the
151
- # node's current interface configuration. The BaseInterface class
150
+ # node's current interface configuration. The BaseInterface class
152
151
  # provides all the set of attributes that are common to all interfaces
153
- # in EOS. This method will return an interface type of generic
152
+ # in EOS. This method will return an interface type of generic.
154
153
  #
155
154
  # @example
156
155
  # {
@@ -160,12 +159,12 @@ module Rbeapi
160
159
  # shutdown: [true, false]
161
160
  # }
162
161
  #
163
- # @param [String] :name The name of the interface to return from the
164
- # running-configuration
162
+ # @param name [String] The name of the interface to return from the
163
+ # running-configuration.
165
164
  #
166
165
  # @return [nil, Hash<String, Object>] Returns a hash of the interface
167
166
  # properties if the interface name was found in the running
168
- # configuration. If the interface was not found, nil is returned
167
+ # configuration. If the interface was not found, nil is returned.
169
168
  def get(name)
170
169
  config = get_block("^interface #{name}")
171
170
  return nil unless config
@@ -185,7 +184,10 @@ module Rbeapi
185
184
  #
186
185
  # @api private
187
186
  #
188
- # @return [Hash<Symbol, Object>] resource hash attribute
187
+ # @param config [String] The configuration block retrieved from the
188
+ # nodes current running configuration.
189
+ #
190
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
189
191
  def parse_description(config)
190
192
  mdata = /^\s{3}description\s(.+)$/.match(config)
191
193
  { description: mdata.nil? ? DEFAULT_INTF_DESCRIPTION : mdata[1] }
@@ -201,7 +203,10 @@ module Rbeapi
201
203
  #
202
204
  # @api private
203
205
  #
204
- # @return [Hash<Symbol, Object>] resource hash attribute
206
+ # @param config [String] The configuration block retrieved from the
207
+ # nodes current running configuration.
208
+ #
209
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
205
210
  def parse_shutdown(config)
206
211
  value = /no shutdown/ =~ config
207
212
  { shutdown: value.nil? }
@@ -210,80 +215,80 @@ module Rbeapi
210
215
 
211
216
  ##
212
217
  # create will create a new interface resource in the node's current
213
- # configuration with the specified interface name. If the create
218
+ # configuration with the specified interface name. If the create
214
219
  # method is called and the interface already exists, this method will
215
- # return successful
220
+ # return successful.
216
221
  #
217
- # @eos_version 4.13.7M
222
+ # @since eos_version 4.13.7M
218
223
  #
219
- # @param [String] :value The interface name to create on the node. The
224
+ # @param value [String] The interface name to create on the node. The
220
225
  # interface name must be the full interface identifier (ie Loopback,
221
- # not Lo)
226
+ # not Lo).
222
227
  #
223
- # @return [Boolean] returns true if the command completed successfully
228
+ # @return [Boolean] Returns true if the command completed successfully.
224
229
  def create(value)
225
230
  configure("interface #{value}")
226
231
  end
227
232
 
228
233
  ##
229
234
  # delete will delete an existing interface resource in the node's
230
- # current configuration with the specified interface name. If the
235
+ # current configuration with the specified interface name. If the
231
236
  # delete method is called and interface does not exist, this method
232
- # will return successful
237
+ # will return successful.
233
238
  #
234
- # @eos_version 4.13.7M
239
+ # @since eos_version 4.13.7M
235
240
  #
236
- # @param [String] :value The interface name to delete from the node.
241
+ # @param value [String] The interface name to delete from the node.
237
242
  # The interface name must be the full interface identifier
238
- # (ie Loopback, no Lo)
243
+ # (ie Loopback, no Lo).
239
244
  #
240
- # @return [Boolean] returns true if the command completed successfully
245
+ # @return [Boolean] Returns true if the command completed successfully.
241
246
  def delete(value)
242
247
  configure("no interface #{value}")
243
248
  end
244
249
 
245
250
  ##
246
- # default will configure the interface using the default keyword. For
251
+ # default will configure the interface using the default keyword. For
247
252
  # virtual interfaces this is equivalent to deleting the interface. For
248
253
  # physical interfaces, the entire interface configuration will be set
249
254
  # to defaults.
250
255
  #
251
- # @eos_version 4.13.7M
256
+ # @since eos_version 4.13.7M
252
257
  #
253
- # @param [String] :value The interface name to default in the node. The
258
+ # @param value [String] The interface name to default in the node. The
254
259
  # interface name must be the full interface identifier (ie Loopback,
255
- # not Lo)
260
+ # not Lo).
256
261
  #
257
- # @return [Boolean] returns true if the command completed successfully
262
+ # @return [Boolean] Returns true if the command completed successfully.
258
263
  def default(value)
259
264
  configure("default interface #{value}")
260
265
  end
261
266
 
262
267
  ##
263
268
  # set_description configures the description value for the specified
264
- # interface name in the nodes running configuration. If the enable
269
+ # interface name in the nodes running configuration. If the enable
265
270
  # keyword is false then the description value is negated using the no
266
- # keyword. If the default keyword is set to true, then the description
267
- # value is defaulted using the default keyword. The default keyword takes
271
+ # keyword. If the default keyword is set to true, then the description
272
+ # value is defaulted using the default keyword. The default keyword takes
268
273
  # precedence over the enable keyword if both are provided.
269
274
  #
270
- # @eos_version 4.13.7M
275
+ # @since eos_version 4.13.7M
271
276
  #
272
- # @param [String] :name The interface name to apply the configuration
273
- # to. The name value must be the full interface identifier
277
+ # @param name [String] The interface name to apply the configuration
278
+ # to. The name value must be the full interface identifier.
274
279
  #
275
- # @param [hash] :opts Optional keyword arguments
280
+ # @param opts [hash] Optional keyword arguments.
276
281
  #
277
- # @option :opts [String] :value The value to configure the description
282
+ # @option opts value [String] The value to configure the description
278
283
  # to in the node's configuration.
279
284
  #
280
- # @option :opts [Boolean] :enable If false then the command is
285
+ # @option opts enable [Boolean] If false then the command is
281
286
  # negated. Default is true.
282
287
  #
283
- # @option :opts [Boolean] :default Configure the interface description
284
- # using the default keyword
288
+ # @option opts default [Boolean] Configure the interface description
289
+ # using the default keyword.
285
290
  #
286
- # @return [Boolean] returns true if the command completed successfully
291
+ # @return [Boolean] Returns true if the command completed successfully.
287
292
  def set_description(name, opts = {})
288
293
  commands = command_builder('description', opts)
289
294
  configure_interface(name, commands)
@@ -291,31 +296,31 @@ module Rbeapi
291
296
 
292
297
  ##
293
298
  # set_shutdown configures the administrative state of the specified
294
- # interface in the node. If the enable keyword is false, then the
295
- # interface is administratively disabled. If the enable keyword is
296
- # true, then the interface is administratively enabled. If the default
299
+ # interface in the node. If the enable keyword is false, then the
300
+ # interface is administratively disabled. If the enable keyword is
301
+ # true, then the interface is administratively enabled. If the default
297
302
  # keyword is set to true, then the interface shutdown value is configured
298
- # using the default keyword. The default keyword takes precedence
303
+ # using the default keyword. The default keyword takes precedence
299
304
  # over the enable keyword if both are provided.
300
305
  #
301
- # @eos_version 4.13.7M
306
+ # @since eos_version 4.13.7M
302
307
  #
303
- # @param [String] :name The interface name to apply the configuration
304
- # to. The name value must be the full interface identifier
308
+ # @param name [String] The interface name to apply the configuration
309
+ # to. The name value must be the full interface identifier.
305
310
  #
306
- # @param [hash] :opts Optional keyword arguments
311
+ # @param opts [hash] Optional keyword arguments.
307
312
  #
308
- # @option :opts [Boolean] :enable True if the interface should be
313
+ # @option opts enable [Boolean] True if the interface should be
309
314
  # administratively enabled or false if the interface should be
310
315
  # administratively disabled.
311
316
  #
312
- # @option :opts [Boolean] :default Configure the interface shutdown
313
- # using the default keyword
317
+ # @option opts default [Boolean] Configure the interface shutdown
318
+ # using the default keyword.
314
319
  #
315
- # @return [Boolean] returns true if the command completed successfully
320
+ # @return [Boolean] Returns true if the command completed successfully.
316
321
  def set_shutdown(name, opts = {})
317
322
  fail 'set_shutdown has the value option set' if opts[:value]
318
- # Shutdown semantics are opposite of enable semantics so invert enable
323
+ # Shutdown semantics are opposite of enable semantics so invert enable.
319
324
  value = !opts[:enable]
320
325
  opts.merge!(enable: value)
321
326
  commands = command_builder('shutdown', opts)
@@ -349,12 +354,12 @@ module Rbeapi
349
354
  # flowcontrol_receive: <string>
350
355
  # }
351
356
  #
352
- # @param [String] :name The interface name to return a resource hash
353
- # for from the node's running configuration
357
+ # @param name [String] The interface name to return a resource hash
358
+ # for from the node's running configuration.
354
359
  #
355
360
  # @return [nil, Hash<Symbol, Object>] Returns the interface resource as
356
- # a hash. If the specified interface name is not found in the node's
357
- # configuration a nil object is returned
361
+ # a hash. If the specified interface name is not found in the node's
362
+ # configuration a nil object is returned.
358
363
  def get(name)
359
364
  config = get_block("^interface #{name}")
360
365
  return nil unless config
@@ -372,12 +377,14 @@ module Rbeapi
372
377
  ##
373
378
  # parse_speed scans the provided configuration block and parses the speed
374
379
  # value. If the speed value is not found in the interface configuration
375
- # block provided, DEFAULT_SPEED and DEFAULT_FORCED are used. The
376
- # returned hash is intended to be merged into the interface resource hash
380
+ # block provided, DEFAULT_SPEED and DEFAULT_FORCED are used. The
381
+ # returned hash is intended to be merged into the interface resource hash.
377
382
  #
378
383
  # @api private
379
384
  #
380
- # @return [Hash<Symbol, Object>] resource hash attribute
385
+ # @param config [String] The configuration block to parse.
386
+ #
387
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
381
388
  def parse_speed(config)
382
389
  value = config.scan(/speed (forced)?[ ]?(\w+)/).first
383
390
  return { speed: DEFAULT_SPEED, forced: DEFAULT_FORCED } unless value
@@ -388,13 +395,15 @@ module Rbeapi
388
395
 
389
396
  ##
390
397
  # parse_sflow scans the provided configuration block and parse the
391
- # sflow value. The sflow values true if sflow is enabled on the
392
- # interface or returns false if it is not enabled. The hash returned
398
+ # sflow value. The sflow values true if sflow is enabled on the
399
+ # interface or returns false if it is not enabled. The hash returned
393
400
  # is intended to be merged into the interface hash.
394
401
  #
395
402
  # @api private
396
403
  #
397
- # @return [Hash<Symbol, Object>] resource hash attribute
404
+ # @param config [String] The configuration block to parse.
405
+ #
406
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
398
407
  def parse_sflow(config)
399
408
  value = /no sflow enable/ =~ config
400
409
  { sflow: value.nil? }
@@ -403,14 +412,16 @@ module Rbeapi
403
412
 
404
413
  ##
405
414
  # parse_flowcontrol_send scans the provided configuration block and
406
- # parses the flowcontrol send value. If the interface flowcontrol value
415
+ # parses the flowcontrol send value. If the interface flowcontrol value
407
416
  # is not configured, then this method will return the value of
408
- # DEFAULT_ETH_FLOWC_TX. The hash returned is intended to be merged into
417
+ # DEFAULT_ETH_FLOWC_TX. The hash returned is intended to be merged into
409
418
  # the interface resource hash.
410
419
  #
411
420
  # @api private
412
421
  #
413
- # @return [Hash<Symbol, Object>] resource hash attribute
422
+ # @param config [String] The configuration block to parse.
423
+ #
424
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
414
425
  def parse_flowcontrol_send(config)
415
426
  mdata = /flowcontrol send (\w+)$/.match(config)
416
427
  { flowcontrol_send: mdata.nil? ? DEFAULT_ETH_FLOWC_TX : mdata[1] }
@@ -419,14 +430,16 @@ module Rbeapi
419
430
 
420
431
  ##
421
432
  # parse_flowcontrol_receive scans the provided configuration block and
422
- # parse the flowcontrol receive value. If the interface flowcontrol
433
+ # parse the flowcontrol receive value. If the interface flowcontrol
423
434
  # value is not configured, then this method will return the value of
424
- # DEFAULT_ETH_FLOWC_RX. The hash returned is intended to be merged into
435
+ # DEFAULT_ETH_FLOWC_RX. The hash returned is intended to be merged into
425
436
  # the interface resource hash.
426
437
  #
427
438
  # @api private
428
439
  #
429
- # @return [Hash<Symbol, Object>] resource hash attribute
440
+ # @param config [String] The configuration block to parse.
441
+ #
442
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
430
443
  def parse_flowcontrol_receive(config)
431
444
  mdata = /flowcontrol receive (\w+)$/.match(config)
432
445
  { flowcontrol_receive: mdata.nil? ? DEFAULT_ETH_FLOWC_RX : mdata[1] }
@@ -437,10 +450,10 @@ module Rbeapi
437
450
  # create overrides the create method from the BaseInterface and raises
438
451
  # an exception because Ethernet interface creation is not supported.
439
452
  #
440
- # @param [String] :name The name of the interface
453
+ # @param _name [String] The name of the interface.
441
454
  #
442
455
  # @raise [NotImplementedError] Creation of physical Ethernet interfaces
443
- # is not supported
456
+ # is not supported.
444
457
  def create(_name)
445
458
  fail NotImplementedError, 'creating Ethernet interfaces is '\
446
459
  'not supported'
@@ -451,10 +464,10 @@ module Rbeapi
451
464
  # raises an exception because Ethernet interface deletion is not
452
465
  # supported.
453
466
  #
454
- # @param [String] :name The name of the interface
467
+ # @param _name [String] The name of the interface.
455
468
  #
456
469
  # @raise [NotImplementedError] Deletion of physical Ethernet interfaces
457
- # is not supported
470
+ # is not supported.
458
471
  def delete(_name)
459
472
  fail NotImplementedError, 'deleting Ethernet interfaces is '\
460
473
  'not supported'
@@ -462,32 +475,32 @@ module Rbeapi
462
475
 
463
476
  ##
464
477
  # set_speed configures the interface speed and negotiation values on the
465
- # specified interface. If the enable option is false the speed
466
- # setting is configured using the no keyword. If the default options is
478
+ # specified interface. If the enable option is false the speed
479
+ # setting is configured using the no keyword. If the default options is
467
480
  # set to true, then the speed setting is configured using the default
468
- # keyword. If both options are specified, the default keyword takes
481
+ # keyword. If both options are specified, the default keyword takes
469
482
  # precedence.
470
483
  #
471
- # @eos_version 4.13.7M
484
+ # @since eos_version 4.13.7M
472
485
  #
473
- # @param [String] :name The interface name to apply the configuration
474
- # values to. The name must be the full interface identifier.
486
+ # @param name [String] The interface name to apply the configuration
487
+ # values to. The name must be the full interface identifier.
475
488
  #
476
- # @param [Hash] :opts optional keyword arguments
489
+ # @param opts [Hash] Optional keyword arguments.
477
490
  #
478
- # @option [String] :value The value to configure the speed setting to in
479
- # the nodes running configuration
491
+ # @option opts value [String] The value to configure the speed setting to
492
+ # in the nodes running configuration.
480
493
  #
481
- # @option :opts [Boolean] :enable If false then the command is
494
+ # @option opts enable [Boolean] If false then the command is
482
495
  # negated. Default is true.
483
496
  #
484
- # @option [Boolean] :forced Specifies if auto negotiation should be
485
- # enabled (true) or disabled (false)
497
+ # @option opts forced [Boolean] Specifies if auto negotiation should be
498
+ # enabled (true) or disabled (false).
486
499
  #
487
- # @option :opts [Boolean] :default Configures the sflow value on the
488
- # interface using the default keyword
500
+ # @option opts default [Boolean] Configures the sflow value on the
501
+ # interface using the default keyword.
489
502
  #
490
- # @return [Boolean] returns true if the command completed successfully
503
+ # @return [Boolean] Returns true if the command completed successfully.
491
504
  def set_speed(name, opts = {})
492
505
  value = opts[:value]
493
506
  forced = opts.fetch(:forced, false)
@@ -509,26 +522,26 @@ module Rbeapi
509
522
 
510
523
  ##
511
524
  # set_sflow configures the administrative state of sflow on the
512
- # interface. Setting the enable keyword to true enables sflow on the
525
+ # interface. Setting the enable keyword to true enables sflow on the
513
526
  # interface and setting enable to false disables sflow on the interface.
514
527
  # If the default keyword is set to true, then the sflow value is
515
- # defaulted using the default keyword. The default keyword takes
528
+ # defaulted using the default keyword. The default keyword takes
516
529
  # precedence over the enable keyword
517
530
  #
518
- # @eos_version 4.13.7M
531
+ # @since eos_version 4.13.7M
519
532
  #
520
- # @param [String] :name The interface name to apply the configuration
521
- # values to. The name must be the full interface identifier.
533
+ # @param name [String] The interface name to apply the configuration
534
+ # values to. The name must be the full interface identifier.
522
535
  #
523
- # @param [Hash] :opts optional keyword arguments
536
+ # @param opts [Hash] Optional keyword arguments.
524
537
  #
525
- # @option :opts [Boolean] :enable Enables sflow if the value is true or
538
+ # @option opts enable [Boolean] Enables sflow if the value is true or
526
539
  # disables sflow on the interface if false. Default is true.
527
540
  #
528
- # @option :opts [Boolean] :default Configures the sflow value on the
529
- # interface using the default keyword
541
+ # @option opts default [Boolean] Configures the sflow value on the
542
+ # interface using the default keyword.
530
543
  #
531
- # @return [Boolean] returns true if the command completed successfully
544
+ # @return [Boolean] Returns true if the command completed successfully.
532
545
  def set_sflow(name, opts = {})
533
546
  commands = command_builder('sflow enable', opts)
534
547
  configure_interface(name, commands)
@@ -537,31 +550,31 @@ module Rbeapi
537
550
  ##
538
551
  # set_flowcontrol configures the flowcontrol value either on or off for
539
552
  # the for the specified interface in the specified direction (either send
540
- # or receive). If the enable keyword is false then the configuration is
541
- # negated using the no keyword. If the default keyword is set to true,
542
- # then the state value is defaulted using the default keyword. The
553
+ # or receive). If the enable keyword is false then the configuration is
554
+ # negated using the no keyword. If the default keyword is set to true,
555
+ # then the state value is defaulted using the default keyword. The
543
556
  # default keyword takes precedence over the enable keyword
544
557
  #
545
- # @eos_version 4.13.7M
558
+ # @since eos_version 4.13.7M
546
559
  #
547
- # @param [String] :name The interface name to apply the configuration
548
- # values to. The name must be the full interface identifier.
560
+ # @param name [String] The interface name to apply the configuration
561
+ # values to. The name must be the full interface identifier.
549
562
  #
550
- # @param [String] :direction Specifies the flowcontrol direction to
551
- # configure. Valid values include send and receive.
563
+ # @param direction [String] Specifies the flowcontrol direction to
564
+ # configure. Valid values include send and receive.
552
565
  #
553
- # @param [Hash] :opts optional keyword arguments
566
+ # @param opts [Hash] Optional keyword arguments.
554
567
  #
555
- # @option :opts [String] :value Specifies the value to configure the
556
- # flowcontrol setting for. Valid values include on or off
568
+ # @option opts value [String] Specifies the value to configure the
569
+ # flowcontrol setting for. Valid values include on or off.
557
570
  #
558
- # @option :opts [Boolean] :enable If false then the command is
571
+ # @option opts enable [Boolean] If false then the command is
559
572
  # negated. Default is true.
560
573
  #
561
- # @option :opts [Boolean] :default Configures the flowcontrol value on
562
- # the interface using the default keyword
574
+ # @option opts default [Boolean] Configures the flowcontrol value on
575
+ # the interface using the default keyword.
563
576
  #
564
- # @return [Boolean] returns true if the command completed successfully
577
+ # @return [Boolean] Returns true if the command completed successfully.
565
578
  def set_flowcontrol(name, direction, opts = {})
566
579
  commands = command_builder("flowcontrol #{direction}", opts)
567
580
  configure_interface(name, commands)
@@ -573,50 +586,50 @@ module Rbeapi
573
586
  #
574
587
  # @see set_flowcontrol
575
588
  #
576
- # @eos_version 4.13.7M
589
+ # @since eos_version 4.13.7M
577
590
  #
578
- # @param [String] :name The interface name to apply the configuration
579
- # values to. The name must be the full interface identifier.
591
+ # @param name [String] The interface name to apply the configuration
592
+ # values to. The name must be the full interface identifier.
580
593
  #
581
- # @param [Hash] :opts optional keyword arguments
594
+ # @param opts [Hash] Optional keyword arguments.
582
595
  #
583
- # @option :opts [String] :value Specifies the value to configure the
584
- # flowcontrol setting for. Valid values include on or off
596
+ # @option opts value [String] Specifies the value to configure the
597
+ # flowcontrol setting for. Valid values include on or off.
585
598
  #
586
- # @option :opts [Boolean] :enable If false then the command is
599
+ # @option opts enable [Boolean] If false then the command is
587
600
  # negated. Default is true.
588
601
  #
589
- # @option :opts [Boolean] :default Configures the flowcontrol value on
590
- # the interface using the default keyword
602
+ # @option opts default [Boolean] Configures the flowcontrol value on
603
+ # the interface using the default keyword.
591
604
  #
592
- # @return [Boolean] returns true if the command completed successfully
605
+ # @return [Boolean] Returns true if the command completed successfully.
593
606
  def set_flowcontrol_send(name, opts = {})
594
607
  set_flowcontrol(name, 'send', opts)
595
608
  end
596
609
 
597
610
  ##
598
- # set_flowcontrol_receive is a convenience function for configuring th e
599
- # value of interface flowcontrol
611
+ # set_flowcontrol_receive is a convenience function for configuring the
612
+ # value of interface flowcontrol.
600
613
  #
601
614
  # @see set_flowcontrol
602
615
  #
603
- # @eos_version 4.13.7M
616
+ # @since eos_version 4.13.7M
604
617
  #
605
- # @param [String] :name The interface name to apply the configuration
606
- # values to. The name must be the full interface identifier.
618
+ # @param name [String] The interface name to apply the configuration
619
+ # values to. The name must be the full interface identifier.
607
620
  #
608
- # @param [Hash] :opts optional keyword arguments
621
+ # @param opts [Hash] Optional keyword arguments.
609
622
  #
610
- # @option :opts [String] :value Specifies the value to configure the
611
- # flowcontrol setting for. Valid values include on or off
623
+ # @option opts value [String] Specifies the value to configure the
624
+ # flowcontrol setting for. Valid values include on or off.
612
625
  #
613
- # @option :opts [Boolean] :enable If false then the command is
626
+ # @option opts enable [Boolean] If false then the command is
614
627
  # negated. Default is true.
615
628
  #
616
- # @option :opts [Boolean] :default Configures the flowcontrol value on
617
- # the interface using the default keyword
629
+ # @option opts default [Boolean] Configures the flowcontrol value on
630
+ # the interface using the default keyword.
618
631
  #
619
- # @return [Boolean] returns true if the command completed successfully
632
+ # @return [Boolean] Returns true if the command completed successfully.
620
633
  def set_flowcontrol_receive(name, opts = {})
621
634
  set_flowcontrol(name, 'receive', opts)
622
635
  end
@@ -632,7 +645,7 @@ module Rbeapi
632
645
 
633
646
  ##
634
647
  # get returns the specified port-channel interface configuration from
635
- # the nodes running configuration as a resource hash. The resource
648
+ # the nodes running configuration as a resource hash. The resource
636
649
  # hash returned extends the BaseInterface resource hash, sets the type
637
650
  # value to portchannel and adds the portchannel specific attributes
638
651
  #
@@ -650,13 +663,13 @@ module Rbeapi
650
663
  #
651
664
  # @see BaseInterface Interface get example
652
665
  #
653
- # @param [String] :name The name of the portchannel interface to return
654
- # a resource hash for. The name must be the full interface name of
666
+ # @param name [String] The name of the portchannel interface to return
667
+ # a resource hash for. The name must be the full interface name of
655
668
  # the desired interface.
656
669
  #
657
- # @return [nil, Hash<Symbol, Object>] returns the interface resource as
658
- # a hash object. If the specified interface does not exist in the
659
- # running configuration, a nil object is returned
670
+ # @return [nil, Hash<Symbol, Object>] Returns the interface resource as
671
+ # a hash object. If the specified interface does not exist in the
672
+ # running configuration, a nil object is returned.
660
673
  def get(name)
661
674
  config = get_block("^interface #{name}")
662
675
  return nil unless config
@@ -672,17 +685,17 @@ module Rbeapi
672
685
 
673
686
  ##
674
687
  # parse_members scans the nodes running config and returns all of the
675
- # Ethernet members for the port-channel interface specified. If the
688
+ # Ethernet members for the port-channel interface specified. If the
676
689
  # port-channel interface has no members configured, then this method will
677
- # assign an empty array as the value for members. The hash returned is
678
- # intended to be merged into the interface resource hash
690
+ # assign an empty array as the value for members. The hash returned is
691
+ # intended to be merged into the interface resource hash.
679
692
  #
680
693
  # @api private
681
694
  #
682
- # @param [String] :name The name of the portchannel interface to extract
683
- # the members for
695
+ # @param name [String] The name of the portchannel interface to extract
696
+ # the members for.
684
697
  #
685
- # @return [Hash<Symbol, Object>] resource hash attribute
698
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
686
699
  def parse_members(name)
687
700
  grpid = name.scan(/(?<=Port-Channel)\d+/)[0]
688
701
  command = "show port-channel #{grpid} all-ports"
@@ -694,17 +707,17 @@ module Rbeapi
694
707
 
695
708
  ##
696
709
  # parse_lacp_mode scans the member interfaces and returns the configured
697
- # lacp mode. The lacp mode value must be common across every member
698
- # in the port channel interface. If no members are configured, the value
699
- # for lacp_mode will be set using DEFAULT_LACP_MODE. The hash returned is
710
+ # lacp mode. The lacp mode value must be common across every member
711
+ # in the port channel interface. If no members are configured, the value
712
+ # for lacp_mode will be set using DEFAULT_LACP_MODE. The hash returned is
700
713
  # intended to be merged into the interface resource hash
701
714
  #
702
715
  # @api private
703
716
  #
704
- # @param [String] :name The name of the portchannel interface to extract
705
- # the members from in order to get the configured lacp_mode
717
+ # @param name [String] The name of the portchannel interface to extract
718
+ # the members from in order to get the configured lacp_mode.
706
719
  #
707
- # @return [Hash<Symbol, Object>] resource hash attribute
720
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
708
721
  def parse_lacp_mode(name)
709
722
  members = parse_members(name)[:members]
710
723
  return { lacp_mode: DEFAULT_LACP_MODE } unless members
@@ -716,17 +729,17 @@ module Rbeapi
716
729
 
717
730
  ##
718
731
  # parse_minimum_links scans the port-channel configuration and returns
719
- # the value for port-channel minimum-links. If the value is not found
732
+ # the value for port-channel minimum-links. If the value is not found
720
733
  # in the interface configuration, then DEFAULT_MIN_LINKS value is used.
721
734
  # The hash returned is intended to be merged into the interface
722
- # resource hash
735
+ # resource hash.
723
736
  #
724
737
  # @api private
725
738
  #
726
- # @param [String] :config The interface configuration block to extract
727
- # the minimum links value from
739
+ # @param config [String] The interface configuration block to extract
740
+ # the minimum links value from.
728
741
  #
729
- # @return [Hash<Symbol, Object>] resource hash attribute
742
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
730
743
  def parse_minimum_links(config)
731
744
  mdata = /port-channel min-links (\d+)$/.match(config)
732
745
  { minimum_links: mdata ? mdata[1] : DEFAULT_MIN_LINKS }
@@ -735,17 +748,17 @@ module Rbeapi
735
748
 
736
749
  ##
737
750
  # parse_lacp_fallback scans the interface config block and returns the
738
- # configured value of the lacp fallback attribute. If the value is not
751
+ # configured value of the lacp fallback attribute. If the value is not
739
752
  # configured, then the method will return the value of
740
- # DEFAULT_LACP_FALLBACK. The hash returned is intended to be merged into
741
- # the interface resource hash
753
+ # DEFAULT_LACP_FALLBACK. The hash returned is intended to be merged into
754
+ # the interface resource hash.
742
755
  #
743
756
  # @api private
744
757
  #
745
- # @param [String] :config The interface configuration block to extract
746
- # the lacp fallback value from
758
+ # @param config [String] The interface configuration block to extract
759
+ # the lacp fallback value from.
747
760
  #
748
- # @return [Hash<Symbol, Object>] resource hash attribute
761
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
749
762
  def parse_lacp_fallback(config)
750
763
  mdata = /lacp fallback (static|individual)/.match(config)
751
764
  { lacp_fallback: mdata ? mdata[1] : DEFAULT_LACP_FALLBACK }
@@ -754,16 +767,16 @@ module Rbeapi
754
767
 
755
768
  ##
756
769
  # parse_lacp_timeout scans the interface config block and returns the
757
- # value of the lacp fallback timeout value. The value is expected to be
758
- # found in the interface configuration block. The hash returned is
759
- # intended to be merged into the interface resource hash
770
+ # value of the lacp fallback timeout value. The value is expected to be
771
+ # found in the interface configuration block. The hash returned is
772
+ # intended to be merged into the interface resource hash.
760
773
  #
761
774
  # @api private
762
775
  #
763
- # @param [String] :config The interface configuration block to extract
764
- # the lacp timeout value from
776
+ # @param config [String] The interface configuration block to extract
777
+ # the lacp timeout value from.
765
778
  #
766
- # @return [Hash<Symbol, Object>] resource hash attribute
779
+ # @return [Hash<Symbol, Object>] Returns the resource hash attribute.
767
780
  def parse_lacp_timeout(config)
768
781
  mdata = /lacp fallback timeout (\d+)$/.match(config)
769
782
  { lacp_timeout: mdata[1] }
@@ -772,31 +785,31 @@ module Rbeapi
772
785
 
773
786
  ##
774
787
  # set_minimum_links configures the minimum physical links up required to
775
- # consider the logical portchannel interface operationally up. If the
788
+ # consider the logical portchannel interface operationally up. If the
776
789
  # enable keyword is false then the minimum-links is configured using the
777
- # no keyword argument. If the default keyword argument is provided and
790
+ # no keyword argument. If the default keyword argument is provided and
778
791
  # set to true, the minimum-links value is defaulted using the default
779
- # keyword. The default keyword takes precedence over the enable keyword
792
+ # keyword. The default keyword takes precedence over the enable keyword
780
793
  # argument if both are provided.
781
794
  #
782
- # @eos_version 4.13.7M
795
+ # @since eos_version 4.13.7M
783
796
  #
784
- # @param [String] :name The interface name to apply the configuration
797
+ # @param name [String] The interface name to apply the configuration
785
798
  # values to. The name must be the full interface identifier.
786
799
  #
787
- # @param [Hash] :opts optional keyword arguments
800
+ # @param opts [Hash] Optional keyword arguments.
788
801
  #
789
- # @option :opts [String, Integer] :value Specifies the value to
790
- # configure the minimum-links to in the configuration. Valid values
802
+ # @option opts value [String, Integer] Specifies the value to
803
+ # configure the minimum-links to in the configuration. Valid values
791
804
  # are in the range of 1 to 16.
792
805
  #
793
- # @option :opts [Boolean] :enable If false then the command is
806
+ # @option opts enable [Boolean] If false then the command is
794
807
  # negated. Default is true.
795
808
  #
796
- # @option :opts [Boolean] :default Configures the minimum links value on
797
- # the interface using the default keyword
809
+ # @option opts default [Boolean] Configures the minimum links value on
810
+ # the interface using the default keyword.
798
811
  #
799
- # @return [Boolean] returns true if the command completed successfully
812
+ # @return [Boolean] Returns true if the command completed successfully.
800
813
  def set_minimum_links(name, opts = {})
801
814
  commands = command_builder('port-channel min-links', opts)
802
815
  configure_interface(name, commands)
@@ -804,22 +817,23 @@ module Rbeapi
804
817
 
805
818
  ##
806
819
  # set_members configures the set of physical interfaces that comprise the
807
- # logical port-channel interface. The members value passed should be an
820
+ # logical port-channel interface. The members value passed should be an
808
821
  # array of physical interface names that comprise the port-channel
809
- # interface. This method will add and remove individual members as
810
- # required to sync the provided members array
822
+ # interface. This method will add and remove individual members as
823
+ # required to sync the provided members array.
824
+ #
825
+ # @see add_member Adds member links to the port-channel interface.
811
826
  #
812
- # @see add_member Adds member links to the port-channel interface
813
- # @see remove_member Removes member links from the port-channel interface
827
+ # @see remove_member Removes member links from the port-channel interface.
814
828
  #
815
- # @param [String] :name The name of the port-channel interface to apply
816
- # the members to. If the port-channel interface does not already exist
817
- # it will be created
829
+ # @param name [String] The name of the port-channel interface to apply
830
+ # the members to. If the port-channel interface does not already exist
831
+ # it will be created.
818
832
  #
819
- # @param [Array] :members The array of physical interface members to add
833
+ # @param members [Array] The array of physical interface members to add
820
834
  # to the port-channel logical interface.
821
835
  #
822
- # @param [str] :mode The LACP mode to configure the member interfaces to.
836
+ # @param mode [str] The LACP mode to configure the member interfaces to.
823
837
  # Valid values are 'on, 'passive', 'active'. When there are
824
838
  # existing channel-group members and their lacp mode differs
825
839
  # from this attribute, all of those members will be removed and
@@ -827,7 +841,7 @@ module Rbeapi
827
841
  # is omitted, the existing lacp mode will be used for new
828
842
  # member additions.
829
843
  #
830
- # @return [Boolean] returns true if the command completed successfully
844
+ # @return [Boolean] Returns true if the command completed successfully.
831
845
  def set_members(name, members, mode = nil)
832
846
  current_members = Set.new parse_members(name)[:members]
833
847
  members = Set.new members
@@ -841,13 +855,13 @@ module Rbeapi
841
855
  cmds = []
842
856
  grpid = /(\d+)/.match(name)[0]
843
857
 
844
- # remove members from the current port-channel interface
858
+ # remove members from the current port-channel interface.
845
859
  current_members.difference(members).each do |intf|
846
860
  cmds << "interface #{intf}"
847
861
  cmds << "no channel-group #{grpid}"
848
862
  end
849
863
 
850
- # add new member interfaces to the port-channel
864
+ # add new member interfaces to the port-channel.
851
865
  members.difference(current_members).each do |intf|
852
866
  cmds << "interface #{intf}"
853
867
  cmds << "channel-group #{grpid} mode #{lacp_mode}"
@@ -858,18 +872,18 @@ module Rbeapi
858
872
 
859
873
  ##
860
874
  # add_member adds the interface specified in member to the port-channel
861
- # interface specified by name in the nodes running-configuration. If
875
+ # interface specified by name in the nodes running-configuration. If
862
876
  # the port-channel interface does not already exist, it will be created.
863
877
  #
864
- # @eos_version 4.13.7M
878
+ # @since eos_version 4.13.7M
865
879
  #
866
- # @param [String] :name The name of the port-channel interface to apply
880
+ # @param name [String] The name of the port-channel interface to apply
867
881
  # the configuration to.
868
882
  #
869
- # @param [String] :member The name of the physical Ethernet interface to
883
+ # @param member [String] The name of the physical Ethernet interface to
870
884
  # add to the logical port-channel interface.
871
885
  #
872
- # @return [Boolean] returns true if the command completed successfully
886
+ # @return [Boolean] Returns true if the command completed successfully.
873
887
  def add_member(name, member)
874
888
  lacp = parse_lacp_mode(name)[:lacp_mode]
875
889
  grpid = /(\d+)/.match(name)[0]
@@ -881,15 +895,15 @@ module Rbeapi
881
895
  # port-channel interface specified by name in the nodes
882
896
  # running-configuration.
883
897
  #
884
- # @eos_version 4.13.7M
898
+ # @since eos_version 4.13.7M
885
899
  #
886
- # @param [String] :name The name of the port-channel interface to apply
900
+ # @param name [String] The name of the port-channel interface to apply
887
901
  # the configuration to.
888
902
  #
889
- # @param [String] :member The name of the physical Ethernet interface to
903
+ # @param member [String] The name of the physical Ethernet interface to
890
904
  # remove from the logical port-channel interface.
891
905
  #
892
- # @return [Boolean] returns true if the command completed successfully
906
+ # @return [Boolean] Returns true if the command completed successfully.
893
907
  def remove_member(name, member)
894
908
  grpid = /(\d+)/.match(name)[0]
895
909
  configure_interface(member, "no channel-group #{grpid}")
@@ -897,20 +911,20 @@ module Rbeapi
897
911
 
898
912
  ##
899
913
  # set_lacp_mode configures the lacp mode on the port-channel interface
900
- # by configuring the lacp mode value for each member interface. This
914
+ # by configuring the lacp mode value for each member interface. This
901
915
  # method will find all member interfaces for a port-channel and
902
916
  # reconfigure them using the mode argument.
903
917
  #
904
- # @eos_version 4.13.7M
918
+ # @since eos_version 4.13.7M
905
919
  #
906
- # @param [String] :name The interface name to apply the configuration
907
- # values to. The name must be the full interface identifier.
920
+ # @param name [String] The interface name to apply the configuration
921
+ # values to. The name must be the full interface identifier.
908
922
  #
909
- # @param [String] :mode The lacp mode to configure on the member
910
- # interfaces for the port-channel. Valid values include active,
911
- # passive or on
923
+ # @param mode [String] The lacp mode to configure on the member
924
+ # interfaces for the port-channel. Valid values include active,
925
+ # passive or on.
912
926
  #
913
- # @return [Boolean] returns true if the command completed successfully
927
+ # @return [Boolean] Returns true if the command completed successfully.
914
928
  def set_lacp_mode(name, mode)
915
929
  return false unless %w(on passive active).include?(mode)
916
930
  grpid = /(\d+)/.match(name)[0]
@@ -930,29 +944,29 @@ module Rbeapi
930
944
  ##
931
945
  # set_lacp_fallback configures the lacp fallback mode for the
932
946
  # port-channel interface. If the enable keyword is false, lacp fallback
933
- # is configured using the no keyword argument. If the default option is
947
+ # is configured using the no keyword argument. If the default option is
934
948
  # specified and set to true, the lacp fallback value is configured using
935
- # the default keyword. The default keyword takes precedence over the
949
+ # the default keyword. The default keyword takes precedence over the
936
950
  # enable keyword if both options are provided.
937
951
  #
938
- # @eos_version 4.13.7M
952
+ # @since eos_version 4.13.7M
939
953
  #
940
- # @param [String] :name The interface name to apply the configuration
941
- # values to. The name must be the full interface identifier.
954
+ # @param name [String] The interface name to apply the configuration
955
+ # values to. The name must be the full interface identifier.
942
956
  #
943
- # @param [Hash] :opts optional keyword arguments
957
+ # @param opts [Hash] Optional keyword arguments.
944
958
  #
945
- # @option :opts [String] :value Specifies the value to configure for
946
- # the port-channel lacp fallback. Valid values are individual and
947
- # static
959
+ # @option opts value [String] Specifies the value to configure for
960
+ # the port-channel lacp fallback. Valid values are individual and
961
+ # static.
948
962
  #
949
- # @option :opts [Boolean] :enable If false then the command is
963
+ # @option opts enable [Boolean] If false then the command is
950
964
  # negated. Default is true.
951
965
  #
952
- # @option :opts [Boolean] :default Configures the lacp fallback value on
953
- # the interface using the default keyword
966
+ # @option opts default [Boolean] Configures the lacp fallback value on
967
+ # the interface using the default keyword.
954
968
  #
955
- # @return [Boolean] returns true if the command completed successfully
969
+ # @return [Boolean] Returns true if the command completed successfully.
956
970
  def set_lacp_fallback(name, opts = {})
957
971
  commands = command_builder('port-channel lacp fallback', opts)
958
972
  configure_interface(name, commands)
@@ -960,29 +974,29 @@ module Rbeapi
960
974
 
961
975
  ##
962
976
  # set_lacp_timeout configures the lacp fallback timeout for the
963
- # port-channel interface. If the enable keyword is false, lacp fallback
964
- # timeout is configured using the no keyword argument. If the default
977
+ # port-channel interface. If the enable keyword is false, lacp fallback
978
+ # timeout is configured using the no keyword argument. If the default
965
979
  # option is specified and set to true, the lacp fallback timeout value is
966
- # configured using the default keyword. The default keyword takes
980
+ # configured using the default keyword. The default keyword takes
967
981
  # precedence over the enable keyword if both options are provided.
968
982
  #
969
- # @eos_version 4.13.7M
983
+ # @since eos_version 4.13.7M
970
984
  #
971
- # @param [String] :name The interface name to apply the configuration
972
- # values to. The name must be the full interface identifier.
985
+ # @param name [String] The interface name to apply the configuration
986
+ # values to. The name must be the full interface identifier.
973
987
  #
974
- # @param [Hash] :opts optional keyword arguments
988
+ # @param opts [Hash] Optional keyword arguments.
975
989
  #
976
- # @option :opts [String] :value Specifies the value to configure for
990
+ # @option opts value [String] Specifies the value to configure for
977
991
  # the port-channel lacp fallback timeout.
978
992
  #
979
- # @option :opts [Boolean] :enable If false then the command is
993
+ # @option opts enable [Boolean] If false then the command is
980
994
  # negated. Default is true.
981
995
  #
982
- # @option :opts [Boolean] :default Configures the lacp fallback timeout
983
- # value on the interface using the default keyword
996
+ # @option opts default [Boolean] Configures the lacp fallback timeout
997
+ # value on the interface using the default keyword.
984
998
  #
985
- # @return [Boolean] returns true if the command completed successfully
999
+ # @return [Boolean] Returns true if the command completed successfully.
986
1000
  def set_lacp_timeout(name, opts = {})
987
1001
  commands = command_builder('port-channel lacp fallback timeout', opts)
988
1002
  configure_interface(name, commands)
@@ -999,7 +1013,7 @@ module Rbeapi
999
1013
  # Returns the Vxlan interface configuration as a Ruby hash of key/value
1000
1014
  # pairs from the nodes running configuration. This method extends the
1001
1015
  # BaseInterface get method and adds the Vxlan specific attributes to
1002
- # the hash
1016
+ # the hash.
1003
1017
  #
1004
1018
  # @example
1005
1019
  # {
@@ -1014,12 +1028,12 @@ module Rbeapi
1014
1028
  # vlans: <hash>
1015
1029
  # }
1016
1030
  #
1017
- # @param [String] :name The interface name to return from the nodes
1018
- # configuration. This optional parameter defaults to Vxlan1
1031
+ # @param name [String] The interface name to return from the nodes
1032
+ # configuration. This optional parameter defaults to Vxlan1.
1019
1033
  #
1020
1034
  # @return [nil, Hash<String, String>] Returns the interface configuration
1021
- # as a Ruby hash object. If the provided interface name is not found
1022
- # then this method will return nil
1035
+ # as a Ruby hash object. If the provided interface name is not found
1036
+ # then this method will return nil.
1023
1037
  def get(name = 'Vxlan1')
1024
1038
  config = get_block("interface #{name}")
1025
1039
  return nil unless config
@@ -1036,14 +1050,14 @@ module Rbeapi
1036
1050
 
1037
1051
  ##
1038
1052
  # parse_source_interface scans the interface config block and returns the
1039
- # value of the vxlan source-interface. If the source-interface is not
1040
- # configured then the value of DEFAULT_SRC_INTF is used. The hash
1053
+ # value of the vxlan source-interface. If the source-interface is not
1054
+ # configured then the value of DEFAULT_SRC_INTF is used. The hash
1041
1055
  # returned is intended to be merged into the interface resource hash
1042
1056
  #
1043
1057
  # @api private
1044
1058
  #
1045
- # @param [String] :config The interface configuration block to extract
1046
- # the vxlan source-interface value from
1059
+ # @param config [String] The interface configuration block to extract
1060
+ # the vxlan source-interface value from.
1047
1061
  #
1048
1062
  # @return [Hash<Symbol, Object>]
1049
1063
  def parse_source_interface(config)
@@ -1054,14 +1068,14 @@ module Rbeapi
1054
1068
 
1055
1069
  ##
1056
1070
  # parse_multicast_group scans the interface config block and returns the
1057
- # value of the vxlan multicast-group. If the multicast-group is not
1058
- # configured then the value of DEFAULT_MCAST_GRP is used. The hash
1059
- # returned is intended to be merged into the interface resource hash
1071
+ # value of the vxlan multicast-group. If the multicast-group is not
1072
+ # configured then the value of DEFAULT_MCAST_GRP is used. The hash
1073
+ # returned is intended to be merged into the interface resource hash.
1060
1074
  #
1061
1075
  # @api private
1062
1076
  #
1063
- # @param [String] :config The interface configuration block to extract
1064
- # the vxlan multicast-group value from
1077
+ # @param config [String] The interface configuration block to extract
1078
+ # the vxlan multicast-group value from.
1065
1079
  #
1066
1080
  # @return [Hash<Symbol, Object>]
1067
1081
  def parse_multicast_group(config)
@@ -1072,14 +1086,14 @@ module Rbeapi
1072
1086
 
1073
1087
  ##
1074
1088
  # parse_udp_port scans the interface config block and returns the value
1075
- # of the vxlan udp-port setting. The vxlan udp-port value is expected to
1076
- # always be present in the configuration. The returned value is intended
1077
- # to be merged into the interface resource Hash
1089
+ # of the vxlan udp-port setting. The vxlan udp-port value is expected to
1090
+ # always be present in the configuration. The returned value is intended
1091
+ # to be merged into the interface resource Hash.
1078
1092
  #
1079
1093
  # @api private
1080
1094
  #
1081
- # @param [String] :config The interface configuration block to parse the
1082
- # vxlan udp-port value from
1095
+ # @param config [String] The interface configuration block to parse the
1096
+ # vxlan udp-port value from.
1083
1097
  #
1084
1098
  # @return [Hash<Symbol, Object>]
1085
1099
  def parse_udp_port(config)
@@ -1090,15 +1104,15 @@ module Rbeapi
1090
1104
 
1091
1105
  ##
1092
1106
  # parse_flood_list scans the interface config block and returns the list
1093
- # of configured VTEPs that comprise the flood list. If there are no
1107
+ # of configured VTEPs that comprise the flood list. If there are no
1094
1108
  # flood list values configured, the value will return DEFAULT_FLOOD_LIST.
1095
1109
  # The returned value is intended to be merged into the interface resource
1096
1110
  # Hash.
1097
1111
  #
1098
1112
  # @api private
1099
1113
  #
1100
- # @param [String] :config The interface configuration block to parse the
1101
- # vxlan flood list values from
1114
+ # @param config [String] The interface configuration block to parse the
1115
+ # vxlan flood list values from.
1102
1116
  #
1103
1117
  # @return [Hash<Symbol, Object>]
1104
1118
  def parse_flood_list(config)
@@ -1110,13 +1124,13 @@ module Rbeapi
1110
1124
 
1111
1125
  ##
1112
1126
  # parse_vlans scans the interface config block and returns the set of
1113
- # configured vlan to vni mappings. If there are no vlans configured, the
1114
- # value will return an empty Hash
1127
+ # configured vlan to vni mappings. If there are no vlans configured, the
1128
+ # value will return an empty Hash.
1115
1129
  #
1116
1130
  # @api private
1117
1131
  #
1118
- # @param [String] :config The interface configuration block to parse the
1119
- # vxlan flood list values from
1132
+ # @param config [String] The interface configuration block to parse the
1133
+ # vxlan flood list values from.
1120
1134
  #
1121
1135
  # @return [Hash<Symbol, Object>]
1122
1136
  def parse_vlans(config)
@@ -1129,26 +1143,26 @@ module Rbeapi
1129
1143
  private :parse_vlans
1130
1144
 
1131
1145
  ##
1132
- # Configures the vxlan source-interface to the specified value. This
1146
+ # Configures the vxlan source-interface to the specified value. This
1133
1147
  # parameter should be the interface identifier of the interface to act
1134
- # as the source for all Vxlan traffic
1148
+ # as the source for all Vxlan traffic.
1135
1149
  #
1136
- # @param [String] :name The name of the interface to apply the
1137
- # configuration values to
1150
+ # @param name [String] The name of the interface to apply the
1151
+ # configuration values to.
1138
1152
  #
1139
- # @param [Hash] :opt Optional keyword arguments
1153
+ # @param opts [Hash] Optional keyword arguments.
1140
1154
  #
1141
- # @option :opts [String] :value Configures the vxlan source-interface to
1142
- # the specified value
1155
+ # @option opts value [String] Configures the vxlan source-interface to
1156
+ # the specified value.
1143
1157
  #
1144
- # @option :opts [Boolean] :enable If false then the command is
1158
+ # @option opts enable [Boolean] If false then the command is
1145
1159
  # negated. Default is true.
1146
1160
  #
1147
- # @option :opts [Boolean] :default Specifies whether or not the
1148
- # multicast-group command is configured as default. The value of this
1149
- # option has a higher precedence than :enable
1161
+ # @option opts default [Boolean] Specifies whether or not the
1162
+ # multicast-group command is configured as default. The value of this
1163
+ # option has a higher precedence than :enable.
1150
1164
  #
1151
- # @return [Boolean] Returns true if the commands complete successfully
1165
+ # @return [Boolean] Returns true if the commands complete successfully.
1152
1166
  def set_source_interface(name = 'Vxlan1', opts = {})
1153
1167
  commands = command_builder('vxlan source-interface', opts)
1154
1168
  configure_interface(name, commands)
@@ -1156,24 +1170,24 @@ module Rbeapi
1156
1170
 
1157
1171
  ##
1158
1172
  # Configures the vxlan multicast-group flood address to the specified
1159
- # value. The value should be a valid multicast address
1173
+ # value. The value should be a valid multicast address.
1160
1174
  #
1161
- # @param [String] :name The name of the interface to apply the
1162
- # configuration values to
1175
+ # @param name [String] The name of the interface to apply the
1176
+ # configuration values to.
1163
1177
  #
1164
- # @param [Hash] :opt Optional keyword arguments
1178
+ # @param opts [Hash] Optional keyword arguments.
1165
1179
  #
1166
- # @option :opts [String] :value Configures the multicast-group flood
1180
+ # @option opts value [String] Configures the multicast-group flood
1167
1181
  # address to the specified value.
1168
1182
  #
1169
- # @option :opts [Boolean] :enable If false then the command is
1183
+ # @option opts enable [Boolean] If false then the command is
1170
1184
  # negated. Default is true.
1171
1185
  #
1172
- # @option :opts [Boolean] :default Specifies whether or not the
1173
- # multicast-group command is configured as default. The value of this
1174
- # option has a higher precedence than :value
1186
+ # @option opts default [Boolean] Specifies whether or not the
1187
+ # multicast-group command is configured as default. The value of this
1188
+ # option has a higher precedence than :value.
1175
1189
  #
1176
- # @return [Boolean] Returns true if the commands complete successfully
1190
+ # @return [Boolean] Returns true if the commands complete successfully.
1177
1191
  def set_multicast_group(name = 'Vxlan1', opts = {})
1178
1192
  commands = command_builder('vxlan multicast-group', opts)
1179
1193
  configure_interface(name, commands)
@@ -1181,28 +1195,28 @@ module Rbeapi
1181
1195
 
1182
1196
  ##
1183
1197
  # set_udp_port configures the Vxlan udp-port value in EOS for the
1184
- # specified interface name. If the enable keyword is false then the
1185
- # no keyword is used to configure the value. If the default option is
1186
- # provided and set to true, then the default keyword is used. If both
1198
+ # specified interface name. If the enable keyword is false then the
1199
+ # no keyword is used to configure the value. If the default option is
1200
+ # provided and set to true, then the default keyword is used. If both
1187
1201
  # options are provided, the default keyword will take precedence.
1188
1202
  #
1189
- # @eos_version 4.13.7M
1203
+ # @since eos_version 4.13.7M
1190
1204
  #
1191
- # @param [String] :name The name of the vxlan interface to configure
1205
+ # @param name [String] The name of the vxlan interface to configure.
1192
1206
  #
1193
- # @param [Hash] :opts optional keyword arguments
1207
+ # @param opts [Hash] Optional keyword arguments.
1194
1208
  #
1195
- # @option :opts [String] :value Specifies the value to configure the
1196
- # udp-port setting to. Valid values are in the range of 1024 to
1197
- # 65535
1209
+ # @option opts value [String] Specifies the value to configure the
1210
+ # udp-port setting to. Valid values are in the range of 1024 to
1211
+ # 65535.
1198
1212
  #
1199
- # @option :opts [Boolean] :enable If false then the command is
1213
+ # @option opts enable [Boolean] If false then the command is
1200
1214
  # negated. Default is true.
1201
1215
  #
1202
- # @option :opts [Boolean] :default Configures the udp-port value on
1203
- # the interface using the default keyword
1216
+ # @option opts default [Boolean] Configures the udp-port value on
1217
+ # the interface using the default keyword.
1204
1218
  #
1205
- # @return [Boolean] returns true if the command completed successfully
1219
+ # @return [Boolean] Returns true if the command completed successfully.
1206
1220
  def set_udp_port(name, opts = {})
1207
1221
  commands = command_builder('vxlan udp-port', opts)
1208
1222
  configure_interface(name, commands)
@@ -1210,47 +1224,49 @@ module Rbeapi
1210
1224
 
1211
1225
  ##
1212
1226
  # add_vtep adds a new VTEP endpoint to the global flood list for the
1213
- # specified interface. If the VTEP endpoint is already configured, this
1227
+ # specified interface. If the VTEP endpoint is already configured, this
1214
1228
  # method will still return successfully.
1215
1229
  #
1216
- # @eos_version 4.13.7M
1230
+ # @since eos_version 4.13.7M
1231
+ #
1232
+ # @param name [String] The name of the interface to configure.
1217
1233
  #
1218
- # @param [String] :name The name of the interface to configure
1219
- # @param [String] :vtep The IP address of the remote VTEP endpoint
1234
+ # @param vtep [String] The IP address of the remote VTEP endpoint.
1220
1235
  #
1221
- # @return [Boolean] Returns true if the commands completed successfully
1236
+ # @return [Boolean] Returns true if the commands completed successfully.
1222
1237
  def add_vtep(name, vtep)
1223
1238
  configure_interface(name, "vxlan flood vtep add #{vtep}")
1224
1239
  end
1225
1240
 
1226
1241
  ##
1227
1242
  # remove_vtep deletes a VTEP endpoint from the global flood list for the
1228
- # specified interface. If the VTEP endpoint specified is not configured,
1243
+ # specified interface. If the VTEP endpoint specified is not configured,
1229
1244
  # this method will still return successfully.
1230
1245
  #
1231
- # @eos_version 4.13.7M
1246
+ # @since eos_version 4.13.7M
1247
+ #
1248
+ # @param name [String] The name of the interface to configure.
1232
1249
  #
1233
- # @param [String] :name The name of the interface to configure
1234
- # @param [String] :vtep The IP address of the remote VTEP endpoint
1250
+ # @param vtep [String] The IP address of the remote VTEP endpoint.
1235
1251
  #
1236
- # @return [Boolean] Returns true if the commands completed successfully
1252
+ # @return [Boolean] Returns true if the commands completed successfully.
1237
1253
  def remove_vtep(name, vtep)
1238
1254
  configure_interface(name, "vxlan flood vtep remove #{vtep}")
1239
1255
  end
1240
1256
 
1241
1257
  ##
1242
1258
  # update_vlan creates a new vlan to vni mapping for the specified
1243
- # interface in the nodes current configuration
1259
+ # interface in the nodes current configuration.
1244
1260
  #
1245
- # @eos_verson 4.13.7M
1261
+ # @since eos_verson 4.13.7M
1246
1262
  #
1247
- # @param [String] :name The name of the interface to configure
1263
+ # @param name [String] The name of the interface to configure.
1248
1264
  #
1249
- # @param [Fixnum] :vlan The VLAN ID to configure.
1265
+ # @param vlan [Fixnum] The VLAN ID to configure.
1250
1266
  #
1251
- # @param [Fixnum] :vni The VNI value to map the VLAN into
1267
+ # @param vni [Fixnum] The VNI value to map the VLAN into.
1252
1268
  #
1253
- # @return [Boolean] returns true if the command completed successfully
1269
+ # @return [Boolean] Returns true if the command completed successfully.
1254
1270
  def update_vlan(name, vlan, vni)
1255
1271
  configure_interface(name, "vxlan vlan #{vlan} vni #{vni}")
1256
1272
  end
@@ -1259,15 +1275,15 @@ module Rbeapi
1259
1275
  # remove_vlan deletes a previously configured VLAN to VNI mapping on the
1260
1276
  # specified interface.
1261
1277
  #
1262
- # @eos_version 4.13.7M
1278
+ # @since eos_version 4.13.7M
1263
1279
  #
1264
- # @param [String] :name the name of the interface to configure
1280
+ # @param name [String] the name of the interface to configure.
1265
1281
  #
1266
- # @param [Fixnum] :vlan The VLAN ID to remove from the configuration. If
1282
+ # @param vlan [Fixnum] The VLAN ID to remove from the configuration. If
1267
1283
  # the VLAN ID does not exist, this method will still return
1268
- # successfully
1284
+ # successfully.
1269
1285
  #
1270
- # @return [Boolean] returns true if the command completed successfully
1286
+ # @return [Boolean] Returns true if the command completed successfully.
1271
1287
  def remove_vlan(name, vlan)
1272
1288
  configure_interface(name, "no vxlan vlan #{vlan} vni")
1273
1289
  end