cisco_node_utils 1.2.0 → 1.3.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 (255) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +13 -0
  5. data/.travis.yml +4 -1
  6. data/CHANGELOG.md +81 -2
  7. data/CONTRIBUTING.md +2 -17
  8. data/Gemfile +5 -0
  9. data/README.md +92 -47
  10. data/Rakefile +23 -1
  11. data/bin/git/hooks/hook_lib +7 -0
  12. data/bin/git/hooks/pre-commit/check_unstaged_changes +18 -0
  13. data/bin/git/hooks/pre-commit/rubocop +7 -2
  14. data/bin/git/hooks/pre-commit/validate-diffs +18 -4
  15. data/bin/git/hooks/pre-commit/validate-yaml +18 -0
  16. data/bin/git/update-hooks +64 -6
  17. data/cisco_node_utils.gemspec +9 -6
  18. data/docs/README-develop-best-practices.md +149 -50
  19. data/docs/README-develop-node-utils-APIs.md +92 -42
  20. data/docs/README-maintainers.md +7 -4
  21. data/docs/README-test-execution.md +57 -0
  22. data/docs/cisco_node_utils.yaml.example +30 -0
  23. data/docs/template-router.rb +4 -0
  24. data/ext/mkrf_conf.rb +63 -0
  25. data/lib/.rubocop.yml +2 -2
  26. data/lib/cisco_node_utils.rb +5 -0
  27. data/lib/cisco_node_utils/aaa_authentication_login.rb +5 -6
  28. data/lib/cisco_node_utils/aaa_authorization_service.rb +1 -1
  29. data/lib/cisco_node_utils/ace.rb +165 -12
  30. data/lib/cisco_node_utils/acl.rb +2 -1
  31. data/lib/cisco_node_utils/bgp.rb +184 -21
  32. data/lib/cisco_node_utils/bgp_af.rb +94 -249
  33. data/lib/cisco_node_utils/bgp_neighbor.rb +94 -14
  34. data/lib/cisco_node_utils/bgp_neighbor_af.rb +75 -8
  35. data/lib/cisco_node_utils/bridge_domain.rb +183 -0
  36. data/lib/cisco_node_utils/bridge_domain_vni.rb +206 -0
  37. data/lib/cisco_node_utils/cisco_cmn_utils.rb +85 -2
  38. data/lib/cisco_node_utils/client.rb +35 -0
  39. data/lib/cisco_node_utils/client/client.rb +234 -0
  40. data/lib/cisco_node_utils/client/grpc.rb +33 -0
  41. data/lib/cisco_node_utils/client/grpc/client.rb +311 -0
  42. data/lib/cisco_node_utils/client/grpc/ems.proto +148 -0
  43. data/lib/cisco_node_utils/client/grpc/ems.rb +111 -0
  44. data/lib/cisco_node_utils/client/grpc/ems_services.rb +49 -0
  45. data/lib/cisco_node_utils/client/nxapi.rb +31 -0
  46. data/lib/cisco_node_utils/client/nxapi/client.rb +305 -0
  47. data/lib/cisco_node_utils/client/utils.rb +164 -0
  48. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +222 -254
  49. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +11 -8
  50. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +22 -15
  51. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +11 -8
  52. data/lib/cisco_node_utils/cmd_ref/acl.yaml +21 -16
  53. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +239 -109
  54. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +114 -55
  55. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +76 -52
  56. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +106 -62
  57. data/lib/cisco_node_utils/cmd_ref/bridge_domain.yaml +71 -0
  58. data/lib/cisco_node_utils/cmd_ref/bridge_domain_vni.yaml +33 -0
  59. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +35 -14
  60. data/lib/cisco_node_utils/cmd_ref/encapsulation.yaml +25 -0
  61. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +23 -17
  62. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +94 -83
  63. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +22 -17
  64. data/lib/cisco_node_utils/cmd_ref/feature.yaml +76 -26
  65. data/lib/cisco_node_utils/cmd_ref/images.yaml +3 -2
  66. data/lib/cisco_node_utils/cmd_ref/interface.yaml +381 -153
  67. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +21 -11
  68. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +21 -21
  69. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +30 -21
  70. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +18 -13
  71. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +26 -31
  72. data/lib/cisco_node_utils/cmd_ref/itd_device_group.yaml +83 -0
  73. data/lib/cisco_node_utils/cmd_ref/itd_service.yaml +119 -0
  74. data/lib/cisco_node_utils/cmd_ref/memory.yaml +17 -6
  75. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +10 -3
  76. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +17 -5
  77. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +33 -29
  78. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +12 -10
  79. data/lib/cisco_node_utils/cmd_ref/pim.yaml +16 -19
  80. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +40 -25
  81. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +17 -12
  82. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +71 -35
  83. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +10 -5
  84. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +6 -2
  85. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +47 -43
  86. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +13 -11
  87. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +4 -2
  88. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +23 -21
  89. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +26 -22
  90. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +19 -17
  91. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +18 -6
  92. data/lib/cisco_node_utils/cmd_ref/stp_global.yaml +234 -0
  93. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +24 -9
  94. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +5 -3
  95. data/lib/cisco_node_utils/cmd_ref/system.yaml +4 -3
  96. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +22 -20
  97. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +27 -15
  98. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +45 -16
  99. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +21 -11
  100. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +3 -2
  101. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +60 -32
  102. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +118 -101
  103. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +54 -58
  104. data/lib/cisco_node_utils/cmd_ref/vrf_af.yaml +118 -0
  105. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +19 -25
  106. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +28 -18
  107. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +34 -17
  108. data/lib/cisco_node_utils/cmd_ref/yum.yaml +6 -4
  109. data/lib/cisco_node_utils/command_reference.rb +261 -142
  110. data/lib/cisco_node_utils/constants.rb +33 -0
  111. data/lib/cisco_node_utils/encapsulation.rb +112 -0
  112. data/lib/cisco_node_utils/environment.rb +102 -0
  113. data/lib/cisco_node_utils/evpn_vni.rb +5 -3
  114. data/lib/cisco_node_utils/exceptions.rb +111 -0
  115. data/lib/cisco_node_utils/fabricpath_global.rb +52 -35
  116. data/lib/cisco_node_utils/fabricpath_topology.rb +44 -57
  117. data/lib/cisco_node_utils/feature.rb +165 -3
  118. data/lib/cisco_node_utils/interface.rb +1051 -260
  119. data/lib/cisco_node_utils/interface_channel_group.rb +11 -10
  120. data/lib/cisco_node_utils/interface_ospf.rb +1 -2
  121. data/lib/cisco_node_utils/interface_portchannel.rb +4 -12
  122. data/lib/cisco_node_utils/interface_service_vni.rb +7 -7
  123. data/lib/cisco_node_utils/itd_device_group.rb +248 -0
  124. data/lib/cisco_node_utils/itd_device_group_node.rb +144 -0
  125. data/lib/cisco_node_utils/itd_service.rb +523 -0
  126. data/lib/cisco_node_utils/logger.rb +75 -0
  127. data/lib/cisco_node_utils/node.rb +62 -192
  128. data/lib/cisco_node_utils/node_util.rb +56 -10
  129. data/lib/cisco_node_utils/overlay_global.rb +2 -2
  130. data/lib/cisco_node_utils/pim.rb +2 -13
  131. data/lib/cisco_node_utils/pim_group_list.rb +1 -1
  132. data/lib/cisco_node_utils/pim_rp_address.rb +1 -1
  133. data/lib/cisco_node_utils/platform.rb +52 -21
  134. data/lib/cisco_node_utils/portchannel_global.rb +89 -19
  135. data/lib/cisco_node_utils/radius_server.rb +168 -37
  136. data/lib/cisco_node_utils/router_ospf.rb +20 -35
  137. data/lib/cisco_node_utils/router_ospf_vrf.rb +4 -4
  138. data/lib/cisco_node_utils/snmpserver.rb +1 -6
  139. data/lib/cisco_node_utils/snmpuser.rb +6 -4
  140. data/lib/cisco_node_utils/stp_global.rb +676 -0
  141. data/lib/cisco_node_utils/syslog_server.rb +77 -18
  142. data/lib/cisco_node_utils/syslog_settings.rb +1 -1
  143. data/lib/cisco_node_utils/tacacs_server_group.rb +8 -4
  144. data/lib/cisco_node_utils/tacacs_server_host.rb +115 -25
  145. data/lib/cisco_node_utils/vdc.rb +12 -0
  146. data/lib/cisco_node_utils/version.rb +1 -1
  147. data/lib/cisco_node_utils/vlan.rb +147 -29
  148. data/lib/cisco_node_utils/vpc.rb +55 -3
  149. data/lib/cisco_node_utils/vrf.rb +72 -11
  150. data/lib/cisco_node_utils/vrf_af.rb +114 -29
  151. data/lib/cisco_node_utils/vtp.rb +34 -52
  152. data/lib/cisco_node_utils/vxlan_vtep.rb +34 -8
  153. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +36 -4
  154. data/lib/minitest/environment_plugin.rb +31 -0
  155. data/lib/minitest/log_level_plugin.rb +41 -0
  156. data/spec/client_spec.rb +7 -0
  157. data/spec/environment_spec.rb +263 -0
  158. data/spec/grpc_client_spec.rb +23 -0
  159. data/spec/isolate/all_clients_spec.rb +9 -0
  160. data/spec/isolate/grpc_only_spec.rb +16 -0
  161. data/spec/isolate/no_clients_spec.rb +26 -0
  162. data/spec/isolate/nxapi_only_spec.rb +16 -0
  163. data/spec/nxapi_client_spec.rb +42 -0
  164. data/spec/schema.yaml +75 -0
  165. data/spec/shared_examples_for_clients.rb +14 -0
  166. data/spec/spec_helper.rb +91 -0
  167. data/spec/whitespace_spec.rb +10 -0
  168. data/spec/yaml_spec.rb +42 -0
  169. data/tests/.rubocop.yml +2 -2
  170. data/tests/CSCuxdublin-1.0.0-7.0.3.I3.1.lib32_n9000.rpm +0 -0
  171. data/tests/basetest.rb +96 -36
  172. data/tests/ciscotest.rb +220 -12
  173. data/tests/cmd_config.yaml +71 -49
  174. data/tests/cmd_config_invalid.yaml +1 -1
  175. data/tests/test_aaa_authentication_login.rb +1 -0
  176. data/tests/test_aaa_authentication_login_service.rb +9 -0
  177. data/tests/test_aaa_authorization_service.rb +173 -367
  178. data/tests/test_ace.rb +171 -100
  179. data/tests/test_acl.rb +10 -1
  180. data/tests/test_bgp_af.rb +395 -728
  181. data/tests/test_bgp_neighbor.rb +274 -115
  182. data/tests/test_bgp_neighbor_af.rb +178 -77
  183. data/tests/test_bridge_domain.rb +191 -0
  184. data/tests/test_bridge_domain_vni.rb +116 -0
  185. data/tests/test_client_utils.rb +111 -0
  186. data/tests/test_command_config.rb +9 -5
  187. data/tests/test_command_reference.rb +380 -102
  188. data/tests/test_dns_domain.rb +13 -3
  189. data/tests/test_domain_name.rb +13 -3
  190. data/tests/test_encapsulation.rb +77 -0
  191. data/tests/test_evpn_vni.rb +25 -7
  192. data/tests/test_fabricpath_global.rb +167 -163
  193. data/tests/test_fabricpath_topology.rb +12 -33
  194. data/tests/test_feature.rb +215 -0
  195. data/tests/test_grpc.rb +166 -0
  196. data/tests/test_interface.rb +585 -344
  197. data/tests/test_interface_bdi.rb +80 -0
  198. data/tests/test_interface_channel_group.rb +6 -3
  199. data/tests/test_interface_ospf.rb +26 -24
  200. data/tests/test_interface_portchannel.rb +1 -0
  201. data/tests/test_interface_private_vlan.rb +724 -0
  202. data/tests/test_interface_service_vni.rb +37 -66
  203. data/tests/test_interface_svi.rb +98 -101
  204. data/tests/test_interface_switchport.rb +419 -549
  205. data/tests/test_itd_device_group.rb +145 -0
  206. data/tests/test_itd_device_group_node.rb +199 -0
  207. data/tests/test_itd_service.rb +298 -0
  208. data/tests/test_logger.rb +43 -0
  209. data/tests/test_name_server.rb +11 -2
  210. data/tests/test_node.rb +16 -75
  211. data/tests/test_node_ext.rb +174 -163
  212. data/tests/test_node_util.rb +119 -0
  213. data/tests/test_ntp_config.rb +5 -1
  214. data/tests/test_ntp_server.rb +2 -2
  215. data/tests/test_nxapi.rb +221 -0
  216. data/tests/test_overlay_global.rb +47 -38
  217. data/tests/test_pim.rb +2 -0
  218. data/tests/test_pim_group_list.rb +2 -0
  219. data/tests/test_pim_rp_address.rb +2 -0
  220. data/tests/test_platform.rb +86 -39
  221. data/tests/test_portchannel_global.rb +211 -135
  222. data/tests/test_radius_global.rb +13 -5
  223. data/tests/test_radius_server.rb +256 -104
  224. data/tests/test_radius_server_group.rb +2 -0
  225. data/tests/test_router_bgp.rb +781 -485
  226. data/tests/test_router_ospf.rb +26 -103
  227. data/tests/test_router_ospf_vrf.rb +52 -57
  228. data/tests/test_snmp_notification_receiver.rb +2 -0
  229. data/tests/test_snmpcommunity.rb +2 -0
  230. data/tests/test_snmpgroup.rb +2 -0
  231. data/tests/test_snmpnotification.rb +40 -21
  232. data/tests/test_snmpserver.rb +2 -0
  233. data/tests/test_snmpuser.rb +2 -0
  234. data/tests/test_stp_global.rb +563 -0
  235. data/tests/test_syslog_server.rb +32 -8
  236. data/tests/test_syslog_settings.rb +22 -9
  237. data/tests/test_tacacs_server.rb +32 -27
  238. data/tests/test_tacacs_server_group.rb +100 -45
  239. data/tests/test_tacacs_server_host.rb +135 -43
  240. data/tests/test_vdc.rb +2 -16
  241. data/tests/test_vlan.rb +106 -54
  242. data/tests/test_vlan_mt_full.rb +11 -21
  243. data/tests/test_vlan_private.rb +669 -0
  244. data/tests/test_vpc.rb +312 -159
  245. data/tests/test_vrf.rb +122 -113
  246. data/tests/test_vrf_af.rb +238 -0
  247. data/tests/test_vtp.rb +58 -102
  248. data/tests/test_vxlan_vtep.rb +38 -17
  249. data/tests/test_vxlan_vtep_vni.rb +61 -9
  250. data/tests/test_yum.rb +49 -25
  251. metadata +122 -36
  252. data/lib/cisco_node_utils/cmd_ref/fex.yaml +0 -9
  253. data/lib/cisco_node_utils/cmd_ref/vni.yaml +0 -76
  254. data/lib/cisco_node_utils/vni.rb +0 -227
  255. data/tests/test_vni.rb +0 -106
