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,35 @@
1
+ # fabricpath_topology
2
+ ---
3
+ # Fabricpath feature is not available on N3K and N9K
4
+ _exclude: [/N3/, /N9K/]
5
+
6
+ all_topos:
7
+ multiple:
8
+ config_get: "show fabricpath topology"
9
+ config_get_token: '/^\S+[\s]+(\d+)[\s]+/'
10
+
11
+ create:
12
+ config_set: ["fabricpath topology <topo>" , "end"]
13
+
14
+ description:
15
+ kind: string
16
+ config_get: "show fabricpath topology"
17
+ config_get_token: '/^(\S+)[\s]+%d+[\s]+\S+/'
18
+ config_set: ["fabricpath topology <topo>" , "<state> description <name>", "end"]
19
+ default_value: ""
20
+
21
+ destroy:
22
+ config_set: "no fabricpath topology <topo>"
23
+
24
+ member_vlans:
25
+ kind: string
26
+ config_get: "show fabricpath topology vlan"
27
+ config_get_token: '/^\S+[\s]+%d+[\s]+(\S+)/'
28
+ config_set: ["fabricpath topology <topo>" , "<state> member vlan <vlan_range>", "end"]
29
+ default_value: "--"
30
+
31
+ state:
32
+ kind: string
33
+ config_get: "show fabricpath topology"
34
+ config_get_token: '/^\S+[\s]+%d+[\s]+(\S+)/'
35
+ default_value: "up"
@@ -0,0 +1,42 @@
1
+ # feature
2
+ ---
3
+ bgp:
4
+ kind: boolean
5
+ config_get: "show running | i feature"
6
+ config_get_token: '/^feature bgp$/'
7
+ config_set: "feature bgp"
8
+
9
+ fabric:
10
+ _exclude: [/N(3|9)/]
11
+ config_get: "show feature-set"
12
+ config_get_token: '/^fabric[\s\d]+(\w+)/'
13
+ config_set: "<state> feature-set fabric"
14
+
15
+ fabric_forwarding:
16
+ _exclude: [/N3/]
17
+ config_get: "show running | i ^feature"
18
+ config_get_token: '/^feature fabric forwarding$/'
19
+ config_set: "feature fabric forwarding"
20
+
21
+ nv_overlay:
22
+ _exclude: [/N(3|5|6)/]
23
+ kind: boolean
24
+ config_get: 'show running nv overlay'
25
+ config_get_token: '/^feature nv overlay$/'
26
+ config_set: "feature nv overlay"
27
+
28
+ nv_overlay_evpn:
29
+ _exclude: [/N3/]
30
+ kind: boolean
31
+ config_get: "show running | section nv"
32
+ config_get_token: '/^nv overlay evpn$/'
33
+ config_set: "nv overlay evpn"
34
+
35
+ vn_segment_vlan_based:
36
+ # MT-lite only
37
+ /N(3|9)/:
38
+ kind: boolean
39
+ config_get: 'show running section feature'
40
+ config_get_token: '/^feature vn-segment-vlan-based$/'
41
+ config_set: 'feature vn-segment-vlan-based'
42
+ default_value: false
@@ -0,0 +1,9 @@
1
+ # fex
2
+ ---
3
+ feature:
4
+ config_get: "show feature-set"
5
+ config_get_token: '/^fex[\s\d]+(\w+)/'
6
+ config_set: "%s feature-set fex"
7
+
8
+ feature_install:
9
+ config_set: "%s install feature-set fex"
@@ -0,0 +1,7 @@
1
+ # images
2
+ ---
3
+ packages:
4
+ multiple: true
5
+ config_get: 'show install patches'
6
+ # Package state should always be some variant of Active or Inactive
7
+ config_get_token: '/^(\S+)\s+(\S*[aA]ctive.*)\s*$/'
@@ -0,0 +1,339 @@
1
+ # interface
2
+ ---
3
+ _template:
4
+ config_set: ["interface %s"]
5
+ config_get_token: '/^interface %s$/i'
6
+ cli_nexus:
7
+ config_get: "show running interface all"
8
+
9
+ access_vlan:
10
+ config_get_token_append: '/^switchport access vlan (.*)$/'
11
+ config_set_append: "switchport access vlan %s"
12
+ kind: int
13
+ default_value: 1
14
+
15
+ admin_state_ethernet_noswitchport_shutdown:
16
+ # TODO: is this actually used?
17
+ cli_nexus:
18
+ /N7/:
19
+ default_value: "shutdown"
20
+
21
+ all_interfaces:
22
+ multiple:
23
+ config_get_token: '/^interface (.*)/'
24
+
25
+ create:
26
+ config_set: "interface %s"
27
+
28
+ description:
29
+ kind: string
30
+ config_get_token_append: '/^description (.*)/'
31
+ config_set_append: "%s description %s"
32
+ default_value: ""
33
+
34
+ destroy:
35
+ config_set: "no interface %s"
36
+
37
+ duplex:
38
+ kind: string
39
+ config_get_token_append: '/^duplex (.*)$/'
40
+ config_set_append: "duplex %s"
41
+ default_value: "auto"
42
+
43
+ encapsulation_dot1q:
44
+ kind: int
45
+ config_get_token_append: '/^encapsulation dot1q (.*)/i'
46
+ config_set_append: "%s encapsulation dot1q %s"
47
+ default_value: ""
48
+
49
+ fabric_forwarding_anycast_gateway:
50
+ kind: boolean
51
+ config_get_token_append: '/^fabric forwarding mode anycast-gateway$/'
52
+ config_set_append: "%s fabric forwarding mode anycast-gateway"
53
+ default_value: false
54
+
55
+ feature_lacp:
56
+ kind: boolean
57
+ config_get: "show running | i ^feature"
58
+ config_get_token: '/^feature lacp$/'
59
+ config_set: "%s feature lacp"
60
+
61
+ feature_vlan:
62
+ kind: boolean
63
+ cli_nexus:
64
+ config_get: "show running | i ^feature"
65
+ config_get_token: '/^feature interface-vlan$/'
66
+ config_set: "%s feature interface-vlan"
67
+
68
+ ipv4_acl_in:
69
+ config_get_token_append: '/^ip access-group (\S+) in/'
70
+ config_set_append: "%s ip access-group %s in"
71
+ default_value: ""
72
+
73
+ ipv4_acl_out:
74
+ config_get_token_append: '/^ip access-group (\S+) out/'
75
+ config_set_append: "%s ip access-group %s out"
76
+ default_value: ""
77
+
78
+ ipv4_addr_mask:
79
+ # This handles both primary and secondary addresses
80
+ multiple:
81
+ cli_nexus:
82
+ config_get_token_append: '/^ip address ([0-9\.]+)[\s\/](.*)/'
83
+ config_set_append: "%s ip address %s %s"
84
+
85
+ ipv4_address:
86
+ default_value: ~
87
+
88
+ ipv4_arp_timeout:
89
+ kind: int
90
+ config_get_token_append: '/^ip arp timeout (\d+)$/'
91
+ config_set_append: "%s ip arp timeout %s"
92
+ default_value: 700
93
+
94
+ ipv4_arp_timeout_non_vlan_interfaces:
95
+ default_only: ~
96
+
97
+ ipv4_netmask_length:
98
+ default_value: ~
99
+
100
+ ipv4_pim_sparse_mode:
101
+ kind: boolean
102
+ default_value: false
103
+ cli_nexus:
104
+ config_get_token_append: '/^ip pim sparse-mode$/'
105
+ config_set_append: "%s ip pim sparse-mode"
106
+
107
+ ipv4_proxy_arp:
108
+ kind: boolean
109
+ default_value: false
110
+ cli_nexus:
111
+ config_get_token_append: '/^ip proxy-arp$/'
112
+ config_set_append: "%s ip proxy-arp"
113
+
114
+ ipv4_redirects_loopback:
115
+ kind: boolean
116
+ cli_nexus:
117
+ default_only: false
118
+
119
+ ipv4_redirects_other_interfaces:
120
+ kind: boolean
121
+ test_config_result:
122
+ false: false
123
+ true: true
124
+ cli_nexus:
125
+ config_get_token_append: '/^((?:no )?ip redirects)$/'
126
+ config_set_append: "%s ip redirects"
127
+ default_value: true
128
+ test_config_get_regex: [
129
+ '/^\s+ip redirects/',
130
+ '/^\s+no ip redirects/'
131
+ ]
132
+
133
+ ipv6_acl_in:
134
+ config_get_token_append: '/^ipv6 traffic-filter (\S+) in/'
135
+ config_set_append: "%s ipv6 traffic-filter %s in"
136
+ default_value: ""
137
+
138
+ ipv6_acl_out:
139
+ config_get_token_append: '/^ipv6 traffic-filter (\S+) out/'
140
+ config_set_append: "%s ipv6 traffic-filter %s out"
141
+ default_value: ""
142
+ mtu:
143
+ kind: int
144
+ config_get_token_append: '/^mtu (.*)$/'
145
+ config_set_append: "%s mtu %s"
146
+ default_value: 1500
147
+
148
+ negotiate_auto_ethernet:
149
+ kind: boolean
150
+ cli_nexus:
151
+ test_config_get_regex: [
152
+ '/^\s+no negotiate auto/',
153
+ '/^\s+negotiate auto/'
154
+ ]
155
+ /(N7|C3064)/:
156
+ default_only: false
157
+ else:
158
+ config_get_token_append: '/^(no )?negotiate auto$/'
159
+ config_set_append: "%s negotiate auto"
160
+ default_value: true
161
+
162
+ negotiate_auto_other_interfaces:
163
+ kind: boolean
164
+ default_only: false
165
+
166
+ negotiate_auto_portchannel:
167
+ kind: boolean
168
+ cli_nexus:
169
+ test_config_get_regex: [
170
+ '/^\s+no negotiate auto/',
171
+ '/^\s+negotiate auto/'
172
+ ]
173
+ /N7/:
174
+ default_only: false
175
+ else:
176
+ config_get_token_append: '/^(no )?negotiate auto$/'
177
+ config_set_append: "%s negotiate auto"
178
+ default_value: true
179
+
180
+ shutdown:
181
+ kind: boolean
182
+ config_get_token_append: '/^shutdown$/'
183
+ config_set_append: "%s shutdown"
184
+
185
+ shutdown_ether_channel:
186
+ default_value: false
187
+
188
+ shutdown_ethernet_noswitchport_noshutdown:
189
+ default_value: false
190
+
191
+ shutdown_ethernet_noswitchport_shutdown:
192
+ default_value: false
193
+
194
+ shutdown_ethernet_switchport_noshutdown:
195
+ default_value: false
196
+
197
+ shutdown_ethernet_switchport_shutdown:
198
+ default_value: true
199
+
200
+ shutdown_loopback:
201
+ default_value: false
202
+
203
+ shutdown_unknown:
204
+ default_value: true
205
+
206
+ shutdown_vlan:
207
+ cli_nexus:
208
+ default_value: true
209
+
210
+ speed:
211
+ config_get_token_append: '/^speed (.*)$/'
212
+ config_set_append: "speed %s"
213
+ default_value: "auto"
214
+
215
+ svi_autostate:
216
+ _exclude: [/N(5|6)/]
217
+ kind: boolean
218
+ config_get_token_append: '/^(?:no )?autostate$/'
219
+ config_set_append: "%s autostate"
220
+ default_value: true
221
+ test_config_result:
222
+ false: false
223
+ true: true
224
+
225
+ svi_management:
226
+ kind: boolean
227
+ config_get_token_append: '/^management$/'
228
+ config_set_append: "%s management"
229
+ default_value: false
230
+
231
+ switchport:
232
+ kind: boolean
233
+ config_get_token_append: '/^switchport$/'
234
+ config_set_append: "%s switchport"
235
+ # default_value: n/a. This is derived from system_default_switchport
236
+
237
+ switchport_autostate_exclude:
238
+ kind: boolean
239
+ config_get_token_append: '/(^switchport autostate exclude)/'
240
+ config_set_append: "%s switchport autostate exclude"
241
+ default_value: false
242
+
243
+ switchport_mode_dot1q_tunnel:
244
+ test_config_result:
245
+ false: RuntimeError
246
+
247
+ switchport_mode_ethernet:
248
+ auto_default: false
249
+ config_get_token_append: '/^(?:no )?switchport mode ?(.*)$/'
250
+ config_set_append: "%s switchport mode %s"
251
+ default_value: "access"
252
+
253
+ switchport_mode_other_interfaces:
254
+ default_only: ""
255
+
256
+ switchport_mode_port_channel:
257
+ config_get_token_append: '/^switchport mode (.*)$/'
258
+ config_set_append: "%s switchport mode %s"
259
+ default_value: ""
260
+
261
+ switchport_trunk_allowed_vlan:
262
+ config_get_token_append: '/^switchport trunk allowed vlan (.*)$/'
263
+ config_set_append: "%s switchport trunk allowed vlan %s"
264
+ default_value: "1-4094"
265
+
266
+ switchport_trunk_native_vlan:
267
+ kind: int
268
+ config_get_token_append: '/^switchport trunk native vlan (.*)$/'
269
+ config_set_append: "%s switchport trunk native vlan %s"
270
+ default_value: 1
271
+
272
+ system_default_svi_autostate:
273
+ _exclude: [/N(5|6)/]
274
+ kind: boolean
275
+ config_get: "show running all | include 'system default'"
276
+ /N7K/:
277
+ # When enabled: Property does not nvgen.
278
+ # When disabled: Property nvgens as 'system default interface-vlan no autostate'
279
+ config_get_token: ['/^system default interface-vlan no autostate$/']
280
+ # default_value: n/a. This is a user-configurable system default.
281
+ else:
282
+ # When enabled: Property nvgens as 'system default interface-vlan autostate'
283
+ # When disabled: Property nvgens as 'no system default interface-vlan autostate'
284
+ config_get_token: ['/^system default interface-vlan autostate$/']
285
+ # default_value: n/a. This is a user-configurable system default.
286
+
287
+ system_default_switchport:
288
+ # Note: This is a simple boolean state but there is a bug on some
289
+ # platforms that causes the cli to nvgen twice; this causes config_get to
290
+ # raise an error when it encounters the multiple. Therefore we define it
291
+ # as a multiple to avoid the raise.
292
+ multiple:
293
+ config_get: "show running all | include 'system default'"
294
+ config_get_token: ['/^no system default switchport$/']
295
+ default_value: true
296
+
297
+ system_default_switchport_shutdown:
298
+ kind: boolean
299
+ config_get: "show running all | include 'system default'"
300
+ config_get_token: ['/^system default switchport shutdown$/']
301
+ # default_value: n/a. This is a user-configurable system default.
302
+
303
+ vlan_mapping:
304
+ _exclude: [/N(3|5|6|9)/]
305
+ multiple:
306
+ config_get_token_append: '/^switchport vlan mapping (\d+) (\d+)/'
307
+ config_set_append: '%s switchport vlan mapping %s %s'
308
+ default_value: []
309
+
310
+ vlan_mapping_enable:
311
+ _exclude: [/N(3|5|6|9)/]
312
+ kind: boolean
313
+ config_get_token_append: '/^(no )?switchport vlan mapping enable/'
314
+ config_set_append: '%s switchport vlan mapping enable'
315
+ default_value: true
316
+
317
+ vpc_id:
318
+ kind: int
319
+ config_get_token_append: '/^vpc (\d+)$/'
320
+ config_set_append: '%s vpc %s'
321
+ default_value: false
322
+
323
+ vpc_peer_link:
324
+ kind: boolean
325
+ config_get_token_append: '/^vpc peer\-link$/'
326
+ config_set_append: '%s vpc peer-link'
327
+ default_value: false
328
+
329
+ vrf:
330
+ default_value: ""
331
+ cli_nexus:
332
+ config_get_token_append: '/^vrf member (.*)/'
333
+ config_set_append: "%s vrf member %s"
334
+
335
+ vtp:
336
+ kind: boolean
337
+ config_get_token_append: '/^vtp *$/'
338
+ config_set_append: "%s vtp"
339
+ default_value: false
@@ -0,0 +1,28 @@
1
+ # interface_channel_group
2
+ ---
3
+ _template:
4
+ config_get: "show running interface all"
5
+ config_get_token: '/^interface <name>$/i'
6
+ config_set: 'interface <name>'
7
+
8
+ all_interfaces:
9
+ multiple:
10
+ config_get_token: '/^interface (Ethernet.*)/i'
11
+
12
+ channel_group:
13
+ kind: int
14
+ config_get_token_append: '/^channel-group (\d+)$/'
15
+ config_set_append: '<state> channel-group <group> <force>'
16
+ default_value: false
17
+
18
+ description:
19
+ kind: string
20
+ config_get_token_append: '/^description (.*)/'
21
+ config_set_append: '<state> description <desc>'
22
+ default_value: ''
23
+
24
+ shutdown:
25
+ kind: boolean
26
+ config_get_token_append: '/^(?:no )?shutdown$/'
27
+ config_set_append: '<state> shutdown'
28
+ default_value: true