From bec614ce987935a8fccb99c32fb2ba342b17048a Mon Sep 17 00:00:00 2001
From: Eric Garver <e@erig.me>
Date: Thu, 29 Nov 2018 12:26:08 -0500
Subject: [PATCH 26/34] command: sort rich rule output by priority
(cherry picked from commit 606e853e58028b6a8cfd91c1544e58346e7966be)
---
src/firewall/command.py | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/src/firewall/command.py b/src/firewall/command.py
index 6c93be840760..1449b6dfc3ea 100644
--- a/src/firewall/command.py
+++ b/src/firewall/command.py
@@ -393,6 +393,19 @@ class FirewallCommand(object):
description = settings.getDescription()
short_description = settings.getShort()
+ def rich_rule_sorted_key(rule):
+ priority = 0
+ search_str = "priority="
+ try:
+ i = rule.index(search_str)
+ except ValueError:
+ pass
+ else:
+ i += len(search_str)
+ priority = int(rule[i:i+(rule[i:].index(" "))].replace("\"", ""))
+
+ return priority
+
attributes = []
if default_zone is not None:
if zone == default_zone:
@@ -424,7 +437,8 @@ class FirewallCommand(object):
" ".join(["%s/%s" % (port[0], port[1])
for port in source_ports]))
self.print_msg(" icmp-blocks: " + " ".join(icmp_blocks))
- self.print_msg(" rich rules: \n\t" + "\n\t".join(rules))
+ self.print_msg(" rich rules: \n\t" + "\n\t".join(
+ sorted(rules, key=rich_rule_sorted_key)))
def print_service_info(self, service, settings):
ports = settings.getPorts()
--
2.18.0