Class: Cisco::Vpc

Inherits:
NodeUtil show all
Defined in:
lib/cisco_node_utils/vpc.rb

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

config_get, #config_get, config_get_default, #config_get_default, #config_set, config_set, #node, node, #show

Constructor Details

#initialize(domain_id, instantiate = true) ⇒ Vpc

Constructor for Vpc



26
27
28
29
30
31
# File 'lib/cisco_node_utils/vpc.rb', line 26

def initialize(domain_id, instantiate=true)
  @domain = domain_id
  @set_params = {}

  create if instantiate
end

Instance Attribute Details

#domainObject (readonly)

Returns the value of attribute domain.



24
25
26
# File 'lib/cisco_node_utils/vpc.rb', line 24

def domain
  @domain
end

Class Method Details

.domainsObject



33
34
35
36
37
38
39
40
41
42
# File 'lib/cisco_node_utils/vpc.rb', line 33

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
  # cmd will syntax reject when feature is not enabled
  raise unless e.clierror =~ /Syntax error/
  return {}
end

.enabledObject



44
45
46
47
48
49
50
# File 'lib/cisco_node_utils/vpc.rb', line 44

def self.enabled
  config_get('vpc', 'feature')
rescue Cisco::CliError => e
  # cmd will syntax reject when feature is not enabled
  raise unless e.clierror =~ /Syntax error/
  return false
end

Instance Method Details

#auto_recoveryObject

PROPERTIES #



81
82
83
84
# File 'lib/cisco_node_utils/vpc.rb', line 81

def auto_recovery
  val = config_get('vpc', 'auto_recovery')
  val.nil? ? false : val
end

#auto_recovery=(val) ⇒ Object



86
87
88
89
# File 'lib/cisco_node_utils/vpc.rb', line 86

def auto_recovery=(val)
  set_args_keys(state: val ? '' : 'no')
  config_set('vpc', 'auto_recovery', @set_args)
end

#auto_recovery_reload_delayObject



95
96
97
# File 'lib/cisco_node_utils/vpc.rb', line 95

def auto_recovery_reload_delay
  config_get('vpc', 'auto_recovery_reload_delay')
end

#auto_recovery_reload_delay=(val) ⇒ Object



99
100
101
102
# File 'lib/cisco_node_utils/vpc.rb', line 99

def auto_recovery_reload_delay=(val)
  set_args_keys(delay: val)
  config_set('vpc', 'auto_recovery_reload_delay', @set_args)
end

#createObject



52
53
54
55
# File 'lib/cisco_node_utils/vpc.rb', line 52

def create
  enable unless Vpc.enabled
  config_set('vpc', 'domain', state: '', domain: @domain)
end

#default_auto_recoveryObject



91
92
93
# File 'lib/cisco_node_utils/vpc.rb', line 91

def default_auto_recovery
  config_get_default('vpc', 'auto_recovery')
end

#default_auto_recovery_reload_delayObject



104
105
106
# File 'lib/cisco_node_utils/vpc.rb', line 104

def default_auto_recovery_reload_delay
  config_get_default('vpc', 'auto_recovery_reload_delay')
end

#default_delay_restoreObject



117
118
119
# File 'lib/cisco_node_utils/vpc.rb', line 117

def default_delay_restore
  config_get_default('vpc', 'delay_restore')
end

#default_delay_restore_interface_vlanObject



130
131
132
# File 'lib/cisco_node_utils/vpc.rb', line 130

def default_delay_restore_interface_vlan
  config_get_default('vpc', 'delay_restore_interface_vlan')
end

#default_dual_active_exclude_interface_vlan_bridge_domainObject



144
145
146
147
# File 'lib/cisco_node_utils/vpc.rb', line 144

def default_dual_active_exclude_interface_vlan_bridge_domain
  config_get_default('vpc',
                     'dual_active_exclude_interface_vlan_bridge_domain')
end

#default_graceful_consistency_checkObject



159
160
161
# File 'lib/cisco_node_utils/vpc.rb', line 159

def default_graceful_consistency_check
  config_get_default('vpc', 'graceful_consistency_check')
end

#default_layer3_peer_routingObject



