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
@@ -1,48 +1,55 @@
1
1
  # bgp_neighbor_af.yaml
2
2
  ---
3
3
  _template:
4
- config_get: 'show running bgp all'
5
- config_get_token: '/^router bgp <asnum>$/'
6
- config_get_token_append:
7
- - '/^vrf <vrf>$/'
8
- - '/^neighbor <nbr>$/'
9
- - '/^address-family <afi> <safi>$/'
10
- config_set: 'router bgp <asnum>'
11
- config_set_append:
12
- - 'vrf <vrf>'
4
+ nexus:
5
+ get_command: 'show running bgp all'
6
+ ios_xr:
7
+ get_command: 'show run router bgp'
8
+ context:
9
+ - 'router bgp <asnum>'
10
+ - '(?)vrf <vrf>'
13
11
  - 'neighbor <nbr>'
14
12
  - 'address-family <afi> <safi>'
15
13
 
16
14
  additional_paths_receive:
15
+ _exclude: [ios_xr]
16
+ kind: symbol
17
17
  auto_default: false
18
- config_get_token_append: '/^capability additional-paths receive(?: disable)?/'
19
- config_set_append: '<state> capability additional-paths receive <disable>'
18
+ get_value: '/^capability additional-paths receive(?: disable)?/'
19
+ set_value: '<state> capability additional-paths receive <disable>'
20
20
  default_value: 'inherit'
21
21
 
22
22
  additional_paths_send:
23
+ _exclude: [ios_xr]
23
24
  auto_default: false
24
- config_get_token_append: '/^capability additional-paths send(?: disable)?/'
25
- config_set_append: '<state> capability additional-paths send <disable>'
25
+ get_value: '/^capability additional-paths send(?: disable)?/'
26
+ set_value: '<state> capability additional-paths send <disable>'
26
27
  default_value: 'inherit'
27
28
 
28
29
  advertise_map_exist:
29
- config_get_token_append: '/^advertise-map (\S+) exist-map (\S+)$/'
30
- config_set_append: '<state> advertise-map <map1> exist-map <map2>'
30
+ _exclude: [ios_xr]
31
+ get_value: '/^advertise-map (\S+) exist-map (\S+)$/'
32
+ set_value: '<state> advertise-map <map1> exist-map <map2>'
31
33
  default_value: ''
32
34
 
33
35
  advertise_map_non_exist:
34
- config_get_token_append: '/^advertise-map (\S+) non-exist-map (\S+)$/'
35
- config_set_append: '<state> advertise-map <map1> non-exist-map <map2>'
36
+ _exclude: [ios_xr]
37
+ get_value: '/^advertise-map (\S+) non-exist-map (\S+)$/'
38
+ set_value: '<state> advertise-map <map1> non-exist-map <map2>'
36
39
  default_value: ''
37
40
 
38
41
  all_afs:
39
42
  multiple: true
40
- config_get_token_append: '/^address-family (\S+) (\S+)$/'
43
+ context:
44
+ - 'router bgp <asnum>'
45
+ - '(?)vrf <vrf>'
46
+ - 'neighbor <nbr>'
47
+ get_value: '/^address-family (\S+) (\S+)$/'
41
48
 
42
49
  allowas_in:
43
50
  auto_default: false
44
- config_get_token_append: '/^allowas-in(?: \d+)?/'
45
- config_set_append: '<state> allowas-in <max>'
51
+ get_value: '/^allowas-in(?: \d+)?/'
52
+ set_value: '<state> allowas-in <max>'
46
53
  default_value: false
47
54
 
48
55
  allowas_in_max:
@@ -50,39 +57,47 @@ allowas_in_max:
50
57
 
51
58
  as_override:
52
59
  kind: boolean
53
- config_get_token_append: '/^as-override$/'
54
- config_set_append: '<state> as-override'
60
+ get_value: '/^as-override$/'
61
+ set_value: '<state> as-override'
55
62
  default_value: false
