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
@@ -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
+