annet 0.0__py3-none-any.whl
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.
Potentially problematic release.
This version of annet might be problematic. Click here for more details.
- annet/__init__.py +61 -0
- annet/adapters/__init__.py +0 -0
- annet/adapters/netbox/__init__.py +0 -0
- annet/adapters/netbox/common/__init__.py +0 -0
- annet/adapters/netbox/common/client.py +87 -0
- annet/adapters/netbox/common/manufacturer.py +62 -0
- annet/adapters/netbox/common/models.py +105 -0
- annet/adapters/netbox/common/query.py +23 -0
- annet/adapters/netbox/common/status_client.py +25 -0
- annet/adapters/netbox/common/storage_opts.py +14 -0
- annet/adapters/netbox/provider.py +34 -0
- annet/adapters/netbox/v24/__init__.py +0 -0
- annet/adapters/netbox/v24/api_models.py +73 -0
- annet/adapters/netbox/v24/client.py +59 -0
- annet/adapters/netbox/v24/storage.py +196 -0
- annet/adapters/netbox/v37/__init__.py +0 -0
- annet/adapters/netbox/v37/api_models.py +38 -0
- annet/adapters/netbox/v37/client.py +62 -0
- annet/adapters/netbox/v37/storage.py +149 -0
- annet/annet.py +25 -0
- annet/annlib/__init__.py +7 -0
- annet/annlib/command.py +49 -0
- annet/annlib/diff.py +158 -0
- annet/annlib/errors.py +8 -0
- annet/annlib/filter_acl.py +196 -0
- annet/annlib/jsontools.py +116 -0
- annet/annlib/lib.py +495 -0
- annet/annlib/netdev/__init__.py +0 -0
- annet/annlib/netdev/db.py +62 -0
- annet/annlib/netdev/devdb/__init__.py +28 -0
- annet/annlib/netdev/devdb/data/devdb.json +137 -0
- annet/annlib/netdev/views/__init__.py +0 -0
- annet/annlib/netdev/views/dump.py +121 -0
- annet/annlib/netdev/views/hardware.py +112 -0
- annet/annlib/output.py +246 -0
- annet/annlib/patching.py +533 -0
- annet/annlib/rbparser/__init__.py +0 -0
- annet/annlib/rbparser/acl.py +120 -0
- annet/annlib/rbparser/deploying.py +55 -0
- annet/annlib/rbparser/ordering.py +52 -0
- annet/annlib/rbparser/platform.py +51 -0
- annet/annlib/rbparser/syntax.py +115 -0
- annet/annlib/rulebook/__init__.py +0 -0
- annet/annlib/rulebook/common.py +350 -0
- annet/annlib/tabparser.py +648 -0
- annet/annlib/types.py +35 -0
- annet/api/__init__.py +826 -0
- annet/argparse.py +415 -0
- annet/cli.py +237 -0
- annet/cli_args.py +503 -0
- annet/configs/context.yml +18 -0
- annet/configs/logging.yaml +39 -0
- annet/connectors.py +77 -0
- annet/deploy.py +536 -0
- annet/diff.py +84 -0
- annet/executor.py +551 -0
- annet/filtering.py +40 -0
- annet/gen.py +865 -0
- annet/generators/__init__.py +435 -0
- annet/generators/base.py +136 -0
- annet/generators/common/__init__.py +0 -0
- annet/generators/common/initial.py +33 -0
- annet/generators/entire.py +97 -0
- annet/generators/exceptions.py +10 -0
- annet/generators/jsonfragment.py +125 -0
- annet/generators/partial.py +119 -0
- annet/generators/perf.py +79 -0
- annet/generators/ref.py +15 -0
- annet/generators/result.py +127 -0
- annet/hardware.py +45 -0
- annet/implicit.py +139 -0
- annet/lib.py +128 -0
- annet/output.py +167 -0
- annet/parallel.py +448 -0
- annet/patching.py +25 -0
- annet/reference.py +148 -0
- annet/rulebook/__init__.py +114 -0
- annet/rulebook/arista/__init__.py +0 -0
- annet/rulebook/arista/iface.py +16 -0
- annet/rulebook/aruba/__init__.py +16 -0
- annet/rulebook/aruba/ap_env.py +146 -0
- annet/rulebook/aruba/misc.py +8 -0
- annet/rulebook/cisco/__init__.py +0 -0
- annet/rulebook/cisco/iface.py +68 -0
- annet/rulebook/cisco/misc.py +57 -0
- annet/rulebook/cisco/vlandb.py +90 -0
- annet/rulebook/common.py +19 -0
- annet/rulebook/deploying.py +87 -0
- annet/rulebook/huawei/__init__.py +0 -0
- annet/rulebook/huawei/aaa.py +75 -0
- annet/rulebook/huawei/bgp.py +97 -0
- annet/rulebook/huawei/iface.py +33 -0
- annet/rulebook/huawei/misc.py +337 -0
- annet/rulebook/huawei/vlandb.py +115 -0
- annet/rulebook/juniper/__init__.py +107 -0
- annet/rulebook/nexus/__init__.py +0 -0
- annet/rulebook/nexus/iface.py +92 -0
- annet/rulebook/patching.py +143 -0
- annet/rulebook/ribbon/__init__.py +12 -0
- annet/rulebook/texts/arista.deploy +20 -0
- annet/rulebook/texts/arista.order +125 -0
- annet/rulebook/texts/arista.rul +59 -0
- annet/rulebook/texts/aruba.deploy +20 -0
- annet/rulebook/texts/aruba.order +83 -0
- annet/rulebook/texts/aruba.rul +87 -0
- annet/rulebook/texts/cisco.deploy +27 -0
- annet/rulebook/texts/cisco.order +82 -0
- annet/rulebook/texts/cisco.rul +105 -0
- annet/rulebook/texts/huawei.deploy +188 -0
- annet/rulebook/texts/huawei.order +388 -0
- annet/rulebook/texts/huawei.rul +471 -0
- annet/rulebook/texts/juniper.rul +120 -0
- annet/rulebook/texts/nexus.deploy +24 -0
- annet/rulebook/texts/nexus.order +85 -0
- annet/rulebook/texts/nexus.rul +83 -0
- annet/rulebook/texts/nokia.rul +31 -0
- annet/rulebook/texts/pc.order +5 -0
- annet/rulebook/texts/pc.rul +9 -0
- annet/rulebook/texts/ribbon.deploy +22 -0
- annet/rulebook/texts/ribbon.rul +77 -0
- annet/rulebook/texts/routeros.order +38 -0
- annet/rulebook/texts/routeros.rul +45 -0
- annet/storage.py +125 -0
- annet/tabparser.py +36 -0
- annet/text_term_format.py +95 -0
- annet/tracing.py +170 -0
- annet/types.py +227 -0
- annet-0.0.dist-info/AUTHORS +21 -0
- annet-0.0.dist-info/LICENSE +21 -0
- annet-0.0.dist-info/METADATA +26 -0
- annet-0.0.dist-info/RECORD +137 -0
- annet-0.0.dist-info/WHEEL +5 -0
- annet-0.0.dist-info/entry_points.txt +5 -0
- annet-0.0.dist-info/top_level.txt +2 -0
- annet_generators/__init__.py +0 -0
- annet_generators/example/__init__.py +12 -0
- annet_generators/example/lldp.py +53 -0
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
# В этом файле определяется порядок команд, в котором их следует подавать на устройство.
|
|
2
|
+
# - Если порядок команды не важен - ее можно не писать сюда совсем.
|
|
3
|
+
# - Если команда начинается с undo и прописан параметр %order_reverse - команда считается
|
|
4
|
+
# обратной, но занимает место между прямыми там, где указано (т.е. undo vlan batch
|
|
5
|
+
# будет стоять после блоков interface).
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Сначала сплитим порты и размечаем ресурсы
|
|
9
|
+
port split mode
|
|
10
|
+
port split dimension
|
|
11
|
+
port split refresh
|
|
12
|
+
dfs-group
|
|
13
|
+
assign forward
|
|
14
|
+
|
|
15
|
+
# Переключаю порт в режим 200G
|
|
16
|
+
port mode 200GE
|
|
17
|
+
|
|
18
|
+
#clock
|
|
19
|
+
#sysname
|
|
20
|
+
#info-center
|
|
21
|
+
|
|
22
|
+
# на vpn-instance Meth есть много ссылок отовсюду, так что создадим как можно раньше
|
|
23
|
+
ip vpn-instance */[Mm][Ee][Tt]h.*/
|
|
24
|
+
|
|
25
|
+
#ntp
|
|
26
|
+
#dns
|
|
27
|
+
|
|
28
|
+
#mac-address aging-time
|
|
29
|
+
|
|
30
|
+
#rsa
|
|
31
|
+
#ecc
|
|
32
|
+
|
|
33
|
+
# из-за того, что Huawei не позволяет иметь в одном prefix-list 2 одинаковых правила,
|
|
34
|
+
# нужно сначала удалить все несовпадающие, а затем заполнить их заново
|
|
35
|
+
# в таком случае нужно расскомментить эту строчку, но она не позволяет снести plist целиком
|
|
36
|
+
# сначала мы добавляем stub-правило в рулсет чтобы оно не позволяло prefix-list'у "пропасть"
|
|
37
|
+
# индекс референсится в логике патчинга префикс-листа huawei.misc.prefix_list
|
|
38
|
+
ip */(ip|ipv6)/-prefix * index 99999999
|
|
39
|
+
undo ip */(ip|ipv6)/-prefix * index * %order_reverse
|
|
40
|
+
ip */(ip|ipv6)/-prefix
|
|
41
|
+
xpl
|
|
42
|
+
|
|
43
|
+
ip as-path-filter
|
|
44
|
+
ip community-filter
|
|
45
|
+
ip extcommunity-filter
|
|
46
|
+
|
|
47
|
+
tunnel-policy
|
|
48
|
+
|
|
49
|
+
# evpn-overlay должен быть объявлен до ip vpn-instance
|
|
50
|
+
evpn-overlay *
|
|
51
|
+
|
|
52
|
+
route-policy */VRF_.*/
|
|
53
|
+
ip vpn-instance
|
|
54
|
+
ipv4-family
|
|
55
|
+
route-distinguisher
|
|
56
|
+
~
|
|
57
|
+
ipv6-family
|
|
58
|
+
route-distinguisher
|
|
59
|
+
~
|
|
60
|
+
~
|
|
61
|
+
|
|
62
|
+
# это должно идти после vpn-instance
|
|
63
|
+
ntp
|
|
64
|
+
|
|
65
|
+
#stp mode
|
|
66
|
+
#stp bpdu-protection
|
|
67
|
+
#stp enable
|
|
68
|
+
#stp region-configuration
|
|
69
|
+
|
|
70
|
+
acl port-pool
|
|
71
|
+
acl ip-pool
|
|
72
|
+
acl ipv6-pool
|
|
73
|
+
acl
|
|
74
|
+
|
|
75
|
+
system tcam
|
|
76
|
+
|
|
77
|
+
undo system tcam acl template * all %order_reverse
|
|
78
|
+
undo system tcam acl template * %order_reverse
|
|
79
|
+
undo system tcam acl$ %order_reverse
|
|
80
|
+
|
|
81
|
+
traffic classifier
|
|
82
|
+
traffic behavior
|
|
83
|
+
traffic policy
|
|
84
|
+
qos group
|
|
85
|
+
qos schedule-profile
|
|
86
|
+
port-wred
|
|
87
|
+
|
|
88
|
+
dhcp
|
|
89
|
+
|
|
90
|
+
vlan reserved
|
|
91
|
+
vlan batch
|
|
92
|
+
vlan pool
|
|
93
|
+
vlan
|
|
94
|
+
|
|
95
|
+
hwtacacs-server
|
|
96
|
+
hwtacacs server
|
|
97
|
+
|
|
98
|
+
aaa
|
|
99
|
+
undo local-user policy security-enhance
|
|
100
|
+
undo user-password complexity-check
|
|
101
|
+
|
|
102
|
+
undo user-group %order_reverse
|
|
103
|
+
undo task-group %order_reverse
|
|
104
|
+
|
|
105
|
+
local-user ~
|
|
106
|
+
|
|
107
|
+
*/(authentication|authorization|accounting)-scheme/ *
|
|
108
|
+
|
|
109
|
+
# domain референсит scheme
|
|
110
|
+
domain *
|
|
111
|
+
|
|
112
|
+
task-group
|
|
113
|
+
user-group
|
|
114
|
+
~
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
user-interface
|
|
118
|
+
drop-profile
|
|
119
|
+
|
|
120
|
+
interface */(?i)meth[\d\/]+/
|
|
121
|
+
FTP client
|
|
122
|
+
ftp client
|
|
123
|
+
sflow
|
|
124
|
+
|
|
125
|
+
# SR глобально -> MPLS -> IS-IS -> IS-IS и SID на интерфейсах
|
|
126
|
+
segment-routing
|
|
127
|
+
sr-te policy *
|
|
128
|
+
candidate-path * *
|
|
129
|
+
undo segment-list * %order_reverse
|
|
130
|
+
undo segment-list * %order_reverse
|
|
131
|
+
|
|
132
|
+
# Сначала глобально mpls включаем, потом на интерфейсы
|
|
133
|
+
mpls
|
|
134
|
+
mpls te cspf
|
|
135
|
+
mpls te cspf preferred-igp
|
|
136
|
+
|
|
137
|
+
mpls ldp
|
|
138
|
+
mpls ldp remote-peer *
|
|
139
|
+
|
|
140
|
+
explicit-path
|
|
141
|
+
|
|
142
|
+
route-policy EXPORT_ISIS
|
|
143
|
+
|
|
144
|
+
# должно идти перед интерфейсами, иначе невозможен 'isis enable 1'
|
|
145
|
+
isis
|
|
146
|
+
|
|
147
|
+
bridge-domain *
|
|
148
|
+
vxlan
|
|
149
|
+
evpn
|
|
150
|
+
undo evpn
|
|
151
|
+
undo vxlan
|
|
152
|
+
|
|
153
|
+
# Должно идти перед interface, т.к. на уровне interface идет ссылка на diffserv domain
|
|
154
|
+
diffserv domain *
|
|
155
|
+
|
|
156
|
+
interface */Vbdif\d+/
|
|
157
|
+
interface */Eth-Trunk\d+/
|
|
158
|
+
interface */LoopBack\d+/
|
|
159
|
+
interface */Tunnel.*/
|
|
160
|
+
tunnel-protocol
|
|
161
|
+
mpls te signal-protocol segment-routing
|
|
162
|
+
statistic enable
|
|
163
|
+
mpls te path
|
|
164
|
+
mpls te path metric-type
|
|
165
|
+
|
|
166
|
+
interface *
|
|
167
|
+
# должно идти до undo portswich, т.к. потом удалить он ее не даст
|
|
168
|
+
undo mac-address learning %order_reverse
|
|
169
|
+
undo portswitch
|
|
170
|
+
undo ip address * * sub %order_reverse
|
|
171
|
+
undo ip address * * %order_reverse
|
|
172
|
+
portswitch %order_reverse
|
|
173
|
+
ip binding
|
|
174
|
+
ipv6 enable
|
|
175
|
+
ipv6 nd ra prefix
|
|
176
|
+
ipv6
|
|
177
|
+
ip address * *
|
|
178
|
+
ip address * * sub
|
|
179
|
+
dhcpv6
|
|
180
|
+
isis enable
|
|
181
|
+
isis
|
|
182
|
+
undo isis *
|
|
183
|
+
undo isis enable %order_reverse
|
|
184
|
+
mpls
|
|
185
|
+
mpls ldp
|
|
186
|
+
mpls ldp transport-address interface
|
|
187
|
+
mpls rsvp-te
|
|
188
|
+
mpls rsvp-te bfd
|
|
189
|
+
port link-type
|
|
190
|
+
port trunk pvid
|
|
191
|
+
port trunk allow-pass
|
|
192
|
+
undo port trunk allow-pass vlan all
|
|
193
|
+
undo port trunk allow-pass vlan 1 %order_reverse
|
|
194
|
+
port hybrid
|
|
195
|
+
undo port hybrid vlan
|
|
196
|
+
port hybrid tagged
|
|
197
|
+
port hybrid untagged
|
|
198
|
+
port hybrid vlan
|
|
199
|
+
port hybrid pvid
|
|
200
|
+
voice-vlan */\d+/
|
|
201
|
+
voice-vlan
|
|
202
|
+
undo eth-trunk
|
|
203
|
+
eth-trunk
|
|
204
|
+
mode
|
|
205
|
+
qos (wfq|drr)
|
|
206
|
+
qos queue
|
|
207
|
+
vrrp6 vrid [11|12] virtual-ip FE80*
|
|
208
|
+
vrrp6 vrid [11|12] virtual-ip
|
|
209
|
+
vrrp6 vrid [11|12]
|
|
210
|
+
vrrp vrid [11|12] virtual-ip
|
|
211
|
+
vrrp vrid [11|12]
|
|
212
|
+
~
|
|
213
|
+
poe
|
|
214
|
+
# Нужно чтобы subif'ы портов шли после конфигурации самих портов, иначе свитч ругнется на то что порт l2
|
|
215
|
+
interface */\S+\.\d+/
|
|
216
|
+
|
|
217
|
+
# Некоторые команды требуют сначала определить конфигурацию на L2 интерфейсах, а потом уже на vlanif
|
|
218
|
+
interface */Vlanif\d+/
|
|
219
|
+
|
|
220
|
+
# Должны быть после interface потому что в нем ссылается traffic-policy
|
|
221
|
+
# И именно в данном порядке
|
|
222
|
+
# policy ссылаются на behavior и classifier, они на acl'и
|
|
223
|
+
undo qos group %order_reverse
|
|
224
|
+
undo qos schedule-profile %order_reverse
|
|
225
|
+
undo traffic policy %order_reverse
|
|
226
|
+
undo traffic behavior %order_reverse
|
|
227
|
+
undo traffic classifier %order_reverse
|
|
228
|
+
|
|
229
|
+
# Должен быть после interface потому что в нем ссылается на diffserv domain
|
|
230
|
+
undo diffserv domain * %order_reverse
|
|
231
|
+
|
|
232
|
+
# маршруты идут после интерфейсов
|
|
233
|
+
ip route-static
|
|
234
|
+
ipv6 route-static
|
|
235
|
+
|
|
236
|
+
route-policy
|
|
237
|
+
|
|
238
|
+
ospf
|
|
239
|
+
opaque-capability enable
|
|
240
|
+
area
|
|
241
|
+
|
|
242
|
+
bgp
|
|
243
|
+
router-id
|
|
244
|
+
# [NOCDEV-1182] у load-balancing есть несколько взаимоисключающих флейверов
|
|
245
|
+
undo undo maximum load-balancing %order_reverse
|
|
246
|
+
maximum load-balancing
|
|
247
|
+
# [NOCDEV-2043] Тут только декларируем пиров и группы
|
|
248
|
+
# поскольку на них есть ссылки из family блоков
|
|
249
|
+
group
|
|
250
|
+
peer * as-number *
|
|
251
|
+
peer * local-as *
|
|
252
|
+
ipv[46]-family|link-state-family unicast|l2vpn-family evpn
|
|
253
|
+
undo undo maximum load-balancing %order_reverse
|
|
254
|
+
maximum load-balancing
|
|
255
|
+
group
|
|
256
|
+
peer * as-number *
|
|
257
|
+
peer * enable
|
|
258
|
+
peer * ~
|
|
259
|
+
# [NOCDEV-2043] Остальное в глобальном блоке делаем тут
|
|
260
|
+
undo peer * description %order_reverse
|
|
261
|
+
undo peer * * * %order_reverse
|
|
262
|
+
undo peer * * %order_reverse
|
|
263
|
+
undo peer * %order_reverse
|
|
264
|
+
undo group * %order_reverse
|
|
265
|
+
peer * ~
|
|
266
|
+
|
|
267
|
+
|
|
268
|
+
# Вырубаем bfd после bgp, но до vpn
|
|
269
|
+
undo bfd * %order_reverse
|
|
270
|
+
undo bfd %order_reverse
|
|
271
|
+
|
|
272
|
+
undo ip vpn-instance %order_reverse
|
|
273
|
+
undo route-policy %order_reverse
|
|
274
|
+
undo route-policy */VRF_.*/ %order_reverse
|
|
275
|
+
undo ip community-filter %order_reverse
|
|
276
|
+
undo ip extcommunity-filter %order_reverse
|
|
277
|
+
undo ip as-path-filter %order_reverse
|
|
278
|
+
|
|
279
|
+
# Вырубаем bfd после bgp
|
|
280
|
+
undo bfd * %order_reverse
|
|
281
|
+
undo bfd %order_reverse
|
|
282
|
+
|
|
283
|
+
info-center
|
|
284
|
+
|
|
285
|
+
# Should be after acl definition
|
|
286
|
+
snmp-agent sys-info
|
|
287
|
+
snmp-agent mib-view
|
|
288
|
+
snmp-agent community complexity-check
|
|
289
|
+
snmp-agent community
|
|
290
|
+
snmp-agent target-host
|
|
291
|
+
snmp-agent trap source
|
|
292
|
+
snmp-agent
|
|
293
|
+
#ifindex constant
|
|
294
|
+
|
|
295
|
+
cpu-defend policy
|
|
296
|
+
cpu-defend-policy
|
|
297
|
+
slot *
|
|
298
|
+
cpu-defend-policy %order_reverse
|
|
299
|
+
undo cpu-defend policy %order_reverse
|
|
300
|
+
|
|
301
|
+
ssh server rsa-key min-length
|
|
302
|
+
rsa peer-public-key
|
|
303
|
+
ssh user
|
|
304
|
+
ssh user * assign
|
|
305
|
+
ssh user * authentication-type
|
|
306
|
+
ssh user * service-type
|
|
307
|
+
|
|
308
|
+
local-user * password
|
|
309
|
+
local-user * service-type
|
|
310
|
+
local-user * level
|
|
311
|
+
local-user * ftp-directory
|
|
312
|
+
|
|
313
|
+
stelnet server
|
|
314
|
+
stelnet ipv4 server
|
|
315
|
+
stelnet ipv6 server
|
|
316
|
+
|
|
317
|
+
telnet server acl
|
|
318
|
+
ssh server acl
|
|
319
|
+
*/(ftp|FTP)/ server acl
|
|
320
|
+
*/(ftp|FTP)/ acl
|
|
321
|
+
telnet ipv6 server acl
|
|
322
|
+
ssh ipv6 server acl
|
|
323
|
+
*/(ftp|FTP)/ ipv6 server acl
|
|
324
|
+
*/(ftp|FTP)/ ipv6 acl
|
|
325
|
+
|
|
326
|
+
ssh server-source all-interface
|
|
327
|
+
ssh ipv6 server-source all-interface
|
|
328
|
+
telnet server-source all-interface
|
|
329
|
+
telnet ipv6 server-source all-interface
|
|
330
|
+
|
|
331
|
+
#lldp
|
|
332
|
+
|
|
333
|
+
#stelnet
|
|
334
|
+
#ssh
|
|
335
|
+
|
|
336
|
+
#header
|
|
337
|
+
|
|
338
|
+
#command-privilege
|
|
339
|
+
#user-interface maximum-vty
|
|
340
|
+
#user-interface
|
|
341
|
+
|
|
342
|
+
domain
|
|
343
|
+
default-domain
|
|
344
|
+
telemetry
|
|
345
|
+
sensor-group *
|
|
346
|
+
destination-group *
|
|
347
|
+
subscription *
|
|
348
|
+
|
|
349
|
+
diffserv domain *
|
|
350
|
+
ip-dscp-inbound ~
|
|
351
|
+
|
|
352
|
+
#Удаляем acl в самом конце
|
|
353
|
+
undo acl %order_reverse
|
|
354
|
+
|
|
355
|
+
# Удаляем iface совсем в конце
|
|
356
|
+
# сначала subif
|
|
357
|
+
undo interface */.*[.]\d+/ %order_reverse
|
|
358
|
+
# vlanif
|
|
359
|
+
undo interface */Vlanif\d+/ %order_reverse
|
|
360
|
+
undo interface */Vbdif\d+/ %order_reverse
|
|
361
|
+
|
|
362
|
+
# удалять eth-trunk можно только после того, как вычистим member interfaces
|
|
363
|
+
undo interface */Eth-Trunk\d+/ %order_reverse
|
|
364
|
+
undo interface %order_reverse
|
|
365
|
+
|
|
366
|
+
# interface Tunnel* ссылается на 'explicit-path'
|
|
367
|
+
undo interface */Tunnel.*/ %order_reverse
|
|
368
|
+
undo explicit-path %order_reverse
|
|
369
|
+
|
|
370
|
+
# drop-profile можно удалять только после удаления референсов на него в интерфейсах
|
|
371
|
+
undo drop-profile %order_reverse
|
|
372
|
+
|
|
373
|
+
# vlan'ы удаляем после vlanif/subif
|
|
374
|
+
undo vlan %order_reverse
|
|
375
|
+
undo vlan batch %order_reverse
|
|
376
|
+
undo observe-port %order_reverse
|
|
377
|
+
|
|
378
|
+
#sflow может висеть а subif/eth-trunk
|
|
379
|
+
undo sflow %order_reverse
|
|
380
|
+
|
|
381
|
+
# Данное стаб-правило должно удаляться в самую посленюю очередь
|
|
382
|
+
# поскольку если префикс-лист должен уходить из конфигурации полностью
|
|
383
|
+
# перед этим должны быть удалены все его референсы в конфиге
|
|
384
|
+
# индекс референсится в логике патчинга префикс-листа huawei.misc.prefix_list
|
|
385
|
+
undo ip */(ip|ipv6)/-prefix * index 99999999 %order_reverse
|
|
386
|
+
|
|
387
|
+
# vim: set syntax=annrulebook:
|
|
388
|
+
~ %global
|