56
63
 
57
64
  default_originate:
58
- config_get_token_append: '/^default-originate(?: route-map .*)?/'
59
- config_set_append: '<state> default-originate <map>'
60
65
  default_value: false
66
+ ios_xr:
67
+ get_value: '/^default-originate(?: route-policy .*)?/'
68
+ set_value: '<state> default-originate <map>'
69
+ nexus:
70
+ get_value: '/^default-originate(?: route-map .*)?/'
71
+ set_value: '<state> default-originate <map>'
61
72
 
62
73
  default_originate_route_map:
74
+ _exclude: [ios_xr]
63
75
  default_value: ~
64
76
 
65
77
  disable_peer_as_check:
78
+ _exclude: [ios_xr]
66
79
  kind: boolean
67
- config_get_token_append: '/^disable-peer-as-check$/'
68
- config_set_append: '<state> disable-peer-as-check'
80
+ get_value: '/^disable-peer-as-check$/'
81
+ set_value: '<state> disable-peer-as-check'
69
82
  default_value: false
70
83
 
71
84
  filter_list_in:
85
+ _exclude: [ios_xr]
72
86
  kind: string
73
- config_get_token_append: '/^filter-list (\S+) in$/'
74
- config_set_append: '<state> filter-list <str> in'
87
+ get_value: '/^filter-list (\S+) in$/'
88
+ set_value: '<state> filter-list <str> in'
75
89
  default_value: ''
76
90
 
77
91
  filter_list_out:
92
+ _exclude: [ios_xr]
78
93
  kind: string
79
- config_get_token_append: '/^filter-list (\S+) out$/'
80
- config_set_append: '<state> filter-list <str> out'
94
+ get_value: '/^filter-list (\S+) out$/'
95
+ set_value: '<state> filter-list <str> out'
81
96
  default_value: ''
82
97
 
83
98
  max_prefix:
84
- config_get_token_append: '/^maximum-prefix .*$/'
85
- config_set_append: '<state> maximum-prefix <limit> <threshold> <opt>'
99
+ get_value: '/^maximum-prefix .*$/'
100
+ set_value: '<state> maximum-prefix <limit> <threshold> <opt>'
86
101
 
87
102
  max_prefix_interval:
88
103
  default_value: ~
@@ -91,89 +106,118 @@ max_prefix_limit:
91
106
  default_value: ~
92
107
 
93
108
  max_prefix_threshold:
94
- default_value: ~
109
+ ios_xr:
110
+ default_value: 75
111
+ nexus:
112
+ default_value: ~
95
113
 
96
114
  max_prefix_warning:
97
115
  default_value: ~
98
116
 
99
117
  next_hop_self:
100
118
  kind: boolean
101
- config_get_token_append: '/^next-hop-self$/'
102
- config_set_append: '<state> next-hop-self'
119
+ get_value: '/^next-hop-self$/'
120
+ set_value: '<state> next-hop-self'
103
121
  default_value: false
104
122
 
105
123
  next_hop_third_party:
124
+ _exclude: [ios_xr]
106
125
  kind: boolean
107
- config_get_token_append: '/^(no ?)next-hop-third-party$/'
108
- config_set_append: '<state> next-hop-third-party'
126
+ get_value: '/^(no ?)next-hop-third-party$/'
127
+ set_value: '<state> next-hop-third-party'
109
128
  default_value: true
110
129
 
111
130
  prefix_list_in:
131
+ _exclude: [ios_xr]
112
132
  kind: string
113
- config_get_token_append: '/^prefix-list (\S+) in$/'
114
- config_set_append: '<state> prefix-list <str> in'
133
+ get_value: '/^prefix-list (\S+) in$/'
134
+ set_value: '<state> prefix-list <str> in'
115
135
  default_value: ''
116
136
 
117
137
  prefix_list_out:
138
+ _exclude: [ios_xr]
118
139
  kind: string
