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
@@ -0,0 +1,234 @@
1
+
2
+ # stp_global
3
+ ---
4
+ _exclude: [ios_xr]
5
+
6
+ _template:
7
+ get_command: "show running-config spanning-tree"
8
+
9
+ bd_designated_priority:
10
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
11
+ multiple:
12
+ get_context: ['/^spanning-tree pseudo-information$/']
13
+ get_value: '/^bridge-domain (.*) designated priority (.*)$/'
14
+ set_context: ["spanning-tree pseudo-information"]
15
+ set_value: "<state> bridge-domain <range> designated priority <val>"
16
+ default_value: []
17
+
18
+ bd_forward_time:
19
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
20
+ multiple:
21
+ get_value: '/^spanning-tree bridge-domain (.*) forward-time (.*)$/'
22
+ set_value: "<state> spanning-tree bridge-domain <range> forward-time <val>"
23
+ default_value: []
24
+
25
+ bd_hello_time:
26
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
27
+ multiple:
28
+ get_value: '/^spanning-tree bridge-domain (.*) hello-time (.*)$/'
29
+ set_value: "<state> spanning-tree bridge-domain <range> hello-time <val>"
30
+ default_value: []
31
+
32
+ bd_max_age:
33
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
34
+ multiple:
35
+ get_value: '/^spanning-tree bridge-domain (.*) max-age (.*)$/'
36
+ set_value: "<state> spanning-tree bridge-domain <range> max-age <val>"
37
+ default_value: []
38
+
39
+ bd_priority:
40
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
41
+ multiple:
42
+ get_value: '/^spanning-tree bridge-domain (.*) priority (.*)$/'
43
+ set_value: "<state> spanning-tree bridge-domain <range> priority <val>"
44
+ default_value: []
45
+
46
+ bd_range:
47
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
48
+ kind: string
49
+ default_only: "2-3967"
50
+
51
+ bd_root_priority:
52
+ _exclude: [N3k, N5k, N6k, N8k, N9k]
53
+ multiple:
54
+ get_context: ['/^spanning-tree pseudo-information$/']
55
+ get_value: '/^bridge-domain (.*) root priority (.*)$/'
56
+ set_context: ["spanning-tree pseudo-information"]
57
+ set_value: "<state> bridge-domain <range> root priority <val>"
58
+ default_value: []
59
+
60
+ bpdufilter:
61
+ kind: boolean
62
+ get_value: '/^spanning-tree port type edge bpdufilter default$/'
63
+ set_value: "<state> spanning-tree port type edge bpdufilter default"
64
+ default_value: false
65
+
66
+ bpduguard:
67
+ kind: boolean
68
+ get_value: '/^spanning-tree port type edge bpduguard default$/'
69
+ set_value: "<state> spanning-tree port type edge bpduguard default"
70
+ default_value: false
71
+
72
+ bridge_assurance:
73
+ kind: boolean
74
+ auto_default: false
75
+ get_command: "show running-config spanning-tree all"
76
+ get_value: '/^spanning-tree bridge assurance$/'
77
+ set_value: "<state> spanning-tree bridge assurance"
78
+ default_value: true
79
+
80
+ domain:
81
+ _exclude: [N3k, N8k, N9k]
82
+ kind: int
83
+ get_value: '/^spanning-tree domain (\d+)$/'
84
+ set_value: "<state> spanning-tree domain <domain>"
85
+ default_value: false
86
+
87
+ fcoe:
88
+ _exclude: [N3k, N5k, N6k, N7k]
89
+ kind: boolean
90
+ auto_default: false
91
+ get_command: "show running-config spanning-tree all"
92
+ get_value: '/^spanning-tree fcoe$/'
93
+ set_value: "<state> spanning-tree fcoe"
94
+ default_value: true
95
+
96
+ loopguard:
97
+ kind: boolean
98
+ get_value: '/^spanning-tree loopguard default$/'
99
+ set_value: "<state> spanning-tree loopguard default"
100
+ default_value: false
101
+
102
+ mode:
103
+ kind: string
104
+ get_value: '/^spanning-tree mode (.*)$/'
105
+ set_value: "<state> spanning-tree mode <mode>"
106
+ default_value: "rapid-pvst"
107
+
108
+ mst_designated_priority:
109
+ multiple:
110
+ get_context: ['/^spanning-tree pseudo-information$/']
111
+ get_value: '/^mst (.*) designated priority (.*)$/'
112
+ set_context: ["spanning-tree pseudo-information"]
113
+ set_value: "<state> mst <range> designated priority <val>"
114
+ default_value: []
115
+
116
+ mst_forward_time:
117
+ kind: int
118
+ get_value: '/^spanning-tree mst forward-time (\d+)$/'
119
+ set_value: "<state> spanning-tree mst forward-time <ft>"
120
+ default_value: 15
121
+
122
+ mst_hello_time:
123
+ kind: int
124
+ get_value: '/^spanning-tree mst hello-time (\d+)$/'
125
+ set_value: "<state> spanning-tree mst hello-time <ht>"
126
+ default_value: 2
127
+
128
+ mst_inst_range:
129
+ kind: string
130
+ default_only: "1-4094"
131
+
132
+ mst_inst_vlan_map:
133
+ multiple:
134
+ get_context: ['/^spanning-tree mst configuration$/']
135
+ get_value: '/^instance (.*) vlan (.*)$/'
136
+ set_context: ["spanning-tree mst configuration"]
137
+ set_value: "<state> instance <instance> <vlan> <range>"
138
+ default_value: []
139
+
140
+ mst_max_age:
141
+ kind: int
142
+ get_value: '/^spanning-tree mst max-age (\d+)$/'
143
+ set_value: "<state> spanning-tree mst max-age <ma>"
144
+ default_value: 20
145
+
146
+ mst_max_hops:
147
+ kind: int
148
+ get_value: '/^spanning-tree mst max-hops (\d+)$/'
149
+ set_value: "<state> spanning-tree mst max-hops <mh>"
150
+ default_value: 20
151
+
152
+ mst_name:
153
+ kind: string
154
+ get_context: ['/^spanning-tree mst configuration$/']
155
+ get_value: '/^name (.*)$/'
156
+ set_context: ["spanning-tree mst configuration"]
157
+ set_value: "<state> name <name>"
158
+ default_value: false
159
+
160
+ mst_priority:
161
+ multiple:
162
+ get_value: '/^spanning-tree mst (.*) priority (.*)$/'
163
+ set_value: "<state> spanning-tree mst <range> priority <val>"
164
+ default_value: []
165
+
166
+ mst_range:
167
+ kind: string
168
+ default_only: "0-4094"
169
+
170
+ mst_revision:
171
+ kind: int
172
+ get_context: ['/^spanning-tree mst configuration$/']
173
+ get_value: '/^revision (\d+)$/'
174
+ set_context: ["spanning-tree mst configuration"]
175
+ set_value: "<state> revision <rev>"
176
+ default_value: 0
177
+
178
+ mst_root_priority:
179
+ multiple:
180
+ get_context: ['/^spanning-tree pseudo-information$/']
181
+ get_value: '/^mst (.*) root priority (.*)$/'
182
+ set_context: ["spanning-tree pseudo-information"]
183
+ set_value: "<state> mst <range> root priority <val>"
184
+ default_value: []
185
+
186
+ pathcost:
187
+ kind: string
188
+ get_value: '/^spanning-tree pathcost method (.*)$/'
189
+ set_value: "<state> spanning-tree pathcost method <method>"
190
+ default_value: "short"
191
+
192
+ vlan_designated_priority:
193
+ multiple:
194
+ get_context: ['/^spanning-tree pseudo-information$/']
195
+ get_value: '/^vlan (.*) designated priority (.*)$/'
196
+ set_context: ["spanning-tree pseudo-information"]
197
+ set_value: "<state> vlan <range> designated priority <val>"
198
+ default_value: []
199
+
200
+ vlan_forward_time:
201
+ multiple:
202
+ get_value: '/^spanning-tree vlan (.*) forward-time (.*)$/'
203
+ set_value: "<state> spanning-tree vlan <range> forward-time <val>"
204
+ default_value: []
205
+
206
+ vlan_hello_time:
207
+ multiple:
208
+ get_value: '/^spanning-tree vlan (.*) hello-time (.*)$/'
209
+ set_value: "<state> spanning-tree vlan <range> hello-time <val>"
210
+ default_value: []
211
+
212
+ vlan_max_age:
213
+ multiple:
214
+ get_value: '/^spanning-tree vlan (.*) max-age (.*)$/'
215
+ set_value: "<state> spanning-tree vlan <range> max-age <val>"
216
+ default_value: []
217
+
218
+ vlan_priority:
219
+ multiple:
220
+ get_value: '/^spanning-tree vlan (.*) priority (.*)$/'
221
+ set_value: "<state> spanning-tree vlan <range> priority <val>"
222
+ default_value: []
223
+
224
+ vlan_range:
225
+ kind: string
226
+ default_only: "1-3967"
227
+
228
+ vlan_root_priority:
229
+ multiple:
230
+ get_context: ['/^spanning-tree pseudo-information$/']
231
+ get_value: '/^vlan (.*) root priority (.*)$/'
232
+ set_context: ["spanning-tree pseudo-information"]
233
+ set_value: "<state> vlan <range> root priority <val>"
234
+ default_value: []
@@ -1,18 +1,33 @@
1
1
  # syslog_server
