From bec614ce987935a8fccb99c32fb2ba342b17048a Mon Sep 17 00:00:00 2001 From: Eric Garver 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