cisco_node_utils 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +3 -0
  4. data/.rubocop_todo.yml +293 -0
  5. data/CHANGELOG.md +5 -0
  6. data/CONTRIBUTING.md +31 -0
  7. data/Gemfile +4 -0
  8. data/LICENSE +201 -0
  9. data/README.md +113 -0
  10. data/Rakefile +4 -0
  11. data/cisco_node_utils.gemspec +30 -0
  12. data/lib/cisco_node_utils.rb +33 -0
  13. data/lib/cisco_node_utils/README_YAML.md +333 -0
  14. data/lib/cisco_node_utils/cisco_cmn_utils.rb +92 -0
  15. data/lib/cisco_node_utils/command_reference.rb +415 -0
  16. data/lib/cisco_node_utils/command_reference_common.yaml +845 -0
  17. data/lib/cisco_node_utils/command_reference_n3064.yaml +13 -0
  18. data/lib/cisco_node_utils/command_reference_n7k.yaml +48 -0
  19. data/lib/cisco_node_utils/command_reference_n9k.yaml +35 -0
  20. data/lib/cisco_node_utils/configparser_lib.rb +196 -0
  21. data/lib/cisco_node_utils/interface.rb +501 -0
  22. data/lib/cisco_node_utils/interface_ospf.rb +241 -0
  23. data/lib/cisco_node_utils/node.rb +673 -0
  24. data/lib/cisco_node_utils/platform.rb +184 -0
  25. data/lib/cisco_node_utils/platform_info.rb +58 -0
  26. data/lib/cisco_node_utils/platform_info.yaml +10 -0
  27. data/lib/cisco_node_utils/router_ospf.rb +96 -0
  28. data/lib/cisco_node_utils/router_ospf_vrf.rb +258 -0
  29. data/lib/cisco_node_utils/snmpcommunity.rb +91 -0
  30. data/lib/cisco_node_utils/snmpgroup.rb +55 -0
  31. data/lib/cisco_node_utils/snmpserver.rb +150 -0
  32. data/lib/cisco_node_utils/snmpuser.rb +342 -0
  33. data/lib/cisco_node_utils/tacacs_server.rb +175 -0
  34. data/lib/cisco_node_utils/tacacs_server_host.rb +128 -0
  35. data/lib/cisco_node_utils/version.rb +17 -0
  36. data/lib/cisco_node_utils/vlan.rb +153 -0
  37. data/lib/cisco_node_utils/vtp.rb +127 -0
  38. data/lib/cisco_node_utils/yum.rb +84 -0
  39. data/tests/basetest.rb +93 -0
  40. data/tests/ciscotest.rb +136 -0
  41. data/tests/cmd_config.yaml +51 -0
  42. data/tests/cmd_config_invalid.yaml +16 -0
  43. data/tests/test_all_cisco.rb +46 -0
  44. data/tests/test_command_config.rb +192 -0
  45. data/tests/test_command_reference.rb +222 -0
  46. data/tests/test_interface.rb +1017 -0
  47. data/tests/test_interface_ospf.rb +763 -0
  48. data/tests/test_interface_svi.rb +267 -0
  49. data/tests/test_interface_switchport.rb +722 -0
  50. data/tests/test_node.rb +108 -0
  51. data/tests/test_node_ext.rb +450 -0
  52. data/tests/test_platform.rb +188 -0
  53. data/tests/test_router_ospf.rb +164 -0
  54. data/tests/test_router_ospf_vrf.rb +753 -0
  55. data/tests/test_snmpcommunity.rb +344 -0
  56. data/tests/test_snmpgroup.rb +71 -0
  57. data/tests/test_snmpserver.rb +443 -0
  58. data/tests/test_snmpuser.rb +803 -0
  59. data/tests/test_tacacs_server.rb +388 -0
  60. data/tests/test_tacacs_server_host.rb +391 -0
  61. data/tests/test_vlan.rb +264 -0
  62. data/tests/test_vtp.rb +319 -0
  63. data/tests/test_yum.rb +106 -0
  64. metadata +188 -0