119
- config_get_token_append: '/^prefix-list (\S+) out$/'
120
- config_set_append: '<state> prefix-list <str> out'
140
+ get_value: '/^prefix-list (\S+) out$/'
141
+ set_value: '<state> prefix-list <str> out'
121
142
  default_value: ''
122
143
 
123
144
  route_map_in:
124
145
  kind: string
125
- config_get_token_append: '/^route-map (\S+) in$/'
126
- config_set_append: '<state> route-map <str> in'
127
146
  default_value: ''
147
+ nexus:
148
+ get_value: '/^route-map (\S+) in$/'
149
+ set_value: '<state> route-map <str> in'
150
+ ios_xr:
151
+ get_value: '/^route-policy (\S+) in$/'
152
+ set_value: '<state> route-policy <str> in'
128
153
 
129
154
  route_map_out:
130
155
  kind: string
131
- config_get_token_append: '/^route-map (\S+) out$/'
132
- config_set_append: '<state> route-map <str> out'
133
156
  default_value: ''
157
+ nexus:
158
+ get_value: '/^route-map (\S+) out$/'
159
+ set_value: '<state> route-map <str> out'
160
+ ios_xr:
161
+ get_value: '/^route-policy (\S+) out$/'
162
+ set_value: '<state> route-policy <str> out'
134
163
 
135
164
  route_reflector_client:
136
165
  kind: boolean
137
- config_get_token_append: '/^route-reflector-client$/'
138
- config_set_append: '<state> route-reflector-client'
166
+ get_value: '/^route-reflector-client$/'
167
+ set_value: '<state> route-reflector-client'
139
168
  default_value: false
140
169
 
141
170
  send_community:
142
171
  auto_default: false
143
- config_get_token_append: '/^send-community(?: .*)?/'
144
- config_set_append: '<state> send-community <attr>'
145
172
  default_value: 'none'
173
+ nexus:
174
+ get_value: '/^send-community(?: .*)?/'
175
+ set_value: '<state> send-community <attr>'
176
+ ios_xr:
177
+ multiple:
178
+ # XR three seperate commands: send-community-ebgp send-community-gshut-ebgp
179
+ # and send-extended-community-ebgp
180
+ # send-community-ebgp' and 'send-extended-community-ebgp' are the equivalents
181
+ # of the NXOS: standard | extended functionality
182
+ get_value: '/^(send-community-ebgp|send-extended-community-ebgp)/'
183
+ set_value: '<state> <attr>'
146
184
 
147
185
  soft_reconfiguration_in:
148
186
  auto_default: false
149
187
  default_value: 'inherit'
150
- /(N3K|N9K)/:
151
- config_get_token_append: '/^soft-reconfiguration inbound(?: always)?/'
152
- config_set_append: '<state> soft-reconfiguration inbound <always>'
188
+ ios_xr: &soft_recon_always
189
+ get_value: '/^soft-reconfiguration inbound(?: always)?/'
190
+ set_value: '<state> soft-reconfiguration inbound <always>'
191
+ N3k: *soft_recon_always
192
+ N8k: *soft_recon_always
193
+ N9k: *soft_recon_always
153
194
  else:
154
- config_get_token_append: '/^soft-reconfiguration inbound/'
155
- config_set_append: '<state> soft-reconfiguration inbound'
195
+ get_value: '/^soft-reconfiguration inbound/'
196
+ set_value: '<state> soft-reconfiguration inbound'
156
197
 
157
198
  soo:
199
+ _exclude: [ios_xr]
158
200
  kind: string
159
- config_get_token_append: '/^soo (.*)$/'
160
- config_set_append: '<state> soo <str>'
201
+ get_value: '/^soo (.*)$/'
202
+ set_value: '<state> soo <str>'
161
203
  default_value: ''
162
204
 
163
205
  suppress_inactive:
206
+ _exclude: [ios_xr]
164
207
  kind: boolean
