Skip to content

Commit d221a20

Browse files
committed
simplify logic and add documentation
1 parent 07343b7 commit d221a20

File tree

4 files changed

+18
-23
lines changed

4 files changed

+18
-23
lines changed

docs/local-group-migration.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,4 +238,14 @@ ws_group_names = {_.display_name for _ in workspace_groups}
238238
ac_group_names = {_.display_name for _ in account_groups}
239239
group_names = list(ws_group_names.intersection(ac_group_names))
240240
print(f"Found {len(group_names)} groups to migrate")
241+
```
242+
243+
2. Recover workspace-local groups from backup groups from within a debug notebook:
244+
245+
```python
246+
from databricks.labs.ucx.workspace_access.groups import GroupManager
247+
from databricks.labs.ucx.config import GroupsConfig
248+
249+
group_manager = GroupManager(ws, GroupsConfig(auto=True))
250+
group_manager.ws_local_group_deletion_recovery()
241251
```

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,6 @@ def delete_backup_groups(self):
274274
logger.info("Backup groups were successfully deleted")
275275

276276
def ws_local_group_deletion_recovery(self):
277-
self._workspace_groups = self._list_workspace_groups()
278277
workspace_groups = {_.display_name for _ in self._workspace_groups}
279278
source_groups = [
280279
g
@@ -297,9 +296,6 @@ def ws_local_group_deletion_recovery(self):
297296
)
298297
self._workspace_groups.append(ws_local_group)
299298
self._migration_state.add(ws_local_group)
300-
logger.info(f"Workspace-local group {ws_local_group} successfully created")
301-
302-
self._ws.groups.delete(source_group.id)
303-
logger.info(f"Temporary workspace-local group {ws_local_group} successfully deleted")
299+
logger.info(f"Workspace-local group {ws_local_group} successfully recovered")
304300

305301
logger.info("Workspace-local group deletion recovery completed")

tests/integration/conftest.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,3 @@ def inner():
7777
return ws_group, acc_group
7878

7979
return inner
80-
81-
82-
@pytest.fixture
83-
def make_ucx_recovery_group(make_random, make_group, make_acc_group, user_pool):
84-
def inner(prefix="db-temp-"):
85-
display_name = f"ucx_{make_random(4)}"
86-
members = [_.id for _ in random.choices(user_pool, k=random.randint(1, 40))]
87-
ws_group = make_group(display_name=display_name, members=members, entitlements=["allow-cluster-create"])
88-
backup_group = make_group(
89-
display_name=prefix + display_name, members=members, entitlements=["allow-cluster-create"]
90-
)
91-
make_acc_group(display_name=display_name, members=members)
92-
return ws_group, backup_group
93-
94-
return inner

tests/integration/workspace_access/test_groups.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,22 @@ def test_id_validity(ws: WorkspaceClient, make_ucx_group):
5454
assert acc_group.id == manager._get_group(acc_group.display_name, "account").id
5555

5656

57-
def test_recover_from_ws_local_deletion(ws, make_ucx_recovery_group):
58-
ws_group, backup_group = make_ucx_recovery_group()
59-
ws_group_two, backup_group_two = make_ucx_recovery_group()
57+
def test_recover_from_ws_local_deletion(ws, make_ucx_group):
58+
ws_group, _ = make_ucx_group()
59+
ws_group_two, _ = make_ucx_group()
6060

6161
group_manager = GroupManager(ws, GroupsConfig(auto=True))
6262
group_manager.prepare_groups_in_environment()
6363

64+
# simulate disaster
6465
ws.groups.delete(ws_group.id)
6566
ws.groups.delete(ws_group_two.id)
6667

68+
# recovery run from a debug notebook
69+
group_manager = GroupManager(ws, GroupsConfig(auto=True))
6770
group_manager.ws_local_group_deletion_recovery()
6871

72+
# normal run after from a job
6973
group_manager = GroupManager(ws, GroupsConfig(auto=True))
7074
group_manager.prepare_groups_in_environment()
7175

0 commit comments

Comments
 (0)