@@ -57,7 +57,7 @@ def parse_input_file() -> Organization:
5757 sys .exit (1 )
5858
5959
60- def update_assets (token , assets , organization ):
60+ def update_assets (token , assets : List [ Asset ] , organization ):
6161 """
6262 Update the assets with the teams specified in the organization.
6363
@@ -71,11 +71,20 @@ def update_assets(token, assets, organization):
7171 logger .info ("Updating assets." )
7272
7373 asset_to_team_map = get_teams_for_assets (organization )
74+ existing_teams : List [str ] = [t .name for t in get_existing_teams (token )]
7475 for asset in assets :
7576 teams_to_update = asset_to_team_map .get (asset .asset_name , [])
7677 if teams_to_update :
78+ excluded_teams = get_different_items_in_lists (teams_to_update , existing_teams )
79+ if excluded_teams :
80+ logger .info (f"Excluding team(s) { excluded_teams } for asset '{ asset .asset_name } '" )
81+ teams_to_update = list (set (teams_to_update ) - set (excluded_teams ))
7782 logger .info (f"Syncing team(s) { teams_to_update } to asset '{ asset .asset_name } '" )
7883 add_teams_to_asset (token , asset , teams_to_update )
84+ else :
85+ if asset .tags and "team" in [t .name for t in asset .tags ]:
86+ logger .info (f"Removing all teams from asset '{ asset .asset_name } '" )
87+ add_teams_to_asset (token , asset , teams_to_update )
7988
8089
8190def get_teams_to_create (topic_names : List [str ], existing_team_names : List [str ]) -> List [str ]:
@@ -132,6 +141,7 @@ def get_desired_teams(assets: List[Asset], organization: Organization) -> List[s
132141 for team_name in desired_teams :
133142 exclude_team = False
134143 for wildcard in wildcards_to_exclude :
144+ wildcard = wildcard .strip ().strip ("*" )
135145 if wildcard and wildcard in team_name :
136146 exclude_team = True
137147 break
0 commit comments