@@ -3,12 +3,17 @@
3
3
  _template:
4
4
  multiple: true
5
5
  default_value: []
6
- config_get: "show running-config radius all"
6
+ nexus:
7
+ get_command: "show running-config radius all"
8
+ ios_xr:
9
+ get_command: "show running-config aaa"
7
10
 
8
11
  group:
9
- config_get_token: '/^aaa group server radius (\S+)/'
10
- config_set: '<state> aaa group server radius <name>'
12
+ get_value: '/^aaa group server radius (\S+)/'
13
+ set_value: '<state> aaa group server radius <name>'
11
14
 
12
15
  servers:
13
- config_get_token: ['/^aaa group server radius %s $/i', '/server (\S+)/']
14
- config_set: ['aaa group server radius <group>', '<state> server <ip>']
16
+ get_context: ['/^aaa group server radius %s/i']
17
+ get_value: '/server (\S+)/'
18
+ set_context: ['aaa group server radius <group>']
19
+ set_value: '<state> server <ip>'
@@ -1,5 +1,9 @@
1
1
  # show_system
2
2
  ---
3
3
  uptime:
4
- config_get: 'show system uptime'
5
- config_get_token: '/.*System uptime:\s+(\d+) days, (\d+) hours, (\d+) minutes, (\d+) seconds/'
4
+ # TODO: redundant with show_version, uptime?
5
+ nexus:
6
+ get_command: 'show system uptime'
7
+ ios_xr:
8
+ get_command: 'show version'
9
+ get_value: '/.*System uptime.*(?:(\d+) days, )?(?:(\d+) hours, )?(?:(\d+) minutes, )?(?:(\d+) seconds)?/'
@@ -1,72 +1,76 @@
1
1
  # show_version
