cisco_node_utils 1.1.0 → 1.2.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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/CHANGELOG.md +126 -1
  4. data/README.md +19 -12
  5. data/Rakefile +1 -0
  6. data/bin/git/hooks/commit-msg/enforce_style +8 -0
  7. data/cisco_node_utils.gemspec +4 -3
  8. data/docs/README-develop-best-practices.md +127 -109
  9. data/docs/README-develop-node-utils-APIs.md +47 -39
  10. data/docs/template-router.rb +3 -7
  11. data/lib/.rubocop.yml +4 -4
  12. data/lib/cisco_node_utils.rb +1 -1
  13. data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
  14. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
  15. data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
  16. data/lib/cisco_node_utils/ace.rb +196 -0
  17. data/lib/cisco_node_utils/acl.rb +100 -0
  18. data/lib/cisco_node_utils/bgp.rb +301 -163
  19. data/lib/cisco_node_utils/bgp_af.rb +187 -19
  20. data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
  21. data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
  22. data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
  23. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
  24. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
  25. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
  26. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
  27. data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
  28. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
  29. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
  30. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
  31. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
  32. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
  33. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
  34. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
  35. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
  36. data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
  37. data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
  38. data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
  39. data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
  40. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
  41. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
  42. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
  43. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
  44. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
  45. data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
  46. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
  47. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
  48. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
  49. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
  50. data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
  51. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
  52. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
  53. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
  54. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
  55. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
  56. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
  57. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
  58. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
  59. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
  60. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
  61. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
  62. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
  63. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
  64. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
  65. data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
  66. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
  67. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
  68. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
  69. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
  70. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
  71. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
  72. data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
  73. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
  74. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
  75. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
  76. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
  77. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
  78. data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
  79. data/lib/cisco_node_utils/command_reference.rb +359 -187
  80. data/lib/cisco_node_utils/configparser_lib.rb +1 -1
  81. data/lib/cisco_node_utils/dns_domain.rb +19 -5
  82. data/lib/cisco_node_utils/domain_name.rb +4 -8
  83. data/lib/cisco_node_utils/evpn_vni.rb +157 -0
  84. data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
  85. data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
  86. data/lib/cisco_node_utils/feature.rb +111 -0
  87. data/lib/cisco_node_utils/interface.rb +390 -97
  88. data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
  89. data/lib/cisco_node_utils/interface_ospf.rb +11 -34
  90. data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
  91. data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
  92. data/lib/cisco_node_utils/name_server.rb +1 -1
  93. data/lib/cisco_node_utils/node.rb +55 -249
  94. data/lib/cisco_node_utils/node_util.rb +5 -1
  95. data/lib/cisco_node_utils/ntp_config.rb +2 -2
  96. data/lib/cisco_node_utils/ntp_server.rb +14 -5
  97. data/lib/cisco_node_utils/overlay_global.rb +153 -0
  98. data/lib/cisco_node_utils/pim.rb +124 -0
  99. data/lib/cisco_node_utils/pim_group_list.rb +108 -0
  100. data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
  101. data/lib/cisco_node_utils/platform.rb +8 -9
  102. data/lib/cisco_node_utils/portchannel_global.rb +277 -0
  103. data/lib/cisco_node_utils/radius_global.rb +9 -19
  104. data/lib/cisco_node_utils/radius_server.rb +31 -41
  105. data/lib/cisco_node_utils/radius_server_group.rb +117 -0
  106. data/lib/cisco_node_utils/router_ospf.rb +1 -1
  107. data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
  108. data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
  109. data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
  110. data/lib/cisco_node_utils/snmpgroup.rb +1 -1
  111. data/lib/cisco_node_utils/snmpnotification.rb +57 -0
  112. data/lib/cisco_node_utils/snmpserver.rb +8 -17
  113. data/lib/cisco_node_utils/snmpuser.rb +67 -28
  114. data/lib/cisco_node_utils/syslog_server.rb +3 -9
  115. data/lib/cisco_node_utils/syslog_settings.rb +2 -10
  116. data/lib/cisco_node_utils/tacacs_server.rb +9 -14
  117. data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
  118. data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
  119. data/lib/cisco_node_utils/vdc.rb +88 -0
  120. data/lib/cisco_node_utils/version.rb +5 -2
  121. data/lib/cisco_node_utils/vlan.rb +71 -8
  122. data/lib/cisco_node_utils/vni.rb +227 -0
  123. data/lib/cisco_node_utils/vpc.rb +377 -0
  124. data/lib/cisco_node_utils/vrf.rb +60 -9
  125. data/lib/cisco_node_utils/vrf_af.rb +191 -0
  126. data/lib/cisco_node_utils/vtp.rb +8 -6
  127. data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
  128. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
  129. data/lib/cisco_node_utils/yum.rb +1 -1
  130. data/tests/.rubocop.yml +1 -1
  131. data/tests/basetest.rb +16 -7
  132. data/tests/ciscotest.rb +55 -13
  133. data/tests/cmd_config.yaml +2 -2
  134. data/tests/platform_info.rb +3 -2
  135. data/tests/test_aaa_authentication_login.rb +219 -0
  136. data/tests/test_aaa_authentication_login_service.rb +759 -0
  137. data/tests/test_aaa_authorization_service.rb +1041 -0
  138. data/tests/test_ace.rb +160 -0
  139. data/tests/test_acl.rb +176 -0
  140. data/tests/test_bgp_af.rb +269 -13
  141. data/tests/test_bgp_neighbor.rb +38 -40
  142. data/tests/test_bgp_neighbor_af.rb +92 -32
  143. data/tests/test_command_config.rb +5 -5
  144. data/tests/test_command_reference.rb +284 -101
  145. data/tests/test_dns_domain.rb +1 -1
  146. data/tests/test_domain_name.rb +1 -1
  147. data/tests/test_evpn_vni.rb +106 -0
  148. data/tests/test_fabricpath_global.rb +243 -0
  149. data/tests/test_fabricpath_topology.rb +98 -0
  150. data/tests/test_interface.rb +292 -74
  151. data/tests/test_interface_channel_group.rb +74 -0
  152. data/tests/test_interface_ospf.rb +9 -4
  153. data/tests/test_interface_portchannel.rb +105 -0
  154. data/tests/test_interface_service_vni.rb +232 -0
  155. data/tests/test_interface_svi.rb +77 -62
  156. data/tests/test_interface_switchport.rb +17 -5
  157. data/tests/test_name_server.rb +1 -1
  158. data/tests/test_node.rb +1 -1
  159. data/tests/test_node_ext.rb +10 -20
  160. data/tests/test_ntp_config.rb +1 -1
  161. data/tests/test_ntp_server.rb +18 -6
  162. data/tests/test_overlay_global.rb +102 -0
  163. data/tests/test_pim.rb +177 -0
  164. data/tests/test_pim_group_list.rb +181 -0
  165. data/tests/test_pim_rp_address.rb +153 -0
  166. data/tests/test_platform.rb +3 -3
  167. data/tests/test_portchannel_global.rb +202 -0
  168. data/tests/test_radius_global.rb +1 -1
  169. data/tests/test_radius_server.rb +92 -57
  170. data/tests/test_radius_server_group.rb +149 -0
  171. data/tests/test_router_bgp.rb +283 -112
  172. data/tests/test_router_ospf.rb +2 -2
  173. data/tests/test_router_ospf_vrf.rb +4 -4
  174. data/tests/test_snmp_notification_receiver.rb +167 -0
  175. data/tests/test_snmpcommunity.rb +1 -1
  176. data/tests/test_snmpgroup.rb +1 -1
  177. data/tests/test_snmpnotification.rb +72 -0
  178. data/tests/test_snmpserver.rb +29 -105
  179. data/tests/test_snmpuser.rb +32 -30
  180. data/tests/test_syslog_server.rb +36 -10
  181. data/tests/test_syslog_settings.rb +1 -1
  182. data/tests/test_tacacs_server.rb +1 -1
  183. data/tests/test_tacacs_server_group.rb +405 -0
  184. data/tests/test_tacacs_server_host.rb +1 -1
  185. data/tests/test_vdc.rb +78 -0
  186. data/tests/test_vlan.rb +74 -19
  187. data/tests/test_vlan_mt_full.rb +95 -0
  188. data/tests/test_vni.rb +106 -0
  189. data/tests/test_vpc.rb +361 -0
  190. data/tests/test_vrf.rb +172 -29
  191. data/tests/test_vtp.rb +1 -1
  192. data/tests/test_vxlan_vtep.rb +214 -0
  193. data/tests/test_vxlan_vtep_vni.rb +201 -0
  194. data/tests/test_yum.rb +1 -1
  195. metadata +120 -11
  196. data/lib/cisco_node_utils/README_YAML.md +0 -325
  197. data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
  198. data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
  199. data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
  200. data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
  201. data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
  202. data/tests/platform_info.yaml +0 -10