2
2
  ---
3
3
  level:
4
- kind: int
5
- config_get: "show running-config all | include '^logging server'"
6
- config_get_token: '/^logging server %s (\d).*/'
7
4
  default_value: ~
5
+ nexus:
6
+ kind: int
7
+ get_command: "show running-config all | include '^logging server'"
8
+ get_value: '/^logging server %s (\d).*/'
9
+ ios_xr:
10
+ multiple: true
11
+ get_command: "show running-config logging"
12
+ get_value: '/^logging %s.* severity (\S+)/'
8
13
 
9
14
  server:
10
15
  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>'
16
+ nexus:
17
+ get_command: "show running-config all | include '^logging server'"
18
+ get_value: '/^logging server (\S+).*/'
19
+ set_value: '<state> logging server <ip> <level> <vrf>'
20
+ ios_xr:
21
+ get_command: "show running-config logging"
22
+ get_value: '/^logging (\S+).*/'
23
+ set_value: '<state> logging <ip> <vrf> <level>'
14
24
 
15
25
  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
26
+ default_value: default
27
+ nexus:
28
+ get_command: "show running-config all | include '^logging server(.*)(use-vrf)'"
29
+ get_value: '/^logging server %s.* use-vrf (.*)$/'
30
+ ios_xr:
31
+ multiple: true
32
+ get_command: "show running-config logging"
33
+ get_value: '/^logging %s.* vrf (\S+)/'
@@ -1,7 +1,9 @@
1
1
  # syslog_settings
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  timestamp:
4
- config_get: "show running-config all | include '^logging timestamp'"
5
- config_get_token: '/^logging timestamp (.*)$/'
6
- config_set: '<state> logging timestamp <units>'
6
+ get_command: "show running-config all | include '^logging timestamp'"
7
+ get_value: '/^logging timestamp (.*)$/'
8
+ set_value: '<state> logging timestamp <units>'
7
9
  default_value: 'seconds'
