cisco_node_utils 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -1,325 +0,0 @@
1
- # Command Reference YAML
2
-
3
- The `command_reference_*.yaml` files in this directory are used with the
4
- `CommandReference` module as a way to abstract away platform CLI differences.
5
-
6
- This document describes the structure and semantics of these files.
7
-
8
- ## Structure
9
-
10
- ```yaml
11
- FEATURE_1:
12
- _template:
13
- # base parameters for all attributes of this feature go here
14
-
15
- ATTRIBUTE_1:
16
- config_get: 'string'
17
- config_get_token: 'string'
18
- config_get_token_append: 'string'
19
- config_set: 'string'
20
- config_set_append: 'string'
21
- default_value: string, boolean, integer, or constant
22
- test_config_get: 'string'
23
- test_config_get_regexp: '/regexp/'
24
- test_config_result:
25
- input_1: output_1
26
- input_2: output_2
27
-
28
- ATTRIBUTE_2:
29
- ...
30
-
31
- ATTRIBUTE_3:
32
- ...
33
-
34
- FEATURE_2:
35
- ...
36
- ```
37
-
38
- All parameters are optional and may be omitted if not needed.
39
-
40
- ### Wildcard substitution
41
-
42
- The `config_get_token` and `config_set` (and their associated `_append`
43
- variants) all support two forms of wildcarding - printf-style and key-value.
44
-
45
- #### Printf-style wildcards
46
-
47
- ```yaml
48
- tacacs_server_host:
49
- encryption:
50
- config_set: '%s tacacs-server host %s key %s %s'
51
- ```
52
-
53
- This permits parameter values to be passed as a simple sequence:
54
-
55
- ```ruby
56
- config_set('tacacs_server_host', 'encryption', 'no', 'user', 'md5', 'password')
57
-
58
- # this becomes 'no tacacs-server host user key md5 password'
59
- # ^^ ^^^^ ^^^ ^^^^^^^^
60
- ```
61
-
62
- This approach is quick to implement and concise, but less flexible - in
63
- particular it cannot handle a case where different platforms take parameters
64
- in a different order - and less readable in the ruby code.
65
-
66
- #### Key-value wildcards
67
-
68
- ```yaml
69
- ospf:
70
- auto_cost:
71
- config_set: ['router ospf <name>', 'auto-cost reference-bandwidth <cost> <type>']
72
- ```
73
-
74
- This requires parameter values to be passed as a hash:
75
-
76
- ```ruby
77
- config_set('ospf', 'auto_cost', {:name => 'red',
78
- :cost => '40',
79
- :type => 'Gbps'})
80
-
81
- # this becomes the config sequence:
82
- # router ospf red
83
- # auto-cost reference-bandwidth 40 Gbps
84
- ```
85
-
86
- This approach is moderately more complex to implement but is more readable in
87
- the ruby code and is flexible enough to handle significant platform
88
- differences in CLI. It is therefore the recommended approach for new
89
- development.
90
-
91
- ### `_template`
92
-
93
- The optional `_template` section can be used to define base parameters for all
94
- attributes of a given feature. For example, all interface attributes might be
95
- checked with the `show running-config interface all` command, and all
96
- attributes might be set by first entering the interface configuration submode
97
- with the `interface <name>` configuration command. Thus, you might have:
98
-
99
- ```yaml
100
- interface:
101
- _template:
102
- config_get: 'show running-config interface all'
103
- config_get_token: '/^interface <name>$/'
104
- config_set: 'interface <name>'
105
-
106
- access_vlan:
107
- config_get_token_append: '/^switchport access vlan (.*)$/'
108
- config_set_append: 'switchport access vlan <number>'
109
-
110
- description:
111
- config_get_token_append: '/^description (.*)$/'
112
- config_set_append: 'description <desc>'
113
-
114
- ...
115
- ```
116
-
117
- instead of the more repetitive (but equally valid):
118
-
119
- ```yaml
120
- interface:
121
- access_vlan:
122
- config_get: 'show running interface all'
123
- config_get_token: ['/^interface %s$/i', '/^switchport access vlan (.*)$/']
124
- config_set: ['interface %s', 'switchport access vlan %s']
125
-
126
- description:
127
- config_get: 'show running-config interface all'
128
- config_get_token: ['/^interface <name>$/i', '/^description (.*)$/']
129
- config_set: ['interface <name>', 'description <desc>']
130
-
131
- ...
132
- ```
133
-
134
- ### `config_get`
135
-
136
- `config_get` must be a single string representing the CLI command (usually a
137
- `show` command) to be used to display the information needed to get the
138
- current value of this attribute.
139
-
140
- ```yaml
141
- config_get: 'show running-config interface <name> all'
142
- ```
143
-
144
- ### `config_get_token`
145
-
146
- `config_get_token` can be a single string, a single regex, an array of strings,
147
- or an array of regexs.
148
-
149
- If this value is a string or array of strings, then the `config_get` command
150
- will be executed to produce _structured_ output and the string(s) will be
151
- used as lookup keys.
152
-
153
- ```yaml
154
- show_version
155
- cpu:
156
- config_get: 'show version'
157
- config_get_token: 'cpu_name'
158
- # config_get('show_version', 'cpu') returns structured_output['cpu_name']
159
- ```
160
-
161
- ```yaml
162
- inventory:
163
- productid:
164
- config_get: 'show inventory'
165
- config_get_token: ['TABLE_inv', 'ROW_inv', 0, 'productid']
166
- # config_get('inventory', 'productid') returns
167
- # structured_output['TABLE_inv']['ROW_inv'][0]['productid']
168
- ```
169
-
170
- If this value is a regex or array or regexs, then the `config_get` command
171
- will be executed to produce _plaintext_ output.
172
-
173
- For a single regex, it will be used to match against the plaintext.
174
-
175
- ```yaml
176
- memory:
177
- total:
178
- config_get: 'show system resources'
179
- config_get_token: '/Memory.* (\S+) total/'
180
- # config_get('memory', 'total') returns
181
- # plaintext_output.scan(/Memory.* (\S+) total/)
182
- ```
183
-
184
- For an array of regex, then the plaintext is assumed to be hierarchical in
185
- nature (like `show running-config`) and the regexs are used to filter down
186
- through the hierarchy.
187
-
188
- ```yaml
189
- interface:
190
- description:
191
- config_get: 'show running interface all'
192
- config_get_token: ['/^interface %s$/i', '/^description (.*)/']
193
- # config_get('interface', 'description', 'Ethernet1/1') gets the plaintext
194
- # output, finds the subsection under /^interface Ethernet1/1$/i, then finds
195
- # the line matching /^description (.*)$/ in that subsection
196
- ```
197
-
198
- ### `config_get_token_append`
199
-
200
- When using a `_template` section, an attribute can use
201
- `config_get_token_append` to extend the `config_get_token` value provided by
202
- the template instead of replacing it:
203
-
204
- ```yaml
205
- interface:
206
- _template:
207
- config_get: 'show running-config interface all'
208
- config_get_token: '/^interface <name>$/'
209
-
210
- description:
211
- config_get_token_append: '/^description (.*)$/'
212
- # config_get_token value for 'description' is now:
213
- # ['/^interface %s$/i', '/^description (.*)$/']
214
- ```
215
-
216
- This can also be used to specify conditional tokens which may or may not be
217
- used depending on the set of parameters passed into `config_get()`:
218
-
219
- ```yaml
220
- bgp:
221
- _template:
222
- config_get: 'show running bgp all'
223
- config_get_token: '/^router bgp <asnum>$/'
224
- config_get_token_append:
225
- - '/^vrf <vrf>$/'
226
-
227
- router_id:
228
- config_get_token_append: '/^router-id (\S+)$/'
229
- ```
230
-
231
- In this example, both `config_get('bgp', 'router_id', {:asnum => '1'})` and
232
- `config_get('bgp', 'router_id', {:asnum => '1', :vrf => 'red'})` are valid -
233
- the former will match 'router bgp 1' followed by 'router-id', while the latter
234
- will match 'router bgp 1' followed by 'vrf red' followed by 'router-id'.
235
-
236
- ### `config_set`
237
-
238
- The `config_set` parameter is a string or array of strings representing the
239
- configuration CLI command(s) used to set the value of the attribute.
240
-
241
- ```yaml
242
- interface:
243
- create:
244
- config_set: 'interface <name>'
245
-
246
- description:
247
- config_set: ['interface <name>', 'description <desc>']
248
- ```
249
-
250
- ### `config_set_append`
251
-
252
- When using a `_template` section, an attribute can use `config_set_append` to
253
- extend the `config_set` value provided by the template instead of replacing it:
254
-
255
- ```yaml
256
- interface:
257
- _template:
258
- config_set: 'interface <name>'
259
-
260
- access_vlan:
261
- config_set_append: 'switchport access vlan <number>'
262
- # config_set value for 'access_vlan' is now:
263
- # ['interface <name>', 'switchport access vlan <number>']
264
- ```
265
-
266
- Much like `config_get_token_append`, this can also be used to specify optional
267
- commands that can be included or omitted as needed:
268
-
269
- ```yaml
270
- bgp:
271
- _template:
272
- config_set: 'router bgp <asnum>'
273
- config_set_append:
274
- - 'vrf <vrf>'
275
- ```
276
-
277
- ### `default_value`
278
-
279
- If there is a default value for this attribute when not otherwise specified by
280
- the user, the `default_value` parameter describes it. This can be a string,
281
- boolean, integer, or array.
282
-
283
- ```yaml
284
- interface:
285
- description:
286
- default_value: ''
287
-
288
- interface_ospf:
289
- hello_interval:
290
- default_value: 10
291
-
292
- ospf:
293
- auto_cost:
294
- default_value: [40, 'Gbps']
295
- ```
296
-
297
- ### `test_config_get` and `test_config_get_regex`
298
-
299
- Test-only equivalents to `config_get` and `config_get_token` - a show command
300
- to be executed over telnet by the minitest unit test scripts, and a regex
301
- (or array thereof) to match in the resulting plaintext output.
302
- Should only be referenced by test scripts, never by a feature provider itself.
303
-
304
- ```yaml
305
- show_version:
306
- boot_image:
307
- test_config_get: 'show version | no-more'
308
- test_config_get_regex: '/NXOS image file is: (.*)$/'
309
- ```
310
-
311
- ### `test_config_result`
312
-
313
- Test-only container for input-result pairs that might differ by platform.
314
- Should only be referenced by test scripts, never by a feature provider itself.
315
-
316
- ```yaml
317
- vtp:
318
- version:
319
- test_config_result:
320
- 3: 'Cisco::CliError'
321
- ```
322
-
323
- ## Style Guide
324
-
325
- Please see [YAML Best Practices](../../docs/README-develop-best-practices.md#ydbp).
@@ -1,1051 +0,0 @@
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
- dnsclient:
102
- domain_list:
103
- config_get: "show running-config all"
104
- config_get_token: '/^ip domain-list (\S+)$/'
105
- config_set: '<state> ip domain-list <name>'
106
- default_value: ''
107
-
108
- domain_list_vrf:
109
- config_get: "show running-config all"
110
- config_get_token: ['/vrf context <vrf>/', '/ip domain-list (\S+)/']
111
- config_set: ['vrf context <vrf>', '<state> ip domain-list <name>']
112
- default_value: ''
113
-
114
- domain_name:
115
- config_get: 'show running-config all'
116
- config_get_token: '/^ip domain-name (\S+)$/'
117
- config_set: '<state> ip domain-name <name>'
118
- default_value: ''
119
-
120
- domain_name_vrf:
121
- config_get: 'show running-config all'
122
- config_get_token: ['/vrf context <vrf>/', '/ip domain-name (\S+)/']
123
- config_set: ['vrf context <vrf>', '<state> ip domain-name <name>']
124
- default_value: ''
125
-
126
- name_server:
127
- config_get: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
128
- config_get_token: '/^ip name-server ([\s\d\.:]+)$/'
129
- config_set: '<state> ip name-server <ip>'
130
- default_value: ''
131
-
132
- fex:
133
- feature:
134
- config_get: "show feature-set"
135
- config_get_token: '/^fex[\s\d]+(\w+)/'
136
- config_set: "%s feature-set fex"
137
-
138
- feature_install:
139
- config_set: "%s install feature-set fex"
140
-
141
- images:
142
- packages:
143
- config_get: 'show install patches'
144
- # Package state should always be some variant of Active or Inactive
145
- config_get_token: '/^(\S+)\s+(\S*[aA]ctive.*)\s*$/'
146
-
147
- interface:
148
- access_vlan:
149
- config_get: "show running interface all"
150
- config_get_token: ['/^interface %s$/i', '/^switchport access vlan (.*)$/']
151
- config_set: ["interface %s", "switchport access vlan %s"]
152
- default_value: 1
153
-
154
- all_interfaces:
155
- config_get: "show running interface all"
156
- config_get_token: '/^interface (.*)/'
157
-
158
- create:
159
- config_set: "interface %s"
160
-
161
- description:
162
- config_get: "show running interface all"
163
- config_get_token: ['/^interface %s$/i', '/^description (.*)/']
164
- config_set: ["interface %s", "%s description %s"]
165
- default_value: ""
166
-
167
- destroy:
168
- config_set: "no interface %s"
169
-
170
- encapsulation_dot1q:
171
- config_get: "show running interface all"
172
- config_get_token: ['/^interface %s$/i', '/^encapsulation dot1q (.*)/']
173
- config_set: ["interface %s", "%s encapsulation dot1q %s"]
174
- default_value: ""
175
-
176
- feature_lacp:
177
- config_get: "show running | i ^feature"
178
- config_get_token: '/^feature lacp$/'
179
- config_set: "%s feature lacp"
180
-
181
- feature_vlan:
182
- config_get: "show running | i ^feature"
183
- config_get_token: '/^feature interface-vlan$/'
184
- config_set: "%s feature interface-vlan"
185
-
186
- ipv4_addr_mask:
187
- config_get: "show running interface all"
188
- config_get_token: [
189
- '/^interface %s$/i',
190
- '/^ip address ([0-9\.]+)[\s\/](.*)/'
191
- ]
192
- config_set: ["interface %s", "%s ip address %s"]
193
-
194
- ipv4_address:
195
- default_value: ~
196
-
197
- ipv4_netmask_length:
198
- default_value: ~
199
-
200
- ipv4_proxy_arp:
201
- config_get: "show running interface all"
202
- config_get_token: [
203
- '/^interface %s$/i',
204
- '/^ip proxy-arp$/'
205
- ]
206
- config_set: ["interface %s", "%s ip proxy-arp"]
207
- default_value: false
208
-
209
- ipv4_redirects_loopback:
210
- config_get: "show running interface all"
211
- config_get_token: [
212
- '/^interface %s$/i',
213
- '/^((?:no )?ip redirects)$/'
214
- ]
215
- config_set: ["interface %s", "%s ip redirects"]
216
- default_value: true
217
- test_config_get_regex: [!ruby/regexp '/^\s+no ip redirects/']
218
- test_config_result:
219
- false: RuntimeError
220
- true: RuntimeError
221
-
222
- ipv4_redirects_other_interfaces:
223
- config_get: "show running interface all"
224
- config_get_token: [
225
- '/^interface %s$/i',
226
- '/^((?:no )?ip redirects)$/'
227
- ]
228
- config_set: ["interface %s", "%s ip redirects"]
229
- default_value: true
230
- test_config_get_regex: [!ruby/regexp '/^\s+no ip redirects/']
231
- test_config_result:
232
- false: false
233
- true: true
234
-
235
- mtu:
236
- config_get: "show running interface all"
237
- config_get_token: ['/^interface %s$/i', '/^mtu (.*)$/']
238
- config_set: ["interface %s", "%s mtu %s"]
239
- default_value: 1500
240
-
241
- negotiate_auto_ethernet:
242
- config_get: "show running interface all"
243
- config_get_token: [
244
- '/^interface %s$/i',
245
- '/^negotiate auto$/'
246
- ]
247
- config_set: ["interface %s", "%s negotiate auto"]
248
- default_value: true
249
- test_config_get_regex: [
250
- !ruby/regexp '/^\s+no negotiate auto/',
251
- !ruby/regexp '/^\s+negotiate auto/'
252
- ]
253
-
254
- negotiate_auto_portchannel:
255
- config_get: "show running interface all"
256
- config_get_token: [
257
- '/^interface %s$/i',
258
- '/^negotiate auto$/'
259
- ]
260
- config_set: ["interface %s", "%s negotiate auto"]
261
- default_value: true
262
- test_config_get_regex: [
263
- !ruby/regexp '/^\s+no negotiate auto/',
264
- !ruby/regexp '/^\s+negotiate auto/'
265
- ]
266
-
267
- negotiate_auto_other_interfaces:
268
- default_value: false
269
- test_config_result:
270
- false: RuntimeError
271
- true: RuntimeError
272
-
273
- shutdown:
274
- config_get: "show running interface all"
275
- config_get_token: ['/^interface %s$/i', '/^shutdown$/']
276
- config_set: ["interface %s", "%s shutdown"]
277
-
278
- shutdown_ether_channel:
279
- default_value: false
280
-
281
- shutdown_ethernet_noswitchport_noshutdown:
282
- default_value: false
283
-
284
- shutdown_ethernet_noswitchport_shutdown:
285
- default_value: false
286
-
287
- shutdown_ethernet_switchport_noshutdown:
288
- default_value: false
289
-
290
- shutdown_ethernet_switchport_shutdown:
291
- default_value: true
292
-
293
- shutdown_loopback:
294
- default_value: false
295
-
296
- shutdown_vlan:
297
- default_value: true
298
-
299
- shutdown_unknown:
300
- default_value: true
301
-
302
- system_default_switchport:
303
- config_get: "show running all | include 'system default'"
304
- config_get_token: ['/^system default switchport$/']
305
- # default_value: n/a. This is a user-configurable system default.
306
-
307
- system_default_switchport_shutdown:
308
- config_get: "show running all | include 'system default'"
309
- config_get_token: ['/^system default switchport shutdown$/']
310
- # default_value: n/a. This is a user-configurable system default.
311
-
312
- system_default_svi_autostate:
313
- config_get: "show running all | include 'system default'"
314
- config_get_token: ['/^system default interface-vlan autostate$/']
315
- # default_value: n/a. This is a user-configurable system default.
316
-
317
- switchport:
318
- config_get: "show running interface all"
319
- config_get_token: ['/^interface %s$/i', '/^switchport$/']
320
- config_set: ["interface %s", "%s switchport"]
321
- # default_value: n/a. This is derived from system_default_switchport
322
-
323
- switchport_autostate_exclude:
324
- config_get: "show running interface all"
325
- config_get_token: ['/^interface %s$/i', '/(^switchport autostate exclude)/']
326
- config_set: ["interface %s", "%s switchport autostate exclude"]
327
- default_value: false
328
-
329
- switchport_mode_ethernet:
330
- config_get: "show running interface all"
331
- config_get_token: ['/^interface %s$/i', '/^switchport mode (.*)$/']
332
- config_set: ["interface %s", "%s switchport mode %s"]
333
- default_value: "access"
334
-
335
- switchport_mode_port_channel:
336
- config_get: "show running interface all"
337
- config_get_token: ['/^interface %s$/i', '/^switchport mode (.*)$/']
338
- config_set: ["interface %s", "%s switchport mode %s"]
339
- default_value: ""
340
-
341
- switchport_mode_other_interfaces:
342
- default_value: ""
343
-
344
- switchport_mode_dot1q_tunnel:
345
- test_config_result:
346
- false: RuntimeError
347
-
348
- switchport_trunk_allowed_vlan:
349
- config_get: "show running interface all"
350
- config_get_token: [
351
- '/^interface %s$/i',
352
- '/^switchport trunk allowed vlan (.*)$/'
353
- ]
354
- config_set: ["interface %s", "%s switchport trunk allowed vlan %s"]
355
- default_value: "all"
356
-
357
- switchport_trunk_native_vlan:
358
- config_get: "show running interface all"
359
- config_get_token: [
360
- '/^interface %s$/i',
361
- '/^switchport trunk native vlan (.*)$/'
362
- ]
363
- config_set: ["interface %s", "%s switchport trunk native vlan %s"]
364
- default_value: 1
365
-
366
- svi_autostate:
367
- config_get: "show running interface all"
368
- config_get_token: ['/^interface %s$/i', '/^autostate$/']
369
- config_set: ["interface %s", "%s autostate"]
370
- default_value: true
371
- test_config_result:
372
- false: false
373
- true: true
374
-
375
- svi_management:
376
- config_get: "show running interface all"
377
- config_get_token: ['/^interface %s$/i', '/^management$/']
378
- config_set: ["interface %s", "%s management"]
379
- default_value: false
380
-
381
- vrf:
382
- config_get: "show running interface all"
383
- config_get_token: ['/^interface %s$/i', '/^vrf member (.*)/']
384
- config_set: ["interface %s", "%s vrf member %s"]
385
- default_value: ""
386
-
387
- vtp:
388
- config_get: "show running interface all"
389
- config_get_token: ['/^interface %s$/i', '/^vtp *$/']
390
- config_set: ["interface %s", "%s vtp"]
391
- default_value: false
392
-
393
- interface_ospf:
394
- area:
395
- config_get: 'show running interface all'
396
- config_get_token: ['/^interface %s$/i', '/^\s*ip router ospf (\S+) area (\S+)/']
397
- config_set: ["interface %s", "%s ip router ospf %s area %s"]
398
-
399
- cost:
400
- config_get: 'show running interface all'
401
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf cost (\d+)/']
402
- config_set: ["interface %s", "%s ip ospf cost %s"]
403
- default_value: 0
404
-
405
- dead_interval:
406
- config_get: 'show running interface all'
407
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf dead-interval (\d+)/']
408
- config_set: ["interface %s", "%s ip ospf dead-interval %s"]
409
- default_value: 40
410
- test_config_result: [262141]
411
-
412
- hello_interval:
413
- config_get: 'show running interface all'
414
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf hello-interval (\d+)/']
415
- config_set: ["interface %s", "%s ip ospf hello-interval %s"]
416
- default_value: 10
417
-
418
- message_digest:
419
- config_get: 'show running interface all'
420
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf authentication message-digest/']
421
- config_set: ["interface %s", "%s ip ospf authentication message-digest"]
422
- default_value: false
423
-
424
- message_digest_alg_type:
425
- config_get: 'show running interface all'
426
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ (\S+)/']
427
- default_value: 'md5'
428
-
429
- message_digest_enc_type:
430
- config_get: 'show running interface all'
431
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ \S+ (\d+)/']
432
- default_value: '0'
433
-
434
- message_digest_password:
435
- config_get: 'show running interface all'
436
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key \d+ \S+ \d+ (\S+)/']
437
-
438
- message_digest_key_id:
439
- config_get: 'show running interface all'
440
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf message-digest-key (\d+)/']
441
- default_value: 0
442
-
443
- message_digest_key_set:
444
- config_set: ["interface %s", "%s ip ospf message-digest-key %s %s %s %s"]
445
-
446
- passive_interface:
447
- config_get: 'show running interface all'
448
- config_get_token: ['/^interface %s$/i', '/^\s*ip ospf passive-interface/']
449
- config_set: ["interface %s", "%s ip ospf passive-interface"]
450
- default_value: false
451
-
452
-
453
- inventory:
454
- all:
455
- config_get: 'show inventory'
456
- config_get_token: ["TABLE_inv", "ROW_inv"]
457
-
458
- chassis:
459
- config_get: 'show inventory'
460
- config_get_token: ["TABLE_inv", "ROW_inv", {'name': '"Chassis"'}]
461
-
462
- inventory:
463
- test_config_get_regex: [
464
- !ruby/regexp '/.*\nNAME: "(.+)",\s+DESCR: "(.+)"\nPID: (\S+)\s+, VID: (.+) , SN: (.+)\n/',
465
- !ruby/regexp '/.*\nNAME: "(.+)",\s+DESCR: "(.+)"\nPID: (\S+)\s+, VID: (.+) , SN: (.+)\n/'
466
- ]
467
-
468
- productid:
469
- config_get: "show inventory"
470
- config_get_token: ["TABLE_inv", "ROW_inv", 0, "productid"]
471
-
472
- serialnum:
473
- config_get: "show inventory"
474
- config_get_token: ["TABLE_inv", "ROW_inv", 0, "serialnum"]
475
-
476
- versionid:
477
- config_get: "show inventory"
478
- config_get_token: ["TABLE_inv", "ROW_inv", 0, "vendorid"]
479
-
480
- ntp_config:
481
- source_interface:
482
- config_get: "show running-config ntp"
483
- config_get_token: '/^ntp source-interface\s+(.*)$/'
484
- config_set: '<state> ntp source-interface <source_interface>'
485
- default_value: ''
486
-
487
- ntp_server:
488
- server:
489
- config_get: "show running-config all | include 'ntp server'"
490
- config_get_token: '/ntp server ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
491
- config_set: '<state> ntp server <ip> <prefer>'
492
- default_value: ''
493
-
494
- prefer:
495
- config_get: "show running-config all | include 'ntp server(.*)(prefer)'"
496
- config_get_token: '/ntp server ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
497
- default_value: ''
498
-
499
- memory:
500
- total:
501
- config_get: 'show system resources'
502
- config_get_token: '/Memory.* (\S+) total/'
503
-
504
- used:
505
- config_get: 'show system resources'
506
- config_get_token: '/Memory.* (\S+) used/'
507
-
508
- free:
509
- config_get: 'show system resources'
510
- config_get_token: '/Memory.* (\S+) free/'
511
-
512
- ospf:
513
- _template:
514
- config_get: "show running ospf all"
515
- config_get_token: '/^router ospf <name>$/'
516
- config_get_token_append:
517
- - '/^vrf <vrf>$/'
518
- config_set: "router ospf <name>"
519
- config_set_append:
520
- - "vrf <vrf>"
521
-
522
- auto_cost:
523
- config_get_token_append: '/^auto-cost reference-bandwidth (\d+)\s*(\S+)?$/'
524
- config_set_append: "auto-cost reference-bandwidth <cost> <type>"
525
- default_value: [40, "Gbps"]
526
-
527
- default_metric:
528
- config_get_token_append: '/^default-metric (\d+)?$/'
529
- config_set_append: "<state> default-metric <metric>"
530
- default_value: 0
531
-
532
- feature:
533
- config_get: "show running ospf"
534
- config_get_token: '/^feature ospf$/'
535
- config_set: "%s feature ospf"
536
-
537
- log_adjacency:
538
- config_get_token_append: '/^(log-adjacency-changes)\s*(detail)?$/'
539
- config_set_append: "<state> log-adjacency-changes <type>"
540
- default_value: :none
541
-
542
- router:
543
- config_get: "show running ospf"
544
- config_get_token: '/^router ospf (\S+)$/'
545
- config_set: "%s router ospf %s"
546
-
547
- router_id:
548
- config_get_token_append: '/^router-id (\S+)?$/'
549
- config_set_append: "<state> router-id <router_id>"
550
- default_value: ""
551
-
552
- timer_throttle_lsa:
553
- config_get_token_append: '/^timers throttle lsa (\d+) (\d+) (\d+)$/'
554
- config_set_append: "timers throttle lsa <start> <hold> <max>"
555
-
556
- timer_throttle_lsa_start:
557
- default_value: 0
558
-
559
- timer_throttle_lsa_hold:
560
- default_value: 5000
561
-
562
- timer_throttle_lsa_max:
563
- default_value: 5000
564
-
565
- timer_throttle_spf:
566
- config_get_token_append: '/^timers throttle spf (\d+) (\d+) (\d+)$/'
567
- config_set_append: "timers throttle spf <start> <hold> <max>"
568
-
569
- timer_throttle_spf_start:
570
- default_value: 200
571
-
572
- timer_throttle_spf_hold:
573
- default_value: 1000
574
-
575
- timer_throttle_spf_max:
576
- default_value: 5000
577
-
578
- vrf:
579
- config_get_token: ['/^router ospf <name>$/i', '/^vrf\s+(\S+)$/']
580
- config_set: ["router ospf <name>", "<state> vrf <vrf>", "end"]
581
-
582
- radius_server:
583
- hosts:
584
- config_get: "show running-config radius"
585
- config_get_token: '/^radius-server host ((?:[0-9]{1,3}\.){3}[0-9]{1,3})/'
586
- config_set: '<state> radius-server host <ip>'
587
- default_value: ''
588
-
589
- auth-port:
590
- config_get: "show running-config radius all"
591
- config_get_token: '/^radius-server host %s.* auth-port (\d+).*$/'
592
- config_set: '<state> radius-server host <ip> auth-port <port>'
593
- default_value: 1812
594
-
595
- acct-port:
596
- config_get: "show running-config radius all"
597
- config_get_token: '/^radius-server host %s.* acct-port (\d+).*$/'
598
- config_set: '<state> radius-server host <ip> acct-port <port>'
599
- default_value: 1813
600
-
601
- timeout:
602
- config_get: "show running-config radius all"
603
- config_get_token: '/^radius-server host %s.* timeout (\d+).*$/'
604
- config_set: '<state> radius-server host <ip> timeout <timeout>'
605
- default_value: null
606
-
607
- retransmit:
608
- config_get: "show running-config radius all"
609
- config_get_token: '/^radius-server host %s.* retransmit (\d+).*$/'
610
- config_set: '<state> radius-server host <ip> retransmit <count>'
611
- default_value: null
612
-
613
- accounting:
614
- config_get: "show running-config radius"
615
- config_get_token: '/^radius-server host %s.* (accounting) .*$/'
616
- config_set: '<state> radius-server host <ip> accounting'
617
- default_value: true
618
-
619
- authentication:
620
- config_get: "show running-config radius"
621
- config_get_token: '/^radius-server host %s.* (authentication) .*$/'
622
- config_set: '<state> radius-server host <ip> authentication'
623
- default_value: true
624
-
625
- key_format:
626
- config_get: "show running-config radius all"
627
- config_get_token: '/^radius-server host %s.* key (\d).*$/'
628
- default_value: null
629
-
630
- key:
631
- config_get: "show running-config radius all"
632
- config_get_token: '/^radius-server host %s.* key \d+\s+(\S+)/'
633
- config_set: '<state> radius-server host <ip> key <key>'
634
- default_value: null
635
-
636
- radius_global:
637
- timeout:
638
- config_get: "show running-config radius all"
639
- config_get_token: '/^radius-server timeout (\d+).*/'
640
- config_set: '<state> radius-server timeout <timeout>'
641
- default_value: '5'
642
-
643
- retransmit:
644
- config_get: "show running-config radius all"
645
- config_get_token: '/^radius-server retransmit (\d+).*/'
646
- config_set: '<state> radius-server retransmit <count>'
647
- default_value: '1'
648
-
649
- key_format:
650
- config_get: "show running-config radius all"
651
- config_get_token: '/^radius-server key (\d).*/'
652
-
653
- key:
654
- config_get: "show running-config radius all"
655
- config_get_token: '/^radius-server key \d+\s+(\S+)/'
656
- config_set: '<state> radius-server key <key>'
657
-
658
- show_system:
659
- uptime:
660
- config_get: 'show system uptime'
661
- config_get_token: '/.*System uptime:\s+(\d+) days, (\d+) hours, (\d+) minutes, (\d+) seconds/'
662
-
663
- show_version:
664
- board:
665
- config_get: 'sh version'
666
- config_get_token: 'proc_board_id'
667
-
668
- boot_image:
669
- config_get: "sh version"
670
- config_get_token: "kick_file_name"
671
- test_config_get: "sh version | no-more"
672
- test_config_get_regex: !ruby/regexp '/.*NXOS image file is: (.*)$.*/'
673
-
674
- cpu:
675
- config_get: 'sh version'
676
- config_get_token: 'cpu_name'
677
-
678
- description:
679
- config_get: "sh version"
680
- config_get_token: "chassis_id"
681
- test_config_get: "sh version | no-more"
682
- # Hardware
683
- # cisco Nexus9000 C9396PX Chassis
684
- #
685
- # Other variants for the line of interest:
686
- # cisco Nexus9000 C9504 (4 Slot) Chassis ("Supervisor Module")
687
- # ^-module_id-ignore!-^
688
- # cisco Nexus3000 C3132Q Chassis
689
- # cisco N3K-C3048TP-1GE
690
- test_config_get_regex: !ruby/regexp '/Hardware\n cisco (([^(\n]+|\(\d+ Slot\))+\w+)/'
691
-
692
- full:
693
- config_get: "sh version"
694
-
695
- header:
696
- config_get: "sh version"
697
- config_get_token: "header_str"
698
-
699
- host_name:
700
- config_get: "sh version"
701
- config_get_token: "host_name"
702
-
703
- last_reset_reason:
704
- config_get: "sh version"
705
- config_get_token: "rr_reason"
706
- test_config_get: "sh version | no-more"
707
- test_config_get_regex: !ruby/regexp '/.*\nLast reset.*\n\n? Reason: (.*)\n/'
708
-
709
- last_reset_time:
710
- config_get: "sh version"
711
- config_get_token: "rr_ctime"
712
- test_config_get: "sh version | no-more"
713
- test_config_get_regex: !ruby/regexp '/.*\nLast reset at \d+ usecs after (.*)\n/'
714
-
715
- system_image:
716
- config_get: "sh version"
717
- config_get_token: "kick_file_name"
718
- test_config_get: "sh version | no-more"
719
- test_config_get_regex: !ruby/regexp '/.*NXOS image file is: (.*)$.*/'
720
-
721
- uptime:
722
- config_get: 'show version'
723
- config_get_token: '/uptime is (.*)/'
724
-
725
- version:
726
- config_get: "sh version"
727
- test_config_get: "sh version | no-more"
728
- config_get_token: "kickstart_ver_str"
729
- test_config_get_regex: [
730
- !ruby/regexp /\nkickstart_ver_str\s+(.+)\n/,
731
- !ruby/regexp '/.*NXOS:\s+version (.*)\n/'
732
- ]
733
-
734
- snmp_community:
735
- acl:
736
- config_get: "show running snmp all"
737
- config_get_token: '/^snmp-server community %s use-acl (.*)$/'
738
- config_set: "%s snmp-server community %s use-acl %s"
739
- default_value: ""
740
-
741
- all_communities:
742
- config_get: "show running snmp all"
743
- config_get_token: '/^snmp-server community (\S+) /'
744
-
745
- community:
746
- config_get: "show running snmp all"
747
- config_get_token: '/^snmp-server community (%s) group .*$/'
748
- config_set: "%s snmp-server community %s group %s"
749
-
750
- group:
751
- config_get: "show running snmp all"
752
- config_get_token: '/^snmp-server community %s group (.*)$/'
753
- config_set: "snmp-server community %s group %s"
754
- default_value: "network-operator"
755
-
756
- snmp_group:
757
- group:
758
- config_get: "show snmp group"
759
- config_get_token: "/^Role: (.*)$/"
760
- default_value: ""
761
-
762
- snmp_server:
763
- aaa_user_cache_timeout:
764
- config_get: "show snmp internal globals"
765
- config_get_token: '/AAA Cache Timeout :(\d+)/'
766
- config_set: "%s snmp-server aaa-user cache-timeout %d"
767
- default_value: 3600
768
-
769
- contact:
770
- config_get: "show snmp"
771
- config_get_token: "sys_contact"
772
- config_set: "%s snmp-server contact %s"
773
- default_value: ""
774
-
775
- global_enforce_priv:
776
- config_get: "show run snmp"
777
- config_get_token: '/snmp-server globalEnforcePriv/'
778
- config_set: "%s snmp-server globalEnforcePriv"
779
- default_value: false
780
-
781
- location:
782
- config_get: "show snmp"
783
- config_get_token: "sys_location"
784
- config_set: "%s snmp-server location %s"
785
- default_value: ""
786
-
787
- packet_size:
788
- config_get: "show snmp internal globals"
789
- config_get_token: '/SNMP Max packet size :(\d+)/'
790
- config_set: "%s snmp-server packetsize %d"
791
- default_value: 1500
792
-
793
- protocol:
794
- config_get: "show snmp"
795
- config_get_token: "protocol_status"
796
- config_set: "%s snmp-server protocol enable"
797
- default_value: true
798
-
799
- tcp_session_auth:
800
- config_get: "show snmp"
801
- config_get_token: "tcp_auth_status"
802
- config_set: "%s snmp-server tcp-session %s"
803
- default_value: true
804
-
805
-
806
- snmp_user:
807
- auth_password:
808
- config_get: "show run snmp all"
809
- config_get_token: '/snmp-server user (\S+) \S+ auth \S+ (\S+)/'
810
- default_value: ""
811
-
812
- # The getter format will not have group info if engine id is configured.
813
- auth_password_with_engine_id:
814
- config_get: "show run snmp all"
815
- config_get_token: '/snmp-server user (\S+) auth \S+ (\S+) .*engineID (\S+)/'
816
- default_value: ""
817
-
818
- auth_protocol:
819
- default_value: "md5"
820
-
821
- engine_id:
822
- default_value: ""
823
-
824
- group:
825
- default_value: "network-operator"
826
-
827
- priv_password:
828
- config_get: "show run snmp all"
829
- config_get_token: '/snmp-server user (\S+) \S+ auth \S+ \S+ priv.*(0x\S+)/'
830
- default_value: ""
831
-
832
- # The getter format will not have group info if engine id is configured.
833
- priv_password_with_engine_id:
834
- config_get: "show run snmp all"
835
- config_get_token: '/snmp-server user (\S+) auth \S+ \S+ priv .*(0x\S+) .*engineID (\S+)/'
836
- default_value: ""
837
-
838
- priv_protocol:
839
- default_value: "des"
840
-
841
- # Config string syntax:
842
- # [no] snmp-server user <user> [group] [auth {md5|sha} <passwd1> \
843
- # [priv [aes-128] <passwd2>] [localizedkey] [engineID <id>]]
844
- user:
845
- config_get: "show snmp user"
846
- config_get_token: ["TABLE_snmp_users", "ROW_snmp_users"]
847
- config_set: "%s snmp-server user %s %s %s %s %s %s"
848
-
849
- syslog_settings:
850
- timestamp:
851
- config_get: "show running-config all | include '^logging timestamp'"
852
- config_get_token: '/^logging timestamp (.*)$/'
853
- config_set: '<state> logging timestamp <units>'
854
- default_value: 'seconds'
855
-
856
- syslog_server:
857
- server:
858
- config_get: "show running-config all | include '^logging server'"
859
- config_get_token: '/^logging server ((?:[0-9]{1,3}\.){3}[0-9]{1,3}).*/'
860
- config_set: '<state> logging server <ip> <level> <vrf>'
861
- default_value: ''
862
-
863
- level:
864
- config_get: "show running-config all | include '^logging server'"
865
- config_get_token: '/^logging server %s (\d).*/'
866
- default_value: ''
867
-
868
- vrf:
869
- config_get: "show running-config all | include '^logging server(.*)(use-vrf)'"
870
- config_get_token: '/^logging server %s.* use-vrf (.*)$/'
871
- default_value: ''
872
-
873
- system:
874
- resources:
875
- config_get: "show system resources"
876
- test_config_get: "show system resources | no-more"
877
- test_config_get_regex: !ruby/regexp '/.*CPU states : (\d+\.\d+)% user, (\d+\.\d+)% kernel/'
878
-
879
- tacacs_server:
880
- deadtime:
881
- config_get: "show run tacacs all"
882
- config_get_token: '/^tacacs-server deadtime\s+(\d+)/'
883
- config_set: "%s tacacs-server deadtime %d"
884
- default_value: 0
885
-
886
- directed_request:
887
- # oddly, directed request must be retrieved from aaa output
888
- config_get: "show running aaa all"
889
- config_get_token: '/(?:no)?\s*tacacs-server directed-request/'
890
- config_set: "%s tacacs-server directed-request"
891
- default_value: false
892
-
893
- encryption_type:
894
- config_get: "show run tacacs all"
895
- config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
896
- default_value: 0
897
-
898
- encryption_password:
899
- config_get: "show run tacacs all"
900
- config_get_token: '/^tacacs-server key (\d+)\s+(\S+)/'
901
- default_value: ""
902
-
903
- encryption:
904
- config_set: "%s tacacs-server key %d %s"
905
-
906
- feature:
907
- config_get: "show run tacacs all"
908
- config_get_token: '/^feature tacacs/'
909
- config_set: "%s feature tacacs+"
910
-
911
- source_interface:
912
- config_get: "show run tacacs all"
913
- config_get_token: '/(no)?\s*ip tacacs source-interface\s+(\S+)?/'
914
- config_set: "%s ip tacacs source-interface %s"
915
- default_value: ""
916
-
917
- timeout:
918
- config_get: "show run tacacs all"
919
- config_get_token: '/tacacs-server timeout\s+(\d+)/'
920
- config_set: "%s tacacs-server timeout %d"
921
- default_value: 5
922
-
923
- tacacs_server_host:
924
- encryption:
925
- config_set: "%s tacacs-server host %s key %s %s"
926
-
927
- encryption_password:
928
- config_get: "show run tacacs all"
929
- config_get_token: '/^tacacs-server host %s key \d+\s+(\S+)/'
930
- default_value: ""
931
-
932
- encryption_type:
933
- config_get: "show run tacacs all"
934
- config_get_token: '/^tacacs-server host %s key (\d+)/'
935
-
936
- host:
937
- config_set: "%s tacacs-server host %s"
938
-
939
- hosts:
940
- config_get: "show run tacacs all"
941
- config_get_token: '/^tacacs-server host (\S+)/'
942
-
943
- port:
944
- config_get: "show run tacacs all"
945
- config_get_token: '/^tacacs-server host %s .*port (\d+)/'
946
- config_set: "tacacs-server host %s port %s"
947
- default_value: 49
948
-
949
- timeout:
950
- config_get: "show run tacacs all"
951
- config_get_token: '/^tacacs-server host %s .*timeout (\d+)/'
952
- config_set: "%s tacacs-server host %s timeout %s"
953
- default_value: 0
954
-
955
- virtual_service:
956
- services:
957
- config_get: 'show virtual-service detail'
958
- config_get_token: ["TABLE_detail", "ROW_detail"]
959
-
960
- vlan:
961
- all_vlans:
962
- config_get: "show vlan brief"
963
- config_get_token: '/^(\d+)\s/'
964
-
965
- create:
966
- config_set: ["vlan %s" , "end"]
967
-
968
- destroy:
969
- config_set: "no vlan %s"
970
-
971
- name:
972
- config_get: "show vlan brief"
973
- config_get_token: '/^%d+\s+(\S+)\s/'
974
- config_set: ["vlan %d", "%s name %s", "end"]
975
- test_config_result:
976
- 32: "String exceeded max length of (32)"
977
-
978
- state:
979
- config_get: "show vlan brief"
980
- config_get_token: '/^%d+\s+\S+\s+(\S+)\s/'
981
- config_set: ["vlan %d", "%s state %s", "end"]
982
- default_value: "active"
983
-
984
- shutdown:
985
- config_get: "show vlan brief"
986
- config_get_token: '/^%d+\s+\S+\s+(\S+)\s/'
987
- config_set: ["vlan %d", "%s shutdown", "end"]
988
- default_value: false
989
-
990
- vrf:
991
- all_vrfs:
992
- config_get: "show running | section 'vrf context'"
993
- config_get_token: '/^vrf context (.*)/'
994
-
995
- create:
996
- config_set: "vrf context <vrf>"
997
-
998
- description:
999
- config_get: "show running | section 'vrf context'"
1000
- config_get_token: ['/^vrf context <vrf>$/i', '/^description (.*)/']
1001
- config_set: ["vrf context <vrf>", "<state> description <desc>"]
1002
-
1003
- destroy:
1004
- config_set: "no vrf context <vrf>"
1005
-
1006
- shutdown:
1007
- config_get: "show running | section 'vrf context'"
1008
- config_get_token: ['/^vrf context <vrf>$/i', '/^shutdown$/']
1009
- config_set: ["vrf context <vrf>", "<state> shutdown"]
1010
-
1011
- vtp:
1012
- domain:
1013
- config_get: "show vtp status"
1014
- config_get_token: "domain_name"
1015
- config_set: "vtp domain %s"
1016
-
1017
- feature:
1018
- config_get: "show running vtp"
1019
- config_get_token: '/^feature vtp$/'
1020
- config_set: "%s feature vtp"
1021
-
1022
- filename:
1023
- config_get: "show running vtp"
1024
- config_get_token: '/vtp file (\S+)/'
1025
- config_set: "%s vtp file %s"
1026
- default_value: "bootflash:/vlan.dat"
1027
-
1028
- password:
1029
- config_get: "show vtp password"
1030
- config_get_token: "passwd"
1031
- config_set: "%s vtp password %s"
1032
- default_value: ""
1033
-
1034
- version:
1035
- config_get: "show vtp status"
1036
- config_get_token: '/VTP\s+version\s+running\s+:\s+(\d+)/'
1037
- config_set: "vtp version %s"
1038
- default_value: 1
1039
- test_config_result:
1040
- 3: "Cisco::CliError"
1041
-
1042
- yum:
1043
- install:
1044
- config_set: "install add %s %s activate"
1045
- query:
1046
- config_get: "show install packages"
1047
- # pass in the pkg name, retrieve version
1048
- config_get_token: '/^%s\S*\s+(\S+)\s+(?:installed|@\S+)/'
1049
- remove:
1050
- config_set: "install deactivate %s"
1051
-