Skip to content

Commit ad02beb

Browse files
committed
..
1 parent f694c39 commit ad02beb

File tree

5 files changed

+24
-31
lines changed

5 files changed

+24
-31
lines changed

src/databricks/labs/ucx/hive_metastore/grants.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from functools import partial
66

77
from databricks.sdk.service.catalog import SchemaInfo, TableInfo
8+
89
from databricks.labs.ucx.framework.crawlers import CrawlerBase
910
from databricks.labs.ucx.framework.parallel import Threads
1011
from databricks.labs.ucx.hive_metastore.tables import TablesCrawler

src/databricks/labs/ucx/workspace_access/groups.py

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -270,16 +270,23 @@ def ws_local_group_deletion_recovery(self):
270270
f"In total, {len(source_groups)} temporary groups found, which do not have corresponding workspace groups"
271271
)
272272

273-
for source_group in source_groups:
273+
for backup_group in source_groups:
274274
ws_local_group = self._ws.groups.create(
275-
display_name=source_group.display_name.removeprefix(self._backup_group_prefix),
276-
meta=source_group.meta,
277-
entitlements=source_group.entitlements,
278-
roles=source_group.roles,
279-
members=source_group.members,
275+
display_name=backup_group.display_name.removeprefix(self._backup_group_prefix),
276+
meta=backup_group.meta,
277+
entitlements=backup_group.entitlements,
278+
roles=backup_group.roles,
279+
members=backup_group.members,
280280
)
281281
self._workspace_groups.append(ws_local_group)
282-
self._migration_state.add(ws_local_group)
282+
283+
account_groups = [_ for _ in self._account_groups if _.display_name == ws_local_group.display_name]
284+
if len(account_groups) == 0:
285+
logger.error(f"Cannot find matching group on account level: {ws_local_group.display_name}")
286+
continue
287+
288+
account_group = account_groups[0]
289+
self._migration_state.add(ws_local_group, backup_group, account_group)
283290
logger.info(f"Workspace-local group {ws_local_group} successfully recovered")
284291

285-
logger.info("Workspace-local group deletion recovery completed")
292+
logger.info("Workspace-local group recovery completed")

tests/integration/workspace_access/test_groups.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
from databricks.labs.ucx.config import GroupsConfig
77
from databricks.labs.ucx.hive_metastore import GrantsCrawler, TablesCrawler
88
from databricks.labs.ucx.workspace_access.generic import (
9-
GenericPermissionsSupport,
10-
listing_wrapper,
9+
GenericPermissionsSupport, Listing,
1110
)
1211
from databricks.labs.ucx.workspace_access.groups import GroupManager
1312
from databricks.labs.ucx.workspace_access.manager import PermissionManager
@@ -88,11 +87,9 @@ def test_replace_workspace_groups_with_account_groups(
8887
group_info = group_manager.migration_state.get_by_workspace_group_name(ws_group.display_name)
8988

9089
generic_permissions = GenericPermissionsSupport(
91-
ws, [listing_wrapper(ws.cluster_policies.list, "policy_id", "cluster-policies")]
92-
)
93-
permission_manager = PermissionManager(
94-
sql_backend, inventory_schema, [generic_permissions], {"cluster-policies": generic_permissions}
90+
ws, [Listing(ws.cluster_policies.list, "policy_id", "cluster-policies")]
9591
)
92+
permission_manager = PermissionManager(sql_backend, inventory_schema, [generic_permissions])
9693
tables = TablesCrawler(sql_backend, inventory_schema)
9794
grants = GrantsCrawler(tables)
9895

@@ -167,10 +164,8 @@ def test_recover_from_ws_local_deletion(ws, make_ucx_group):
167164
group_manager = GroupManager(ws, GroupsConfig(auto=True))
168165
group_manager.prepare_groups_in_environment()
169166

170-
migration_state = group_manager.migration_groups_provider
171-
172167
recovered_state = {}
173-
for gi in migration_state.groups:
168+
for gi in group_manager.migration_state.groups:
174169
recovered_state[gi.workspace.display_name] = gi.workspace
175170

176171
assert sorted([member.display for member in ws_group.members]) == sorted(

tests/unit/workspace_access/test_base.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
)
1111
from databricks.labs.ucx.workspace_access.groups import (
1212
GroupMigrationState,
13-
MigrationGroupInfo,
1413
)
1514

1615

tests/unit/workspace_access/test_tacl.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,7 @@ def test_tacl_applier(mocker):
5151
),
5252
)
5353
migration_state = GroupMigrationState()
54-
migration_state.add(
55-
MigrationGroupInfo(
56-
workspace=Group(display_name="abc"),
57-
backup=Group(display_name="tmp-backup-abc"),
58-
account=Group(display_name="account-abc"),
59-
)
60-
)
54+
migration_state.add(Group(display_name="abc"), Group(display_name="tmp-backup-abc"), Group(display_name="account-abc"))
6155
task = table_acl_support.get_apply_task(permissions, migration_state, "backup")
6256
task()
6357

@@ -83,12 +77,9 @@ def test_tacl_applier_no_target_principal(mocker):
8377
)
8478
migration_state = GroupMigrationState()
8579
migration_state.add(
86-
MigrationGroupInfo(
87-
workspace=Group(display_name="abc"),
88-
backup=Group(display_name="tmp-backup-abc"),
89-
account=Group(display_name="account-abc"),
90-
)
91-
)
80+
Group(display_name="abc"),
81+
Group(display_name="tmp-backup-abc"),
82+
Group(display_name="account-abc"))
9283
task = table_acl_support.get_apply_task(permissions, migration_state, "backup")
9384
assert task is None
9485

0 commit comments

Comments
 (0)