cisco_node_utils 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/CHANGELOG.md +126 -1
  4. data/README.md +19 -12
  5. data/Rakefile +1 -0
  6. data/bin/git/hooks/commit-msg/enforce_style +8 -0
  7. data/cisco_node_utils.gemspec +4 -3
  8. data/docs/README-develop-best-practices.md +127 -109
  9. data/docs/README-develop-node-utils-APIs.md +47 -39
  10. data/docs/template-router.rb +3 -7
  11. data/lib/.rubocop.yml +4 -4
  12. data/lib/cisco_node_utils.rb +1 -1
  13. data/lib/cisco_node_utils/aaa_authentication_login.rb +96 -0
  14. data/lib/cisco_node_utils/aaa_authentication_login_service.rb +133 -0
  15. data/lib/cisco_node_utils/aaa_authorization_service.rb +150 -0
  16. data/lib/cisco_node_utils/ace.rb +196 -0
  17. data/lib/cisco_node_utils/acl.rb +100 -0
  18. data/lib/cisco_node_utils/bgp.rb +301 -163
  19. data/lib/cisco_node_utils/bgp_af.rb +187 -19
  20. data/lib/cisco_node_utils/bgp_neighbor.rb +18 -33
  21. data/lib/cisco_node_utils/bgp_neighbor_af.rb +25 -48
  22. data/lib/cisco_node_utils/cisco_cmn_utils.rb +23 -4
  23. data/lib/cisco_node_utils/cmd_ref/README_YAML.md +593 -0
  24. data/lib/cisco_node_utils/cmd_ref/aaa_auth_login_service.yaml +22 -0
  25. data/lib/cisco_node_utils/cmd_ref/aaa_authentication_login.yaml +31 -0
  26. data/lib/cisco_node_utils/cmd_ref/aaa_authorization_service.yaml +22 -0
  27. data/lib/cisco_node_utils/cmd_ref/acl.yaml +43 -0
  28. data/lib/cisco_node_utils/cmd_ref/bgp.yaml +242 -0
  29. data/lib/cisco_node_utils/cmd_ref/bgp_af.yaml +164 -0
  30. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor.yaml +131 -0
  31. data/lib/cisco_node_utils/cmd_ref/bgp_neighbor_af.yaml +179 -0
  32. data/lib/cisco_node_utils/cmd_ref/dnsclient.yaml +34 -0
  33. data/lib/cisco_node_utils/cmd_ref/evpn_vni.yaml +42 -0
  34. data/lib/cisco_node_utils/cmd_ref/fabricpath.yaml +172 -0
  35. data/lib/cisco_node_utils/cmd_ref/fabricpath_topology.yaml +35 -0
  36. data/lib/cisco_node_utils/cmd_ref/feature.yaml +42 -0
  37. data/lib/cisco_node_utils/cmd_ref/fex.yaml +9 -0
  38. data/lib/cisco_node_utils/cmd_ref/images.yaml +7 -0
  39. data/lib/cisco_node_utils/cmd_ref/interface.yaml +339 -0
  40. data/lib/cisco_node_utils/cmd_ref/interface_channel_group.yaml +28 -0
  41. data/lib/cisco_node_utils/cmd_ref/interface_ospf.yaml +61 -0
  42. data/lib/cisco_node_utils/cmd_ref/interface_portchannel.yaml +54 -0
  43. data/lib/cisco_node_utils/cmd_ref/interface_service_vni.yaml +32 -0
  44. data/lib/cisco_node_utils/cmd_ref/inventory.yaml +45 -0
  45. data/lib/cisco_node_utils/cmd_ref/memory.yaml +13 -0
  46. data/lib/cisco_node_utils/cmd_ref/ntp_config.yaml +7 -0
  47. data/lib/cisco_node_utils/cmd_ref/ntp_server.yaml +14 -0
  48. data/lib/cisco_node_utils/cmd_ref/ospf.yaml +74 -0
  49. data/lib/cisco_node_utils/cmd_ref/overlay_global.yaml +33 -0
  50. data/lib/cisco_node_utils/cmd_ref/pim.yaml +40 -0
  51. data/lib/cisco_node_utils/cmd_ref/portchannel_global.yaml +69 -0
  52. data/lib/cisco_node_utils/cmd_ref/radius_global.yaml +25 -0
  53. data/lib/cisco_node_utils/cmd_ref/radius_server.yaml +64 -0
  54. data/lib/cisco_node_utils/cmd_ref/radius_server_group.yaml +14 -0
  55. data/lib/cisco_node_utils/cmd_ref/show_system.yaml +5 -0
  56. data/lib/cisco_node_utils/cmd_ref/show_version.yaml +72 -0
  57. data/lib/cisco_node_utils/cmd_ref/snmp_community.yaml +23 -0
  58. data/lib/cisco_node_utils/cmd_ref/snmp_group.yaml +7 -0
  59. data/lib/cisco_node_utils/cmd_ref/snmp_notification_receiver.yaml +50 -0
  60. data/lib/cisco_node_utils/cmd_ref/snmp_server.yaml +51 -0
  61. data/lib/cisco_node_utils/cmd_ref/snmp_user.yaml +55 -0
  62. data/lib/cisco_node_utils/cmd_ref/snmpnotification.yaml +11 -0
  63. data/lib/cisco_node_utils/cmd_ref/syslog_server.yaml +18 -0
  64. data/lib/cisco_node_utils/cmd_ref/syslog_settings.yaml +7 -0
  65. data/lib/cisco_node_utils/cmd_ref/system.yaml +6 -0
  66. data/lib/cisco_node_utils/cmd_ref/tacacs_server.yaml +49 -0
  67. data/lib/cisco_node_utils/cmd_ref/tacacs_server_group.yaml +33 -0
  68. data/lib/cisco_node_utils/cmd_ref/tacacs_server_host.yaml +35 -0
  69. data/lib/cisco_node_utils/cmd_ref/vdc.yaml +38 -0
  70. data/lib/cisco_node_utils/cmd_ref/virtual_service.yaml +6 -0
  71. data/lib/cisco_node_utils/cmd_ref/vlan.yaml +56 -0
  72. data/lib/cisco_node_utils/cmd_ref/vni.yaml +76 -0
  73. data/lib/cisco_node_utils/cmd_ref/vpc.yaml +197 -0
  74. data/lib/cisco_node_utils/cmd_ref/vrf.yaml +88 -0
  75. data/lib/cisco_node_utils/cmd_ref/vtp.yaml +38 -0
  76. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep.yaml +60 -0
  77. data/lib/cisco_node_utils/cmd_ref/vxlan_vtep_vni.yaml +39 -0
  78. data/lib/cisco_node_utils/cmd_ref/yum.yaml +13 -0
  79. data/lib/cisco_node_utils/command_reference.rb +359 -187
  80. data/lib/cisco_node_utils/configparser_lib.rb +1 -1
  81. data/lib/cisco_node_utils/dns_domain.rb +19 -5
  82. data/lib/cisco_node_utils/domain_name.rb +4 -8
  83. data/lib/cisco_node_utils/evpn_vni.rb +157 -0
  84. data/lib/cisco_node_utils/fabricpath_global.rb +388 -0
  85. data/lib/cisco_node_utils/fabricpath_topology.rb +150 -0
  86. data/lib/cisco_node_utils/feature.rb +111 -0
  87. data/lib/cisco_node_utils/interface.rb +390 -97
  88. data/lib/cisco_node_utils/interface_channel_group.rb +124 -0
  89. data/lib/cisco_node_utils/interface_ospf.rb +11 -34
  90. data/lib/cisco_node_utils/interface_portchannel.rb +157 -0
  91. data/lib/cisco_node_utils/interface_service_vni.rb +132 -0
  92. data/lib/cisco_node_utils/name_server.rb +1 -1
  93. data/lib/cisco_node_utils/node.rb +55 -249
  94. data/lib/cisco_node_utils/node_util.rb +5 -1
  95. data/lib/cisco_node_utils/ntp_config.rb +2 -2
  96. data/lib/cisco_node_utils/ntp_server.rb +14 -5
  97. data/lib/cisco_node_utils/overlay_global.rb +153 -0
  98. data/lib/cisco_node_utils/pim.rb +124 -0
  99. data/lib/cisco_node_utils/pim_group_list.rb +108 -0
  100. data/lib/cisco_node_utils/pim_rp_address.rb +102 -0
  101. data/lib/cisco_node_utils/platform.rb +8 -9
  102. data/lib/cisco_node_utils/portchannel_global.rb +277 -0
  103. data/lib/cisco_node_utils/radius_global.rb +9 -19
  104. data/lib/cisco_node_utils/radius_server.rb +31 -41
  105. data/lib/cisco_node_utils/radius_server_group.rb +117 -0
  106. data/lib/cisco_node_utils/router_ospf.rb +1 -1
  107. data/lib/cisco_node_utils/router_ospf_vrf.rb +14 -19
  108. data/lib/cisco_node_utils/snmp_notification_receiver.rb +158 -0
  109. data/lib/cisco_node_utils/snmpcommunity.rb +3 -5
  110. data/lib/cisco_node_utils/snmpgroup.rb +1 -1
  111. data/lib/cisco_node_utils/snmpnotification.rb +57 -0
  112. data/lib/cisco_node_utils/snmpserver.rb +8 -17
  113. data/lib/cisco_node_utils/snmpuser.rb +67 -28
  114. data/lib/cisco_node_utils/syslog_server.rb +3 -9
  115. data/lib/cisco_node_utils/syslog_settings.rb +2 -10
  116. data/lib/cisco_node_utils/tacacs_server.rb +9 -14
  117. data/lib/cisco_node_utils/tacacs_server_group.rb +145 -0
  118. data/lib/cisco_node_utils/tacacs_server_host.rb +5 -9
  119. data/lib/cisco_node_utils/vdc.rb +88 -0
  120. data/lib/cisco_node_utils/version.rb +5 -2
  121. data/lib/cisco_node_utils/vlan.rb +71 -8
  122. data/lib/cisco_node_utils/vni.rb +227 -0
  123. data/lib/cisco_node_utils/vpc.rb +377 -0
  124. data/lib/cisco_node_utils/vrf.rb +60 -9
  125. data/lib/cisco_node_utils/vrf_af.rb +191 -0
  126. data/lib/cisco_node_utils/vtp.rb +8 -6
  127. data/lib/cisco_node_utils/vxlan_vtep.rb +151 -0
  128. data/lib/cisco_node_utils/vxlan_vtep_vni.rb +234 -0
  129. data/lib/cisco_node_utils/yum.rb +1 -1
  130. data/tests/.rubocop.yml +1 -1
  131. data/tests/basetest.rb +16 -7
  132. data/tests/ciscotest.rb +55 -13
  133. data/tests/cmd_config.yaml +2 -2
  134. data/tests/platform_info.rb +3 -2
  135. data/tests/test_aaa_authentication_login.rb +219 -0
  136. data/tests/test_aaa_authentication_login_service.rb +759 -0
  137. data/tests/test_aaa_authorization_service.rb +1041 -0
  138. data/tests/test_ace.rb +160 -0
  139. data/tests/test_acl.rb +176 -0
  140. data/tests/test_bgp_af.rb +269 -13
  141. data/tests/test_bgp_neighbor.rb +38 -40
  142. data/tests/test_bgp_neighbor_af.rb +92 -32
  143. data/tests/test_command_config.rb +5 -5
  144. data/tests/test_command_reference.rb +284 -101
  145. data/tests/test_dns_domain.rb +1 -1
  146. data/tests/test_domain_name.rb +1 -1
  147. data/tests/test_evpn_vni.rb +106 -0
  148. data/tests/test_fabricpath_global.rb +243 -0
  149. data/tests/test_fabricpath_topology.rb +98 -0
  150. data/tests/test_interface.rb +292 -74
  151. data/tests/test_interface_channel_group.rb +74 -0
  152. data/tests/test_interface_ospf.rb +9 -4
  153. data/tests/test_interface_portchannel.rb +105 -0
  154. data/tests/test_interface_service_vni.rb +232 -0
  155. data/tests/test_interface_svi.rb +77 -62
  156. data/tests/test_interface_switchport.rb +17 -5
  157. data/tests/test_name_server.rb +1 -1
  158. data/tests/test_node.rb +1 -1
  159. data/tests/test_node_ext.rb +10 -20
  160. data/tests/test_ntp_config.rb +1 -1
  161. data/tests/test_ntp_server.rb +18 -6
  162. data/tests/test_overlay_global.rb +102 -0
  163. data/tests/test_pim.rb +177 -0
  164. data/tests/test_pim_group_list.rb +181 -0
  165. data/tests/test_pim_rp_address.rb +153 -0
  166. data/tests/test_platform.rb +3 -3
  167. data/tests/test_portchannel_global.rb +202 -0
  168. data/tests/test_radius_global.rb +1 -1
  169. data/tests/test_radius_server.rb +92 -57
  170. data/tests/test_radius_server_group.rb +149 -0
  171. data/tests/test_router_bgp.rb +283 -112
  172. data/tests/test_router_ospf.rb +2 -2
  173. data/tests/test_router_ospf_vrf.rb +4 -4
  174. data/tests/test_snmp_notification_receiver.rb +167 -0
  175. data/tests/test_snmpcommunity.rb +1 -1
  176. data/tests/test_snmpgroup.rb +1 -1
  177. data/tests/test_snmpnotification.rb +72 -0
  178. data/tests/test_snmpserver.rb +29 -105
  179. data/tests/test_snmpuser.rb +32 -30
  180. data/tests/test_syslog_server.rb +36 -10
  181. data/tests/test_syslog_settings.rb +1 -1
  182. data/tests/test_tacacs_server.rb +1 -1
  183. data/tests/test_tacacs_server_group.rb +405 -0
  184. data/tests/test_tacacs_server_host.rb +1 -1
  185. data/tests/test_vdc.rb +78 -0
  186. data/tests/test_vlan.rb +74 -19
  187. data/tests/test_vlan_mt_full.rb +95 -0
  188. data/tests/test_vni.rb +106 -0
  189. data/tests/test_vpc.rb +361 -0
  190. data/tests/test_vrf.rb +172 -29
  191. data/tests/test_vtp.rb +1 -1
  192. data/tests/test_vxlan_vtep.rb +214 -0
  193. data/tests/test_vxlan_vtep_vni.rb +201 -0
  194. data/tests/test_yum.rb +1 -1
  195. metadata +120 -11
  196. data/lib/cisco_node_utils/README_YAML.md +0 -325
  197. data/lib/cisco_node_utils/command_reference_common.yaml +0 -1051
  198. data/lib/cisco_node_utils/command_reference_common_bgp.yaml +0 -535
  199. data/lib/cisco_node_utils/command_reference_n3064.yaml +0 -13
  200. data/lib/cisco_node_utils/command_reference_n7k.yaml +0 -52
  201. data/lib/cisco_node_utils/command_reference_n9k.yaml +0 -26
  202. data/tests/platform_info.yaml +0 -10