@@ -1,6 +1,7 @@
1
1
  # system
2
2
  ---
3
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/'
4
+ # grpc doesn't allow this command
5
+ # get_command: 'monitor threads iteration 1'
6
+ _exclude: [ios_xr]
7
+ get_command: "show system resources"
@@ -1,49 +1,51 @@
1
1
  # tacacs_server
2
2
  ---
3
+ _exclude: [ios_xr]
4
+
3
5
  deadtime:
4
6
  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"
7
+ get_command: "show run tacacs all"
8
+ get_value: '/^tacacs-server deadtime\s+(\d+)/'
9
+ set_value: "%s tacacs-server deadtime %d"
8
10
  default_value: 0
9
11
 
10
12
  directed_request:
11
13
  kind: boolean
12
14
  # 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"
15
+ get_command: "show running aaa all"
16
+ get_value: '/(?:no)?\s*tacacs-server directed-request/'
17
+ set_value: "%s tacacs-server directed-request"
16
18
  default_value: false
17
19
 
18
20
  encryption:
19
- config_set: "%s tacacs-server key %d %s"
21
+ set_value: "%s tacacs-server key %d %s"
20
22
 
21
23
  encryption_password:
22
- config_get: "show run tacacs all"
23
- config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
24
+ get_command: "show run tacacs all"
25
+ get_value: '/^tacacs-server key (\d+)\s+(\S+)/'
24
26
  default_value: ""