174
175
176
# File 'lib/cisco_node_utils/vpc.rb', line 174

def default_layer3_peer_routing
  config_get_default('vpc', 'layer3_peer_routing')
end

#default_peer_gatewayObject



263
264
265
# File 'lib/cisco_node_utils/vpc.rb', line 263

def default_peer_gateway
  config_get_default('vpc', 'peer_gateway')
end

#default_peer_gateway_exclude_bridge_domainObject



276
277
278
# File 'lib/cisco_node_utils/vpc.rb', line 276

def default_peer_gateway_exclude_bridge_domain
  config_get_default('vpc', 'peer_gateway_exclude_bridge_domain')
end

#default_peer_gateway_exclude_vlanObject



289
290
291
# File 'lib/cisco_node_utils/vpc.rb', line 289

def default_peer_gateway_exclude_vlan
  config_get_default('vpc', 'peer_gateway_exclude_vlan')
end

#default_peer_keepalive_destObject



183
184
185
# File 'lib/cisco_node_utils/vpc.rb', line 183

def default_peer_keepalive_dest
  config_get_default('vpc', 'peer_keepalive_dest')
end

#default_peer_keepalive_hold_timeoutObject



191
192
193
# File 'lib/cisco_node_utils/vpc.rb', line 191

def default_peer_keepalive_hold_timeout
  config_get_default('vpc', 'peer_keepalive_hold_timeout')
end

#default_peer_keepalive_intervalObject



199
200
201
# File 'lib/cisco_node_utils/vpc.rb', line 199

def default_peer_keepalive_interval
  config_get_default('vpc', 'peer_keepalive_interval')
end

#default_peer_keepalive_interval_timeoutObject



207
208
209
# File 'lib/cisco_node_utils/vpc.rb', line 207

def default_peer_keepalive_interval_timeout
  config_get_default('vpc', 'peer_keepalive_timeout')
end

#default_peer_keepalive_precedenceObject



215
216
217
# File 'lib/cisco_node_utils/vpc.rb', line 215

def default_peer_keepalive_precedence
  config_get_default('vpc', 'peer_keepalive_precedence')
end

#default_peer_keepalive_srcObject



223
224
225
# File 'lib/cisco_node_utils/vpc.rb', line 223

def default_peer_keepalive_src
  config_get_default('vpc', 'peer_keepalive_src')
end

#default_peer_keepalive_udp_portObject



231
232
233
# File 'lib/cisco_node_utils/vpc.rb', line 231

def default_peer_keepalive_udp_port
  config_get_default('vpc', 'peer_keepalive_udp_port')
end

#default_peer_keepalive_vrfObject



239
240
241
# File 'lib/cisco_node_utils/vpc.rb', line 239

def default_peer_keepalive_vrf
  config_get_default('vpc', 'peer_keepalive_vrf')
end

#default_role_priorityObject



302
303
304
# File 'lib/cisco_node_utils/vpc.rb', line 302

def default_role_priority
  config_get_default('vpc', 'role_priority')
end

#default_self_isolationObject



316
317
318
# File 'lib/cisco_node_utils/vpc.rb', line 316

def default_self_isolation
  config_get_default('vpc', 'self_isolation')
end

#default_shutdownObject



329
330
331
# File 'lib/cisco_node_utils/vpc.rb', line 329

def default_shutdown
  config_get_default('vpc', 'shutdown')
end

#default_system_macObject



342
343
344
# File 'lib/cisco_node_utils/vpc.rb', line 342

def default_system_mac
  config_get_default('vpc', 'system_mac')
end

#default_system_priorityObject



355
356
357
# File 'lib/cisco_node_utils/vpc.rb', line 355

def default_system_priority
  config_get_default('vpc', 'system_priority')
end

#default_trackObject



373
374
375
# File 'lib/cisco_node_utils/vpc.rb', line 373

def default_track
  config_get_default('vpc', 'track')
end

#delay_restoreObject



108
109
110
# File 'lib/cisco_node_utils/vpc.rb', line 108

def delay_restore
  config_get('vpc', 'delay_restore')
end

#delay_restore=(delay) ⇒ Object



112
113
114
115
# File 'lib/cisco_node_utils/vpc.rb', line 112