2
2
  ---
3
3
  _template:
4
- config_get: 'sh version'
5
- cli_nexus:
6
- test_config_get: "sh version | no-more"
4
+ get_command: 'sh version'
5
+ nexus:
6
+ data_format: nxapi_structured
7
+ ios_xr:
8
+ data_format: cli
7
9
 
8
10
  board:
9
- config_get_token: 'proc_board_id'
11
+ nexus:
12
+ get_value: 'proc_board_id'
10
13
 
11
14
  boot_image:
12
- config_get_token: "kick_file_name"
13
- test_config_get_regex: '/.*NXOS image file is: (.*)$.*/'
15
+ _exclude: [ios_xr]
16
+ nexus:
17
+ get_value: "kick_file_name"
14
18
 
15
19
  cpu:
16
- config_get_token: 'cpu_name'
20
+ nexus:
21
+ get_value: 'cpu_name'
17
22
 
18
23
  description:
19
- config_get_token: "chassis_id"
20
- cli_nexus:
21
- /N7/:
22
- test_config_get_regex: '/.*Hardware\n cisco (\w+ \w+ \(\w+ \w+\) \w+).*/'
23
- else:
24
- # Hardware
25
- # cisco Nexus9000 C9396PX Chassis
26
- #
27
- # Other variants for the line of interest:
28
- # cisco Nexus9000 C9504 (4 Slot) Chassis ("Supervisor Module")
29
- # ^-module_id-ignore!-^
30
- # cisco Nexus3000 C3132Q Chassis
31
- # cisco N3K-C3048TP-1GE
32
- test_config_get_regex: '/Hardware\n cisco (([^(\n]+|\(\d+ Slot\))+\w+)/'
24
+ nexus:
25
+ get_value: "chassis_id"
26
+ ios_xr:
27
+ get_command: 'show inventory | inc "Rack 0"'
28
+ get_value: '/DESCR: "(.*)"/'
33
29
 