25
27
 
26
28
  encryption_type:
27
29
  auto_default: false
28
- config_get: "show run tacacs all"
29
- config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
30
+ get_command: "show run tacacs all"
31
+ get_value: '/^tacacs-server key (\d+)\s+(\S+)/'
30
32
  default_value: 0
31
33
 
32
34
  feature:
33
35
  kind: boolean
34
- config_get: "show run tacacs all"
35
- config_get_token: '/^feature tacacs/'
36
- config_set: "%s feature tacacs+"
36
+ get_command: "show run tacacs all"
37
+ get_value: '/^feature tacacs/'
38
+ set_value: "%s feature tacacs+"
37
39
 
38
40
  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"
41
+ get_command: "show run tacacs all"
42
+ get_value: '/(no)?\s*ip tacacs source-interface\s+(\S+)?/'
43
+ set_value: "%s ip tacacs source-interface %s"
42
44
  default_value: ""
43
45
 
44
46
  timeout:
45
47
  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"
48
+ get_command: "show run tacacs all"
49
+ get_value: '/tacacs-server timeout\s+(\d+)/'
50
+ set_value: "%s tacacs-server timeout %d"
49
51
  default_value: 5
@@ -1,33 +1,45 @@
1
1
  # tacacs_server_group
2
2
  ---
3
+ _template:
4
+ nexus:
5
+ get_command: "show run tacacs all"
6
+ ios_xr:
7
+ get_command: "show running-config aaa"
8
+
3
9
  deadtime:
4
- config_get: "show run tacacs all"
5
- config_get_token: ['/^aaa group server tacacs\+ %s/', '/^deadtime (\d+)/']
6
- config_set: ["aaa group server tacacs <name>", "<state> deadtime <deadtime>"]
10
+ _exclude: [ios_xr]
11
+ get_context: ['/^aaa group server tacacs\+ %s/']
12
+ get_value: '/^deadtime (\d+)/'
13
+ set_context: ["aaa group server tacacs <name>"]
14
+ set_value: "<state> deadtime <deadtime>"
7
15
  default_value: 0
8
16
 
9
17
  group:
10
18
  multiple: true
11
- config_get: "show running-config tacacs all"
12
- config_get_token: '/^aaa group server tacacs\+ (\S+)/'
13
- config_set: '<state> aaa group server tacacs <name>'
19
+ get_value: '/^aaa group server tacacs\+ (\S+)/'
20
+ set_value: '<state> aaa group server tacacs <name>'
14
21
  default_value: []
15
22
 
16
23
  servers:
17
24
  multiple: true
18
- config_get: "show running-config tacacs all"
19
- config_get_token: ['/^aaa group server tacacs\+ %s/i', '/^server (\S+)/']
20
- config_set: ['aaa group server tacacs <name>', '<state> server <server>']
25
+ get_context: ['/^aaa group server tacacs\+ %s/']
26
+ get_value: '/^server (\S+)/'
27
+ set_context: ["aaa group server tacacs <name>"]
28
+ set_value: '<state> server <server>'
21
29
  default_value: []
22
30
 
23
31
  source_interface:
24
- config_get: "show run tacacs all"
25
- config_get_token: ['/^aaa group server tacacs\+ %s/', '/^source-interface (\S+)/']
26
- config_set: ["aaa group server tacacs <name>", "<state> source-interface <interface>"]
32
+ _exclude: [ios_xr]
33
+ get_context: ['/^aaa group server tacacs\+ %s/']
34
+ get_value: '/^source-interface (\S+)/'
35
+ set_context: ["aaa group server tacacs <name>"]
36
+ set_value: "<state> source-interface <interface>"
27
37
  default_value: ""
