@@ -2167,6 +2167,7 @@ def _cb_rules_tree_item_clicked(self, item, col):
21672167 parent_row = - 1
21682168 node_addr = ""
21692169 fw_table = ""
2170+ item_text = item .text (0 )
21702171
21712172 rulesHeader = self .rulesTable .horizontalHeader ()
21722173 self ._cfg .setSettings (Config .STATS_RULES_COL_STATE , rulesHeader .saveState ())
@@ -2193,8 +2194,14 @@ def _cb_rules_tree_item_clicked(self, item, col):
21932194 if parent .parent () != None :
21942195 parent = parent .parent ()
21952196 parent_model = self .rulesTreePanel .indexFromItem (parent .parent (), 0 )
2196- item_row = self .FILTER_TREE_FW_CHAIN
21972197 parent_row = self .RULES_TREE_FIREWALL
2198+ item_row = self .FILTER_TREE_FW_CHAIN
2199+ item_text = item .data (0 , QtCore .Qt .ItemDataRole .UserRole )
2200+ # node
2201+ else :
2202+ if parent_row == self .RULES_TREE_FIREWALL :
2203+ item_row = self .FILTER_TREE_FW_NODE
2204+ node_addr = item_text
21982205
21992206 if node_addr == None :
22002207 return
@@ -2206,7 +2213,7 @@ def _cb_rules_tree_item_clicked(self, item, col):
22062213 self .rulesTable .setVisible (not showFwTable and not showAlertsTable )
22072214 self .rulesScrollBar .setVisible (not showFwTable )
22082215
2209- self ._set_rules_filter (parent_row , item_row , item . text ( 0 ) , node_addr , fw_table )
2216+ self ._set_rules_filter (parent_row , item_row , item_text , node_addr , fw_table )
22102217
22112218 def _cb_splitter_moved (self , tab , pos , index ):
22122219 if tab == self .TAB_RULES :
@@ -2444,7 +2451,8 @@ def _add_rulesTree_fw_chains(self):
24442451 chains = self ._fw .get_chains ()
24452452 for addr in chains :
24462453 # add nodes
2447- nodeRoot = QtWidgets .QTreeWidgetItem (["{0}" .format (addr )])
2454+ hostname = self ._nodes .get_node_hostname (addr )
2455+ nodeRoot = QtWidgets .QTreeWidgetItem ([addr , hostname ])
24482456 nodeRoot .setData (0 , QtCore .Qt .ItemDataRole .UserRole , addr )
24492457 fwItem .addChild (nodeRoot )
24502458 for nodeChains in chains [addr ]:
@@ -2460,6 +2468,12 @@ def _add_rulesTree_fw_chains(self):
24602468 chainName = "{0}-{1}" .format (cc .Name , cc .Hook )
24612469 nodeChain = QtWidgets .QTreeWidgetItem ([chainName , cc .Policy ])
24622470 nodeChain .setData (0 , QtCore .Qt .ItemDataRole .UserRole , "{0}-{1}" .format (addr , chainName ))
2471+ nodeChain .setData (
2472+ 0 ,
2473+ QtCore .Qt .ItemDataRole .UserRole ,
2474+ # key to identify this chain
2475+ "{0}#{1}#{2}" .format (addr , cc .Hook , cc .Name )
2476+ )
24632477
24642478 items = self ._find_tree_fw_items ("{0}-{1}" .format (addr , tableName ))
24652479 if len (items ) == 0 :
@@ -3167,9 +3181,13 @@ def _set_rules_filter(self, parent_row=-1, item_row=0, what="", what1="", what2=
31673181 return
31683182 self .TABLES [self .TAB_FIREWALL ]['view' ].filterByTable (what1 , parm [0 ], parm [1 ])
31693183 elif item_row == self .FILTER_TREE_FW_CHAIN : # + table
3170- parm = what .split ("-" )
3171- tbl = what1 .split ("-" )
3172- self .TABLES [self .TAB_FIREWALL ]['view' ].filterByChain (what2 , tbl [0 ], tbl [1 ], parm [0 ], parm [1 ])
3184+ # 1. addr, 2. hook, 3. chainname
3185+ try :
3186+ parm = what .split ("#" )
3187+ tbl = what1 .split ("-" )
3188+ self .TABLES [self .TAB_FIREWALL ]['view' ].filterByChain (what2 , tbl [0 ], tbl [1 ], parm [2 ], parm [1 ])
3189+ except Exception as e :
3190+ print ("Exception loading firewall chains:" , what , "," , what1 , "-" , e )
31733191 return
31743192
31753193 if section == self .FILTER_TREE_APPS :
0 commit comments