34
30
  full:
35
- config_get: "sh version"
31
+ get_command: "sh version"
36
32
 
37
33
  header:
38
- config_get_token: "header_str"
34
+ nexus:
35
+ get_value: "header_str"
36
+ ios_xr:
37
+ get_value: '/Cisco.*Software/'
39
38
 
40
39
  host_name:
41
- cli_nexus:
42
- config_get_token: "host_name"
40
+ nexus:
41
+ get_value: "host_name"
42
+ ios_xr:
43
+ # not displayed in 'show version' on IOS XR
44
+ get_command: "show running | i hostname"
45
+ get_value: '/^hostname (.*)$/'
46
+ default_value: 'ios'
43
47
 
44
48
  last_reset_reason:
45
- config_get_token: "rr_reason"
46
- test_config_get_regex: '/.*\nLast reset.*\n\n? Reason: (.*)\n/'
49
+ _exclude: [ios_xr]
50
+ get_value: "rr_reason"
47
51
 
48
52
  last_reset_time:
53
+ _exclude: [N3k, ios_xr]
49
54
  kind: string
50
55
  default_value: ''
51
- config_get_token: "rr_ctime"
52
- test_config_get_regex: '/.*\nLast reset at \d+ usecs after (.*)\n/'
56
+ get_value: "rr_ctime"
53
57
 