165
- config_get_token_append: '/^suppress-inactive$/'
166
- config_set_append: '<state> suppress-inactive'
208
+ get_value: '/^suppress-inactive$/'
209
+ set_value: '<state> suppress-inactive'
167
210
  default_value: false
168
211
 
169
212
  unsuppress_map:
213
+ _exclude: [ios_xr]
170
214
  kind: string
171
- config_get_token_append: '/^unsuppress-map (.*)$/'
172
- config_set_append: '<state> unsuppress-map <str>'
215
+ get_value: '/^unsuppress-map (.*)$/'
216
+ set_value: '<state> unsuppress-map <str>'
173
217
  default_value: ''
174
218
 
175
219
  weight:
176
220
  kind: int
177
- config_get_token_append: '/^weight (\d+)$/'
178
- config_set_append: '<state> weight <int>'
221
+ get_value: '/^weight (\d+)$/'
222
+ set_value: '<state> weight <int>'
179
223
  default_value: false
@@ -0,0 +1,71 @@
1
+ # bridge_domain
2
+ # bridge_domain feature is available only on n7k
3
+ ---
4
+ _exclude: [N3k, N5k, N6k, N8k, N9k, ios_xr]
5
+
6
+ # For the below name, shutdown commands we are going to use show running-config
7
+ # bridge-domain cli which displays as below
8
+ #
9
+ # system bridge-domain 100-110
10
+ #
11
+ # bridge-domain 100-110
12
+ #
13
+ # bridge-domain 100
14
+ # shutdown
15
+ # fabric-control
16
+ # name bd100
17
+ # bridge-domain 101
18
+ # bridge-domain 102
19
+ # ...
20
+ # bridge-domain 108
21
+ # shutdown
22
+ # name bd108
23
+ # bridge-domain 109
24
+ # shutdown
25
+ # bridge-domain 110
26
+ # name bd110
27
+
28
+ _template:
29
+ get_command: "show running-config bridge-domain"
30
+ get_context: ['/^bridge-domain <bd>\s$/']
31
+ set_context: ["(?)bridge-domain <bd>"]
32
+
33
+ all_bds:
34
+ multiple: true
35
+ get_context: ~
36
+ get_value: '/^bridge-domain (\S+)/'
37
+
38
+ bd_name:
39
+ kind: string
40
+ get_value: '/name (\S+)/'
41
+ set_value: "<state> name <name>"
42
+ default_value: ~
43
+
44
+ create:
45
+ get_context: ~
46
+ set_value: "bridge-domain <bd>"
47
+
48
+ destroy:
49
+ get_context: ~
50
+ set_value: "no bridge-domain <bd>"
51
+
52
+ # Configured fabric-control Bridge-Domain/VLAN : 100
53
+ fabric_control:
54
+ kind: boolean
55
+ get_value: '/fabric-control/'
56
+ set_value: "<state> fabric-control"
57
+ default_value: false
58
+
59
+ # Same reason as for bd_name case above
60
+ shutdown:
61
+ kind: boolean
62
+ get_value: '/shutdown/'
63
+ set_value: "<state> shutdown"
64
+ default_value: false
65
+
66
+ system_bridge_domain:
67
+ get_context: ~
68
+ get_value: '/^system bridge-domain (\S+)/'
69
+ set_context: ~
70
+ set_value: "system bridge-domain <oper> <bd>"
71
+ default_value: ""
@@ -0,0 +1,33 @@
1
+ # bridge_domain
2
+ ---
3
+ _exclude: [N3k, N5k, N6k, N8k, N9k, ios_xr]
4
+
5
+ create:
6
+ set_value: "bridge-domain <bd>"
7
+
8
+ member_vni:
9
+ get_command: "show running-config bridge-domain | inc 'member vni'"
10
+ get_value: '/^ member vni (.*)/'
11
+ set_value: "bridge-domain <bd> ; <membstate> member vni <membvni>"
12
+ default_value: ''
13
+
14
+ member_vni_bd:
15
+ get_command: "show running-config bridge-domain | inc 'member vni' prev 1"
16
+ get_value: '/^bridge-domain (.*)/'
17
+
18
+ range_bds:
19
+ multiple: true
20
+ get_command: "show running-config bridge-domain | inc 'member vni' prev 1"
21
+ get_value: '/^bridge-domain (.*)/'
22
+
23
+ system_bridge_domain:
24
+ get_command: "show running-config bridge-domain"
25
+ get_value: '/^system bridge-domain (\S+)/'
26
+ set_value: "system bridge-domain <oper> <bd>"
27
+ default_value: ""
28
+
29
+ vni:
30
+ get_command: "show running-config bridge-domain"
31
+ get_value: '/^vni (\d+)/'
32
+ set_value: "<state> vni <vni>"
33
+ default_value: ''
@@ -1,34 +1,55 @@
1
1
  # dnsclient
