vtysh 0.2.1 → 0.3.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.
- checksums.yaml +4 -4
- data/lib/vtysh/diff.rb +17 -4
- data/lib/vtysh/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 82af2f794b12e4604356c693dc1aa73f26f428edc60c2558f8d9705a78f7f8cc
|
|
4
|
+
data.tar.gz: 291f564282919ad448c93088ef01feaef15cfc6fffa30c9e891f97fba7831ae0
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fd57d52ef5fc5e15a59c697c60f69b8d2426da5919bf0a8c11b6dda01758d8e9a2462dc295c953a0eb1c31ee199be308d1d1526a2749f4307d951c3dbdfc8210
|
|
7
|
+
data.tar.gz: 811a633022e9b16114947ba5853d1b6295ee29639ed9608ac320db43f327e4ba6b7f37a3d30732a03b1ab9e8d9319af2135d191762abbca47da688910d703fe1
|
data/lib/vtysh/diff.rb
CHANGED
|
@@ -160,11 +160,24 @@ module Vtysh
|
|
|
160
160
|
|
|
161
161
|
def self.reorder_non_bgp(commands)
|
|
162
162
|
prefix_lists = commands.select { |c| c.include?("ip prefix-list") }
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
# Only match route-map block creation (2 -c args), not commands inside route-maps
|
|
164
|
+
route_maps = commands.select { |c| c.include?("route-map") && !c.include?("no ") && c.scan(/-c "/).count == 2 }
|
|
165
|
+
top_level_removals = commands.select { |c| c.include?("no ") && c.scan(/-c "/).count <= 2 } - prefix_lists
|
|
166
|
+
rest = commands - prefix_lists - route_maps - top_level_removals
|
|
167
|
+
|
|
168
|
+
# Within context: group by context path, put removals before additions
|
|
169
|
+
# so FRR replaces set/match statements correctly (remove old, then add new)
|
|
170
|
+
rest = rest.group_by { |c|
|
|
171
|
+
parts = c.scan(/-c "([^"]+)"/).flatten
|
|
172
|
+
parts[0..-2].join("|") # context = all but last -c arg
|
|
173
|
+
}.flat_map { |_ctx, cmds|
|
|
174
|
+
cmds.sort_by { |c|
|
|
175
|
+
last_arg = c.scan(/-c "([^"]+)"/).flatten.last
|
|
176
|
+
last_arg&.start_with?("no ") ? 0 : 1
|
|
177
|
+
}
|
|
178
|
+
}
|
|
166
179
|
|
|
167
|
-
(prefix_lists + route_maps + rest +
|
|
180
|
+
(prefix_lists + route_maps + rest + top_level_removals).uniq
|
|
168
181
|
end
|
|
169
182
|
|
|
170
183
|
def self.reorder_bgp(commands)
|
data/lib/vtysh/version.rb
CHANGED