@@ -0,0 +1,845 @@
1
+ # Command Reference Common
2
+ #
3
+ # For documentation please see:
4
+ # - README_YAML.md
5
+ #
6
+ ---
7
+ aaa_authentication_login:
8
+ ascii_authentication:
9
+ config_get: "show run aaa all"
10
+ config_get_token: '/^aaa authentication login ascii-authentication/'
11
+ config_set: "%s aaa authentication login ascii-authentication"
12
+ default_value: false
13
+
14
+ chap:
15
+ config_get: "show run aaa all"
16
+ config_get_token: '/^aaa authentication login chap enable/'
17
+ config_set: "%s aaa authentication login chap enable"
18
+ default_value: false
19
+
20
+ error_display:
21
+ config_get: "show run aaa all"
22
+ config_get_token: '/^aaa authentication login error-enable/'
23
+ config_set: "%s aaa authentication login error-enable"
24
+ default_value: false
25
+
26
+ mschap:
27
+ config_get: "show run aaa all"
28
+ config_get_token: '/^aaa authentication login mschap enable/'
29
+ config_set: "%s aaa authentication login mschap enable"
30
+ default_value: false
31
+
32
+ mschapv2:
33
+ config_get: "show run aaa all"
34
+ config_get_token: '/^aaa authentication login mschapv2 enable/'
35
+ config_set: "%s aaa authentication login mschapv2 enable"
36
+ default_value: false
37
+
38
+ aaa_auth_login_service:
39
+ groups:
40
+ config_get: "show aaa authentication"
41
+ config_get_token: ["TABLE_AuthenMethods", "ROW_AuthenMethods"]
42
+ # this set is only used when there are groups to configure
43
+ config_set: "%s aaa authentication login %s group %s %s"
44
+ default_value: []
45
+
46
+ method:
47
+ config_get: "show aaa authentication"
48
+ #config_get_token: '/aaa authentication login %s (?:group (?:\S+ )+)?(local|none)$/'
49
+ config_get_token: '/^\s*%s:.*(local|none)\s*$/'
50
+ # this set is only used when there are no groups to configure
51
+ config_set: "%s aaa authentication login %s %s"
52
+ default_value: :local
53
+
54
+ services:
55
+ config_get: "show run aaa all"
56
+ #config_get_token: '/^\s*(\S+):/'
57
+ config_get_token: '/^aaa authentication login (\S+) (?:none|group|local)/'
58
+
59
+ aaa_server_group:
60
+ deadtime:
61
+ default_value: 0
62
+
63
+ servers:
64
+ default_value: []
65
+
66
+ source_interface:
67
+ default_value: ""
68
+
69
+ tacacs_deadtime:
70
+ config_get: "show run tacacs all"
71
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^deadtime (\d+)/']
72
+ config_set: ["aaa group server tacacs %s", "%s deadtime %s"]
73
+
74
+ tacacs_group:
75
+ config_set: "%s aaa group server tacacs %s"
76
+
77
+ tacacs_groups:
78
+ config_get: "show run tacacs all"
79
+ config_get_token: '/^aaa group server tacacs\+ (\S+)/'
80
+
81
+ tacacs_server:
82
+ config_set: ["aaa group server tacacs %s", "%s server %s"]
83
+
84
+ tacacs_servers:
85
+ config_get: "show run tacacs all"
86
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^server (\S+)/']
87
+
88
+ tacacs_source_interface:
89
+ config_get: "show run tacacs all"
90
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^source-interface (\S+)/']
91
+ config_set: ["aaa group server tacacs %s", "%s source-interface %s"]
92
+
93
+ tacacs_vrf:
94
+ config_get: "show run tacacs all"
95
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^use-vrf (\S+)/']
96
+ config_set: ["aaa group server tacacs %s", "%s use-vrf %s"]
97
+
98
+ vrf:
99
+ default_value: "default"
100
+
101
+ domain_name:
102
+ domain_name:
103
+ # NOTE: This does not account for vrf ip domain-name
104
+ config_get: "show running-config"
105
+ config_get_token: '/^ip domain-name (.*)/'
106
+
107
+ fex:
108
+ feature:
109
+ config_get: "show feature-set"
110
+ config_get_token: '/^fex[\s\d]+(\w+)/'
111
+ config_set: "%s feature-set fex"
112
+
113
+ feature_install:
114
+ config_set: "%s install feature-set fex"
115
+
116
+ images:
117
+ packages:
118
+ config_get: 'show install patches'
119
+ # Package state should always be some variant of Active or Inactive
120
+ config_get_token: '/^(\S+)\s+(\S*[aA]ctive.*)\s*$/'
121
+
122
+ interface:
123
+ access_vlan:
124
+ config_get: "show running interface all"
125
+ config_get_token: ['/^interface %s$/i', '/^switchport access vlan (.*)$/']
126
+ config_set: ["interface %s", "switchport access vlan %s"]
127
+ default_value: 1
128
+
129
+ all_interfaces:
130
+ config_get: "show running interface all"
131
+ config_get_token: '/^interface (.*)/'
132
+
133
+ create:
134
+ config_set: "interface %s"
135
+
136
+ description:
137
+ config_get: "show running interface all"
138
+ config_get_token: ['/^interface %s$/i', '/^description (.*)/']
139
+ config_set: ["interface %s", "%s description %s"]
140
+ default_value: ""
141
+
142
+ destroy:
143
+ config_set: "no interface %s"
144
+
145
+ feature_vlan:
146
+ config_get: "show running | i ^feature"
147
+ config_get_token: '/^feature interface-vlan$/'
148
+ config_set: "%s feature interface-vlan"
149
+
150
+ ipv4_addr_mask:
151
+ config_get: "show running interface all"
152
+ config_get_token: [
153
+ '/^interface %s$/i',
154
+ '/^ip address ([0-9\.]+)[\s\/](.*)/'
155
+ ]
156
+ config_set: ["interface %s", "%s ip address %s"]
157
+
158
+ ipv4_address:
159
+ default_value: ~
160
+
161
+ ipv4_netmask_length:
162
+ default_value: ~
163
+
164
+ ipv4_proxy_arp:
165
+ config_get: "show running interface all"
166
+ config_get_token: [
167
+ '/^interface %s$/i',
168
+ '/^ip proxy-arp$/'
169
+ ]
170
+ config_set: ["interface %s", "%s ip proxy-arp"]
171
+ default_value: false
172
+
173
+ ipv4_redirects_loopback:
174
+ config_get: "show running interface all"
175
+ config_get_token: [
176
+ '/^interface %s$/i',
177
+ '/^((?:no )?ip redirects)$/'
178
+ ]
179
+ config_set: ["interface %s", "%s ip redirects"]
180
+ default_value: true
181
+ test_config_get_regex: [!ruby/regexp '/^\s+no ip redirects/']
182
+ test_config_result:
183
+ false: RuntimeError
184
+ true: RuntimeError
185
+
186
+ ipv4_redirects_other_interfaces:
187
+ config_get: "show running interface all"
188
+ config_get_token: [
189
+ '/^interface %s$/i',
190
+ '/^((?:no )?ip redirects)$/'
191
+ ]
192
+ config_set: ["interface %s", "%s ip redirects"]
193
+ default_value: true
194
+ test_config_get_regex: [!ruby/regexp '/^\s+no ip redirects/']
195
+ test_config_result:
196
+ false: false
197
+ true: true
198
+
199
+ negotiate_auto_ethernet:
200
+ config_get: "show running interface all"
201
+ config_get_token: [
202
+ '/^interface %s$/i',
203
+ '/^negotiate auto$/'
204
+ ]
205
+ config_set: ["interface %s", "%s negotiate auto"]
206
+ default_value: true
207
+ test_config_get_regex: [
208
+ !ruby/regexp '/^\s+no negotiate auto/',
209
+ !ruby/regexp '/^\s+negotiate auto/'
210
+ ]
211
+
212
+ negotiate_auto_portchannel:
213
+ config_get: "show running interface all"
214
+ config_get_token: [
215
+ '/^interface %s$/i',
216
+ '/^negotiate auto$/'
217
+ ]
218
+ config_set: ["interface %s", "%s negotiate auto"]
219
+ default_value: false
220
+ test_config_get_regex: [
221
+ !ruby/regexp '/^\s+no negotiate auto/',
222
+ !ruby/regexp '/^\s+negotiate auto/'
223
+ ]
224
+
225
+ negotiate_auto_other_interfaces:
226
+ default_value: false
227
+ test_config_result:
228
+ false: RuntimeError
229
+ true: RuntimeError
230
+
231
+ shutdown:
232
+ config_get: "show running interface all"
233
+ config_get_token: ['/^interface %s$/i', '/^shutdown$/']
234
+ config_set: ["interface %s", "%s shutdown"]
235
+
236
+ shutdown_ether_channel:
237
+ default_value: false
238
+
239
+ shutdown_ethernet_noswitchport_noshutdown:
240
+ default_value: false
241
+
242
+ shutdown_ethernet_noswitchport_shutdown:
243
+ default_value: false
244
+
245
+ shutdown_ethernet_switchport_noshutdown:
246
+ default_value: false
247
+
248
+ shutdown_ethernet_switchport_shutdown:
249
+ default_value: true
250
+
251
+ shutdown_loopback:
252
+ default_value: false
253
+
254
+ shutdown_vlan:
255
+ default_value: true
256
+
257
+ shutdown_unknown:
258
+ default_value: true
259
+
260
+ system_default_switchport:
261
+ config_get: "show running all | include 'system default'"
262
+ config_get_token: ['/^system default switchport$/']
263
+ # default_value: n/a. This is a user-configurable system default.
264
+
265
+ system_default_switchport_shutdown:
266
+ config_get: "show running all | include 'system default'"
267
+ config_get_token: ['/^system default switchport shutdown$/']
268
+ # default_value: n/a. This is a user-configurable system default.
269
+
270
+ system_default_svi_autostate:
271
+ config_get: "show running all | include 'system default'"
272
+ config_get_token: ['/^system default interface-vlan autostate$/']
273
+ # default_value: n/a. This is a user-configurable system default.
274
+
275
+ switchport:
276
+ config_get: "show running interface all"
277
+ config_get_token: ['/^interface %s$/i', '/^switchport$/']
278
+ config_set: ["interface %s", "%s switchport"]
279
+ # default_value: n/a. This is derived from system_default_switchport
280
+
281
+ switchport_autostate_exclude:
282
+ config_get: "show running interface all"
283
+ config_get_token: ['/^interface %s$/i', '/(^switchport autostate exclude)/']
284
+ config_set: ["interface %s", "%s switchport autostate exclude"]
285
+ default_value: false
286
+
287
+ switchport_mode_ethernet:
288
+ config_get: "show running interface all"
289
+ config_get_token: ['/^interface %s$/i', '/^switchport mode (.*)$/']
290
+ config_set: ["interface %s", "%s switchport mode %s"]
291
+ default_value: "access"
292
+
293
+ switchport_mode_port_channel:
294
+ config_get: "show running interface all"
295
+ config_get_token: ['/^interface %s$/i', '/^switchport mode (.*)$/']
296
+ config_set: ["interface %s", "%s switchport mode %s"]
297
+ default_value: ""
298
+
299
+ switchport_mode_other_interfaces:
300
+ default_value: ""
301
+
302
+ switchport_mode_dot1q_tunnel:
303
+ test_config_result:
304
+ false: RuntimeError
305
+
306
+ svi_autostate:
307
+ config_get: "show running interface all"
308
+ config_get_token: ['/^interface %s$/i', '/^autostate$/']
309
+ config_set: ["interface %s", "%s autostate"]
310
+ default_value: true
311
+ test_config_result:
312
+ false: false
313
+ true: true
314
+
315
+ svi_management:
316
+ config_get: "show running interface all"
317
+ config_get_token: ['/^interface %s$/i', '/^management$/']
318
+ config_set: ["interface %s", "%s management"]
319
+ default_value: false
320
+
321
+ vtp:
322
+ config_get: "show running interface all"
323
+ config_get_token: ['/^interface %s$/i', '/^vtp *$/']
324
+ config_set: ["interface %s", "%s vtp"]
325
+ default_value: false
326
+
327
+ interface_ospf:
328
+ area:
329
+ config_get: 'show running interface all'
330
+ config_get_token: ['/^interface %s$/i', '/^\s*ip router ospf (\S+) area (\S+)/']
331
+ config_set: ["interface %s", "%s ip router ospf %s area %s"]
332
+
333
+ cost:
334
+ config_get: 'show running interface all'
335
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf cost (\d+)/']
336
+ config_set: ["interface %s", "%s ip ospf cost %s"]
337
+ default_value: 0
338
+
339
+ dead_interval:
340
+ config_get: 'show running interface all'
341
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf dead-interval (\d+)/']
342
+ config_set: ["interface %s", "%s ip ospf dead-interval %s"]
343
+ default_value: 40
344
+ test_config_result: [262141]
345
+
346
+ hello_interval:
347
+ config_get: 'show running interface all'
348
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf hello-interval (\d+)/']
349
+ config_set: ["interface %s", "%s ip ospf hello-interval %s"]
350
+ default_value: 10
351
+
352
+ message_digest:
353
+ config_get: 'show running interface all'
354
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf authentication message-digest/']
355
+ config_set: ["interface %s", "%s ip ospf authentication message-digest"]
356
+ default_value: false
357
+
358
+ message_digest_alg_type:
359
+ config_get: 'show running interface all'
360
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ (\S+)/']
361
+ default_value: 'md5'
362
+
363
+ message_digest_enc_type:
364
+ config_get: 'show running interface all'
365
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ \S+ (\d+)/']
366
+ default_value: '0'
367
+
368
+ message_digest_password:
369
+ config_get: 'show running interface all'
370
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ \S+ \d+ (\S+)/']
371
+
372
+ message_digest_key_id:
373
+ config_get: 'show running interface all'
374
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key (\d+)/']
375
+ default_value: 0
376
+
377
+ message_digest_key_set:
378
+ config_set: ["interface %s", "%s ip ospf message-digest-key %s %s %s %s"]
379
+
380
+ passive_interface:
381
+ config_get: 'show running interface all'
382
+ config_get_token: ['/^interface %s$/i', '/^\s*ip ospf passive-interface/']
383
+ config_set: ["interface %s", "%s ip ospf passive-interface"]
384
+ default_value: false
385
+
386
+
387
+ inventory:
388
+ all:
389
+ config_get: 'show inventory'
390
+ config_get_token: ["TABLE_inv", "ROW_inv"]
391
+
392
+ chassis:
393
+ config_get: 'show inventory'
394
+ config_get_token: ["TABLE_inv", "ROW_inv", {'name': '"Chassis"'}]
395
+
396
+ inventory:
397
+ test_config_get_regex: [
398
+ !ruby/regexp '/.*\nNAME: "(.+)",\s+DESCR: "(.+)"\nPID: (\S+)\s+, VID: (.+) , SN: (.+)\n/',
399
+ !ruby/regexp '/.*\nNAME: "(.+)",\s+DESCR: "(.+)"\nPID: (\S+)\s+, VID: (.+) , SN: (.+)\n/'
400
+ ]
401
+
402
+ productid:
403
+ config_get: "show inventory"
404
+ config_get_token: ["TABLE_inv", "ROW_inv", 0, "productid"]
405
+
406
+ serialnum:
407
+ config_get: "show inventory"
408
+ config_get_token: ["TABLE_inv", "ROW_inv", 0, "serialnum"]
409
+
410
+ versionid:
411
+ config_get: "show inventory"
412
+ config_get_token: ["TABLE_inv", "ROW_inv", 0, "vendorid"]
413
+
414
+ memory:
415
+ total:
416
+ config_get: 'show system resources'
417
+ config_get_token: '/Memory.* (\S+) total/'
418
+
419
+ used:
420
+ config_get: 'show system resources'
421
+ config_get_token: '/Memory.* (\S+) used/'
422
+
423
+ free:
424
+ config_get: 'show system resources'
425
+ config_get_token: '/Memory.* (\S+) free/'
426
+
427
+ ospf:
428
+ _template:
429
+ config_get: "show running ospf all"
430
+ config_get_token: '/^router ospf <name>$/'
431
+ config_get_token_append:
432
+ - '/^vrf <vrf>$/'
433
+ config_set: "router ospf <name>"
434
+ config_set_append:
435
+ - "vrf <vrf>"
436
+
437
+ auto_cost:
438
+ config_get_token_append: '/^auto-cost reference-bandwidth (\d+)\s*(\S+)?$/'
439
+ config_set_append: "auto-cost reference-bandwidth <cost> <type>"
440
+ default_value: [40, "Gbps"]
441
+
442
+ default_metric:
443
+ config_get_token_append: '/^default-metric (\d+)?$/'
444
+ config_set_append: "<state> default-metric <metric>"
445
+ default_value: 0
446
+
447
+ feature:
448
+ config_get: "show running ospf"
449
+ config_get_token: '/^feature ospf$/'
450
+ config_set: "%s feature ospf"
451
+
452
+ log_adjacency:
453
+ config_get_token_append: '/^(log-adjacency-changes)\s*(detail)?$/'
454
+ config_set_append: "<state> log-adjacency-changes <type>"
455
+ default_value: :none
456
+
457
+ router:
458
+ config_get: "show running ospf"
459
+ config_get_token: '/^router ospf (\S+)$/'
460
+ config_set: "%s router ospf %s"
461
+
462
+ router_id:
463
+ config_get_token_append: '/^router-id (\S+)?$/'
464
+ config_set_append: "<state> router-id <router_id>"
465
+ default_value: ""
466
+
467
+ timer_throttle_lsa:
468
+ config_get_token_append: '/^timers throttle lsa (\d+) (\d+) (\d+)$/'
469
+ config_set_append: "timers throttle lsa <start> <hold> <max>"
470
+
471
+ timer_throttle_lsa_start:
472
+ default_value: 0
473
+
474
+ timer_throttle_lsa_hold:
475
+ default_value: 5000
476
+
477
+ timer_throttle_lsa_max:
478
+ default_value: 5000
479
+
480
+ timer_throttle_spf:
481
+ config_get_token_append: '/^timers throttle spf (\d+) (\d+) (\d+)$/'
482
+ config_set_append: "timers throttle spf <start> <hold> <max>"
483
+
484
+ timer_throttle_spf_start:
485
+ default_value: 200
486
+
487
+ timer_throttle_spf_hold:
488
+ default_value: 1000
489
+
490
+ timer_throttle_spf_max:
491
+ default_value: 5000
492
+
493
+ vrf:
494
+ config_get_token: ['/^router ospf <name>$/i', '/^vrf\s+(\S+)$/']
495
+ config_set: ["router ospf <name>", "<state> vrf <vrf>", "end"]
496
+
497
+ show_system:
498
+ uptime:
499
+ config_get: 'show system uptime'
500
+ config_get_token: '/.*System uptime:\s+(\d+) days, (\d+) hours, (\d+) minutes, (\d+) seconds/'
501
+
502
+ show_version:
503
+ board:
504
+ config_get: 'sh version'
505
+ config_get_token: 'proc_board_id'
506
+
507
+ boot_image:
508
+ config_get: "sh version"
509
+ config_get_token: "kick_file_name"
510
+ test_config_get: "sh version | no-more"
511
+ test_config_get_regex: !ruby/regexp '/.*NXOS image file is: (.*)$.*/'
512
+
513
+ cpu:
514
+ config_get: 'sh version'
515
+ config_get_token: 'cpu_name'
516
+
517
+ description:
518
+ config_get: "sh version"
519
+ config_get_token: "chassis_id"
520
+ test_config_get: "sh version | no-more"
521
+ # Hardware
522
+ # cisco Nexus9000 C9396PX Chassis
523
+ #
524
+ # Other variants for the line of interest:
525
+ # cisco Nexus9000 C9504 (4 Slot) Chassis ("Supervisor Module")
526
+ # ^-module_id-ignore!-^
527
+ # cisco Nexus3000 C3132Q Chassis
528
+ # cisco N3K-C3048TP-1GE
529
+ test_config_get_regex: !ruby/regexp '/Hardware\n cisco (([^(\n]+|\(\d+ Slot\))+\w+)/'
530
+
531
+ full:
532
+ config_get: "sh version"
533
+
534
+ header:
535
+ config_get: "sh version"
536
+ config_get_token: "header_str"
537
+
538
+ host_name:
539
+ config_get: "sh version"
540
+ config_get_token: "host_name"
541
+
542
+ last_reset_reason:
543
+ config_get: "sh version"
544
+ config_get_token: "rr_reason"
545
+ test_config_get: "sh version | no-more"
546
+ test_config_get_regex: !ruby/regexp '/.*\nLast reset.*\n\n? Reason: (.*)\n/'
547
+
548
+ last_reset_time:
549
+ config_get: "sh version"
550
+ config_get_token: "rr_ctime"
551
+ test_config_get: "sh version | no-more"
552
+ test_config_get_regex: !ruby/regexp '/.*\nLast reset at \d+ usecs after (.*)\n/'
553
+
554
+ system_image:
555
+ config_get: "sh version"
556
+ config_get_token: "isan_file_name"
557
+ test_config_get: "sh version | no-more"
558
+ test_config_get_regex: !ruby/regexp '/.*system image file is: (.*)$.*/'
559
+
560
+ uptime:
561
+ config_get: 'show version'
562
+ config_get_token: '/uptime is (.*)/'
563
+
564
+ version:
565
+ config_get: "sh version"
566
+ test_config_get: "sh version | no-more"
567
+ config_get_token: "kickstart_ver_str"
568
+ test_config_get_regex: [
569
+ !ruby/regexp /\nkickstart_ver_str\s+(.+)\n/,
570
+ !ruby/regexp '/.*NXOS:\s+version (.*)\n/'
571
+ ]
572
+
573
+ snmp_community:
574
+ acl:
575
+ config_get: "show running snmp all"
576
+ config_get_token: '/^snmp-server community %s use-acl (.*)$/'
577
+ config_set: "%s snmp-server community %s use-acl %s"
578
+ default_value: ""
579
+
580
+ all_communities:
581
+ config_get: "show running snmp all"
582
+ config_get_token: '/^snmp-server community (\S+) /'
583
+
584
+ community:
585
+ config_get: "show running snmp all"
586
+ config_get_token: '/^snmp-server community (%s) group .*$/'
587
+ config_set: "%s snmp-server community %s group %s"
588
+
589
+ group:
590
+ config_get: "show running snmp all"
591
+ config_get_token: '/^snmp-server community %s group (.*)$/'
592
+ config_set: "snmp-server community %s group %s"
593
+ default_value: "network-operator"
594
+
595
+ snmp_group:
596
+ group:
597
+ config_get: "show snmp group"
598
+ config_get_token: "/^Role: (.*)$/"
599
+ default_value: ""
600
+
601
+ snmp_server:
602
+ aaa_user_cache_timeout:
603
+ config_get: "show snmp internal globals"
604
+ config_get_token: '/AAA Cache Timeout :(\d+)/'
605
+ config_set: "%s snmp-server aaa-user cache-timeout %d"
606
+ default_value: 3600
607
+
608
+ contact:
609
+ config_get: "show snmp"
610
+ config_get_token: "sys_contact"
611
+ config_set: "%s snmp-server contact %s"
612
+ default_value: ""
613
+
614
+ global_enforce_priv:
615
+ config_get: "show run snmp"
616
+ config_get_token: '/snmp-server globalEnforcePriv/'
617
+ config_set: "%s snmp-server globalEnforcePriv"
618
+ default_value: true
619
+
620
+ location:
621
+ config_get: "show snmp"
622
+ config_get_token: "sys_location"
623
+ config_set: "%s snmp-server location %s"
624
+ default_value: ""
625
+
626
+ packet_size:
627
+ config_get: "show snmp internal globals"
628
+ config_get_token: '/SNMP Max packet size :(\d+)/'
629
+ config_set: "%s snmp-server packetsize %d"
630
+ default_value: 1500
631
+
632
+ protocol:
633
+ config_get: "show snmp"
634
+ config_get_token: "protocol_status"
635
+ config_set: "%s snmp-server protocol enable"
636
+ default_value: true
637
+
638
+ tcp_session_auth:
639
+ config_get: "show snmp"
640
+ config_get_token: "tcp_auth_status"
641
+ config_set: "%s snmp-server tcp-session %s"
642
+ default_value: true
643
+
644
+
645
+ snmp_user:
646
+ auth_password:
647
+ config_get: "show run snmp all"
648
+ config_get_token: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
649
+ default_value: ""
650
+
651
+ # The getter format will not have group info if engine id is configured.
652
+ auth_password_with_engine_id:
653
+ config_get: "show run snmp all"
654
+ config_get_token: '/snmp-server user (\S+) auth \S+ (\S+) .*engineID (\S+)/'
655
+ default_value: ""
656
+
657
+ auth_protocol:
658
+ default_value: "md5"
659
+
660
+ engine_id:
661
+ default_value: ""
662
+
663
+ group:
664
+ default_value: "network-operator"
665
+
666
+ priv_password:
667
+ config_get: "show run snmp all"
668
+ config_get_token: '/snmp-server user (\S+) \S+ auth \S+ \S+ priv.*(0x\S+)/'
669
+ default_value: ""
670
+
671
+ # The getter format will not have group info if engine id is configured.
672
+ priv_password_with_engine_id:
673
+ config_get: "show run snmp all"
674
+ config_get_token: '/snmp-server user (\S+) auth \S+ \S+ priv .*(0x\S+) .*engineID (\S+)/'
675
+ default_value: ""
676
+
677
+ priv_protocol:
678
+ default_value: "des"
679
+
680
+ # Config string syntax:
681
+ # [no] snmp-server user <user> [group] [auth {md5|sha} <passwd1> \
682
+ # [priv [aes-128] <passwd2>] [localizedkey] [engineID <id>]]
683
+ user:
684
+ config_get: "show snmp user"
685
+ config_get_token: ["TABLE_snmp_users", "ROW_snmp_users"]
686
+ config_set: "%s snmp-server user %s %s %s %s %s %s"
687
+
688
+ system:
689
+ resources:
690
+ config_get: "show system resources"
691
+ test_config_get: "show system resources | no-more"
692
+ test_config_get_regex: !ruby/regexp '/.*CPU states : (\d+\.\d+)% user, (\d+\.\d+)% kernel/'
693
+
694
+ tacacs_server:
695
+ deadtime:
696
+ config_get: "show run tacacs all"
697
+ config_get_token: '/^tacacs-server deadtime\s+(\d+)/'
698
+ config_set: "%s tacacs-server deadtime %d"
699
+ default_value: 0
700
+
701
+ directed_request:
702
+ # oddly, directed request must be retrieved from aaa output
703
+ config_get: "show running aaa all"
704
+ config_get_token: '/(?:no)?\s*tacacs-server directed-request/'
705
+ config_set: "%s tacacs-server directed-request"
706
+ default_value: false
707
+
708
+ encryption_type:
709
+ config_get: "show run tacacs all"
710
+ config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
711
+ default_value: 0
712
+
713
+ encryption_password:
714
+ config_get: "show run tacacs all"
715
+ config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
716
+ default_value: ""
717
+
718
+ encryption:
719
+ config_set: "%s tacacs-server key %d %s"
720
+
721
+ feature:
722
+ config_get: "show run tacacs all"
723
+ config_get_token: '/^feature tacacs/'
724
+ config_set: "%s feature tacacs+"
725
+
726
+ source_interface:
727
+ config_get: "show run tacacs all"
728
+ config_get_token: '/(no)?\s*ip tacacs source-interface\s+(\S+)?/'
729
+ config_set: "%s ip tacacs source-interface %s"
730
+ default_value: ""
731
+
732
+ timeout:
733
+ config_get: "show run tacacs all"
734
+ config_get_token: '/tacacs-server timeout\s+(\d+)/'
735
+ config_set: "%s tacacs-server timeout %d"
736
+ default_value: 5
737
+
738
+ tacacs_server_host:
739
+ encryption:
740
+ config_set: "%s tacacs-server host %s key %s %s"
741
+
742
+ encryption_password:
743
+ config_get: "show run tacacs all"
744
+ config_get_token: '/^tacacs-server host %s key \d+\s+(\S+)/'
745
+ default_value: ""
746
+
747
+ encryption_type:
748
+ config_get: "show run tacacs all"
749
+ config_get_token: '/^tacacs-server host %s key (\d+)/'
750
+
751
+ host:
752
+ config_set: "%s tacacs-server host %s"
753
+
754
+ hosts:
755
+ config_get: "show run tacacs all"
756
+ config_get_token: '/^tacacs-server host (\S+)/'
757
+
758
+ port:
759
+ config_get: "show run tacacs all"
760
+ config_get_token: '/^tacacs-server host %s .*port (\d+)/'
761
+ config_set: "tacacs-server host %s port %s"
762
+ default_value: 49
763
+
764
+ timeout:
765
+ config_get: "show run tacacs all"
766
+ config_get_token: '/^tacacs-server host %s .*timeout (\d+)/'
767
+ config_set: "%s tacacs-server host %s timeout %s"
768
+ default_value: 0
769
+
770
+ virtual_service:
771
+ services:
772
+ config_get: 'show virtual-service detail'
773
+ config_get_token: ["TABLE_detail", "ROW_detail"]
774
+
775
+ vlan:
776
+ all_vlans:
777
+ config_get: "show vlan brief"
778
+ config_get_token: '/^(\d+)\s/'
779
+
780
+ create:
781
+ config_set: ["vlan %s" , "end"]
782
+
783
+ destroy:
784
+ config_set: "no vlan %s"
785
+
786
+ name:
787
+ config_get: "show vlan brief"
788
+ config_get_token: '/^%d+\s+(\S+)\s/'
789
+ config_set: ["vlan %d", "%s name %s", "end"]
790
+ test_config_result:
791
+ 32: "String exceeded max length of (32)"
792
+
793
+ state:
794
+ config_get: "show vlan brief"
795
+ config_get_token: '/^%d+\s+\S+\s+(\S+)\s/'
796
+ config_set: ["vlan %d", "%s state %s", "end"]
797
+ default_value: "active"
798
+
799
+ shutdown:
800
+ config_get: "show vlan brief"
801
+ config_get_token: '/^%d+\s+\S+\s+(\S+)\s/'
802
+ config_set: ["vlan %d", "%s shutdown", "end"]
803
+ default_value: false
804
+
805
+ vtp:
806
+ domain:
807
+ config_get: "show vtp status"
808
+ config_get_token: "domain_name"
809
+ config_set: "vtp domain %s"
810
+
811
+ feature:
812
+ config_get: "show running vtp"
813
+ config_get_token: '/^feature vtp$/'
814
+ config_set: "%s feature vtp"
815
+
816
+ filename:
817
+ config_get: "show running vtp"
818
+ config_get_token: '/vtp file (\S+)/'
819
+ config_set: "%s vtp file %s"
820
+ default_value: "bootflash:/vlan.dat"
821
+
822
+ password:
823
+ config_get: "show vtp password"
824
+ config_get_token: "passwd"
825
+ config_set: "%s vtp password %s"
826
+ default_value: ""
827
+
828
+ version:
829
+ config_get: "show vtp status"
830
+ config_get_token: '/VTP\s+version\s+running\s+:\s+(\d+)/'
831
+ config_set: "vtp version %s"
832
+ default_value: 1
833
+ test_config_result:
834
+ 3: "Cisco::CliError"
835
+
836
+ yum:
837
+ install:
838
+ config_set: "install add %s activate"
839
+ query:
840
+ config_get: "show install packages"
841
+ # pass in the pkg name, retrieve version
842
+ config_get_token: '/^%s\S*\s+(\S+)\s+(?:installed|@\S+)/'
843
+ remove:
844
+ config_set: "install deactivate %s"
845
+