2
2
  ---
3
3
  _template:
4
- config_get: "show running-config all"
4
+ get_command: "show running-config all"
5
5
 
6
6
  domain_list:
7
7
  multiple: true
8
- config_get_token: '/^ip domain-list (\S+)$/'
9
- config_set: '<state> ip domain-list <name>'
8
+ nexus:
9
+ get_value: '/^ip domain-list (\S+)$/'
10
+ set_value: '<state> ip domain-list <name>'
11
+ ios_xr:
12
+ get_value: '/^domain list (\S+)$/'
13
+ set_value: '<state> domain list <name>'
10
14
  default_value: []
11
15
 
12
16
  domain_list_vrf:
13
17
  multiple: true
14
- config_get_token: ['/vrf context <vrf>/', '/ip domain-list (\S+)/']
15
- config_set: ['vrf context <vrf>', '<state> ip domain-list <name>']
18
+ nexus:
19
+ context: ['vrf context <vrf>']
20
+ get_value: '/ip domain-list (\S+)/'
21
+ set_value: '<state> ip domain-list <name>'
22
+ ios_xr:
23
+ get_value: '/^domain vrf <vrf> list (\S+)/'
24
+ set_value: '<state> domain vrf <vrf> list <name>'
16
25
  default_value: []
17
26
 
18
27
  domain_name:
19
- cli_nexus:
20
- config_set: '<state> ip domain-name <name>'
21
- config_get_token: '/^ip domain-name (\S+)$/'
22
- default_value: ''
28
+ default_value: ''
29
+ nexus:
30
+ set_value: '<state> ip domain-name <name>'
31
+ get_value: '/^ip domain-name (\S+)$/'
32
+ ios_xr:
33
+ set_value: '<state> domain name <name>'
34
+ get_value: '/^domain name (\S+)$/'
23
35
 
24
36
  domain_name_vrf:
25
- config_get_token: ['/vrf context <vrf>/', '/ip domain-name (\S+)/']
26
- config_set: ['vrf context <vrf>', '<state> ip domain-name <name>']
37
+ nexus:
38
+ context: ['vrf context <vrf>']
39
+ get_value: '/ip domain-name (\S+)/'
40
+ set_value: '<state> ip domain-name <name>'
41
+ ios_xr:
42
+ get_value: '/^domain vrf <vrf> name (\S+)$/'
43
+ set_value: '<state> domain vrf <vrf> name <name>'
27
44
  default_value: ''
28
45
 
29
46
  name_server:
30
47
  multiple: true
31
48
  default_value: []
32
- config_get: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
33
- config_get_token: '/^ip name-server ([\s\d\.:]+)$/'
34
- config_set: '<state> ip name-server <ip>'
49
+ nexus:
50
+ get_command: "show running-config all | include 'ip name-server' | exclude 'use-vrf'"
51
+ get_value: '/^ip name-server ([\s\d\.:]+)$/'
52
+ set_value: '<state> ip name-server <ip>'
53
+ ios_xr:
54
+ get_value: '/^domain name-server (\S+)$/'
55
+ set_value: '<state> domain name-server <ip>'