28
38
 
29
39
  vrf:
30
- config_get: "show run tacacs all"
31
- config_get_token: ['/^aaa group server tacacs\+ %s/', '/^use-vrf (\S+)/']
32
- config_set: ["aaa group server tacacs <name>", "<state> use-vrf <vrf>"]
40
+ _exclude: [ios_xr]
41
+ get_context: ['/^aaa group server tacacs\+ %s/']
42
+ get_value: '/^use-vrf (\S+)/'
43
+ set_context: ["aaa group server tacacs <name>"]
44
+ set_value: "<state> use-vrf <vrf>"
33
45
  default_value: "default"
@@ -1,35 +1,64 @@
1
1
  # tacacs_server_host
2
2
  ---
3
+ _template:
4
+ nexus:
5
+ get_command: "show run tacacs all"
6
+ ios_xr:
7
+ get_command: "show running-config tacacs-server"
8
+
3
9
  encryption:
4
- config_set: "%s tacacs-server host %s key %s %s"
10
+ nexus:
11
+ set_value: "<state> tacacs-server host <ip> key <enc_type> <password>"
12
+ ios_xr:
13
+ context: ["tacacs-server host <ip> port <port>"]
14
+ set_value: '<state> key <enc_type> <password>'
5
15
 
6
16
  encryption_password:
7
- config_get: "show run tacacs all"
8
- config_get_token: '/^tacacs-server host %s key \d+\s+(\S+)/'
9
17
  default_value: ""
18
+ nexus:
19
+ get_value: '/^tacacs-server host <ip> key \d+\s+(\S+)/'
20
+ ios_xr:
21
+ context: ["tacacs-server host <ip> port <port>"]
22
+ get_value: '/key \d+\s+(\S+)$/'
10
23
 
11
24
  encryption_type:
12
- config_get: "show run tacacs all"
13
- config_get_token: '/^tacacs-server host %s key (\d+)/'
25
+ nexus:
26
+ get_value: '/^tacacs-server host <ip> key (\d+)/'
27
+ ios_xr:
28
+ context: ["tacacs-server host <ip> port <port>"]
29
+ get_value: '/key (\d+)/'
14
30
 
15
31
  host:
16
- config_set: "%s tacacs-server host %s"
32
+ nexus:
33
+ set_value: "<state> tacacs-server host <ip>"
34
+ ios_xr:
35
+ set_value: "<state> tacacs-server host <ip> port <port>"
36
+
37
+ host_port_pairs:
38
+ _exclude: [nexus]
39
+ multiple: true
40
+ get_command: "show running-config tacacs-server"
41
+ get_value: '/^tacacs-server host <ip> port (\d+)/'
42
+ default_value: ''
17
43
 
18
44
  hosts:
19
45
  multiple: true
20
- config_get: "show run tacacs all"
21
- config_get_token: '/^tacacs-server host (\S+)/'
46
+ get_value: '/^tacacs-server host (\S+)/'
22
47
 
23
48
  port:
24
- kind: int
25
- config_get: "show run tacacs all"
26
- config_get_token: '/^tacacs-server host %s .*port (\d+)/'
27
- config_set: "tacacs-server host %s port %s"
28
49
  default_value: 49
50
+ kind: int
51
+ get_value: '/^tacacs-server host <ip>.* port (\d+).*$/'
52
+ nexus:
53
+ set_value: "tacacs-server host <ip> port <port>"
29
54
 
30
55
  timeout:
31
- kind: int
32
- config_get: "show run tacacs all"
33
- config_get_token: '/^tacacs-server host %s .*timeout (\d+)/'
34
- config_set: "%s tacacs-server host %s timeout %s"
35
56
  default_value: 0
57
+ kind: int
58
+ nexus:
59
+ get_value: '/^tacacs-server host <ip> .*timeout (\d+)/'
60
+ set_value: "<state> tacacs-server host <ip> timeout <timeout>"
61
+ ios_xr:
62
+ context: ["tacacs-server host <ip> port <port>"]
63
+ get_value: '/timeout (\d+).*$/'
64
+ set_value: '<state> timeout <timeout>'