def delay_restore=(delay)
  set_args_keys(delay: delay)
  config_set('vpc', 'delay_restore', @set_args)
end

#delay_restore_interface_vlanObject



121
122
123
# File 'lib/cisco_node_utils/vpc.rb', line 121

def delay_restore_interface_vlan
  config_get('vpc', 'delay_restore_interface_vlan')
end

#delay_restore_interface_vlan=(delay) ⇒ Object



125
126
127
128
# File 'lib/cisco_node_utils/vpc.rb', line 125

def delay_restore_interface_vlan=(delay)
  set_args_keys(delay: delay)
  config_set('vpc', 'delay_restore_interface_vlan', @set_args)
end

#destroyObject



57
58
59
# File 'lib/cisco_node_utils/vpc.rb', line 57

def destroy
  config_set('vpc', 'feature', state: 'no')
end

#dual_active_exclude_interface_vlan_bridge_domainObject



134
135
136
# File 'lib/cisco_node_utils/vpc.rb', line 134

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



138
139
140
141
142
# File 'lib/cisco_node_utils/vpc.rb', line 138

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

#enableObject



61
62
63
# File 'lib/cisco_node_utils/vpc.rb', line 61

def enable
  config_set('vpc', 'feature', state: '')
end

#graceful_consistency_checkObject



149
150
151
152
# File 'lib/cisco_node_utils/vpc.rb', line 149

def graceful_consistency_check
  val = config_get('vpc', 'graceful_consistency_check')
  val.nil? ? false : val
end

#graceful_consistency_check=(val) ⇒ Object



154
155
156
157
# File 'lib/cisco_node_utils/vpc.rb', line 154

def graceful_consistency_check=(val)
  set_args_keys(state: val ? '' : 'no')
  config_set('vpc', 'graceful_consistency_check', @set_args)
end

#layer3_peer_routingObject



163
164
165
# File 'lib/cisco_node_utils/vpc.rb', line 163

def layer3_peer_routing
  config_get('vpc', 'layer3_peer_routing')
end

#layer3_peer_routing=(val) ⇒ Object



167
168
169
170
171
172
# File 'lib/cisco_node_utils/vpc.rb', line 167

def layer3_peer_routing=(val)
  set_args_keys(state: val ? '' : 'no')
  # This requires peer_gateway to be set first
  self.peer_gateway = true if !peer_gateway && val
  config_set('vpc', 'layer3_peer_routing', @set_args)
end

#peer_gatewayObject



252
253
254
# File 'lib/cisco_node_utils/vpc.rb', line 252

def peer_gateway
  config_get('vpc', 'peer_gateway')
end

#peer_gateway=(val) ⇒ Object



256
257
258
259
260
261
# File 'lib/cisco_node_utils/vpc.rb', line 256

def peer_gateway=(val)
  set_args_keys(state: val ? '' : 'no')
  # disable layer3 routing first
  self.layer3_peer_routing = false if !val && layer3_peer_routing
  config_set('vpc', 'peer_gateway', @set_args)
end

#peer_gateway_exclude_bridge_domainObject



267
268
269
# File 'lib/cisco_node_utils/vpc.rb', line 267

def peer_gateway_exclude_bridge_domain
  config_get('vpc', 'peer_gateway_exclude_bridge_domain')
end

#peer_gateway_exclude_bridge_domain=(val) ⇒ Object



271
272
273
274
# File 'lib/cisco_node_utils/vpc.rb', line 271

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_vlanObject



280
281
282
# File 'lib/cisco_node_utils/vpc.rb', line 280

def peer_gateway_exclude_vlan
  config_get('vpc', 'peer_gateway_exclude_vlan')
end

#peer_gateway_exclude_vlan=(val) ⇒ Object



284
285
286
287
# File 'lib/cisco_node_utils/vpc.rb', line 284

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_destObject

peer keepalive



179
180
181
# File 'lib/cisco_node_utils/vpc.rb', line 179

def peer_keepalive_dest
  config_get('vpc', 'peer_keepalive_dest')
end

#peer_keepalive_hold_timeoutObject



187
188
189
# File 'lib/cisco_node_utils/vpc.rb', line 187

def peer_keepalive_hold_timeout
  config_get('vpc', 'peer_keepalive_hold_timeout')
end

#peer_keepalive_intervalObject



195
196
197
# File 'lib/cisco_node_utils/vpc.rb', line 195

def peer_keepalive_interval
  config_get('vpc', 'peer_keepalive_interval')
end

#peer_keepalive_interval_timeoutObject



203
204
205
# File 'lib/cisco_node_utils/vpc.rb', line 203

def peer_keepalive_interval_timeout
  config_get('vpc', 'peer_keepalive_timeout')
end

#peer_keepalive_precedenceObject



211
212
213
# File 'lib/cisco_node_utils/vpc.rb', line 211

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

common setter



244
245
246
247
248
249
250
# File 'lib/cisco_node_utils/vpc.rb', line 244

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_srcObject



219
220
221
# File 'lib/cisco_node_utils/vpc.rb', line 219

def peer_keepalive_src
  config_get('vpc', 'peer_keepalive_src')
end

#peer_keepalive_udp_portObject



227
228
229
# File 'lib/cisco_node_utils/vpc.rb', line 227

def peer_keepalive_udp_port
  config_get('vpc', 'peer_keepalive_udp_port')
end

#peer_keepalive_vrfObject



235
236
237
# File 'lib/cisco_node_utils/vpc.rb', line 235

def peer_keepalive_vrf
  config_get('vpc', 'peer_keepalive_vrf')
end

#role_priorityObject



293
294
295
# File 'lib/cisco_node_utils/vpc.rb', line 293

def role_priority
  config_get('vpc', 'role_priority')
end

#role_priority=(priority) ⇒ Object



297
298
299
300
# File 'lib/cisco_node_utils/vpc.rb', line 297

def role_priority=(priority)
  set_args_keys(priority: priority)
  config_set('vpc', 'role_priority', @set_args)
end

#self_isolationObject



306
307
308
309
# File 'lib/cisco_node_utils/vpc.rb', line 306

def self_isolation
  val = config_get('vpc', 'self_isolation')
  val.nil? ? false : val
end

#self_isolation=(val) ⇒ Object



311
312
313
314
# File 'lib/cisco_node_utils/vpc.rb', line 311

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



71
72
73
74
# File 'lib/cisco_node_utils/vpc.rb', line 71

def set_args_keys(hash={})
  set_args_keys_default
  @set_args = @get_args.merge!(hash) unless hash.empty?
end

#set_args_keys_defaultObject



65
66
67
68
# File 'lib/cisco_node_utils/vpc.rb', line 65

def set_args_keys_default
  keys = { domain: @domain }
  @get_args = @set_args = keys
end

#shutdownObject



320
321
322
# File 'lib/cisco_node_utils/vpc.rb', line 320

def shutdown
  config_get('vpc', 'shutdown')
end

#shutdown=(val) ⇒ Object



324
325
326
327
# File 'lib/cisco_node_utils/vpc.rb', line 324

def shutdown=(val)
  set_args_keys(state: val ? '' : 'no')
  config_set('vpc', 'shutdown', @set_args)
end

#system_macObject



333
334
335
# File 'lib/cisco_node_utils/vpc.rb', line 333

def system_mac
  config_get('vpc', 'system_mac')
end

#system_mac=(mac_addr) ⇒ Object



337
338
339
340
# File 'lib/cisco_node_utils/vpc.rb', line 337

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_priorityObject



346
347
348
# File 'lib/cisco_node_utils/vpc.rb', line 346

def system_priority
  config_get('vpc', 'system_priority')
end

#system_priority=(priority) ⇒ Object



350
351
352
353
# File 'lib/cisco_node_utils/vpc.rb', line 350

def system_priority=(priority)
  set_args_keys(priority: priority)
  config_set('vpc', 'system_priority', @set_args)
end

#trackObject



359
360
361
# File 'lib/cisco_node_utils/vpc.rb', line 359

def track
  config_get('vpc', 'track')
end

#track=(val) ⇒ Object



363
364
365
366
367
368
369
370
371
# File 'lib/cisco_node_utils/vpc.rb', line 363

def track=(val)
  unless val.nil?
    fail ArgumentError, 'retransmit_count 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