@@ -85,34 +85,6 @@ def _parse_permission_rules(self, perms):
8585 rule_list .append (rule_group )
8686 return rule_list , resources
8787
88- def _parse_permission_rules_old (self , perms ):
89- """Legacy update parser path kept for parity verification."""
90- rule_list = []
91- resources = []
92- for api_group , res_actions in perms .items ():
93- for res in res_actions :
94- for resource , verbs in res .items ():
95- if resource not in resources :
96- resources .append (resource .strip ())
97- rule_group = {}
98- if api_group == "non-apigroup" :
99- if "nonResourceURL" in resource :
100- parts = resource .split ("nonResourceURL::" )
101- non_res = parts [1 ].strip () if len (parts ) > 1 else parts [0 ].strip ()
102- rule_group ["nonResourceURLs" ] = [non_res ]
103- rule_group ["verbs" ] = verbs
104- else :
105- rule_group ["apiGroups" ] = [api_group ]
106- rule_group ["verbs" ] = verbs
107- if "resourceName" in resource :
108- parts = resource .split ("/resourceName::" )
109- rule_group ["resources" ] = [parts [0 ].strip ()]
110- rule_group ["resourceNames" ] = [parts [1 ].strip ()]
111- else :
112- rule_group ["resources" ] = [resource ]
113- rule_list .append (rule_group )
114- return rule_list , resources
115-
11688 def _read_perm_configmap_resources (self , sa , namespace , kubeconfig ):
11789 cfg_map_name = sa + "-perms"
11890 cfg_map_filename = sa + "-perms.txt"
@@ -259,12 +231,6 @@ def _assert_all_resources_parity(self, label, old_resources, new_resources):
259231 f"Only in new: { new_only } "
260232 )
261233
262- def _assert_update_parser_parity (self , perms ):
263- old_rule_list , old_resources = self ._parse_permission_rules_old (perms )
264- new_rule_list , new_resources = self ._parse_permission_rules (perms )
265- self ._assert_rule_parity ("update-parser" , old_rule_list , new_rule_list )
266- self ._assert_all_resources_parity ("update-parser" , old_resources , new_resources )
267-
268234 def _build_consumer_rules_old (self ):
269235 # Read all resources
270236 ruleGroup1 = {}
@@ -685,10 +651,35 @@ def _apply_provider_rbac(self, sa, namespace, kubeconfig):
685651 def _update_rbac (self , permissionfile , sa , namespace , kubeconfig ):
686652 """Add permissions from JSON/YAML file to provider (update command)."""
687653 perms = self ._load_permission_data (permissionfile )
688- old_rule_list , old_resources = self ._parse_permission_rules_old (perms )
654+ # Keep old update parser path inline as source of truth.
655+ old_rule_list = []
656+ old_resources = []
657+ for api_group , res_actions in perms .items ():
658+ for res in res_actions :
659+ for resource , verbs in res .items ():
660+ if resource not in old_resources :
661+ old_resources .append (resource .strip ())
662+ rule_group = {}
663+ if api_group == "non-apigroup" :
664+ if "nonResourceURL" in resource :
665+ parts = resource .split ("nonResourceURL::" )
666+ non_res = parts [1 ].strip () if len (parts ) > 1 else parts [0 ].strip ()
667+ rule_group ["nonResourceURLs" ] = [non_res ]
668+ rule_group ["verbs" ] = verbs
669+ else :
670+ rule_group ["apiGroups" ] = [api_group ]
671+ rule_group ["verbs" ] = verbs
672+ if "resourceName" in resource :
673+ parts = resource .split ("/resourceName::" )
674+ rule_group ["resources" ] = [parts [0 ].strip ()]
675+ rule_group ["resourceNames" ] = [parts [1 ].strip ()]
676+ else :
677+ rule_group ["resources" ] = [resource ]
678+ old_rule_list .append (rule_group )
679+ new_rule_list , new_resources = self ._parse_permission_rules (perms )
689680 if os .getenv ("KUBEPLUS_UPDATE_EQ_CHECK" , "0" ) == "1" :
690- self ._assert_update_parser_parity ( perms )
691- # Keep old update parser path as source of truth.
681+ self ._assert_rule_parity ( "update-parser" , old_rule_list , new_rule_list )
682+ self . _assert_all_resources_parity ( "update- parser" , old_resources , new_resources )
692683 rule_list = old_rule_list
693684 new_resources = old_resources
694685
0 commit comments