54
58
  system_image:
55
- cli_nexus:
56
- /N7/:
57
- config_get_token: "isan_file_name"
58
- test_config_get_regex: '/.*system image file is: (.*)$.*/'
59
- else:
60
- config_get_token: "kick_file_name"
61
- test_config_get_regex: '/.*NXOS image file is: (.*)$.*/'
59
+ get_value: "kick_file_name"
60
+ N5k: &sys_img_isan
61
+ get_value: "isan_file_name"
62
+ N6k: *sys_img_isan
63
+ N7k: *sys_img_isan
64
+ ios_xr:
65
+ get_value: '/IOS XR.*Version (.*)$/'
62
66
 
63
67
  uptime:
64
- config_get_token: '/uptime is (.*)/'
68
+ # TODO: redundant with show_system, uptime?
69
+ get_data_format: cli
70
+ get_value: '/uptime is (.*)/'
65
71
 
66
72
  version:
67
- cli_nexus:
68
- config_get_token: "kickstart_ver_str"
69
- test_config_get_regex: [
70
- /\nkickstart_ver_str\s+(.+)\n/,
71
- '/.*NXOS:\s+version (.*)\n/'
72
- ]
73
+ nexus:
74
+ get_value: "kickstart_ver_str"
75
+ ios_xr:
76
+ get_value: '/IOS XR.*Version (.*)$/'
@@ -1,23 +1,25 @@
1
1
  # snmp_community
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  acl:
4
- config_get: "show running snmp all"
5
- config_get_token: '/^snmp-server community %s use-acl (.*)$/'
6
- config_set: "%s snmp-server community %s use-acl %s"
6
+ get_command: "show running snmp all"
7
+ get_value: '/^snmp-server community %s use-acl (.*)$/'
8
+ set_value: "%s snmp-server community %s use-acl %s"
7
9
  default_value: ""