@@ -0,0 +1,25 @@
1
+ # radius_global.yaml
2
+ ---
3
+ key:
4
+ config_get: "show running-config radius all"
5
+ config_get_token: '/^radius-server key \d+\s+(\S+)/'
6
+ config_set: '<state> radius-server key <key>'
7
+
8
+ key_format:
9
+ kind: int
10
+ config_get: "show running-config radius all"
11
+ config_get_token: '/^radius-server key (\d).*/'
12
+
13
+ retransmit:
14
+ kind: int
15
+ config_get: "show running-config radius all"
16
+ config_get_token: '/^radius-server retransmit (\d+).*/'
17
+ config_set: '<state> radius-server retransmit <count>'
18
+ default_value: 1
19
+
20
+ timeout:
21
+ kind: int
22
+ config_get: "show running-config radius all"
23
+ config_get_token: '/^radius-server timeout (\d+).*/'
24
+ config_set: '<state> radius-server timeout <timeout>'
25
+ default_value: 5
@@ -0,0 +1,64 @@
1
+ # radius_server.yaml
2
+ ---
3
+ accounting:
4
+ auto_default: false
5
+ kind: boolean
6
+ config_get: "show running-config radius"
7
+ config_get_token: '/^radius-server host %s.* (accounting) .*$/'
8
+ config_set: '<state> radius-server host <ip> accounting'
9
+ default_value: true
10
+
11
+ acct-port:
12
+ kind: int
13
+ config_get: "show running-config radius all"
14
+ config_get_token: '/^radius-server host %s.* acct-port (\d+).*$/'
15
+ config_set: '<state> radius-server host <ip> acct-port <port>'
16
+ default_value: 1813
17
+
18
+ auth-port:
19
+ kind: int
20
+ config_get: "show running-config radius all"
21
+ config_get_token: '/^radius-server host %s.* auth-port (\d+).*$/'
22
+ config_set: '<state> radius-server host <ip> auth-port <port>'
23
+ default_value: 1812
24
+
25
+ authentication:
26
+ auto_default: false
27
+ kind: boolean
28
+ config_get: "show running-config radius"
29
+ config_get_token: '/^radius-server host %s.* (authentication) .*$/'
30
+ config_set: '<state> radius-server host <ip> authentication'
31
+ default_value: true
32
+
33
+ hosts:
34
+ multiple: true
35
+ config_get: "show running-config radius"
36
+ config_get_token: '/^radius-server host (\S+).*/'
37
+ config_set: '<state> radius-server host <ip>'
38
+ default_value: ''
39
+
40
+ key:
41
+ config_get: "show running-config radius all"
42
+ config_get_token: '/^radius-server host %s.* key \d+\s+(\S+)/'
43
+ config_set: '<state> radius-server host <ip> key <key>'
44
+ default_value: ~
45
+
46
+ key_format:
47
+ kind: int
48
+ config_get: "show running-config radius all"
49
+ config_get_token: '/^radius-server host %s.* key (\d).*$/'
50
+ default_value: ~
51
+
52
+ retransmit:
53
+ kind: int
54
+ config_get: "show running-config radius all"
55
+ config_get_token: '/^radius-server host %s.* retransmit (\d+).*$/'
56
+ config_set: '<state> radius-server host <ip> retransmit <count>'
57
+ default_value: ~
58
+
59
+ timeout:
60
+ kind: int
61
+ config_get: "show running-config radius all"
62
+ config_get_token: '/^radius-server host %s.* timeout (\d+).*$/'
63
+ config_set: '<state> radius-server host <ip> timeout <timeout>'
64
+ default_value: ~
@@ -0,0 +1,14 @@
1
+ # radius_server_group
2
+ ---
3
+ _template:
4
+ multiple: true
5
+ default_value: []
6
+ config_get: "show running-config radius all"
7
+
8
+ group:
9
+ config_get_token: '/^aaa group server radius (\S+)/'
10
+ config_set: '<state> aaa group server radius <name>'
11
+
12
+ servers:
13
+ config_get_token: ['/^aaa group server radius %s $/i', '/server (\S+)/']
14
+ config_set: ['aaa group server radius <group>', '<state> server <ip>']
@@ -0,0 +1,5 @@
1
+ # show_system
2
+ ---
3
+ uptime:
4
+ config_get: 'show system uptime'
5
+ config_get_token: '/.*System uptime:\s+(\d+) days, (\d+) hours, (\d+) minutes, (\d+) seconds/'
@@ -0,0 +1,72 @@
1
+ # show_version
2
+ ---
3
+ _template:
4
+ config_get: 'sh version'
5
+ cli_nexus:
6
+ test_config_get: "sh version | no-more"
7
+
8
+ board:
9
+ config_get_token: 'proc_board_id'
10
+
11
+ boot_image:
12
+ config_get_token: "kick_file_name"
13
+ test_config_get_regex: '/.*NXOS image file is: (.*)$.*/'
14
+
15
+ cpu:
16
+ config_get_token: 'cpu_name'
17
+
18
+ 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+)/'
33
+
34
+ full:
35
+ config_get: "sh version"
36
+
37
+ header:
38
+ config_get_token: "header_str"
39
+
40
+ host_name:
41
+ cli_nexus:
42
+ config_get_token: "host_name"
43
+
44
+ last_reset_reason:
45
+ config_get_token: "rr_reason"
46
+ test_config_get_regex: '/.*\nLast reset.*\n\n? Reason: (.*)\n/'
47
+
48
+ last_reset_time:
49
+ kind: string
50
+ default_value: ''
51
+ config_get_token: "rr_ctime"
52
+ test_config_get_regex: '/.*\nLast reset at \d+ usecs after (.*)\n/'
53
+
54
+ 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: (.*)$.*/'
62
+
63
+ uptime:
64
+ config_get_token: '/uptime is (.*)/'
65
+
66
+ 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
+ ]
@@ -0,0 +1,23 @@
1
+ # snmp_community
2
+ ---
3
+ 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"
7
+ default_value: ""
8
+
9
+ all_communities:
10
+ multiple: true
11
+ config_get: "show running snmp all"
12
+ config_get_token: '/^snmp-server community (\S+) /'
13
+
14
+ 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"
18
+
19
+ 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"
23
+ default_value: "network-operator"
@@ -0,0 +1,7 @@
1
+ # snmp_group
2
+ ---
3
+ group:
4
+ multiple: true
5
+ config_get: "show snmp group"
6
+ config_get_token: "/^Role: (.*)$/"
7
+ default_value: ""
@@ -0,0 +1,50 @@
1
+ # snmp_notification_receiver
2
+ ---
3
+ port:
4
+ config_get: "show running-config snmp all"
5
+ config_get_token: '/^snmp-server host %s.*version.* udp-port (\d+).*$/'
6
+ default_value: null
7
+
8
+ 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>"
12
+ multiple:
13
+
14
+ security:
15
+ config_get: "show running-config snmp all"
16
+ config_get_token: '/^snmp-server host %s.* version 3 (auth|noauth|priv).*$/'
17
+ default_value: null
18
+
19
+ 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>"
23
+ default_value: null
24
+
25
+ type:
26
+ config_get: "show running-config snmp all"
27
+ config_get_token: '/^snmp-server host %s (traps|informs).*$/'
28
+ default_value: null
29
+
30
+ username:
31
+ config_get: "show running-config snmp all"
32
+ config_get_token: '/^snmp-server host %s.*version.* (\S+)$/'
33
+ default_value: null
34
+
35
+ username_with_port:
36
+ config_get: "show running-config snmp all"
37
+ config_get_token: '/^snmp-server host %s.*version.* (\S+) udp-port/'
38
+ default_value: null
39
+
40
+ version:
41
+ config_get: "show running-config snmp all"
42
+ config_get_token: '/^snmp-server host %s.* version (\S+).*$/'
43
+ default_value: null
44
+
45
+ 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>"
49
+ default_value: null
50
+
@@ -0,0 +1,51 @@
1
+ # snmp_server
2
+ ---
3
+ aaa_user_cache_timeout:
4
+ cli_nexus:
5
+ 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"
9
+ default_value: 3600
10
+
11
+ contact:
12
+ config_get: "show snmp"
13
+ config_get_token: "sys_contact"
14
+ config_set: "%s snmp-server contact %s"
15
+ default_value: ""
16
+
17
+ global_enforce_priv:
18
+ 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
+ default_value: false
23
+
24
+ location:
25
+ config_get: "show snmp"
26
+ config_get_token: "sys_location"
27
+ config_set: "%s snmp-server location %s"
28
+ default_value: ""
29
+
30
+ packet_size:
31
+ 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"
35
+ default_value: 1500
36
+
37
+ protocol:
38
+ kind: boolean
39
+ 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"
43
+ default_value: true
44
+
45
+ tcp_session_auth:
46
+ kind: boolean
47
+ 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"
51
+ default_value: true
@@ -0,0 +1,55 @@
1
+ # snmp_user
2
+ ---
3
+ _template:
4
+ multiple: true
5
+
6
+ auth_password:
7
+ config_get: "show run snmp all"
8
+ config_get_token: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
9
+ default_value: ""
10
+
11
+ # The getter format will not have group info if engine id is configured.
12
+ 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
+ default_value: ""
16
+
17
+ auth_protocol:
18
+ default_value: "md5"
19
+ /N9K/:
20
+ # TODO: is this really N9K-specific?
21
+ config_get_token: "auth"
22
+
23
+ engine_id:
24
+ default_value: ""
25
+
26
+ group:
27
+ default_value: "network-operator"
28
+ /N9K/:
29
+ # TODO: is this really N9K-specific?
30
+ config_get_token: "group"
31
+
32
+ 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
+ default_value: ""
36
+
37
+ # The getter format will not have group info if engine id is configured.
38
+ 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
+ default_value: ""
42
+
43
+ priv_protocol:
44
+ default_value: "des"
45
+ /N9K/:
46
+ # TODO: is this really N9K-specific?
47
+ config_get_token: "priv"
48
+
49
+ # Config string syntax:
50
+ # [no] snmp-server user <user> [group] [auth {md5|sha} <passwd1> \
51
+ # [priv [aes-128] <passwd2>] [localizedkey] [engineID <id>]]
52
+ 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"
@@ -0,0 +1,11 @@
1
+ # snmpnotification
2
+ ---
3
+ 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>"
7
+
8
+ notifications:
9
+ config_get: "sh run snmp all | include 'snmp-server enable traps'"
10
+ config_get_token: '/.*snmp-server enable traps (.*)?$/'
11
+ multiple:
@@ -0,0 +1,18 @@
1
+ # syslog_server
2
+ ---
3
+ level:
4
+ kind: int
5
+ config_get: "show running-config all | include '^logging server'"
6
+ config_get_token: '/^logging server %s (\d).*/'
7
+ default_value: ~
8
+
9
+ server:
10
+ multiple: true
11
+ config_get: "show running-config all | include '^logging server'"
12
+ config_get_token: '/^logging server (\S+).*/'
13
+ config_set: '<state> logging server <ip> <level> <vrf>'
14
+
15
+ vrf:
16
+ config_get: "show running-config all | include '^logging server(.*)(use-vrf)'"
17
+ config_get_token: '/^logging server %s.* use-vrf (.*)$/'
18
+ default_value: default
@@ -0,0 +1,7 @@
1
+ # syslog_settings
2
+ ---
3
+ timestamp:
4
+ config_get: "show running-config all | include '^logging timestamp'"
5
+ config_get_token: '/^logging timestamp (.*)$/'
6
+ config_set: '<state> logging timestamp <units>'
7
+ default_value: 'seconds'
@@ -0,0 +1,6 @@
1
+ # system
2
+ ---
3
+ resources:
4
+ config_get: "show system resources"
5
+ test_config_get: "show system resources | no-more"
6
+ test_config_get_regex: '/.*CPU states : (\d+\.\d+)% user, (\d+\.\d+)% kernel/'
@@ -0,0 +1,49 @@
1
+ # tacacs_server
2
+ ---
3
+ deadtime:
4
+ kind: int
5
+ config_get: "show run tacacs all"
6
+ config_get_token: '/^tacacs-server deadtime\s+(\d+)/'
7
+ config_set: "%s tacacs-server deadtime %d"
8
+ default_value: 0
9
+
10
+ directed_request:
11
+ kind: boolean
12
+ # oddly, directed request must be retrieved from aaa output
13
+ config_get: "show running aaa all"
14
+ config_get_token: '/(?:no)?\s*tacacs-server directed-request/'
15
+ config_set: "%s tacacs-server directed-request"
16
+ default_value: false
17
+
18
+ encryption:
19
+ config_set: "%s tacacs-server key %d %s"
20
+
21
+ encryption_password:
22
+ config_get: "show run tacacs all"
23
+ config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
24
+ default_value: ""
25
+
26
+ encryption_type:
27
+ auto_default: false
28
+ config_get: "show run tacacs all"
29
+ config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
30
+ default_value: 0
31
+
32
+ feature:
33
+ kind: boolean
34
+ config_get: "show run tacacs all"
35
+ config_get_token: '/^feature tacacs/'
36
+ config_set: "%s feature tacacs+"
37
+
38
+ source_interface:
39
+ config_get: "show run tacacs all"
40
+ config_get_token: '/(no)?\s*ip tacacs source-interface\s+(\S+)?/'
41
+ config_set: "%s ip tacacs source-interface %s"
42
+ default_value: ""
43
+
44
+ timeout:
45
+ kind: int
46
+ config_get: "show run tacacs all"
47
+ config_get_token: '/tacacs-server timeout\s+(\d+)/'
48
+ config_set: "%s tacacs-server timeout %d"
49
+ default_value: 5