Skip to content

Introduce common pagination utility#4732

Open
pritishpai wants to merge 6 commits intomainfrom
chore/pagination_utility
Open

Introduce common pagination utility#4732
pritishpai wants to merge 6 commits intomainfrom
chore/pagination_utility

Conversation

@pritishpai
Copy link
Contributor

@pritishpai pritishpai commented Feb 27, 2026

Changes

Introduce shared pagination utilities in framework/utils.py and refactor all manual raw-API pagination loops to use them, eliminating duplicated boilerplate and reducing the risk of pagination bugs (like the missing pagination that caused customer issues with account groups listing).

Upgrades hatch from 1.9.4 to 1.9.7 across all CI workflows to fix virtualenv.discovery.builtin incompatibility that broke environment creation on runners.

Linked issues

Closes #4731
Related to #4730

Functionality

paginated_fetch_offset -- Generic SCIM-style offset pagination (startIndex/count). Handles page advancement, empty-page termination, and partial-page detection.
paginated_fetch_cursor -- Generic cursor/token-based pagination (page_token/next_page_token). Handles token forwarding and missing-token termination.

Refactored sites
AccountGroupLookup._list_account_groups (workspace_access/groups.py) -- Previously made a single unpaginated API call. Now uses paginated_fetch_offset with deduplication, matching the pagination logic in the SDK's AccountGroupsAPI.list(). This fixes the root cause where not all account groups were fetched for large accounts.
feature_store_listing (workspace_access/generic.py) -- Previously had an inline while True / next_page_token loop. Now delegates to paginated_fetch_cursor.

Tests

  • manually tested
  • added unit tests
  • added integration tests
  • verified on staging environment (screenshot attached)

Introduce paginated_fetch_offset (SCIM startIndex/count) and
paginated_fetch_cursor (token-based) helpers in framework/utils.py
to eliminate duplicated pagination boilerplate across the codebase.
Replace inline pagination loop in AccountGroupLookup._list_account_groups
with the shared paginated_fetch_offset utility, adding proper SCIM
offset pagination and deduplication to the previously unpaginated call.
Replace inline cursor-based pagination loop in feature_store_listing
with the shared paginated_fetch_cursor utility.
Rewrite multi-line list comprehension as for loop (R8923), prefix
unused arguments with underscore (W0613), use implicit booleaness
for empty list checks (C1803).
Hatch 1.9.4 does not cap the virtualenv version, and newer virtualenv
breaks the propose_interpreters API. Hatch 1.9.7 includes the fix.
@pritishpai pritishpai marked this pull request as ready for review February 27, 2026 20:21
@pritishpai pritishpai requested a review from a team as a code owner February 27, 2026 20:21
@codecov
Copy link

codecov bot commented Feb 27, 2026

Codecov Report

❌ Patch coverage is 95.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.78%. Comparing base (d7a1c55) to head (7a4545d).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/databricks/labs/ucx/workspace_access/groups.py 83.33% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4732      +/-   ##
==========================================
- Coverage   87.95%   87.78%   -0.17%     
==========================================
  Files         123      123              
  Lines       17570    17597      +27     
  Branches     3714     3717       +3     
==========================================
- Hits        15453    15448       -5     
- Misses       1425     1459      +34     
+ Partials      692      690       -2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

❌ 62/65 passed, 3 failed, 6 skipped, 5h19m49s total

