Class: Cisco::Vpc
Overview
Vpc - node utility class for VTP configuration management
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from NodeUtil
client, #client, config_get, #config_get, #config_get_default, config_get_default, config_set, #config_set, #get, #ios_xr?, #nexus?, #node, node, platform, #platform, supports?, #supports?
Constructor Details
#initialize(domain_id, instantiate = true) ⇒ Vpc
30
31
32
33
34
|
# File 'lib/cisco_node_utils/vpc.rb', line 30
def initialize(domain_id, instantiate=true)
@domain = domain_id
create if instantiate
end
|
Instance Attribute Details
#domain ⇒ Object
Returns the value of attribute domain.
28
29
30
|
# File 'lib/cisco_node_utils/vpc.rb', line 28
def domain
@domain
end
|
Class Method Details
.domains ⇒ Object
36
37
38
39
40
41
42
43
44
45
|
# File 'lib/cisco_node_utils/vpc.rb', line 36
def self.domains
hash = {}
my_domain = config_get('vpc', 'domain')
hash[my_domain] = Vpc.new(my_domain, false) unless my_domain.nil?
hash
rescue Cisco::CliError => e
raise unless e.clierror =~ /Syntax error/
return {}
end
|
.enabled ⇒ Object
47
48
49
50
51
52
53
|
# File 'lib/cisco_node_utils/vpc.rb', line 47
def self.enabled
config_get('vpc', 'feature')
rescue Cisco::CliError => e
raise unless e.clierror =~ /Syntax error/
return false
end
|
Instance Method Details
#auto_recovery ⇒ Object
84
85
86
87
|
# File 'lib/cisco_node_utils/vpc.rb', line 84
def auto_recovery
val = config_get('vpc', 'auto_recovery')
val.nil? ? false : val
end
|
#auto_recovery=(val) ⇒ Object
89
90
91
92
|
# File 'lib/cisco_node_utils/vpc.rb', line 89
def auto_recovery=(val)
set_args_keys(state: val ? '' : 'no')
config_set('vpc', 'auto_recovery', @set_args)
end
|
#auto_recovery_reload_delay ⇒ Object
98
99
100
|
# File 'lib/cisco_node_utils/vpc.rb', line 98
def auto_recovery_reload_delay
config_get('vpc', 'auto_recovery_reload_delay')
end
|
#auto_recovery_reload_delay=(val) ⇒ Object
102
103
104
105
|
# File 'lib/cisco_node_utils/vpc.rb', line 102
def auto_recovery_reload_delay=(val)
set_args_keys(delay: val)
config_set('vpc', 'auto_recovery_reload_delay', @set_args)
end
|
#create ⇒ Object
55
56
57
58
|
# File 'lib/cisco_node_utils/vpc.rb', line 55
def create
enable unless Vpc.enabled
config_set('vpc', 'domain', state: '', domain: @domain)
end
|
#default_auto_recovery ⇒ Object
94
95
96
|
# File 'lib/cisco_node_utils/vpc.rb', line 94
def default_auto_recovery
config_get_default('vpc', 'auto_recovery')
end
|
#default_auto_recovery_reload_delay ⇒ Object
107
108
109
|
# File 'lib/cisco_node_utils/vpc.rb', line 107
def default_auto_recovery_reload_delay
config_get_default('vpc', 'auto_recovery_reload_delay')
end
|
#default_delay_restore ⇒ Object
120
121
122
|
# File 'lib/cisco_node_utils/vpc.rb', line 120
def default_delay_restore
config_get_default('vpc', 'delay_restore')
end
|
#default_delay_restore_interface_vlan ⇒ Object
133
134
135
|
# File 'lib/cisco_node_utils/vpc.rb', line 133
def default_delay_restore_interface_vlan
config_get_default('vpc', 'delay_restore_interface_vlan')
end
|
#default_dual_active_exclude_interface_vlan_bridge_domain ⇒ Object
147
148
149
150
|
# File 'lib/cisco_node_utils/vpc.rb', line 147
def default_dual_active_exclude_interface_vlan_bridge_domain
config_get_default('vpc',
'dual_active_exclude_interface_vlan_bridge_domain')
end
|
#default_fabricpath_emulated_switch_id ⇒ Object
163
164
165
|
# File 'lib/cisco_node_utils/vpc.rb', line 163
def default_fabricpath_emulated_switch_id
config_get_default('vpc', 'fabricpath_emulated_switch_id')
end
|
#default_fabricpath_multicast_load_balance ⇒ Object
180
181
182
|
# File 'lib/cisco_node_utils/vpc.rb', line 180
def default_fabricpath_multicast_load_balance
config_get_default('vpc', 'fabricpath_multicast_load_balance')
end
|
#default_graceful_consistency_check ⇒ Object
194
195
196
|
# File 'lib/cisco_node_utils/vpc.rb', line 194
def default_graceful_consistency_check
config_get_default('vpc', 'graceful_consistency_check')
end
|
#default_layer3_peer_routing ⇒ Object
209
210
211
|
# File 'lib/cisco_node_utils/vpc.rb', line 209
def default_layer3_peer_routing
config_get_default('vpc', 'layer3_peer_routing')
end
|
#default_peer_gateway ⇒ Object
298
299
300
|
# File 'lib/cisco_node_utils/vpc.rb', line 298
def default_peer_gateway
config_get_default('vpc', 'peer_gateway')
end
|
#default_peer_gateway_exclude_bridge_domain ⇒ Object
311
312
313
|
# File 'lib/cisco_node_utils/vpc.rb', line 311
def default_peer_gateway_exclude_bridge_domain
config_get_default('vpc', 'peer_gateway_exclude_bridge_domain')
end
|
#default_peer_gateway_exclude_vlan ⇒ Object
324
325
326
|
# File 'lib/cisco_node_utils/vpc.rb', line 324
def default_peer_gateway_exclude_vlan
config_get_default('vpc', 'peer_gateway_exclude_vlan')
end
|
#default_peer_keepalive_dest ⇒ Object
218
219
220
|
# File 'lib/cisco_node_utils/vpc.rb', line 218
def default_peer_keepalive_dest
config_get_default('vpc', 'peer_keepalive_dest')
end
|
#default_peer_keepalive_hold_timeout ⇒ Object
226
227
228
|
# File 'lib/cisco_node_utils/vpc.rb', line 226
def default_peer_keepalive_hold_timeout
config_get_default('vpc', 'peer_keepalive_hold_timeout')
end
|
#default_peer_keepalive_interval ⇒ Object
234
235
236
|
# File 'lib/cisco_node_utils/vpc.rb', line 234
def default_peer_keepalive_interval
config_get_default('vpc', 'peer_keepalive_interval')
end
|
#default_peer_keepalive_interval_timeout ⇒ Object
242
243
244
|
# File 'lib/cisco_node_utils/vpc.rb', line 242
def default_peer_keepalive_interval_timeout
config_get_default('vpc', 'peer_keepalive_timeout')
end
|
#default_peer_keepalive_precedence ⇒ Object
250
251
252
|
# File 'lib/cisco_node_utils/vpc.rb', line 250
def default_peer_keepalive_precedence
config_get_default('vpc', 'peer_keepalive_precedence')
end
|
#default_peer_keepalive_src ⇒ Object
258
259
260
|
# File 'lib/cisco_node_utils/vpc.rb', line 258
def default_peer_keepalive_src
config_get_default('vpc', 'peer_keepalive_src')
end
|
#default_peer_keepalive_udp_port ⇒ Object
266
267
268
|
# File 'lib/cisco_node_utils/vpc.rb', line 266
def default_peer_keepalive_udp_port
config_get_default('vpc', 'peer_keepalive_udp_port')
end
|
#default_peer_keepalive_vrf ⇒ Object
274
275
276
|
# File 'lib/cisco_node_utils/vpc.rb', line 274
def default_peer_keepalive_vrf
config_get_default('vpc', 'peer_keepalive_vrf')
end
|
#default_port_channel_limit ⇒ Object
341
342
343
|
# File 'lib/cisco_node_utils/vpc.rb', line 341
def default_port_channel_limit
config_get_default('vpc', 'port_channel_limit')
end
|
#default_role_priority ⇒ Object
354
355
356
|
# File 'lib/cisco_node_utils/vpc.rb', line 354
def default_role_priority
config_get_default('vpc', 'role_priority')
end
|
#default_self_isolation ⇒ Object
368
369
370
|
# File 'lib/cisco_node_utils/vpc.rb', line 368
def default_self_isolation
config_get_default('vpc', 'self_isolation')
end
|
#default_shutdown ⇒ Object
381
382
383
|
# File 'lib/cisco_node_utils/vpc.rb', line 381
def default_shutdown
config_get_default('vpc', 'shutdown')
end
|
#default_system_mac ⇒ Object
394
395
396
|
# File 'lib/cisco_node_utils/vpc.rb', line 394
def default_system_mac
config_get_default('vpc', 'system_mac')
end
|
#default_system_priority ⇒ Object
407
408
409
|
# File 'lib/cisco_node_utils/vpc.rb', line 407
def default_system_priority
config_get_default('vpc', 'system_priority')
end
|
#default_track ⇒ Object
425
426
427
|
# File 'lib/cisco_node_utils/vpc.rb', line 425
def default_track
config_get_default('vpc', 'track')
end
|
#delay_restore ⇒ Object
111
112
113
|
# File 'lib/cisco_node_utils/vpc.rb', line 111
def delay_restore
config_get('vpc', 'delay_restore')
end
|
#delay_restore=(delay) ⇒ Object
115
116
117
118
|
# File 'lib/cisco_node_utils/vpc.rb', line 115
def delay_restore=(delay)
set_args_keys(delay: delay)
config_set('vpc', 'delay_restore', @set_args)
end
|
#delay_restore_interface_vlan ⇒ Object
124
125
126
|
# File 'lib/cisco_node_utils/vpc.rb', line 124
def delay_restore_interface_vlan
config_get('vpc', 'delay_restore_interface_vlan')
end
|
#delay_restore_interface_vlan=(delay) ⇒ Object
128
129
130
131
|
# File 'lib/cisco_node_utils/vpc.rb', line 128
def delay_restore_interface_vlan=(delay)
set_args_keys(delay: delay)
config_set('vpc', 'delay_restore_interface_vlan', @set_args)
end
|
#destroy ⇒ Object
60
61
62
|
# File 'lib/cisco_node_utils/vpc.rb', line 60
def destroy
config_set('vpc', 'feature', state: 'no')
end
|
#dual_active_exclude_interface_vlan_bridge_domain ⇒ Object
137
138
139
|
# File 'lib/cisco_node_utils/vpc.rb', line 137
def dual_active_exclude_interface_vlan_bridge_domain
config_get('vpc', 'dual_active_exclude_interface_vlan_bridge_domain')
end
|
#dual_active_exclude_interface_vlan_bridge_domain=(val) ⇒ Object
141
142
143
144
145
|
# File 'lib/cisco_node_utils/vpc.rb', line 141
def dual_active_exclude_interface_vlan_bridge_domain=(val)
set_args_keys(state: val ? '' : 'no', range: val)
config_set('vpc', 'dual_active_exclude_interface_vlan_bridge_domain',
@set_args)
end
|
#enable ⇒ Object
64
65
66
|
# File 'lib/cisco_node_utils/vpc.rb', line 64
def enable
config_set('vpc', 'feature', state: '')
end
|
#fabricpath_emulated_switch_id ⇒ Object
152
153
154
|
# File 'lib/cisco_node_utils/vpc.rb', line 152
def fabricpath_emulated_switch_id
config_get('vpc', 'fabricpath_emulated_switch_id')
end
|
#fabricpath_emulated_switch_id=(switch_id) ⇒ Object
156
157
158
159
160
161
|
# File 'lib/cisco_node_utils/vpc.rb', line 156
def fabricpath_emulated_switch_id=(switch_id)
FabricpathGlobal.fabricpath_enable
set_args_keys(state: switch_id ? '' : 'no',
swid: switch_id ? switch_id : '')
config_set('vpc', 'fabricpath_emulated_switch_id', @set_args)
end
|
#fabricpath_multicast_load_balance ⇒ Object
Note: fabricpath_multicast_load_balance also requires fabricpath_emulated_switch_id before it will be functional but it will config & nvgen independently.
170
171
172
|
# File 'lib/cisco_node_utils/vpc.rb', line 170
def fabricpath_multicast_load_balance
config_get('vpc', 'fabricpath_multicast_load_balance')
end
|
#fabricpath_multicast_load_balance=(state) ⇒ Object
174
175
176
177
178
|
# File 'lib/cisco_node_utils/vpc.rb', line 174
def fabricpath_multicast_load_balance=(state)
FabricpathGlobal.fabricpath_enable
set_args_keys(state: state ? '' : 'no')
config_set('vpc', 'fabricpath_multicast_load_balance', @set_args)
end
|
#graceful_consistency_check ⇒ Object
184
185
186
187
|
# File 'lib/cisco_node_utils/vpc.rb', line 184
def graceful_consistency_check
val = config_get('vpc', 'graceful_consistency_check')
val.nil? ? false : val
end
|
#graceful_consistency_check=(val) ⇒ Object
189
190
191
192
|
# File 'lib/cisco_node_utils/vpc.rb', line 189
def graceful_consistency_check=(val)
set_args_keys(state: val ? '' : 'no')
config_set('vpc', 'graceful_consistency_check', @set_args)
end
|
#layer3_peer_routing ⇒ Object
198
199
200
|
# File 'lib/cisco_node_utils/vpc.rb', line 198
def layer3_peer_routing
config_get('vpc', 'layer3_peer_routing')
end
|
#layer3_peer_routing=(val) ⇒ Object
202
203
204
205
206
207
|
# File 'lib/cisco_node_utils/vpc.rb', line 202
def layer3_peer_routing=(val)
set_args_keys(state: val ? '' : 'no')
self.peer_gateway = true if !peer_gateway && val
config_set('vpc', 'layer3_peer_routing', @set_args)
end
|
#peer_gateway ⇒ Object
287
288
289
|
# File 'lib/cisco_node_utils/vpc.rb', line 287
def peer_gateway
config_get('vpc', 'peer_gateway')
end
|
#peer_gateway=(val) ⇒ Object
291
292
293
294
295
296
|
# File 'lib/cisco_node_utils/vpc.rb', line 291
def peer_gateway=(val)
set_args_keys(state: val ? '' : 'no')
self.layer3_peer_routing = false if !val && layer3_peer_routing
config_set('vpc', 'peer_gateway', @set_args)
end
|
#peer_gateway_exclude_bridge_domain ⇒ Object
302
303
304
|
# File 'lib/cisco_node_utils/vpc.rb', line 302
def peer_gateway_exclude_bridge_domain
config_get('vpc', 'peer_gateway_exclude_bridge_domain')
end
|
#peer_gateway_exclude_bridge_domain=(val) ⇒ Object
306
307
308
309
|
# File 'lib/cisco_node_utils/vpc.rb', line 306
def peer_gateway_exclude_bridge_domain=(val)
set_args_keys(state: val ? '' : 'no', range: val)
config_set('vpc', 'peer_gateway_exclude_bridge_domain', @set_args)
end
|
#peer_gateway_exclude_vlan ⇒ Object
315
316
317
|
# File 'lib/cisco_node_utils/vpc.rb', line 315
def peer_gateway_exclude_vlan
config_get('vpc', 'peer_gateway_exclude_vlan')
end
|
#peer_gateway_exclude_vlan=(val) ⇒ Object
319
320
321
322
|
# File 'lib/cisco_node_utils/vpc.rb', line 319
def peer_gateway_exclude_vlan=(val)
set_args_keys(state: val ? '' : 'no', range: val)
config_set('vpc', 'peer_gateway_exclude_vlan', @set_args)
end
|
#peer_keepalive_dest ⇒ Object
214
215
216
|
# File 'lib/cisco_node_utils/vpc.rb', line 214
def peer_keepalive_dest
config_get('vpc', 'peer_keepalive_dest')
end
|
#peer_keepalive_hold_timeout ⇒ Object
222
223
224
|
# File 'lib/cisco_node_utils/vpc.rb', line 222
def peer_keepalive_hold_timeout
config_get('vpc', 'peer_keepalive_hold_timeout')
end
|
#peer_keepalive_interval ⇒ Object
230
231
232
|
# File 'lib/cisco_node_utils/vpc.rb', line 230
def peer_keepalive_interval
config_get('vpc', 'peer_keepalive_interval')
end
|
#peer_keepalive_interval_timeout ⇒ Object
238
239
240
|
# File 'lib/cisco_node_utils/vpc.rb', line 238
def peer_keepalive_interval_timeout
config_get('vpc', 'peer_keepalive_timeout')
end
|
#peer_keepalive_precedence ⇒ Object
246
247
248
|
# File 'lib/cisco_node_utils/vpc.rb', line 246
def peer_keepalive_precedence
config_get('vpc', 'peer_keepalive_precedence')
end
|
#peer_keepalive_set(dest, src, udp_port, vrf, interval, timeout, prec, hold_timeout) ⇒ Object
279
280
281
282
283
284
285
|
# File 'lib/cisco_node_utils/vpc.rb', line 279
def peer_keepalive_set(dest, src, udp_port, vrf, interval, timeout,
prec, hold_timeout)
set_args_keys(dest: dest, src: src, port_num: udp_port, vrf: vrf,
interval: interval, timeout: timeout,
precedence: prec, hold_timeout: hold_timeout)
config_set('vpc', 'peer_keepalive_set', @set_args)
end
|
#peer_keepalive_src ⇒ Object
254
255
256
|
# File 'lib/cisco_node_utils/vpc.rb', line 254
def peer_keepalive_src
config_get('vpc', 'peer_keepalive_src')
end
|
#peer_keepalive_udp_port ⇒ Object
262
263
264
|
# File 'lib/cisco_node_utils/vpc.rb', line 262
def peer_keepalive_udp_port
config_get('vpc', 'peer_keepalive_udp_port')
end
|
#peer_keepalive_vrf ⇒ Object
270
271
272
|
# File 'lib/cisco_node_utils/vpc.rb', line 270
def peer_keepalive_vrf
config_get('vpc', 'peer_keepalive_vrf')
end
|
#port_channel_limit ⇒ Object
328
329
330
331
|
# File 'lib/cisco_node_utils/vpc.rb', line 328
def port_channel_limit
val = config_get('vpc', 'port_channel_limit')
val.nil? ? false : val
end
|
#port_channel_limit=(val) ⇒ Object
333
334
335
336
337
338
339
|
# File 'lib/cisco_node_utils/vpc.rb', line 333
def port_channel_limit=(val)
set_args_keys(state: val ? '' : 'no')
fail 'fabricpath_switch_id configuration is required in the vPC domain' if
!fabricpath_emulated_switch_id && !val
config_set('vpc', 'port_channel_limit', @set_args)
end
|
#role_priority ⇒ Object
345
346
347
|
# File 'lib/cisco_node_utils/vpc.rb', line 345
def role_priority
config_get('vpc', 'role_priority')
end
|
#role_priority=(priority) ⇒ Object
349
350
351
352
|
# File 'lib/cisco_node_utils/vpc.rb', line 349
def role_priority=(priority)
set_args_keys(priority: priority)
config_set('vpc', 'role_priority', @set_args)
end
|
#self_isolation ⇒ Object
358
359
360
361
|
# File 'lib/cisco_node_utils/vpc.rb', line 358
def self_isolation
val = config_get('vpc', 'self_isolation')
val.nil? ? false : val
end
|
#self_isolation=(val) ⇒ Object
363
364
365
366
|
# File 'lib/cisco_node_utils/vpc.rb', line 363
def self_isolation=(val)
set_args_keys(state: val ? '' : 'no')
config_set('vpc', 'self_isolation', @set_args)
end
|
#set_args_keys(hash = {}) ⇒ Object
rubocop:disable Style/AccessorMethodName
74
75
76
77
|
# File 'lib/cisco_node_utils/vpc.rb', line 74
def set_args_keys(hash={})
set_args_keys_default
@set_args = @get_args.merge!(hash) unless hash.empty?
end
|
#set_args_keys_default ⇒ Object
68
69
70
71
|
# File 'lib/cisco_node_utils/vpc.rb', line 68
def set_args_keys_default
keys = { domain: @domain }
@get_args = @set_args = keys
end
|
#shutdown ⇒ Object
372
373
374
|
# File 'lib/cisco_node_utils/vpc.rb', line 372
def shutdown
config_get('vpc', 'shutdown')
end
|
#shutdown=(val) ⇒ Object
376
377
378
379
|
# File 'lib/cisco_node_utils/vpc.rb', line 376
def shutdown=(val)
set_args_keys(state: val ? '' : 'no')
config_set('vpc', 'shutdown', @set_args)
end
|
#system_mac ⇒ Object
385
386
387
|
# File 'lib/cisco_node_utils/vpc.rb', line 385
def system_mac
config_get('vpc', 'system_mac')
end
|
#system_mac=(mac_addr) ⇒ Object
389
390
391
392
|
# File 'lib/cisco_node_utils/vpc.rb', line 389
def system_mac=(mac_addr)
set_args_keys(state: mac_addr.empty? ? 'no' : '', mac_addr: mac_addr)
config_set('vpc', 'system_mac', @set_args)
end
|
#system_priority ⇒ Object
398
399
400
|
# File 'lib/cisco_node_utils/vpc.rb', line 398
def system_priority
config_get('vpc', 'system_priority')
end
|
#system_priority=(priority) ⇒ Object
402
403
404
405
|
# File 'lib/cisco_node_utils/vpc.rb', line 402
def system_priority=(priority)
set_args_keys(priority: priority)
config_set('vpc', 'system_priority', @set_args)
end
|
#track ⇒ Object
411
412
413
|
# File 'lib/cisco_node_utils/vpc.rb', line 411
def track
config_get('vpc', 'track')
end
|
#track=(val) ⇒ Object
415
416
417
418
419
420
421
422
423
|
# File 'lib/cisco_node_utils/vpc.rb', line 415
def track=(val)
unless val.nil?
fail ArgumentError, 'track must be an Integer' unless
val.is_a?(Integer)
end
set_args_keys(state: (val == track) ? 'no' : '', val: val)
config_set('vpc', 'track', @set_args)
end
|