8
10
 
9
11
  all_communities:
10
12
  multiple: true
11
- config_get: "show running snmp all"
12
- config_get_token: '/^snmp-server community (\S+) /'
13
+ get_command: "show running snmp all"
14
+ get_value: '/^snmp-server community (\S+) /'
13
15
 
14
16
  community:
15
- config_get: "show running snmp all"
16
- config_get_token: '/^snmp-server community (%s) group .*$/'
17
- config_set: "%s snmp-server community %s group %s"
17
+ get_command: "show running snmp all"
18
+ get_value: '/^snmp-server community (%s) group .*$/'
19
+ set_value: "%s snmp-server community %s group %s"
18
20
 
19
21
  group:
20
- config_get: "show running snmp all"
21
- config_get_token: '/^snmp-server community %s group (.*)$/'
22
- config_set: "snmp-server community %s group %s"
22
+ get_command: "show running snmp all"
23
+ get_value: '/^snmp-server community %s group (.*)$/'
24
+ set_value: "snmp-server community %s group %s"
23
25
  default_value: "network-operator"
@@ -1,7 +1,9 @@
1
1
  # snmp_group
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  group:
4
6
  multiple: true
5
- config_get: "show snmp group"
6
- config_get_token: "/^Role: (.*)$/"
7
+ get_command: "show snmp group"
8
+ get_value: "/^Role: (.*)$/"
7
9
  default_value: ""
@@ -1,50 +1,52 @@
1
1
  # snmp_notification_receiver
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  port:
4
- config_get: "show running-config snmp all"
5
- config_get_token: '/^snmp-server host %s.*version.* udp-port (\d+).*$/'
6
+ get_command: "show running-config snmp all"
7
+ get_value: '/^snmp-server host %s.*version.* udp-port (\d+).*$/'
6
8
  default_value: null
7
9
 
8
10
  receivers:
9
- config_get: "show running snmp all"
10
- config_get_token: '/^snmp-server host (\S+) (traps|informs)/'
11
- config_set: "<state> snmp-server host <ip> <type> version <version> <security> <username> <udp_port>"
11
+ get_command: "show running snmp all"
12
+ get_value: '/^snmp-server host (\S+) (traps|informs)/'
13
+ set_value: "<state> snmp-server host <ip> <type> version <version> <security> <username> <udp_port>"
12
14
  multiple:
13
15
 
14
16
  security:
15
- config_get: "show running-config snmp all"
16
- config_get_token: '/^snmp-server host %s.* version 3 (auth|noauth|priv).*$/'
17
+ get_command: "show running-config snmp all"
18
+ get_value: '/^snmp-server host %s.* version 3 (auth|noauth|priv).*$/'
17
19
  default_value: null
18
20
 
19
21
  source_interface:
20
- config_get: "show running-config snmp all"
21
- config_get_token: '/^snmp-server host %s.* source-interface (\S+).*$/'
22
- config_set: "snmp-server host <ip> source-interface <source_interface> <port>"
22
+ get_command: "show running-config snmp all"
23
+ get_value: '/^snmp-server host %s.* source-interface (\S+).*$/'
24
+ set_value: "snmp-server host <ip> source-interface <source_interface> <port>"
23
25
  default_value: null
24
26
 
25
27
  type:
26
- config_get: "show running-config snmp all"
27
- config_get_token: '/^snmp-server host %s (traps|informs).*$/'
28
+ get_command: "show running-config snmp all"
29
+ get_value: '/^snmp-server host %s (traps|informs).*$/'
28
30
  default_value: null
29
31
 
30
32
  username:
31
- config_get: "show running-config snmp all"
32
- config_get_token: '/^snmp-server host %s.*version.* (\S+)$/'
33
+ get_command: "show running-config snmp all"
34
+ get_value: '/^snmp-server host %s.*version.* (\S+)$/'
33
35
  default_value: null
34
36
 
35
37
  username_with_port:
36
- config_get: "show running-config snmp all"
37
- config_get_token: '/^snmp-server host %s.*version.* (\S+) udp-port/'
38
+ get_command: "show running-config snmp all"
39
+ get_value: '/^snmp-server host %s.*version.* (\S+) udp-port/'
38
40
  default_value: null
