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,33 @@
1
+ # tacacs_server_group
2
+ ---
3
+ deadtime:
4
+ config_get: "show run tacacs all"
5
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^deadtime (\d+)/']
6
+ config_set: ["aaa group server tacacs <name>", "<state> deadtime <deadtime>"]
7
+ default_value: 0
8
+
9
+ group:
10
+ multiple: true
11
+ config_get: "show running-config tacacs all"
12
+ config_get_token: '/^aaa group server tacacs\+ (\S+)/'
13
+ config_set: '<state> aaa group server tacacs <name>'
14
+ default_value: []
15
+
16
+ servers:
17
+ multiple: true
18
+ config_get: "show running-config tacacs all"
19
+ config_get_token: ['/^aaa group server tacacs\+ %s/i', '/^server (\S+)/']
20
+ config_set: ['aaa group server tacacs <name>', '<state> server <server>']
21
+ default_value: []
22
+
23
+ source_interface:
24
+ config_get: "show run tacacs all"
25
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^source-interface (\S+)/']
26
+ config_set: ["aaa group server tacacs <name>", "<state> source-interface <interface>"]
27
+ default_value: ""
28
+
29
+ vrf:
30
+ config_get: "show run tacacs all"
31
+ config_get_token: ['/^aaa group server tacacs\+ %s/', '/^use-vrf (\S+)/']
32
+ config_set: ["aaa group server tacacs <name>", "<state> use-vrf <vrf>"]
33
+ default_value: "default"
@@ -0,0 +1,35 @@
1
+ # tacacs_server_host
2
+ ---
3
+ encryption:
4
+ config_set: "%s tacacs-server host %s key %s %s"
5
+
6
+ encryption_password:
7
+ config_get: "show run tacacs all"
8
+ config_get_token: '/^tacacs-server host %s key \d+\s+(\S+)/'
9
+ default_value: ""
10
+
11
+ encryption_type:
12
+ config_get: "show run tacacs all"
13
+ config_get_token: '/^tacacs-server host %s key (\d+)/'
14
+
15
+ host:
16
+ config_set: "%s tacacs-server host %s"
17
+
18
+ hosts:
19
+ multiple: true
20
+ config_get: "show run tacacs all"
21
+ config_get_token: '/^tacacs-server host (\S+)/'
22
+
23
+ port:
24
+ kind: int
25
+ config_get: "show run tacacs all"
26
+ config_get_token: '/^tacacs-server host %s .*port (\d+)/'
27
+ config_set: "tacacs-server host %s port %s"
28
+ default_value: 49
29
+
30
+ timeout:
31
+ kind: int
32
+ config_get: "show run tacacs all"
33
+ config_get_token: '/^tacacs-server host %s .*timeout (\d+)/'
34
+ config_set: "%s tacacs-server host %s timeout %s"
35
+ default_value: 0
@@ -0,0 +1,38 @@
1
+ # vdc
2
+ #
3
+ # The current simplified implementation assumes no admin-vdc and that the
4
+ # default vdc name uses id 1. Full multi-vdc support is TBD.
5
+ ---
6
+ _exclude: [/N(3|5|6|9)/]
7
+
8
+ _template:
9
+ config_get: 'show run vdc all'
10
+ config_get_token: '/^vdc <vdc>/'
11
+ config_set: 'terminal dont-ask ; vdc <vdc>'
12
+
13
+ all_vdcs:
14
+ multiple:
15
+ config_get: 'show run vdc all'
16
+ config_get_token: '/^vdc (\S+) id/'
17
+
18
+ allocate_interface_unallocated:
19
+ kind: boolean
20
+ config_set_append: 'allocate interface unallocated-interfaces'
21
+
22
+ default_vdc_name:
23
+ # Name of the default vdc. Assumes no admin-vdc.
24
+ config_get_token: '/^vdc (\S+) id 1$/' # Assumes id 1 for default vdc
25
+
26
+ limit_resource_module_type:
27
+ config_get_token_append: '/^limit-resource module-type (.*)/'
28
+ config_set_append: '<state> limit-resource module-type <mods>'
29
+ default_value: ''
30
+
31
+ vdc_support:
32
+ # This is a only used for determining support for VDCs
33
+ kind: boolean
34
+ /N7/:
35
+ default_only: true
36
+ else:
37
+ # this feature is always off on these platforms and cannot be changed
38
+ default_only: false
@@ -0,0 +1,6 @@
1
+ # virtual_service
2
+ ---
3
+ services:
4
+ multiple: true
5
+ config_get: 'show virtual-service detail'
6
+ config_get_token: ["TABLE_detail", "ROW_detail"]
@@ -0,0 +1,56 @@
1
+ # vlan
2
+ ---
3
+ all_vlans:
4
+ multiple: true
5
+ config_get: "show vlan brief"
6
+ config_get_token: '/^(\d+)\s/'
7
+
8
+ create:
9
+ config_set: ["vlan %s" , "end"]
10
+
11
+ destroy:
12
+ config_set: "no vlan %s"
13
+
14
+ mapped_vni:
15
+ /N(3|9)/:
16
+ kind: int
17
+ config_get: 'show running vlan'
18
+ config_get_token: ['/^vlan <vlan>$/', '/^vn-segment (\d+)$/']
19
+ # In the cli 'vn-segment' config is not applied untill the 'end'
20
+ # statement is issued.
21
+ config_set: ['vlan <vlan>', '<state> vn-segment <vni> ; end']
22
+ default_value: ''
23
+
24
+ mode:
25
+ _exclude:
26
+ - /N(3|9)/
27
+ kind: string
28
+ config_get: "show vlan"
29
+ # TBD: 'show vlan' is problematic and should be converted to use show run
30
+ # regex workaround: N7 cli bug displays 'trnet' instead of 'enet'
31
+ config_get_token: '/^%d\s+.+net\s+(\S+)/'
32
+ config_set: ["vlan %d" , "%s mode %s", "end"]
33
+ default_value: "ce"
34
+
35
+ name:
36
+ config_get: "show vlan brief"
37
+ config_get_token: '/^%d\s+(\S+)\s/'
38
+ config_set: ["vlan %d", "%s name %s", "end"]
39
+ /N9K/:
40
+ test_config_result:
41
+ 32: "Long VLAN name knob is not enabled"
42
+ else:
43
+ test_config_result:
44
+ 32: "String exceeded max length of (32)"
45
+
46
+ shutdown:
47
+ config_get: "show vlan brief"
48
+ config_get_token: '/^%d\s+\S+\s+(\S+)\s/'
49
+ config_set: ["vlan %d", "%s shutdown", "end"]
50
+ default_value: false
51
+
52
+ state:
53
+ config_get: "show vlan brief"
54
+ config_get_token: '/^%d\s+\S+\s+(\S+)\s/'
55
+ config_set: ["vlan %d", "%s state %s", "end"]
56
+ default_value: "active"
@@ -0,0 +1,76 @@
1
+ # vni
2
+ ---
3
+ _exclude: [/N(5|6)/]
4
+ all_vnis:
5
+ multiple:
6
+ /N7/:
7
+ # MT-full only
8
+ config_get: 'show vni'
9
+ config_get_token: '/^(\d+)\s/'
10
+ /N(3|9)/:
11
+ # MT-lite only
12
+ config_get: 'show running vlan'
13
+ config_get_token: '/vn-segment (\d+)/'
14
+
15
+ bridge_domain:
16
+ # MT-full only
17
+ config_get: 'show vni'
18
+ config_get_token: [ '/^%d\s+\S+\s+(\d+)/' ]
19
+ config_set: ['bridge-domain <domain>', '<state> member vni <vni>', 'end']
20
+ default_value: ~
21
+
22
+ bridge_domain_activate:
23
+ config_set: ['<state> system bridge-domain add <domain>', 'end']
24
+
25
+ create:
26
+ config_set: ['vni <vni>' , 'end']
27
+
28
+ destroy:
29
+ /N7/:
30
+ # MT-full only
31
+ config_set: 'no vni <vni>'
32
+ /N(3|9)/:
33
+ # MT-lite only
34
+ config_set: ['vlan <vlan>', 'no vn-segment <vni> ; end']
35
+
36
+ encap_dot1q:
37
+ config_set: ["encapsulation profile vni %s", "%s dot1q %s vni %s", "end"]
38
+ default_value: ~
39
+
40
+ feature:
41
+ config_get: 'show running | i ^feature'
42
+ /N7/:
43
+ # MT-Full only
44
+ config_get_token: '/^feature vni$/'
45
+ config_set: 'feature vni'
46
+ /N(3|9)/:
47
+ # MT-lite only
48
+ config_get_token: '/^feature vn-segment-vlan-based$/'
49
+ config_set: 'feature vn-segment-vlan-based'
50
+
51
+ mt_full_support:
52
+ # This is only used for determining support for Multi-Tenancy Full
53
+ kind: boolean
54
+ /N7/:
55
+ default_only: true
56
+ else:
57
+ # this feature is always off on these platforms and cannot be changed
58
+ default_only: false
59
+
60
+ mt_lite_support:
61
+ # This is only used for determining support for Multi-Tenancy Lite
62
+ kind: boolean
63
+ /N(3|9)/:
64
+ default_only: true
65
+ else:
66
+ # this feature is always off on these platforms and cannot be changed
67
+ default_only: false
68
+
69
+ shutdown:
70
+ # MT-Full only
71
+ /N7/:
72
+ kind: boolean
73
+ config_get: 'show vni'
74
+ config_get_token: '/^<vni> +Down/'
75
+ config_set: ['vni <vni>', '<state> shutdown', 'end']
76
+ default_value: false
@@ -0,0 +1,197 @@
1
+ # vpc
2
+ ---
3
+ _template:
4
+ config_get: 'show running-config vpc all'
5
+ config_get_token: '/^vpc domain\s*(\d+)$/'
6
+ config_set: "vpc domain <domain>"
7
+
8
+ auto_recovery:
9
+ kind: boolean
10
+ _exclude: [/N5K/, /N6K/]
11
+ auto_default: false
12
+ config_get_token_append: '/^auto\-recovery/'
13
+ config_set_append: "<state> auto-recovery"
14
+ /(N3K|N9K)/:
15
+ default_value: false
16
+ else:
17
+ default_value: true
18
+
19
+ auto_recovery_reload_delay:
20
+ kind: int
21
+ config_get_token_append: '/auto\-recovery reload\-delay (\d+)/'
22
+ config_set_append: "auto-recovery reload-delay <delay>"
23
+ default_value: 240
24
+
25
+ delay_restore:
26
+ kind: int
27
+ config_get_token_append: '/^delay restore\s+(\d+)/'
28
+ config_set_append: "delay restore <delay>"
29
+ default_value: 30
30
+
31
+ delay_restore_interface_vlan:
32
+ kind: int
33
+ config_get_token_append: '/^delay restore interface\-vlan\s+(\d+)/'
34
+ config_set_append: "delay restore interface-vlan <delay>"
35
+ default_value: 10
36
+
37
+ domain:
38
+ auto_default: false
39
+ config_get: "show running-config vpc all"
40
+ config_get_token: '/^vpc domain\s+(\d+)/'
41
+ config_set: "<state> vpc domain <domain>"
42
+ default_value: ''
43
+
44
+ dual_active_exclude_interface_vlan_bridge_domain:
45
+ kind: string
46
+ /N7/:
47
+ config_get_token_append: '/^dual\-active exclude interface\-vlan\-bridge\-domain\s+(\S+)/'
48
+ config_set_append: "<state> dual-active exclude interface-vlan-bridge-domain <range>"
49
+ else:
50
+ config_get_token_append: '/^dual\-active exclude interface\-vlan\s+(\S+)/'
51
+ config_set_append: "<state> dual-active exclude interface-vlan <range>"
52
+ default_value: 'none'
53
+
54
+ #vPC+ CLIs
55
+ fabricpath_multicast_load_balance:
56
+ kind: boolean
57
+ config_get_token_append: '/^fabricpath multicast load-balance'
58
+ config_set_append: "<state> fabricpath multicast load-balance"
59
+ default_value: false
60
+
61
+ fabricpath_switch_id:
62
+ kind: int
63
+ config_get_token_append: '/^fabricpath switch\-id\s+(\d+)/'
64
+ config_set_append: "<state> fabricpath switch-id <swid>"
65
+ default_value: false
66
+
67
+ #END vPC+ CLIs
68
+
69
+ feature:
70
+ kind: boolean
71
+ config_get: "show feature | section vpc"
72
+ config_get_token: '/^vpc\s+\d+\s+enabled\s*$/'
73
+ config_set: ["terminal dont-ask", "<state> feature vpc"]
74
+ default_value: false
75
+
76
+ graceful_consistency_check:
77
+ auto_default: false
78
+ kind: boolean
79
+ config_get_token_append: '/^graceful consistency\-check/'
80
+ config_set_append: "<state> graceful consistency-check"
81
+ default_value: true
82
+
83
+ layer3_peer_routing:
84
+ kind: boolean
85
+ _exclude: [/N3K/, /N5K/, /N9K/]
86
+ config_get_token_append: '/^layer3 peer-router$/'
87
+ config_set_append: "<state> layer3 peer-router"
88
+ default_value: false
89
+
90
+ peer_gateway:
91
+ kind: boolean
92
+ config_get_token_append: '/^peer\-gateway/'
93
+ config_set_append: ["terminal dont-ask", "<state> peer-gateway"]
94
+ default_value: false
95
+
96
+ # Exclude everyone for now till the BD command is fully supported
97
+ peer_gateway_exclude_bridge_domain:
98
+ kind: string
99
+ _exclude: [/N3K/, /N5K/, /N6K/, /N7/, /N9K/]
100
+ config_get_token_append: '/^peer\-gateway exclude bridge\-domain\s+(\S+)/'
101
+ config_set_append: ["terminal dont-ask", "peer-gateway exclude-bridge-domain <range>"]
102
+ default_value: ''
103
+
104
+ peer_gateway_exclude_vlan:
105
+ _exclude: [/N3K/, /N9K/]
106
+ kind: string
107
+ config_get_token_append: '/^peer\-gateway exclude-vlan\s(\S+)/'
108
+ config_set_append: ["terminal dont-ask", "peer-gateway exclude-vlan <range>"]
109
+ default_value: ''
110
+
111
+ # Peer-keep-alive
112
+ peer_keepalive_dest:
113
+ config_get_token_append: '/^peer\-keepalive destination (\S+)/'
114
+ default_value: ''
115
+
116
+ peer_keepalive_hold_timeout:
117
+ kind: int
118
+ config_get_token_append: '/^peer\-keepalive .*hold\-timeout (\S+)/'
119
+ default_value: 3
120
+
121
+ peer_keepalive_interval:
122
+ kind: int
123
+ config_get_token_append: '/^peer\-keepalive .*interval (\S+)/'
124
+ default_value: 1000
125
+
126
+ peer_keepalive_precedence:
127
+ kind: int
128
+ config_get_token_append: '/^peer\-keepalive .*precedence (\S+)/'
129
+ default_value: 6
130
+
131
+ peer_keepalive_set:
132
+ config_set_append: "peer-keepalive destination <dest> source <src> udp-port <port_num> vrf <vrf> interval <interval> timeout <timeout> precedence <precedence> hold-timeout <hold_timeout>"
133
+
134
+ peer_keepalive_src:
135
+ config_get_token_append: '/^peer\-keepalive .*source (\S+)/'
136
+ default_value: ''
137
+
138
+ peer_keepalive_timeout:
139
+ kind: int
140
+ config_get_token_append: '/^peer\-keepalive .* timeout (\S+)/'
141
+ default_value: 5
142
+
143
+ peer_keepalive_udp_port:
144
+ kind: int
145
+ config_get_token_append: '/^peer\-keepalive .*udp\-port (\S+)/'
146
+ default_value: 3200
147
+
148
+ peer_keepalive_vrf:
149
+ config_get_token_append: '/^peer\-keepalive .*vrf (\S+)/'
150
+ default_value: 'management'
151
+
152
+ port_channel_limit:
153
+ _exclude: [/N5K/, /N6K/, /N9K/]
154
+ kind: boolean
155
+ config_get_token_append: '/^port\-channel limit/'
156
+ config_set_append: "<state> port-channel limit"
157
+
158
+ role_priority:
159
+ kind: int
160
+ config_get_token_append: '/^role priority\s+(\d+)/'
161
+ config_set_append: "role priority <priority>"
162
+ default_value: 32667
163
+
164
+ self_isolation:
165
+ kind: boolean
166
+ _exclude: [/N5K/, /N6K/, /N9K/]
167
+ config_get_token_append: '/^self\-isolation/'
168
+ config_set_append: "<state> self-isolation"
169
+ default_value: false
170
+
171
+ shutdown:
172
+ kind: boolean
173
+ _exclude: [/N3K/, /N9K/]
174
+ config_get_token_append: '/^shutdown/'
175
+ config_set_append: "<state> shutdown"
176
+ default_value: false
177
+
178
+ system_mac:
179
+ kind: string
180
+ config_get_token_append: '/^system\-mac (\S+)$/'
181
+ config_set_append: "<state> system-mac <mac_addr>"
182
+ default_value: ''
183
+
184
+ system_priority:
185
+ kind: int
186
+ config_get_token_append: '/^system\-priority\s+(\d+)/'
187
+ config_set_append: "system-priority <priority>"
188
+ default_value: 32667
189
+
190
+ # Exclude everyone for now till the track command is fully supported
191
+ track:
192
+ kind: int
193
+ _exclude: [/N3K/, /N5K/, /N6K/, /N7/, /N9K/]
194
+ config_get_token_append: '/^track\s+(\d+)/'
195
+ config_set_append: "<state> track <val>"
196
+ default_value: 0
197
+