❌ test_some_entitlements[True]: TimeoutError: Timed out after 0:00:10 (2m10.096s)
TimeoutError: Timed out after 0:00:10
[gw2] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions for 1 account groups.
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) starting
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) progress=1(+1)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) finished
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 1 permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 1 permissions for 1/1 groups successfully.
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions for 1 account groups.
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) starting
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) progress=1(+1)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account) finished
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 1 permissions: sdk-zkqcTuWy-ra78c2a742 (workspace) -> sdk-SQT9YjEJ-ra78c2a742 (account)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 1 permissions for 1/1 groups successfully.
[gw2] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_running_real_migrate_groups_job: databricks.sdk.errors.sdk.OperationFailed: failed to reach TERMINATED or SKIPPED, got RunLifeCycleState.INTERNAL_ERROR: Task apply_permissions failed with message: Workload failed, see run output for details. (8m19.791s)
databricks.sdk.errors.sdk.OperationFailed: failed to reach TERMINATED or SKIPPED, got RunLifeCycleState.INTERNAL_ERROR: Task apply_permissions failed with message: Workload failed, see run output for details.
[gw0] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python
20:41 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fbUV/config.yml) doesn't exist.
20:41 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
20:41 INFO [databricks.labs.ucx.installer.hms_lineage] HMS lineage init script already exists and enabled
20:41 INFO [databricks.labs.ucx.install] Fetching installations...
20:42 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
20:42 DEBUG [tests.integration.conftest] Waiting for clusters to start...
20:42 DEBUG [tests.integration.conftest] Waiting for clusters to start...
20:42 INFO [databricks.labs.ucx.install] Installing UCX v0.60.2+1120260227204253
20:42 INFO [databricks.labs.ucx.install] Creating ucx schemas...
20:42 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
20:42 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=convert-wasbs-to-adls-gen2-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-tables-ctas
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migration-progress-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-data-reconciliation
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=scan-tables-in-mounts-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=failing
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups-legacy
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables-in-mounts-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assess-workflows
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-hiveserde-tables-in-place-experimental
20:43 INFO [databricks.labs.ucx.install] Creating dashboards...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/progress...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/progress/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fbUV/README for the next steps.
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] ignoring any existing tables inventory; refresh is forced.
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] crawling new set of snapshot data for tables
20:43 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sq63v1ys5] listing tables and views
20:43 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sq63v1ys5.dummy_ttxfxz4mp] fetching table metadata
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] found 1 new records for tables
20:43 DEBUG [databricks.labs.ucx.installer.workflows] starting migrate-groups job: https://DATABRICKS_HOST#job/284669304194731
20:43 INFO [databricks.labs.ucx.installer.workflows] Named parameters for migrate-groups job: None
20:43 INFO [databricks.labs.ucx.installer.workflows] Started migrate-groups job: https://DATABRICKS_HOST#job/284669304194731/runs/223557759019994
20:43 DEBUG [databricks.labs.ucx.installer.workflows] Validating migrate-groups workflow: https://DATABRICKS_HOST#job/284669304194731
20:43 INFO [databricks.labs.ucx.installer.workflows] Identified a run in progress waiting for run completion
20:41 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fbUV/config.yml) doesn't exist.
20:41 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
20:41 INFO [databricks.labs.ucx.installer.hms_lineage] HMS lineage init script already exists and enabled
20:41 INFO [databricks.labs.ucx.install] Fetching installations...
20:42 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
20:42 DEBUG [tests.integration.conftest] Waiting for clusters to start...
20:42 DEBUG [tests.integration.conftest] Waiting for clusters to start...
20:42 INFO [databricks.labs.ucx.install] Installing UCX v0.60.2+1120260227204253
20:42 INFO [databricks.labs.ucx.install] Creating ucx schemas...
20:42 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
20:42 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=convert-wasbs-to-adls-gen2-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-tables-ctas
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migration-progress-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-data-reconciliation
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=scan-tables-in-mounts-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=failing
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups-legacy
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables-in-mounts-experimental
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assess-workflows
20:43 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-hiveserde-tables-in-place-experimental
20:43 INFO [databricks.labs.ucx.install] Creating dashboards...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/progress...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
20:43 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/progress/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
20:43 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
20:43 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fbUV/README for the next steps.
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] ignoring any existing tables inventory; refresh is forced.
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] crawling new set of snapshot data for tables
20:43 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sq63v1ys5] listing tables and views
20:43 DEBUG [databricks.labs.ucx.hive_metastore.tables] [hive_metastore.dummy_sq63v1ys5.dummy_ttxfxz4mp] fetching table metadata
20:43 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.dummy_szuu4pw2f.tables] found 1 new records for tables
20:43 DEBUG [databricks.labs.ucx.installer.workflows] starting migrate-groups job: https://DATABRICKS_HOST#job/284669304194731
20:43 INFO [databricks.labs.ucx.installer.workflows] Named parameters for migrate-groups job: None
20:43 INFO [databricks.labs.ucx.installer.workflows] Started migrate-groups job: https://DATABRICKS_HOST#job/284669304194731/runs/223557759019994
20:43 DEBUG [databricks.labs.ucx.installer.workflows] Validating migrate-groups workflow: https://DATABRICKS_HOST#job/284669304194731
20:43 INFO [databricks.labs.ucx.installer.workflows] Identified a run in progress waiting for run completion
20:47 INFO [databricks.labs.ucx.install] Deleting UCX v0.60.2+1120260227204253 from https://DATABRICKS_HOST
20:47 INFO [databricks.labs.ucx.install] Deleting inventory database dummy_szuu4pw2f
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=106388419587992, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=110015367477618, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=1060721090524031, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=309159001282149, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=284669304194731, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=565299622269932, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=987071596034619, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=326090444789599, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=578070430482571, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=351965040002604, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=68997096080828, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=982611440562418, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=120502173562585, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=724144478351794, as it is no longer needed
20:47 INFO [databricks.labs.ucx.installer.workflows] Removing job_id=418577398618174, as it is no longer needed
20:47 INFO [databricks.labs.ucx.install] Deleting cluster policy
20:47 INFO [databricks.labs.ucx.install] Deleting secret scope
20:47 INFO [databricks.labs.ucx.install] UnInstalling UCX complete
[gw0] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_permission_for_files_anonymous_func_migration_api: TimeoutError: Timed out after 0:02:00 (11m24.657s)
TimeoutError: Timed out after 0:02:00
[gw2] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions for 1 account groups.
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) starting
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) progress=2(+2)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) finished
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 2 permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 2 permissions for 1/1 groups successfully.
20:48 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-86dd10edfbc12967ba7ae24c5ac648e4-ea5758b28d910b26-00]
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions for 1 account groups.
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) starting
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) progress=2(+2)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrating permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account) finished
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 2 permissions: sdk-jimm9kWi-ra78c2a742 (workspace) -> sdk-ip3sXX5B-ra78c2a742 (account)
20:36 INFO [databricks.labs.ucx.workspace_access.groups] Migrated 2 permissions for 1/1 groups successfully.
20:48 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object ANY FILE : TEMPORARILY_UNAVAILABLE: The service at /api/2.0/sql-acl/get-permissions is taking too long to process your request. Please try again later or try a faster operation. [TraceId: 00-86dd10edfbc12967ba7ae24c5ac648e4-ea5758b28d910b26-00]
[gw2] linux -- Python 3.10.19 /home/runner/work/ucx/ucx/.venv/bin/python

Running from acceptance #8972

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Introduce a common pagination utility for raw API calls

1 participant