@@ -0,0 +1,131 @@
1
+ # bgp_neighbor.yaml
2
+ ---
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
+ config_set: "router bgp <asnum>"
10
+ config_set_append:
11
+ - "vrf <vrf>"
12
+ - "neighbor <nbr>"
13
+
14
+ af:
15
+ config_set_append: '<state> address-family <afi> <safi>'
16
+
17
+ all_neighbors:
18
+ multiple: true
19
+ config_get_token_append: '/^neighbor (\S+)$/'
20
+
21
+ capability_negotiation:
22
+ auto_default: false
23
+ kind: boolean
24
+ config_get_token_append: '/^dont-capability-negotiate$/'
25
+ config_set_append: '<state> dont-capability-negotiate'
26
+ default_value: true
27
+
28
+ connected_check:
29
+ auto_default: false
30
+ kind: boolean
31
+ config_get_token_append: '/^disable-connected-check$/'
32
+ config_set_append: '<state> disable-connected-check'
33
+ default_value: true
34
+
35
+ description:
36
+ kind: string
37
+ config_get_token_append: '/^description (.*)/'
38
+ config_set_append: '<state> description <desc>'
39
+ default_value: ""
40
+
41
+ dynamic_capability:
42
+ kind: boolean
43
+ config_get_token_append: '/^(no )?dynamic-capability$/'
44
+ config_set_append: '<state> dynamic-capability'
45
+ default_value: true
46
+
47
+ ebgp_multihop:
48
+ auto_default: false
49
+ config_get_token_append: '/^ebgp-multihop (\d+)$/'
50
+ config_set_append: '<state> ebgp-multihop <ttl>'
51
+ default_value: false
52
+
53
+ local_as:
54
+ config_get_token_append: '/^local-as (\d*?.?\d+?)$/'
55
+ config_set_append: '<state> local-as <local_as>'
56
+ default_value: 0
57
+
58
+ log_neighbor_changes:
59
+ _exclude: [/N(5|6|7)/]
60
+ multiple: true # not actually, but we get an array of matches
61
+ auto_default: false
62
+ config_get_token_append: '/^log-neighbor-changes\s+??(\S+)?\s+??$/'
63
+ config_set_append: '<state> log-neighbor-changes <disable>'
64
+ default_value: "inherit"
65
+
66
+ low_memory_exempt:
67
+ kind: boolean
68
+ config_get_token_append: '/^low-memory exempt$/'
69
+ config_set_append: '<state> low-memory exempt'
70
+ default_value: false
71
+
72
+ maximum_peers:
73
+ kind: int
74
+ config_get_token_append: '/^maximum-peers (\d+)$/'
75
+ config_set_append: '<state> maximum-peers <num>'
76
+ default_value: 0
77
+
78
+ password:
79
+ config_get_token_append: '/^password \d+ (\S+)$/'
80
+ config_set_append: '<state> password <type> <passwd>'
81
+ default_value: ""
82
+
83
+ password_type:
84
+ kind: int
85
+ config_get_token_append: '/^password (\d+)/'
86
+ default_value: 0
87
+
88
+ remote_as:
89
+ config_get_token_append: '/^remote-as (\d*?.?\d+?)$/'
90
+ config_set_append: '<state> remote-as <remote_as>'
91
+ default_value: 0
92
+
93
+ remove_private_as:
94
+ multiple: true # not actually, but we get an array of matches
95
+ auto_default: false
96
+ config_get_token_append: '/^remove-private-as\s+??(\S+)?\s+??$/'
97
+ config_set_append: '<state> remove-private-as <option>'
98
+ default_value: "disable"
99
+
100
+ shutdown:
101
+ kind: boolean
102
+ config_get_token_append: '/^shutdown$/'
103
+ config_set_append: '<state> shutdown'
104
+ default_value: false
105
+
106
+ suppress_4_byte_as:
107
+ kind: boolean
108
+ config_get_token_append: '/^capability suppress 4-byte-as$/'
109
+ config_set_append: '<state> capability suppress 4-byte-as'
110
+ default_value: false
111
+
112
+ timers_holdtime:
113
+ default_value: 180
114
+
115
+ timers_keepalive:
116
+ default_value: 60
117
+
118
+ timers_keepalive_hold:
119
+ config_get_token_append: '/^timers (\d+) (\d+)$/'
120
+ config_set_append: '<state> timers <keepalive> <hold>'
121
+
122
+ transport_passive_only:
123
+ kind: boolean
124
+ config_get_token_append: '/^transport connection-mode passive$/'
125
+ config_set_append: '<state> transport connection-mode passive'
126
+ default_value: false
127
+
128
+ update_source:
129
+ config_get_token_append: '/^update-source (\S+)$/'
130
+ config_set_append: '<state> update-source <interface>'
131
+ default_value: ""
@@ -0,0 +1,179 @@
1
+ # bgp_neighbor_af.yaml
2
+ ---
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>'
13
+ - 'neighbor <nbr>'
14
+ - 'address-family <afi> <safi>'
15
+
16
+ additional_paths_receive:
17
+ auto_default: false
18
+ config_get_token_append: '/^capability additional-paths receive(?: disable)?/'
19
+ config_set_append: '<state> capability additional-paths receive <disable>'
20
+ default_value: 'inherit'
21
+
22
+ additional_paths_send:
23
+ auto_default: false
24
+ config_get_token_append: '/^capability additional-paths send(?: disable)?/'
25
+ config_set_append: '<state> capability additional-paths send <disable>'
26
+ default_value: 'inherit'
27
+
28
+ 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>'
31
+ default_value: ''
32
+
33
+ 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
+ default_value: ''
37
+
38
+ all_afs:
39
+ multiple: true
40
+ config_get_token_append: '/^address-family (\S+) (\S+)$/'
41
+
42
+ allowas_in:
43
+ auto_default: false
44
+ config_get_token_append: '/^allowas-in(?: \d+)?/'
45
+ config_set_append: '<state> allowas-in <max>'
46
+ default_value: false
47
+
48
+ allowas_in_max:
49
+ default_value: 3
50
+
51
+ as_override:
52
+ kind: boolean
53
+ config_get_token_append: '/^as-override$/'
54
+ config_set_append: '<state> as-override'
55
+ default_value: false
56
+
57
+ default_originate:
58
+ config_get_token_append: '/^default-originate(?: route-map .*)?/'
59
+ config_set_append: '<state> default-originate <map>'
60
+ default_value: false
61
+
62
+ default_originate_route_map:
63
+ default_value: ~
64
+
65
+ disable_peer_as_check:
66
+ kind: boolean
67
+ config_get_token_append: '/^disable-peer-as-check$/'
68
+ config_set_append: '<state> disable-peer-as-check'
69
+ default_value: false
70
+
71
+ filter_list_in:
72
+ kind: string
73
+ config_get_token_append: '/^filter-list (\S+) in$/'
74
+ config_set_append: '<state> filter-list <str> in'
75
+ default_value: ''
76
+
77
+ filter_list_out:
78
+ kind: string
79
+ config_get_token_append: '/^filter-list (\S+) out$/'
80
+ config_set_append: '<state> filter-list <str> out'
81
+ default_value: ''
82
+
83
+ max_prefix:
84
+ config_get_token_append: '/^maximum-prefix .*$/'
85
+ config_set_append: '<state> maximum-prefix <limit> <threshold> <opt>'
86
+
87
+ max_prefix_interval:
88
+ default_value: ~
89
+
90
+ max_prefix_limit:
91
+ default_value: ~
92
+
93
+ max_prefix_threshold:
94
+ default_value: ~
95
+
96
+ max_prefix_warning:
97
+ default_value: ~
98
+
99
+ next_hop_self:
100
+ kind: boolean
101
+ config_get_token_append: '/^next-hop-self$/'
102
+ config_set_append: '<state> next-hop-self'
103
+ default_value: false
104
+
105
+ next_hop_third_party:
106
+ kind: boolean
107
+ config_get_token_append: '/^(no ?)next-hop-third-party$/'
108
+ config_set_append: '<state> next-hop-third-party'
109
+ default_value: true
110
+
111
+ prefix_list_in:
112
+ kind: string
113
+ config_get_token_append: '/^prefix-list (\S+) in$/'
114
+ config_set_append: '<state> prefix-list <str> in'
115
+ default_value: ''
116
+
117
+ prefix_list_out:
118
+ kind: string
119
+ config_get_token_append: '/^prefix-list (\S+) out$/'
120
+ config_set_append: '<state> prefix-list <str> out'
121
+ default_value: ''
122
+
123
+ route_map_in:
124
+ kind: string
125
+ config_get_token_append: '/^route-map (\S+) in$/'
126
+ config_set_append: '<state> route-map <str> in'
127
+ default_value: ''
128
+
129
+ route_map_out:
130
+ kind: string
131
+ config_get_token_append: '/^route-map (\S+) out$/'
132
+ config_set_append: '<state> route-map <str> out'
133
+ default_value: ''
134
+
135
+ route_reflector_client:
136
+ kind: boolean
137
+ config_get_token_append: '/^route-reflector-client$/'
138
+ config_set_append: '<state> route-reflector-client'
139
+ default_value: false
140
+
141
+ send_community:
142
+ auto_default: false
143
+ config_get_token_append: '/^send-community(?: .*)?/'
144
+ config_set_append: '<state> send-community <attr>'
145
+ default_value: 'none'
146
+
147
+ soft_reconfiguration_in:
148
+ auto_default: false
149
+ default_value: 'inherit'
150
+ /(N3K|N9K)/:
151
+ config_get_token_append: '/^soft-reconfiguration inbound(?: always)?/'
152
+ config_set_append: '<state> soft-reconfiguration inbound <always>'
153
+ else:
154
+ config_get_token_append: '/^soft-reconfiguration inbound/'
155
+ config_set_append: '<state> soft-reconfiguration inbound'
156
+
157
+ soo:
158
+ kind: string
159
+ config_get_token_append: '/^soo (.*)$/'
160
+ config_set_append: '<state> soo <str>'
161
+ default_value: ''
162
+
163
+ suppress_inactive:
164
+ kind: boolean
165
+ config_get_token_append: '/^suppress-inactive$/'
166
+ config_set_append: '<state> suppress-inactive'
167
+ default_value: false
168
+
169
+ unsuppress_map:
170
+ kind: string
171
+ config_get_token_append: '/^unsuppress-map (.*)$/'
172
+ config_set_append: '<state> unsuppress-map <str>'
173
+ default_value: ''
174
+
175
+ weight:
176
+ kind: int
177
+ config_get_token_append: '/^weight (\d+)$/'
178
+ config_set_append: '<state> weight <int>'
179
+ default_value: false
@@ -0,0 +1,34 @@
1
+ # dnsclient
2
+ ---
3
+ _template:
4
+ config_get: "show running-config all"
5
+
6
+ domain_list:
7
+ multiple: true
8
+ config_get_token: '/^ip domain-list (\S+)$/'
9
+ config_set: '<state> ip domain-list <name>'
10
+ default_value: []
11
+
12
+ domain_list_vrf:
13
+ multiple: true
14
+ config_get_token: ['/vrf context <vrf>/', '/ip domain-list (\S+)/']
15
+ config_set: ['vrf context <vrf>', '<state> ip domain-list <name>']
16
+ default_value: []
17
+
18
+ domain_name:
19
+ cli_nexus:
20
+ config_set: '<state> ip domain-name <name>'
21
+ config_get_token: '/^ip domain-name (\S+)$/'
22
+ default_value: ''
23
+
24
+ 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>']
27
+ default_value: ''
28
+
29
+ name_server:
30
+ multiple: true
31
+ 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>'
@@ -0,0 +1,42 @@
1
+ # evpn_vni.yaml
2
+ ---
3
+ _template:
4
+ config_get: "show running bgp all"
5
+ config_get_token: '/^evpn$/'
6
+ config_get_token_append:
7
+ - '/^vni <vni> l2$/'
8
+ config_set: 'evpn'
9
+ config_set_append:
10
+ - "vni <vni> l2"
11
+
12
+ evpn:
13
+ config_get_token: "/^evpn$/"
14
+ config_set: "<state> evpn"
15
+
16
+ route_distinguisher:
17
+ config_get_token_append: '/^rd (\S+)$/'
18
+ config_set_append: "<state> rd <rd>"
19
+ default_value: ""
20
+
21
+ route_target_both:
22
+ config_get_token_append: '/^route-target both (\S+)$/'
23
+ config_set_append: "<state> route-target both <community>"
24
+ multiple: true
25
+ default_value: []
26
+
27
+ route_target_export:
28
+ config_get_token_append: '/^route-target export (\S+)$/'
29
+ config_set_append: "<state> route-target export <community>"
30
+ multiple: true
31
+ default_value: []
32
+
33
+ route_target_import:
34
+ config_get_token_append: '/^route-target import (\S+)$/'
35
+ config_set_append: "<state> route-target import <community>"
36
+ multiple: true
37
+ default_value: []
38
+
39
+ vni:
40
+ multiple: true
41
+ config_get_token_append: '/^vni\s+(\S+)\s+l2$/'
42
+ config_set: ["evpn", "<state> vni <vni> l2", "end"]
@@ -0,0 +1,172 @@
1
+ # fabricpath
2
+ ---
3
+ # Fabricpath feature is not available on N3K and N9K
4
+ _exclude: [/N3/, /N9K/]
5
+
6
+ aggregate_multicast_routes:
7
+ _exclude: [/N5K/, /N6K/]
8
+ kind: boolean
9
+ config_get: "show run fabricpath all"
10
+ config_get_token: '/^fabricpath multicast aggregate\-routes\s*$/'
11
+ config_set: "<state> fabricpath multicast aggregate-routes"
12
+ default_value: false
13
+
14
+ allocate_delay:
15
+ kind: int
16
+ config_get: "show run fabricpath all"
17
+ config_get_token: '/^fabricpath timers allocate\-delay (\d+)/'
18
+ config_set: "<state> fabricpath timers allocate-delay <delay>"
19
+ default_value: 10
20
+
21
+ auto_switch_id:
22
+ kind: int
23
+ config_get: "show fabricpath switch-id"
24
+ config_get_token: '/^\*\s+(\d+).*No\s*$/'
25
+
26
+ feature:
27
+ config_get: "show feature-set"
28
+ config_get_token: '/^fabricpath[\s]+[\d]+[\s]+(\S+)/'
29
+ config_set: "<state> feature-set fabricpath"
30
+ default_value: disabled
31
+
32
+ feature_install:
33
+ config_set: "<state> install feature-set fabricpath"
34
+
35
+ graceful_merge:
36
+ auto_default: false
37
+ kind: boolean
38
+ config_get: "show run fabricpath all"
39
+ config_get_token: '/^fabricpath graceful\-merge disable\s*$/'
40
+ config_set: "<state> fabricpath graceful-merge disable"
41
+ default_value: true
42
+
43
+ linkup_delay:
44
+ kind: int
45
+ config_get: "show run fabricpath all"
46
+ config_get_token: '/^fabricpath timers linkup-delay (\d+)\s*$/'
47
+ config_set: "<state> fabricpath timers linkup-delay <delay>"
48
+ default_value: 10
49
+
50
+ linkup_delay_always:
51
+ _exclude: [/N5K/, /N6K/]
52
+ kind: boolean
53
+ config_get: "show run fabricpath all"
54
+ config_get_token: '/^fabricpath timers linkup-delay always\s*$/'
55
+ config_set: "<state> fabricpath timers linkup-delay always"
56
+ default_value: false
57
+
58
+ linkup_delay_enable:
59
+ _exclude: [/N5K/, /N6K/]
60
+ auto_default: false
61
+ kind: boolean
62
+ config_get: "show run fabricpath all"
63
+ config_get_token: '/^fabricpath linkup-delay\s*$/'
64
+ config_set: "<state> fabricpath linkup-delay"
65
+ default_value: true
66
+
67
+ loadbalance_algorithm:
68
+ kind: string
69
+ config_get: "show run fabricpath all"
70
+ config_get_token: '/^fabricpath load-balance (\S+)\s*$/'
71
+ config_set: "<state> fabricpath load-balance <algo>"
72
+ /N5K/:
73
+ default_value: "source-destination"
74
+ else:
75
+ default_value: "symmetric"
76
+
77
+ loadbalance_multicast_has_vlan:
78
+ _exclude: [/N5K/, /N6K/]
79
+ kind: boolean
80
+ auto_default: false
81
+ config_get: "show fabricpath load-balance | begin Ftag"
82
+ config_get_token: '/^Use VLAN: TRUE\s*$/'
83
+ default_value: true
84
+
85
+ loadbalance_multicast_reset:
86
+ _exclude: [/N5K/, /N6K/]
87
+ config_set: "no fabricpath load-balance multicast"
88
+
89
+ loadbalance_multicast_rotate:
90
+ _exclude: [/N5K/, /N6K/]
91
+ kind: int
92
+ config_get: "show fabricpath load-balance | begin Ftag"
93
+ config_get_token: '/^Rotate amount: (\d+)/'
94
+ default_value: 1
95
+
96
+ loadbalance_multicast_set:
97
+ _exclude: [/N5K/, /N6K/]
98
+ config_set: 'fabricpath load-balance multicast <rotate_amt> <inc_vlan>'
99
+
100
+ loadbalance_unicast_has_vlan:
101
+ kind: boolean
102
+ auto_default: false
103
+ config_get: "show fabricpath load-balance | begin ECMP next 4"
104
+ config_get_token: '/^Use VLAN: TRUE\s*$/'
105
+ config_set: "<state> fabricpath load-balance unicast include-vlan"
106
+ default_value: true
107
+
108
+ loadbalance_unicast_layer:
109
+ kind: string
110
+ config_get: "show fabricpath load-balance | begin ECMP next 4"
111
+ config_get_token: '/^L3\/L4 Preference: (\S+)/'
112
+ config_set: "<state> fabricpath load-balance unicast <pref>"
113
+ default_value: "mixed"
114
+
115
+ loadbalance_unicast_reset:
116
+ config_set: "no fabricpath load-balance unicast"
117
+
118
+ loadbalance_unicast_rotate:
119
+ _exclude: [/N5K/, /N6K/]
120
+ kind: int
121
+ config_get: "show fabricpath load-balance | begin ECMP next 4"
122
+ config_get_token: '/^Rotate amount: (\d+)/'
123
+ default_value: 1
124
+
125
+ loadbalance_unicast_set:
126
+ config_set: 'fabricpath load-balance unicast <pref> <rotate_amt> <inc_vlan>'
127
+
128
+ loadbalance_unicast_support:
129
+ kind: string
130
+ /N5K/:
131
+ default_only: "split"
132
+ /N6K/:
133
+ default_only: "split"
134
+ else:
135
+ default_only: "combined"
136
+
137
+ mode:
138
+ kind: string
139
+ config_get: "show run fabricpath all"
140
+ config_get_token: '/^fabricpath mode (\S+)/'
141
+ config_set: "<state> fabricpath mode transit"
142
+ default_value: "normal"
143
+
144
+ switch_id:
145
+ kind: int
146
+ config_get: "show run fabricpath all"
147
+ config_get_token: '/^fabricpath switch-id (\d+)\s*$/'
148
+ config_set: "fabricpath switch-id <swid>"
149
+
150
+ transition_delay:
151
+ kind: int
152
+ config_get: "show run fabricpath all"
153
+ config_get_token: '/^fabricpath timers transition\-delay (\d+)\s*$/'
154
+ config_set: "<state> fabricpath timers transition-delay <delay>"
155
+ default_value: 10
156
+
157
+ ttl_multicast:
158
+ _exclude: [/N5K/, /N6K/]
159
+ kind: int
160
+ config_get: "show run fabricpath all"
161
+ config_get_token: '/^fabricpath ttl multicast (\d+)\s*$/'
162
+ config_set: "<state> fabricpath ttl multicast <ttl>"
163
+ default_value: 32
164
+
165
+ ttl_unicast:
166
+ _exclude: [/N5K/, /N6K/]
167
+ kind: int
168
+ config_get: "show run fabricpath all"
169
+ config_get_token: '/^fabricpath ttl unicast (\d+)\s*$/'
170
+ config_set: "<state> fabricpath ttl unicast <ttl>"
171
+ default_value: 32
172
+