cisco_node_utils 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+