rbeapi 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/CHANGELOG.md +12 -0
- data/Gemfile +4 -0
- data/README.md +9 -9
- data/Rakefile +20 -0
- data/lib/rbeapi/api/bgp.rb +770 -0
- data/lib/rbeapi/api/dns.rb +32 -31
- data/lib/rbeapi/api/interfaces.rb +106 -87
- data/lib/rbeapi/api/ipinterfaces.rb +27 -42
- data/lib/rbeapi/api/logging.rb +9 -19
- data/lib/rbeapi/api/mlag.rb +60 -90
- data/lib/rbeapi/api/ntp.rb +12 -17
- data/lib/rbeapi/api/ospf.rb +9 -26
- data/lib/rbeapi/api/radius.rb +29 -43
- data/lib/rbeapi/api/snmp.rb +54 -83
- data/lib/rbeapi/api/staticroutes.rb +68 -21
- data/lib/rbeapi/api/stp.rb +41 -49
- data/lib/rbeapi/api/switchports.rb +41 -68
- data/lib/rbeapi/api/system.rb +6 -12
- data/lib/rbeapi/api/tacacs.rb +12 -21
- data/lib/rbeapi/api/varp.rb +25 -26
- data/lib/rbeapi/api/vlans.rb +19 -28
- data/lib/rbeapi/api.rb +30 -21
- data/lib/rbeapi/client.rb +3 -1
- data/lib/rbeapi/version.rb +1 -1
- data/rbeapi.spec.tmpl +4 -0
- data/spec/spec_helper.rb +8 -0
- data/spec/system/api_ospf_interfaces_spec.rb +16 -0
- data/spec/system/api_ospf_spec.rb +14 -0
- data/spec/system/api_varp_interfaces_spec.rb +16 -0
- data/spec/system/rbeapi/api/dns_spec.rb +66 -0
- data/spec/system/rbeapi/api/interfaces_base_spec.rb +4 -4
- data/spec/system/rbeapi/api/interfaces_ethernet_spec.rb +6 -6
- data/spec/system/rbeapi/api/interfaces_portchannel_spec.rb +6 -6
- data/spec/system/rbeapi/api/interfaces_vxlan_spec.rb +4 -4
- data/spec/system/rbeapi/api/ipinterfaces_spec.rb +44 -0
- data/spec/system/rbeapi/api/logging_spec.rb +18 -2
- data/spec/system/rbeapi/api/mlag_spec.rb +94 -2
- data/spec/system/rbeapi/api/ntp_spec.rb +14 -0
- data/spec/system/rbeapi/api/snmp_spec.rb +105 -0
- data/spec/system/rbeapi/api/stp_interfaces_spec.rb +43 -6
- data/spec/system/rbeapi/api/stp_spec.rb +18 -6
- data/spec/system/rbeapi/api/switchports_spec.rb +75 -3
- data/spec/system/rbeapi/api/system_spec.rb +16 -0
- data/spec/system/rbeapi/api/vlans_spec.rb +28 -0
- data/spec/unit/rbeapi/api/bgp/bgp_neighbors_spec.rb +289 -0
- data/spec/unit/rbeapi/api/bgp/bgp_spec.rb +192 -0
- data/spec/unit/rbeapi/api/bgp/fixture_bgp.text +101 -0
- data/spec/unit/rbeapi/api/interfaces/base_spec.rb +7 -13
- data/spec/unit/rbeapi/api/interfaces/ethernet_spec.rb +3 -3
- data/spec/unit/rbeapi/api/interfaces/portchannel_spec.rb +11 -16
- data/spec/unit/rbeapi/api/interfaces/vxlan_spec.rb +15 -21
- data/spec/unit/rbeapi/api/mlag/default_spec.rb +13 -19
- data/spec/unit/rbeapi/api/staticroutes/default_spec.rb +138 -0
- data/spec/unit/rbeapi/api/staticroutes/fixture_staticroutes.text +5 -0
- data/spec/unit/rbeapi/api/vlans/default_spec.rb +4 -4
- metadata +15 -4
data/lib/rbeapi/api/dns.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (c) 2014, Arista Networks, Inc.
|
2
|
+
# Copyright (c) 2014,2015, Arista Networks, Inc.
|
3
3
|
# All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
@@ -50,7 +50,7 @@ module Rbeapi
|
|
50
50
|
# "domain_list": array<strings>
|
51
51
|
# }
|
52
52
|
#
|
53
|
-
# @return [Hash] A Ruby hash
|
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 = {}
|
@@ -81,25 +81,19 @@ module Rbeapi
|
|
81
81
|
#
|
82
82
|
# @param [Hash] opts The configuration parameters
|
83
83
|
# @option opts [string] :value The value to set the domain-name to
|
84
|
+
# @option :opts [Boolean] :enable If false then the command is
|
85
|
+
# negated. Default is true.
|
84
86
|
# @option opts [Boolean] :default The value should be set to default
|
85
87
|
#
|
86
88
|
# @return [Boolean] returns true if the command completed successfully
|
87
89
|
def set_domain_name(opts = {})
|
88
|
-
|
89
|
-
default = opts[:default] || false
|
90
|
-
|
91
|
-
case default
|
92
|
-
when true
|
93
|
-
cmds = 'default ip domain-name'
|
94
|
-
when false
|
95
|
-
cmds = (value ? "ip domain-name #{value}" : 'no ip domain-name')
|
96
|
-
end
|
90
|
+
cmds = command_builder('ip domain-name', opts)
|
97
91
|
configure(cmds)
|
98
92
|
end
|
99
93
|
|
100
94
|
##
|
101
95
|
# set_name_servers configures the set of name servers that eos will use
|
102
|
-
# to resolve dns queries. If the
|
96
|
+
# to resolve dns queries. If the enable option is false, then the
|
103
97
|
# name-server list will be configured using the no keyword. If the
|
104
98
|
# default option is specified, then the name server list will be
|
105
99
|
# configured using the default keyword. If both options are provided the
|
@@ -112,28 +106,30 @@ module Rbeapi
|
|
112
106
|
# no ip name-server
|
113
107
|
# default ip name-server
|
114
108
|
#
|
115
|
-
# @
|
109
|
+
# @param [Hash] opts The configuration parameters
|
110
|
+
# @option opts [string] :value The set of name servers to configure on the
|
116
111
|
# node. The list of name servers will be replace in the nodes running
|
117
112
|
# configuration by the list provided in value
|
118
|
-
#
|
113
|
+
# @option :opts [Boolean] :enable If false then the command is
|
114
|
+
# negated. Default is true.
|
119
115
|
# @option [Boolean] :default Configures the ip name-servers using the
|
120
|
-
# default keyword argument
|
116
|
+
# default keyword argument. Default takes precedence over enable.
|
121
117
|
#
|
122
|
-
# @return [Boolean] returns true if the commands completed
|
118
|
+
# @return [Boolean] returns true if the commands completed successfully
|
123
119
|
def set_name_servers(opts = {})
|
124
|
-
value = opts[:value]
|
120
|
+
value = opts[:value]
|
121
|
+
enable = opts.fetch(:enable, true)
|
125
122
|
default = opts[:default] || false
|
126
123
|
|
127
124
|
case default
|
128
125
|
when true
|
129
126
|
cmds = 'default ip name-server'
|
130
127
|
when false
|
131
|
-
cmds = []
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
cmds << "ip name-server #{srv}"
|
128
|
+
cmds = ['no ip name-server']
|
129
|
+
if enable
|
130
|
+
value.each do |srv|
|
131
|
+
cmds << "ip name-server #{srv}"
|
132
|
+
end
|
137
133
|
end
|
138
134
|
end
|
139
135
|
configure cmds
|
@@ -149,8 +145,8 @@ module Rbeapi
|
|
149
145
|
|
150
146
|
##
|
151
147
|
# set_domain_list configures the set of domain names to search when
|
152
|
-
# making dns queries for the FQDN. If the
|
153
|
-
# the domain-list will be configured using the no keyword. If the
|
148
|
+
# making dns queries for the FQDN. If the enable option is set to false,
|
149
|
+
# then the domain-list will be configured using the no keyword. If the
|
154
150
|
# default option is specified, then the domain list will be configured
|
155
151
|
# using the default keyword. If both options are provided the default
|
156
152
|
# keyword option will take precedence.
|
@@ -169,21 +165,26 @@ module Rbeapi
|
|
169
165
|
# @option [Boolean] :default Configures the ip domain-list using the
|
170
166
|
# default keyword argument
|
171
167
|
#
|
172
|
-
# @return [Boolean] returns true if the commands completed
|
168
|
+
# @return [Boolean] returns true if the commands completed successfully
|
173
169
|
def set_domain_list(opts = {})
|
174
|
-
value = opts[:value]
|
170
|
+
value = opts[:value]
|
171
|
+
enable = opts.fetch(:enable, true)
|
175
172
|
default = opts[:default] || false
|
176
173
|
|
174
|
+
cmds = []
|
177
175
|
case default
|
178
176
|
when true
|
179
|
-
|
177
|
+
parse_domain_list[:domain_list].each do |name|
|
178
|
+
cmds << "default ip domain-list #{name}"
|
179
|
+
end
|
180
180
|
when false
|
181
|
-
cmds = []
|
182
181
|
parse_domain_list[:domain_list].each do |name|
|
183
182
|
cmds << "no ip domain-list #{name}"
|
184
183
|
end
|
185
|
-
|
186
|
-
|
184
|
+
if enable
|
185
|
+
value.each do |name|
|
186
|
+
cmds << "ip domain-list #{name}"
|
187
|
+
end
|
187
188
|
end
|
188
189
|
end
|
189
190
|
configure cmds
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (c) 2014, Arista Networks, Inc.
|
2
|
+
# Copyright (c) 2014,2015, Arista Networks, Inc.
|
3
3
|
# All rights reserved.
|
4
4
|
#
|
5
5
|
# Redistribution and use in source and binary forms, with or without
|
@@ -100,7 +100,7 @@ module Rbeapi
|
|
100
100
|
##
|
101
101
|
# get returns the specified interface resource hash that represents the
|
102
102
|
# node's current interface configuration. The BaseInterface class
|
103
|
-
# provides all the set of
|
103
|
+
# provides all the set of attributes that are common to all interfaces
|
104
104
|
# in EOS. This method will return an interface type of generic
|
105
105
|
#
|
106
106
|
# @example
|
@@ -129,14 +129,14 @@ module Rbeapi
|
|
129
129
|
|
130
130
|
##
|
131
131
|
# parse_description scans the provided configuration block and parses
|
132
|
-
# the description value if it exists in the
|
132
|
+
# the description value if it exists in the configuration. If the
|
133
133
|
# description value is not configured, then the DEFALT_INTF_DESCRIPTION
|
134
|
-
# value is returned. The hash returned by this method is
|
134
|
+
# value is returned. The hash returned by this method is intended to be
|
135
135
|
# merged into the interface resource hash returned by the get method.
|
136
136
|
#
|
137
137
|
# @api private
|
138
138
|
#
|
139
|
-
# @
|
139
|
+
# @return [Hash<Symbol, Object>] resource hash attribute
|
140
140
|
def parse_description(config)
|
141
141
|
mdata = /^\s{3}description\s(.+)$/.match(config)
|
142
142
|
{ description: mdata.nil? ? DEFAULT_INTF_DESCRIPTION : mdata[1] }
|
@@ -148,7 +148,7 @@ module Rbeapi
|
|
148
148
|
# the shutdown value. If the shutdown value is configured then true
|
149
149
|
# is returned as its value otherwise false is returned. The hash
|
150
150
|
# returned by this method is intended to be merged into the interface
|
151
|
-
#
|
151
|
+
# resource hash returned by the get method.
|
152
152
|
#
|
153
153
|
# @api private
|
154
154
|
#
|
@@ -171,7 +171,7 @@ module Rbeapi
|
|
171
171
|
# interface name must be the full interface identifier (ie Loopback,
|
172
172
|
# not Lo)
|
173
173
|
#
|
174
|
-
# @return [Boolean] returns true if the command completed
|
174
|
+
# @return [Boolean] returns true if the command completed successfully
|
175
175
|
def create(value)
|
176
176
|
configure("interface #{value}")
|
177
177
|
end
|
@@ -212,12 +212,11 @@ module Rbeapi
|
|
212
212
|
|
213
213
|
##
|
214
214
|
# set_description configures the description value for the specified
|
215
|
-
# interface name in the nodes running configuration. If the
|
216
|
-
#
|
217
|
-
#
|
218
|
-
#
|
219
|
-
#
|
220
|
-
# keyword if both are provided.
|
215
|
+
# interface name in the nodes running configuration. If the enable
|
216
|
+
# keyword is false then the description value is negated using the no
|
217
|
+
# keyword. If the default keyword is set to true, then the description
|
218
|
+
# value is defaulted using the default keyword. The default keyword takes
|
219
|
+
# precedence over the enable keyword if both are provided.
|
221
220
|
#
|
222
221
|
# @eos_version 4.13.7M
|
223
222
|
#
|
@@ -229,6 +228,9 @@ module Rbeapi
|
|
229
228
|
# @option :opts [String] :value The value to configure the description
|
230
229
|
# to in the node's configuration.
|
231
230
|
#
|
231
|
+
# @option :opts [Boolean] :enable If false then the command is
|
232
|
+
# negated. Default is true.
|
233
|
+
#
|
232
234
|
# @option :opts [Boolean] :default Configure the interface description
|
233
235
|
# using the default keyword
|
234
236
|
#
|
@@ -239,14 +241,13 @@ module Rbeapi
|
|
239
241
|
end
|
240
242
|
|
241
243
|
##
|
242
|
-
# set_shutdown configures the
|
243
|
-
# interface in the node. If the
|
244
|
-
# is
|
245
|
-
# interface is
|
246
|
-
#
|
247
|
-
#
|
248
|
-
#
|
249
|
-
# keyword takes precedence over the value keyword if both are provided.
|
244
|
+
# set_shutdown configures the administrative state of the specified
|
245
|
+
# interface in the node. If the enable keyword is false, then the
|
246
|
+
# interface is administratively disabled. If the enable keyword is
|
247
|
+
# true, then the interface is administratively enabled. If the default
|
248
|
+
# keyword is set to true, then the interface shutdown value is configured
|
249
|
+
# using the default keyword. The default keyword takes precedence
|
250
|
+
# over the enable keyword if both are provided.
|
250
251
|
#
|
251
252
|
# @eos_version 4.13.7M
|
252
253
|
#
|
@@ -255,15 +256,19 @@ module Rbeapi
|
|
255
256
|
#
|
256
257
|
# @param [hash] :opts Optional keyword arguments
|
257
258
|
#
|
258
|
-
# @option :opts [Boolean] :
|
259
|
-
# administratively
|
260
|
-
# administratively
|
259
|
+
# @option :opts [Boolean] :enable True if the interface should be
|
260
|
+
# administratively enabled or false if the interface should be
|
261
|
+
# administratively disabled.
|
261
262
|
#
|
262
263
|
# @option :opts [Boolean] :default Configure the interface shutdown
|
263
264
|
# using the default keyword
|
264
265
|
#
|
265
266
|
# @return [Boolean] returns true if the command completed successfully
|
266
267
|
def set_shutdown(name, opts = {})
|
268
|
+
fail 'set_shutdown has the value option set' if opts[:value]
|
269
|
+
# Shutdown semantics are opposite of enable semantics so invert enable
|
270
|
+
value = !opts[:enable]
|
271
|
+
opts.merge!(enable: value)
|
267
272
|
commands = command_builder('shutdown', opts)
|
268
273
|
configure_interface(name, commands)
|
269
274
|
end
|
@@ -279,8 +284,8 @@ module Rbeapi
|
|
279
284
|
DEFAULT_FORCED = false
|
280
285
|
|
281
286
|
##
|
282
|
-
# get returns the specified
|
283
|
-
#
|
287
|
+
# get returns the specified Ethernet interface resource hash that
|
288
|
+
# represents the interface's current configuration in the node.
|
284
289
|
#
|
285
290
|
# The resource hash returned contains the following information:
|
286
291
|
#
|
@@ -288,11 +293,11 @@ module Rbeapi
|
|
288
293
|
# * type (string): will always be 'ethernet'
|
289
294
|
# * description (string): the interface description value
|
290
295
|
# * speed (string): the current speed setting for the interface speed
|
291
|
-
# * forced (boolean): true if
|
296
|
+
# * forced (boolean): true if auto negotiation is disabled otherwise
|
292
297
|
# false
|
293
298
|
# * sflow (boolean): true if sflow is enabled on the interface
|
294
299
|
# otherwise false
|
295
|
-
# * flowcontrol_send (string): the
|
300
|
+
# * flowcontrol_send (string): the interface flowcontrol send value.
|
296
301
|
# Valid values are 'on' or 'off'
|
297
302
|
# * flowconrol_receive (string): the interface flowcontrol receive
|
298
303
|
# value. Valid values are 'on' or 'off'
|
@@ -411,7 +416,7 @@ module Rbeapi
|
|
411
416
|
|
412
417
|
##
|
413
418
|
# set_speed configures the interface speed and negotiation values on the
|
414
|
-
# specified interface. If the
|
419
|
+
# specified interface. If the enable option is false the speed
|
415
420
|
# setting is configured using the no keyword. If the default options is
|
416
421
|
# set to true, then the speed setting is configured using the default
|
417
422
|
# keyword. If both options are specified, the default keyword takes
|
@@ -427,7 +432,10 @@ module Rbeapi
|
|
427
432
|
# @option [String] :value The value to configure the speed setting to in
|
428
433
|
# the nodes running configuration
|
429
434
|
#
|
430
|
-
# @option [Boolean] :
|
435
|
+
# @option :opts [Boolean] :enable If false then the command is
|
436
|
+
# negated. Default is true.
|
437
|
+
#
|
438
|
+
# @option [Boolean] :forced Specifies if auto negotiation should be
|
431
439
|
# enabled (true) or disabled (false)
|
432
440
|
#
|
433
441
|
# @option :opts [Boolean] :default Configures the sflow value on the
|
@@ -437,6 +445,7 @@ module Rbeapi
|
|
437
445
|
def set_speed(name, opts = {})
|
438
446
|
value = opts[:value]
|
439
447
|
forced = opts.fetch(:forced, false)
|
448
|
+
enable = opts.fetch(:enable, true)
|
440
449
|
default = opts.fetch(:default, false)
|
441
450
|
|
442
451
|
forced = 'forced' if forced
|
@@ -447,19 +456,18 @@ module Rbeapi
|
|
447
456
|
when true
|
448
457
|
cmds << 'default speed'
|
449
458
|
when false
|
450
|
-
cmds <<
|
459
|
+
cmds << enable ? "speed #{forced} #{value}" : 'no speed'
|
451
460
|
end
|
452
461
|
configure cmds
|
453
462
|
end
|
454
463
|
|
455
464
|
##
|
456
465
|
# set_sflow configures the administrative state of sflow on the
|
457
|
-
# interface. Setting the
|
458
|
-
# and setting
|
459
|
-
# value is not provided, the sflow state is negated using the no keyword.
|
466
|
+
# interface. Setting the enable keyword to true enables sflow on the
|
467
|
+
# interface and setting enable to false disables sflow on the interface.
|
460
468
|
# If the default keyword is set to true, then the sflow value is
|
461
469
|
# defaulted using the default keyword. The default keyword takes
|
462
|
-
# precedence over the
|
470
|
+
# precedence over the enable keyword
|
463
471
|
#
|
464
472
|
# @eos_version 4.13.7M
|
465
473
|
#
|
@@ -468,38 +476,25 @@ module Rbeapi
|
|
468
476
|
#
|
469
477
|
# @param [Hash] :opts optional keyword arguments
|
470
478
|
#
|
471
|
-
# @option :opts [Boolean] :
|
472
|
-
# disables sflow on the interface if false
|
479
|
+
# @option :opts [Boolean] :enable Enables sflow if the value is true or
|
480
|
+
# disables sflow on the interface if false. Default is true.
|
473
481
|
#
|
474
482
|
# @option :opts [Boolean] :default Configures the sflow value on the
|
475
483
|
# interface using the default keyword
|
476
484
|
#
|
477
485
|
# @return [Boolean] returns true if the command completed successfully
|
478
486
|
def set_sflow(name, opts = {})
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
case default
|
483
|
-
when true
|
484
|
-
command = 'default sflow enable'
|
485
|
-
when false
|
486
|
-
case value
|
487
|
-
when true
|
488
|
-
command = 'sflow enable'
|
489
|
-
when false
|
490
|
-
command = 'no sflow enable'
|
491
|
-
end
|
492
|
-
end
|
493
|
-
configure_interface(name, command)
|
487
|
+
commands = command_builder('sflow enable', opts)
|
488
|
+
configure_interface(name, commands)
|
494
489
|
end
|
495
490
|
|
496
491
|
##
|
497
492
|
# set_flowcontrol configures the flowcontrol value either on or off for
|
498
493
|
# the for the specified interface in the specified direction (either send
|
499
|
-
# or receive). If the
|
494
|
+
# or receive). If the enable keyword is false then the configuration is
|
500
495
|
# negated using the no keyword. If the default keyword is set to true,
|
501
496
|
# then the state value is defaulted using the default keyword. The
|
502
|
-
# default keyword takes precedence over the
|
497
|
+
# default keyword takes precedence over the enable keyword
|
503
498
|
#
|
504
499
|
# @eos_version 4.13.7M
|
505
500
|
#
|
@@ -514,6 +509,9 @@ module Rbeapi
|
|
514
509
|
# @option :opts [String] :value Specifies the value to configure the
|
515
510
|
# flowcontrol setting for. Valid values include on or off
|
516
511
|
#
|
512
|
+
# @option :opts [Boolean] :enable If false then the command is
|
513
|
+
# negated. Default is true.
|
514
|
+
#
|
517
515
|
# @option :opts [Boolean] :default Configures the flowcontrol value on
|
518
516
|
# the interface using the default keyword
|
519
517
|
#
|
@@ -539,6 +537,9 @@ module Rbeapi
|
|
539
537
|
# @option :opts [String] :value Specifies the value to configure the
|
540
538
|
# flowcontrol setting for. Valid values include on or off
|
541
539
|
#
|
540
|
+
# @option :opts [Boolean] :enable If false then the command is
|
541
|
+
# negated. Default is true.
|
542
|
+
#
|
542
543
|
# @option :opts [Boolean] :default Configures the flowcontrol value on
|
543
544
|
# the interface using the default keyword
|
544
545
|
#
|
@@ -563,6 +564,9 @@ module Rbeapi
|
|
563
564
|
# @option :opts [String] :value Specifies the value to configure the
|
564
565
|
# flowcontrol setting for. Valid values include on or off
|
565
566
|
#
|
567
|
+
# @option :opts [Boolean] :enable If false then the command is
|
568
|
+
# negated. Default is true.
|
569
|
+
#
|
566
570
|
# @option :opts [Boolean] :default Configures the flowcontrol value on
|
567
571
|
# the interface using the default keyword
|
568
572
|
#
|
@@ -622,7 +626,7 @@ module Rbeapi
|
|
622
626
|
|
623
627
|
##
|
624
628
|
# parse_members scans the nodes running config and returns all of the
|
625
|
-
#
|
629
|
+
# Ethernet members for the port-channel interface specified. If the
|
626
630
|
# port-channel interface has no members configured, then this method will
|
627
631
|
# assign an empty array as the value for members. The hash returned is
|
628
632
|
# intended to be merged into the interface resource hash
|
@@ -637,7 +641,7 @@ module Rbeapi
|
|
637
641
|
grpid = name.scan(/(?<=Port-Channel)\d+/)[0]
|
638
642
|
command = "show port-channel #{grpid} all-ports"
|
639
643
|
config = node.enable(command, format: 'text')
|
640
|
-
values = config.first[:result]['output'].scan(
|
644
|
+
values = config.first[:result]['output'].scan(/\bEthernet[^\s]+/)
|
641
645
|
{ members: values }
|
642
646
|
end
|
643
647
|
private :parse_members
|
@@ -673,7 +677,7 @@ module Rbeapi
|
|
673
677
|
#
|
674
678
|
# @api private
|
675
679
|
#
|
676
|
-
# @param [String] :config The interface configuration
|
680
|
+
# @param [String] :config The interface configuration block to extract
|
677
681
|
# the minimum links value from
|
678
682
|
#
|
679
683
|
# @return [Hash<Symbol, Object>] resource hash attribute
|
@@ -685,7 +689,7 @@ module Rbeapi
|
|
685
689
|
|
686
690
|
##
|
687
691
|
# parse_lacp_fallback scans the interface config block and returns the
|
688
|
-
#
|
692
|
+
# configured value of the lacp fallback attribute. If the value is not
|
689
693
|
# configured, then the method will return the value of
|
690
694
|
# DEFAULT_LACP_FALLBACK. The hash returned is intended to be merged into
|
691
695
|
# the interface resource hash
|
@@ -722,11 +726,11 @@ module Rbeapi
|
|
722
726
|
|
723
727
|
##
|
724
728
|
# set_minimum_links configures the minimum physical links up required to
|
725
|
-
# consider the logical portchannel interface operationally up. If
|
726
|
-
#
|
727
|
-
# keyword argument. If the default keyword argument is provided and
|
728
|
-
# to true, the minimum-links value is defaulted using the default
|
729
|
-
# keyword. The default keyword takes precedence over the
|
729
|
+
# consider the logical portchannel interface operationally up. If the
|
730
|
+
# enable keyword is false then the minimum-links is configured using the
|
731
|
+
# no keyword argument. If the default keyword argument is provided and
|
732
|
+
# set to true, the minimum-links value is defaulted using the default
|
733
|
+
# keyword. The default keyword takes precedence over the enable keyword
|
730
734
|
# argument if both are provided.
|
731
735
|
#
|
732
736
|
# @eos_version 4.13.7M
|
@@ -740,6 +744,9 @@ module Rbeapi
|
|
740
744
|
# configure the minimum-links to in the configuration. Valid values
|
741
745
|
# are in the range of 1 to 16.
|
742
746
|
#
|
747
|
+
# @option :opts [Boolean] :enable If false then the command is
|
748
|
+
# negated. Default is true.
|
749
|
+
#
|
743
750
|
# @option :opts [Boolean] :default Configures the minimum links value on
|
744
751
|
# the interface using the default keyword
|
745
752
|
#
|
@@ -796,7 +803,7 @@ module Rbeapi
|
|
796
803
|
# @param [String] :name The name of the port-channel interface to apply
|
797
804
|
# the configuration to.
|
798
805
|
#
|
799
|
-
# @param [String] :member The name of the physical
|
806
|
+
# @param [String] :member The name of the physical Ethernet interface to
|
800
807
|
# add to the logical port-channel interface.
|
801
808
|
#
|
802
809
|
# @return [Boolean] returns true if the command completed successfully
|
@@ -816,7 +823,7 @@ module Rbeapi
|
|
816
823
|
# @param [String] :name The name of the port-channel interface to apply
|
817
824
|
# the configuration to.
|
818
825
|
#
|
819
|
-
# @param [String] :member The name of the physical
|
826
|
+
# @param [String] :member The name of the physical Ethernet interface to
|
820
827
|
# remove from the logical port-channel interface.
|
821
828
|
#
|
822
829
|
# @return [Boolean] returns true if the command completed successfully
|
@@ -859,11 +866,11 @@ module Rbeapi
|
|
859
866
|
|
860
867
|
##
|
861
868
|
# set_lacp_fallback configures the lacp fallback mode for the
|
862
|
-
# port-channel interface. If
|
863
|
-
# configured using the no keyword argument. If the default option is
|
869
|
+
# port-channel interface. If the enable keyword is false, lacp fallback
|
870
|
+
# is configured using the no keyword argument. If the default option is
|
864
871
|
# specified and set to true, the lacp fallback value is configured using
|
865
872
|
# the default keyword. The default keyword takes precedence over the
|
866
|
-
#
|
873
|
+
# enable keyword if both options are provided.
|
867
874
|
#
|
868
875
|
# @eos_version 4.13.7M
|
869
876
|
#
|
@@ -876,23 +883,25 @@ module Rbeapi
|
|
876
883
|
# the port-channel lacp fallback. Valid values are individual and
|
877
884
|
# static
|
878
885
|
#
|
886
|
+
# @option :opts [Boolean] :enable If false then the command is
|
887
|
+
# negated. Default is true.
|
888
|
+
#
|
879
889
|
# @option :opts [Boolean] :default Configures the lacp fallback value on
|
880
890
|
# the interface using the default keyword
|
881
891
|
#
|
882
892
|
# @return [Boolean] returns true if the command completed successfully
|
883
893
|
def set_lacp_fallback(name, opts = {})
|
884
|
-
opts[:value] = nil if opts[:value] == 'disabled'
|
885
894
|
commands = command_builder('port-channel lacp fallback', opts)
|
886
895
|
configure_interface(name, commands)
|
887
896
|
end
|
888
897
|
|
889
898
|
##
|
890
|
-
# set_lacp_timeout configures the lacp fallback
|
891
|
-
# port-channel interface. If
|
892
|
-
# is configured using the no keyword argument. If the default
|
893
|
-
# specified and set to true, the lacp fallback timeout value is
|
899
|
+
# set_lacp_timeout configures the lacp fallback timeout for the
|
900
|
+
# port-channel interface. If the enable keyword is false, lacp fallback
|
901
|
+
# timeout is configured using the no keyword argument. If the default
|
902
|
+
# option is specified and set to true, the lacp fallback timeout value is
|
894
903
|
# configured using the default keyword. The default keyword takes
|
895
|
-
# precedence over the
|
904
|
+
# precedence over the enable keyword if both options are provided.
|
896
905
|
#
|
897
906
|
# @eos_version 4.13.7M
|
898
907
|
#
|
@@ -905,6 +914,9 @@ module Rbeapi
|
|
905
914
|
# the port-channel lacp fallback timeout. Valid values range from
|
906
915
|
# 1 to 100 seconds
|
907
916
|
#
|
917
|
+
# @option :opts [Boolean] :enable If false then the command is
|
918
|
+
# negated. Default is true.
|
919
|
+
#
|
908
920
|
# @option :opts [Boolean] :default Configures the lacp fallback timeout
|
909
921
|
# value on the interface using the default keyword
|
910
922
|
#
|
@@ -931,7 +943,7 @@ module Rbeapi
|
|
931
943
|
#
|
932
944
|
# * name: (String) The full interface name identifier
|
933
945
|
# * type: (String) 'vxlan'
|
934
|
-
# *
|
946
|
+
# * description: (String) The configured interface description
|
935
947
|
# * shutdown: (Boolean) The admin state of the interface
|
936
948
|
# * source_interface: (String) The vxlan source-interface value
|
937
949
|
# * multicast_group: (String) The vxlan multicast-group value
|
@@ -960,7 +972,7 @@ module Rbeapi
|
|
960
972
|
|
961
973
|
##
|
962
974
|
# parse_source_interface scans the interface config block and returns the
|
963
|
-
# value of the vxlan source-
|
975
|
+
# value of the vxlan source-interface. If the source-interface is not
|
964
976
|
# configured then the value of DEFAULT_SRC_INTF is used. The hash
|
965
977
|
# returned is intended to be merged into the interface resource hash
|
966
978
|
#
|
@@ -1016,7 +1028,7 @@ module Rbeapi
|
|
1016
1028
|
# parse_flood_list scans the interface config block and returns the list
|
1017
1029
|
# of configured VTEPs that comprise the flood list. If there are no
|
1018
1030
|
# flood list values configured, the value will return DEFAULT_FLOOD_LIST.
|
1019
|
-
# The returned value is intended to be merged into the
|
1031
|
+
# The returned value is intended to be merged into the interface resource
|
1020
1032
|
# Hash.
|
1021
1033
|
#
|
1022
1034
|
# @api private
|
@@ -1034,7 +1046,7 @@ module Rbeapi
|
|
1034
1046
|
|
1035
1047
|
##
|
1036
1048
|
# parse_vlans scans the interface config block and returns the set of
|
1037
|
-
# configured vlan to vni mappings.
|
1049
|
+
# configured vlan to vni mappings. If there are no vlans configured, the
|
1038
1050
|
# value will return an empty Hash
|
1039
1051
|
#
|
1040
1052
|
# @api private
|
@@ -1054,7 +1066,7 @@ module Rbeapi
|
|
1054
1066
|
|
1055
1067
|
##
|
1056
1068
|
# Configures the vxlan source-interface to the specified value. This
|
1057
|
-
# parameter should be
|
1069
|
+
# parameter should be the interface identifier of the interface to act
|
1058
1070
|
# as the source for all Vxlan traffic
|
1059
1071
|
#
|
1060
1072
|
# @param [String] :name The name of the interface to apply the
|
@@ -1063,12 +1075,14 @@ module Rbeapi
|
|
1063
1075
|
# @param [Hash] :opt Optional keyword arguments
|
1064
1076
|
#
|
1065
1077
|
# @option :opts [String] :value Configures the vxlan source-interface to
|
1066
|
-
# the
|
1067
|
-
#
|
1078
|
+
# the specified value
|
1079
|
+
#
|
1080
|
+
# @option :opts [Boolean] :enable If false then the command is
|
1081
|
+
# negated. Default is true.
|
1068
1082
|
#
|
1069
1083
|
# @option :opts [Boolean] :default Specifies whether or not the
|
1070
1084
|
# multicast-group command is configured as default. The value of this
|
1071
|
-
# option has a higher precedence than :
|
1085
|
+
# option has a higher precedence than :enable
|
1072
1086
|
#
|
1073
1087
|
# @return [Boolean] Returns true if the commands complete successfully
|
1074
1088
|
def set_source_interface(name = 'Vxlan1', opts = {})
|
@@ -1077,7 +1091,7 @@ module Rbeapi
|
|
1077
1091
|
end
|
1078
1092
|
|
1079
1093
|
##
|
1080
|
-
# Configures the vxlan
|
1094
|
+
# Configures the vxlan multicast-group flood address to the specified
|
1081
1095
|
# value. The value should be a valid multicast address
|
1082
1096
|
#
|
1083
1097
|
# @param [String] :name The name of the interface to apply the
|
@@ -1085,9 +1099,11 @@ module Rbeapi
|
|
1085
1099
|
#
|
1086
1100
|
# @param [Hash] :opt Optional keyword arguments
|
1087
1101
|
#
|
1088
|
-
# @option :opts [String] :value Configures the
|
1089
|
-
# address to the specified value.
|
1090
|
-
#
|
1102
|
+
# @option :opts [String] :value Configures the multicast-group flood
|
1103
|
+
# address to the specified value.
|
1104
|
+
#
|
1105
|
+
# @option :opts [Boolean] :enable If false then the command is
|
1106
|
+
# negated. Default is true.
|
1091
1107
|
#
|
1092
1108
|
# @option :opts [Boolean] :default Specifies whether or not the
|
1093
1109
|
# multicast-group command is configured as default. The value of this
|
@@ -1101,7 +1117,7 @@ module Rbeapi
|
|
1101
1117
|
|
1102
1118
|
##
|
1103
1119
|
# set_udp_port configures the Vxlan udp-port value in EOS for the
|
1104
|
-
# specified interface name. If the
|
1120
|
+
# specified interface name. If the enable keyword is false then the
|
1105
1121
|
# no keyword is used to configure the value. If the default option is
|
1106
1122
|
# provided and set to true, then the default keyword is used. If both
|
1107
1123
|
# options are provided, the default keyword will take precedence.
|
@@ -1116,6 +1132,9 @@ module Rbeapi
|
|
1116
1132
|
# udp-port setting to. Valid values are in the range of 1024 to
|
1117
1133
|
# 65535
|
1118
1134
|
#
|
1135
|
+
# @option :opts [Boolean] :enable If false then the command is
|
1136
|
+
# negated. Default is true.
|
1137
|
+
#
|
1119
1138
|
# @option :opts [Boolean] :default Configures the udp-port value on
|
1120
1139
|
# the interface using the default keyword
|
1121
1140
|
#
|