39
41
 
40
42
  version:
41
- config_get: "show running-config snmp all"
42
- config_get_token: '/^snmp-server host %s.* version (\S+).*$/'
43
+ get_command: "show running-config snmp all"
44
+ get_value: '/^snmp-server host %s.* version (\S+).*$/'
43
45
  default_value: null
44
46
 
45
47
  vrf:
46
- config_get: "show running-config snmp all"
47
- config_get_token: '/^snmp-server host %s.* use-vrf (\S+).*$/'
48
- config_set: "snmp-server host <ip> use-vrf <vrf> <port>"
48
+ get_command: "show running-config snmp all"
49
+ get_value: '/^snmp-server host %s.* use-vrf (\S+).*$/'
50
+ set_value: "snmp-server host <ip> use-vrf <vrf> <port>"
49
51
  default_value: null
50
52
 
@@ -1,51 +1,55 @@
1
1
  # snmp_server
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  aaa_user_cache_timeout:
4
- cli_nexus:
6
+ nexus:
5
7
  kind: int
6
- config_get: "show snmp internal globals"
7
- config_get_token: '/AAA Cache Timeout :(\d+)/'
8
- config_set: "%s snmp-server aaa-user cache-timeout %d"
8
+ get_command: "show snmp internal globals"
9
+ get_value: '/AAA Cache Timeout :(\d+)/'
10
+ set_value: "%s snmp-server aaa-user cache-timeout %d"
9
11
  default_value: 3600
10
12
 
11
13
  contact:
12
- config_get: "show snmp"
13
- config_get_token: "sys_contact"
14
- config_set: "%s snmp-server contact %s"
14
+ get_data_format: nxapi_structured
15
+ get_command: "show snmp"
16
+ get_value: "sys_contact"
17
+ set_value: "%s snmp-server contact %s"
15
18
  default_value: ""
16
19
 
17
20
  global_enforce_priv:
18
21
  kind: boolean
19
- config_get: "show run snmp all"
20
- config_get_token: '/^(?:no )?snmp-server globalEnforcePriv/'
21
- config_set: "%s snmp-server globalEnforcePriv"
22
+ get_command: "show run snmp all"
23
+ get_value: '/^(?:no )?snmp-server globalEnforcePriv/'
24
+ set_value: "%s snmp-server globalEnforcePriv"
22
25
  default_value: false
23
26
 
24
27
  location:
25
- config_get: "show snmp"
26
- config_get_token: "sys_location"
27
- config_set: "%s snmp-server location %s"
28
+ get_data_format: nxapi_structured
29
+ get_command: "show snmp"
30
+ get_value: "sys_location"
31
+ set_value: "%s snmp-server location %s"
28
32
  default_value: ""
29
33
 
30
34
  packet_size:
31
35
  kind: int
32
- config_get: "show snmp internal globals"
33
- config_get_token: '/SNMP Max packet size :(\d+)/'
34
- config_set: "%s snmp-server packetsize %d"
36
+ get_command: "show snmp internal globals"
37
+ get_value: '/SNMP Max packet size :(\d+)/'
38
+ set_value: "%s snmp-server packetsize %d"
35
39
  default_value: 1500
36
40
 
37
41
  protocol:
38
42
  kind: boolean
39
43
  auto_default: false
40
- config_get: "show running-config snmp all"
41
- config_get_token: ['/^snmp.server protocol enable/']
42
- config_set: "%s snmp-server protocol enable"
44
+ get_command: "show running-config snmp all"
45
+ get_value: '/^snmp.server protocol enable/'
46
+ set_value: "%s snmp-server protocol enable"
43
47
  default_value: true
44
48
 
45
49
  tcp_session_auth:
46
50
  kind: boolean
47
51
  auto_default: false
48
- config_get: "show running-config snmp all"
49
- config_get_token: ['/^snmp.server tcp.session auth$/']
50
- config_set: "%s snmp-server tcp-session %s"
52
+ get_command: "show running-config snmp all"
53
+ get_value: '/^snmp.server tcp.session auth$/'
54
+ set_value: "%s snmp-server tcp-session %s"
51
55
  default_value: true
@@ -1,55 +1,57 @@
1
1
  # snmp_user
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  _template:
4
6
  multiple: true
5
7
 
6
8
  auth_password:
7
- config_get: "show run snmp all"
8
- config_get_token: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
9
+ get_command: "show run snmp all"
10
+ get_value: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
9
11
  default_value: ""
10
12
 
11
13
  # The getter format will not have group info if engine id is configured.
12
14
  auth_password_with_engine_id:
13
- config_get: "show run snmp all"
14
- config_get_token: '/snmp-server user (\S+) auth \S+ (\S+) .*engineID (\S+)/'
15
+ get_command: "show run snmp all"
16
+ get_value: '/snmp-server user (\S+) auth \S+ (\S+) .*engineID (\S+)/'
15
17
  default_value: ""
16
18
 
17
19
  auth_protocol:
18
20
  default_value: "md5"
19
- /N9K/:
21
+ N9k:
20
22
  # TODO: is this really N9K-specific?
21
- config_get_token: "auth"
23
+ get_value: "auth"
22
24
 
23
25
  engine_id:
24
26
  default_value: ""
25
27
 
26
28
  group:
27
29
  default_value: "network-operator"
28
- /N9K/:
30
+ N9k:
29
31
  # TODO: is this really N9K-specific?
30
- config_get_token: "group"
32
+ get_value: "group"
31
33
 
32
34
  priv_password:
33
- config_get: "show run snmp all"
34
- config_get_token: '/snmp-server user (\S+) \S+ auth \S+ \S+ priv.*(0x\S+)/'
35
+ get_command: "show run snmp all"
36
+ get_value: '/snmp-server user (\S+) \S+ auth \S+ \S+ priv.*(0x\S+)/'
35
37
  default_value: ""
36
38
 
37
39
  # The getter format will not have group info if engine id is configured.
38
40
  priv_password_with_engine_id:
39
- config_get: "show run snmp all"
40
- config_get_token: '/snmp-server user (\S+) auth \S+ \S+ priv .*(0x\S+) .*engineID (\S+)/'
41
+ get_command: "show run snmp all"
42
+ get_value: '/snmp-server user (\S+) auth \S+ \S+ priv .*(0x\S+) .*engineID (\S+)/'
41
43
  default_value: ""
42
44
 
43
45
  priv_protocol:
44
46
  default_value: "des"
45
- /N9K/:
47
+ N9k:
46
48
  # TODO: is this really N9K-specific?
47
- config_get_token: "priv"
49
+ get_value: "priv"
48
50
 
49
51
  # Config string syntax:
50
52
  # [no] snmp-server user <user> [group] [auth {md5|sha} <passwd1> \
51
53
  # [priv [aes-128] <passwd2>] [localizedkey] [engineID <id>]]
52
54
  user:
53
- config_get: "show run snmp all | i 'snmp-server user'"
54
- config_get_token: '/^snmp.server user (.*)$/'
55
- config_set: "%s snmp-server user %s %s %s %s %s %s"
55
+ get_command: "show run snmp all | i 'snmp-server user'"
56
+ get_value: '/^snmp.server user (.*)$/'
57
+ set_value: "%s snmp-server user %s %s %s %s %s %s"
@@ -1,11 +1,23 @@
1
1
  # snmpnotification
2
2
  ---
3
+ _template:
4
+ nexus:
5
+ get_command: "sh run snmp all | include 'snmp-server enable traps'"
6
+ ios_xr:
7
+ get_command: "show running-config snmp"
8
+
3
9
  enable:
4
- config_get: "sh run snmp all | include 'snmp-server enable traps'"
5
- config_get_token: '/^snmp-server enable traps <trap_name> ?$/'
6
- config_set: "<state> snmp-server enable traps <trap_name>"
10
+ nexus:
11
+ get_value: '/^snmp-server enable traps <trap_name> ?$/'
12
+ set_value: "<state> snmp-server enable traps <trap_name>"
13
+ ios_xr:
14
+ get_value: '/^snmp-server traps <trap_name> ?$/'
15
+ set_value: "<state> snmp-server traps <trap_name>"
7
16
 
8
17
  notifications:
9
- config_get: "sh run snmp all | include 'snmp-server enable traps'"
10
- config_get_token: '/.*snmp-server enable traps (.*)?$/'
11
- multiple:
18
+ nexus:
19
+ get_value: '/.*snmp-server enable traps (.*)?$/'
20
+ multiple:
21
+ ios_xr:
22
+ get_value: '/.*snmp-server traps (.*)?$/'
23
+ multiple: