Class: Cisco::InterfaceOspf
Overview
InterfaceOspf - node utility class for per-interface OSPF config 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(intf_name, ospf_name, area, create = true, show_name = nil) ⇒ InterfaceOspf
Returns a new instance of InterfaceOspf.
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 28
def initialize(intf_name, ospf_name, area, create=true, show_name=nil)
fail TypeError unless intf_name.is_a? String
fail TypeError unless ospf_name.is_a? String
fail TypeError unless area.is_a? String
fail ArgumentError unless intf_name.length > 0
fail ArgumentError unless ospf_name.length > 0
fail ArgumentError unless area.length > 0
@intf_name = intf_name.downcase
@show_name = show_name.nil? ? '' : Utils.normalize_intf_pattern(show_name)
fail "interface #{@intf_name} does not exist" if
Interface.interfaces(nil, @intf_name)[@intf_name].nil?
@ospf_name = ospf_name
@area = area
@get_args = { name: intf_name, show_name: @show_name }
set_args_keys_default
return unless create
Feature.ospf_enable
self.area = area
end
|
Instance Attribute Details
#area ⇒ Object
Returns the value of attribute area.
26
27
28
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 26
def area
@area
end
|
#intf_name ⇒ Object
Returns the value of attribute intf_name.
26
27
28
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 26
def intf_name
@intf_name
end
|
#ospf_name ⇒ Object
Returns the value of attribute ospf_name.
26
27
28
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 26
def ospf_name
@ospf_name
end
|
#show_name ⇒ Object
Returns the value of attribute show_name.
26
27
28
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 26
def show_name
@show_name
end
|
Class Method Details
.interfaces(ospf_name = nil, show_name = nil) ⇒ Object
can’t re-use Interface.interfaces because we need to filter based on “ip router ospf <name>”, which Interface doesn’t retrieve
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 57
def self.interfaces(ospf_name=nil, show_name=nil)
fail TypeError unless ospf_name.is_a?(String) || ospf_name.nil?
ints = {}
show_name = Utils.normalize_intf_pattern(show_name)
begin
intf_list = config_get('interface_ospf', 'all_interfaces',
show_name: show_name)
rescue CliError => e
raise unless show_name
debug 'InterfaceOspf.interfaces ignoring CliError => ' + e.to_s
end
return ints if intf_list.nil?
intf_list.each do |name|
match = config_get('interface_ospf', 'area',
name: name, show_name: show_name)
next if match.nil?
ospf = match[0]
area = match[1]
next unless ospf_name.nil? || ospf == ospf_name
int = name.downcase
ints[int] = InterfaceOspf.new(int, ospf, area, false, show_name)
end
ints
end
|
Instance Method Details
#bfd ⇒ Object
CLI can be either of the following or none ip ospf bfd ip ospf bfd disable
251
252
253
254
255
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 251
def bfd
val = config_get('interface_ospf', 'bfd', @get_args)
return if val.nil?
val.include?('disable') ? false : true
end
|
#bfd=(val) ⇒ Object
257
258
259
260
261
262
263
264
265
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 257
def bfd=(val)
return if val == bfd
Feature.bfd_enable
state = (val == default_bfd) ? 'no' : ''
disable = val ? '' : 'disable'
config_set('interface_ospf', 'bfd',
@set_args.merge!(state: state, disable: disable))
set_args_keys_default
end
|
#cost ⇒ Object
193
194
195
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 193
def cost
config_get('interface_ospf', 'cost', @get_args)
end
|
#cost=(c) ⇒ Object
201
202
203
204
205
206
207
208
209
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 201
def cost=(c)
if c == default_cost
@set_args.merge!(state: 'no', cost: '')
else
@set_args.merge!(state: '', cost: c)
end
config_set('interface_ospf', 'cost', @set_args)
set_args_keys_default
end
|
#dead_interval ⇒ Object
233
234
235
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 233
def dead_interval
config_get('interface_ospf', 'dead_interval', @get_args)
end
|
#dead_interval=(interval) ⇒ Object
241
242
243
244
245
246
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 241
def dead_interval=(interval)
@set_args.merge!(state: '', interval: interval.to_i)
config_set('interface_ospf', 'dead_interval', @set_args)
set_args_keys_default
end
|
#default_bfd ⇒ Object
267
268
269
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 267
def default_bfd
config_get_default('interface_ospf', 'bfd')
end
|
#default_cost ⇒ Object
197
198
199
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 197
def default_cost
config_get_default('interface_ospf', 'cost')
end
|
#default_dead_interval ⇒ Object
237
238
239
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 237
def default_dead_interval
config_get_default('interface_ospf', 'dead_interval')
end
|
#default_hello_interval ⇒ Object
215
216
217
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 215
def default_hello_interval
config_get_default('interface_ospf', 'hello_interval')
end
|
#default_message_digest ⇒ Object
117
118
119
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 117
def default_message_digest
config_get_default('interface_ospf', 'message_digest')
end
|
#default_message_digest_algorithm_type ⇒ Object
140
141
142
143
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 140
def default_message_digest_algorithm_type
config_get_default('interface_ospf',
'message_digest_alg_type').to_sym
end
|
#default_message_digest_encryption_type ⇒ Object
151
152
153
154
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 151
def default_message_digest_encryption_type
Encryption.cli_to_symbol(
config_get_default('interface_ospf', 'message_digest_enc_type'))
end
|
#default_message_digest_key_id ⇒ Object
132
133
134
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 132
def default_message_digest_key_id
config_get_default('interface_ospf', 'message_digest_key_id')
end
|
#default_message_digest_password ⇒ Object
166
167
168
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 166
def default_message_digest_password
config_get_default('interface_ospf', 'message_digest_password')
end
|
#default_mtu_ignore ⇒ Object
291
292
293
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 291
def default_mtu_ignore
config_get_default('interface_ospf', 'mtu_ignore')
end
|
#default_network_type ⇒ Object
271
272
273
274
275
276
277
278
279
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 271
def default_network_type
case @intf_name
when /loopback/i
lookup = 'network_type_loopback_default'
else
lookup = 'network_type_default'
end
config_get_default('interface_ospf', lookup)
end
|
#default_passive_interface ⇒ Object
313
314
315
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 313
def default_passive_interface
config_get_default('interface_ospf', 'passive_interface')
end
|
#default_priority ⇒ Object
342
343
344
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 342
def default_priority
config_get_default('interface_ospf', 'priority')
end
|
#default_shutdown ⇒ Object
356
357
358
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 356
def default_shutdown
config_get_default('interface_ospf', 'shutdown')
end
|
#default_transmit_delay ⇒ Object
374
375
376
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 374
def default_transmit_delay
config_get_default('interface_ospf', 'transmit_delay')
end
|
#destroy ⇒ Object
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 99
def destroy
config_set('interface_ospf', 'area', @set_args.merge!(state: 'no'))
set_args_keys_default
self.message_digest = default_message_digest
message_digest_key_set(default_message_digest_key_id, '', '', '')
self.cost = default_cost
destroy_interval('hello_interval')
destroy_interval('dead_interval')
self.bfd = default_bfd
self.mtu_ignore = default_mtu_ignore
self.priority = default_priority
self.network_type = default_network_type
self.passive_interface = default_passive_interface if passive_interface
self.shutdown = default_shutdown
self.transmit_delay = default_transmit_delay
end
|
#destroy_interval(prop) ⇒ Object
226
227
228
229
230
231
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 226
def destroy_interval(prop)
@set_args.merge!(state: 'no', interval: '')
config_set('interface_ospf', prop, @set_args)
set_args_keys_default
end
|
#hello_interval ⇒ Object
211
212
213
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 211
def hello_interval
config_get('interface_ospf', 'hello_interval', @get_args)
end
|
#hello_interval=(interval) ⇒ Object
219
220
221
222
223
224
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 219
def hello_interval=(interval)
@set_args.merge!(state: '', interval: interval.to_i)
config_set('interface_ospf', 'hello_interval', @set_args)
set_args_keys_default
end
|
#message_digest ⇒ Object
121
122
123
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 121
def message_digest
config_get('interface_ospf', 'message_digest', @get_args)
end
|
#message_digest=(enable) ⇒ Object
125
126
127
128
129
130
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 125
def message_digest=(enable)
return if enable == message_digest
@set_args[:state] = (enable ? '' : 'no')
config_set('interface_ospf', 'message_digest', @set_args)
set_args_keys_default
end
|
#message_digest_algorithm_type ⇒ Object
145
146
147
148
149
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 145
def message_digest_algorithm_type
match = config_get('interface_ospf', 'message_digest_alg_type',
@get_args)
match.to_sym
end
|
#message_digest_encryption_type ⇒ Object
156
157
158
159
160
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 156
def message_digest_encryption_type
match = config_get('interface_ospf', 'message_digest_enc_type',
@get_args)
Encryption.cli_to_symbol(match)
end
|
#message_digest_key_id ⇒ Object
136
137
138
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 136
def message_digest_key_id
config_get('interface_ospf', 'message_digest_key_id', @get_args)
end
|
#message_digest_key_set(keyid, algtype, enctype, password) ⇒ Object
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 170
def message_digest_key_set(keyid, algtype, enctype, password)
current_keyid = message_digest_key_id
if keyid == default_message_digest_key_id && current_keyid != keyid
@set_args.merge!(state: 'no',
keyid: current_keyid,
algtype: '',
enctype: '',
password: '')
config_set('interface_ospf', 'message_digest_key_set', @set_args)
elsif keyid != default_message_digest_key_id
fail TypeError unless password.is_a?(String)
fail ArgumentError unless password.length > 0
enctype = Encryption.symbol_to_cli(enctype)
@set_args.merge!(state: '',
keyid: keyid,
algtype: algtype,
enctype: enctype,
password: password)
config_set('interface_ospf', 'message_digest_key_set', @set_args)
end
set_args_keys_default
end
|
#message_digest_password ⇒ Object
162
163
164
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 162
def message_digest_password
config_get('interface_ospf', 'message_digest_password', @get_args)
end
|
#mtu_ignore ⇒ Object
281
282
283
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 281
def mtu_ignore
config_get('interface_ospf', 'mtu_ignore', @get_args)
end
|
#mtu_ignore=(enable) ⇒ Object
285
286
287
288
289
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 285
def mtu_ignore=(enable)
@set_args[:state] = enable ? '' : 'no'
config_set('interface_ospf', 'mtu_ignore', @set_args)
set_args_keys_default
end
|
#network_type ⇒ Object
295
296
297
298
299
300
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 295
def network_type
type = config_get('interface_ospf', 'network_type', @get_args)
return 'p2p' if type == 'point-to-point'
return default_network_type if type.nil?
type
end
|
#network_type=(type) ⇒ Object
302
303
304
305
306
307
308
309
310
311
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 302
def network_type=(type)
if type == default_network_type
@set_args.merge!(state: 'no', network_type: '')
else
network = 'point-to-point' if type.to_s == 'p2p'
@set_args.merge!(state: '', network_type: network)
end
config_set('interface_ospf', 'network_type', @set_args)
set_args_keys_default
end
|
#passive_interface ⇒ Object
317
318
319
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 317
def passive_interface
config_get('interface_ospf', 'passive_interface', @get_args)
end
|
#passive_interface=(enable) ⇒ Object
321
322
323
324
325
326
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 321
def passive_interface=(enable)
fail TypeError unless enable == true || enable == false
@set_args[:state] = enable ? '' : 'no'
config_set('interface_ospf', 'passive_interface', @set_args)
set_args_keys_default
end
|
#priority ⇒ Object
328
329
330
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 328
def priority
config_get('interface_ospf', 'priority', @get_args)
end
|
#priority=(val) ⇒ Object
332
333
334
335
336
337
338
339
340
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 332
def priority=(val)
if val == default_priority
@set_args.merge!(state: 'no', priority: '')
else
@set_args.merge!(state: '', priority: val)
end
config_set('interface_ospf', 'priority', @set_args)
set_args_keys_default
end
|
#set_args_keys_default ⇒ Object
51
52
53
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 51
def set_args_keys_default
@set_args = { name: @intf_name, ospf_name: @ospf_name, area: @area }
end
|
#shutdown ⇒ Object
346
347
348
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 346
def shutdown
config_get('interface_ospf', 'shutdown', @get_args)
end
|
#shutdown=(enable) ⇒ Object
350
351
352
353
354
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 350
def shutdown=(enable)
@set_args[:state] = enable ? '' : 'no'
config_set('interface_ospf', 'shutdown', @set_args)
set_args_keys_default
end
|
#transmit_delay ⇒ Object
360
361
362
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 360
def transmit_delay
config_get('interface_ospf', 'transmit_delay', @get_args)
end
|
#transmit_delay=(val) ⇒ Object
364
365
366
367
368
369
370
371
372
|
# File 'lib/cisco_node_utils/interface_ospf.rb', line 364
def transmit_delay=(val)
if val == default_transmit_delay
@set_args.merge!(state: 'no', delay: '')
else
@set_args.merge!(state: '', delay: val)
end
config_set('interface_ospf', 'transmit_delay', @set_args)
set_args_keys_default
end
|