Skip to content

New dashboard: group migration, showing groups that failed to migrate.#2333

Merged
nfx merged 6 commits intomainfrom
group-migration-dashboard
Jul 31, 2024
Merged

New dashboard: group migration, showing groups that failed to migrate.#2333
nfx merged 6 commits intomainfrom
group-migration-dashboard

Conversation

@asnare
Copy link
Copy Markdown
Contributor

@asnare asnare commented Jul 31, 2024

Changes

This PR introduces a new dashboard focused on group migration. It currently has a widget that displays messages relating to groups that failed to migrate properly as part of the migrate-groups-experimental workflow.

Linked issues

Resolves #1914.

Functionality

  • New dashboard: UCX Migration (Groups)

Tests

  • manually tested
  • verified on staging environment (screenshot to be attached)

@asnare asnare added enhancement New feature or request migrate/groups Corresponds to Migrate Groups Step of go/uc/upgrade labels Jul 31, 2024
@asnare asnare self-assigned this Jul 31, 2024
@asnare
Copy link
Copy Markdown
Contributor Author

asnare commented Jul 31, 2024

Screenshots…

The dashboard overview:
image

The dashboard, with no failures detected:
image

The dashboard, with a simulated failure: (Removed, new screenshot below.)

@asnare asnare marked this pull request as ready for review July 31, 2024 16:25
@asnare asnare requested review from a team and gcwang-db July 31, 2024 16:25
@asnare
Copy link
Copy Markdown
Contributor Author

asnare commented Jul 31, 2024

Need to verify that logs are processed (and therefore visible to the dashboard) for failed tasks; the simulation above just logged instead of failing the task.

@asnare
Copy link
Copy Markdown
Contributor Author

asnare commented Jul 31, 2024

Need to verify that logs are processed (and therefore visible to the dashboard) for failed tasks; the simulation above just logged instead of failing the task.

This has been verified; logs for failed tasks are also processed.

@asnare
Copy link
Copy Markdown
Contributor Author

asnare commented Jul 31, 2024

Updated screenshot, showing a failure:
image

@asnare asnare requested review from JCZuurmond and nfx July 31, 2024 17:48
@github-actions
Copy link
Copy Markdown

❌ 23/25 passed, 11 flaky, 2 failed, 1h52m34s total

❌ test_experimental_permissions_migration_for_group_with_same_name: databricks.labs.blueprint.parallel.ManyError: Detected 6 failures: TimeoutError: Timed out after 0:04:00 (11m36.265s)
databricks.labs.blueprint.parallel.ManyError: Detected 6 failures: TimeoutError: Timed out after 0:04:00
[gw0] linux -- Python 3.10.14 /home/runner/work/ucx/ucx/.venv/bin/python
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='8381259091058859', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group ucx-axgt-ra78a4e79f: https://DATABRICKS_HOST#setting/accounts/groups/502614094477736
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='502614094477736', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Account group ucx-axgt-ra78a4e79f: https://accounts.CLOUD_ENVdatabricks.net/users/groups/956703125232101/members
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[], external_id=None, groups=[], id='956703125232101', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Cluster policy: https://DATABRICKS_HOST#setting/clusters/cluster-policies/view/001A5473F85F3A04
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster policy fixture: CreatePolicyResponse(policy_id='001A5473F85F3A04')
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster_policy permissions fixture: 001A5473F85F3A04 [group_name admins CAN_USE] -> [group_name ucx-axgt-ra78a4e79f CAN_USE]
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sitc8: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sitc8
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sitc8', metastore_id=None, name='ucx_sitc8', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_sitc8.ucx_tgvwy: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sitc8/ucx_tgvwy
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added table fixture: TableInfo(access_point=None, browse_only=None, catalog_name='hive_metastore', columns=None, comment=None, created_at=None, created_by=None, data_access_configuration_id=None, data_source_format=<DataSourceFormat.DELTA: 'DELTA'>, deleted_at=None, delta_runtime_properties_kvpairs=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, encryption_details=None, full_name='hive_metastore.ucx_sitc8.ucx_tgvwy', metastore_id=None, name='ucx_tgvwy', owner=None, pipeline_id=None, properties={'RemoveAfter': '2024073119'}, row_filter=None, schema_name='ucx_sitc8', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_sitc8/ucx_tgvwy', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sb8pj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sb8pj
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sb8pj', metastore_id=None, name='ucx_sb8pj', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
17:19 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/config.yml) doesn't exist.
17:19 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
17:19 INFO [databricks.labs.ucx.installer.hms_lineage] HMS Lineage feature creates one system table named system.hms_to_uc_migration.table_access and helps in your migration process from HMS to UC by allowing you to programmatically query HMS lineage data.
17:19 INFO [databricks.labs.ucx.install] Fetching installations...
17:20 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
17:20 DEBUG [tests.integration.conftest] Waiting for clusters to start...
17:22 DEBUG [tests.integration.conftest] Waiting for clusters to start...
17:22 INFO [databricks.labs.ucx.install] Installing UCX v0.31.1+820240731172231
17:22 INFO [databricks.labs.ucx.install] Creating ucx schemas...
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-data-reconciliation
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-hiveserde-tables-in-place-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables-in-mounts-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=failing
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-tables-ctas
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=experimental-workflow-linter
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=scan-tables-in-mounts-experimental
17:22 INFO [databricks.labs.ucx.install] Creating dashboards...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 CRITICAL [databricks.labs.blueprint.parallel] All 'installing dashboards' tasks failed!!!
17:27 ERROR [databricks.labs.blueprint.parallel] installing components task failed: Detected 6 failures: TimeoutError: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 516, in _create_database_and_dashboards
    Threads.strict("installing dashboards", list(self._get_create_dashboard_tasks()))
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 63, in strict
    raise ManyError(errs)
databricks.labs.blueprint.parallel.ManyError: Detected 6 failures: TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:04:38.564680
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='8381259091058859', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group ucx-axgt-ra78a4e79f: https://DATABRICKS_HOST#setting/accounts/groups/502614094477736
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='502614094477736', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Account group ucx-axgt-ra78a4e79f: https://accounts.CLOUD_ENVdatabricks.net/users/groups/956703125232101/members
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[], external_id=None, groups=[], id='956703125232101', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Cluster policy: https://DATABRICKS_HOST#setting/clusters/cluster-policies/view/001A5473F85F3A04
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster policy fixture: CreatePolicyResponse(policy_id='001A5473F85F3A04')
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster_policy permissions fixture: 001A5473F85F3A04 [group_name admins CAN_USE] -> [group_name ucx-axgt-ra78a4e79f CAN_USE]
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sitc8: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sitc8
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sitc8', metastore_id=None, name='ucx_sitc8', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_sitc8.ucx_tgvwy: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sitc8/ucx_tgvwy
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added table fixture: TableInfo(access_point=None, browse_only=None, catalog_name='hive_metastore', columns=None, comment=None, created_at=None, created_by=None, data_access_configuration_id=None, data_source_format=<DataSourceFormat.DELTA: 'DELTA'>, deleted_at=None, delta_runtime_properties_kvpairs=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, encryption_details=None, full_name='hive_metastore.ucx_sitc8.ucx_tgvwy', metastore_id=None, name='ucx_tgvwy', owner=None, pipeline_id=None, properties={'RemoveAfter': '2024073119'}, row_filter=None, schema_name='ucx_sitc8', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_sitc8/ucx_tgvwy', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
17:19 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sb8pj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sb8pj
17:19 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sb8pj', metastore_id=None, name='ucx_sb8pj', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
17:19 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/config.yml) doesn't exist.
17:19 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
17:19 INFO [databricks.labs.ucx.installer.hms_lineage] HMS Lineage feature creates one system table named system.hms_to_uc_migration.table_access and helps in your migration process from HMS to UC by allowing you to programmatically query HMS lineage data.
17:19 INFO [databricks.labs.ucx.install] Fetching installations...
17:20 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
17:20 DEBUG [tests.integration.conftest] Waiting for clusters to start...
17:22 DEBUG [tests.integration.conftest] Waiting for clusters to start...
17:22 INFO [databricks.labs.ucx.install] Installing UCX v0.31.1+820240731172231
17:22 INFO [databricks.labs.ucx.install] Creating ucx schemas...
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-data-reconciliation
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-hiveserde-tables-in-place-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables-in-mounts-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=failing
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-external-tables-ctas
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups-experimental
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=experimental-workflow-linter
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
17:22 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=scan-tables-in-mounts-experimental
17:22 INFO [databricks.labs.ucx.install] Creating dashboards...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration...
17:22 DEBUG [databricks.labs.ucx.install] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:22 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:22 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:23 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:23 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:24 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:24 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:25 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:25 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
17:26 INFO [databricks.labs.ucx.install] Creating dashboard in /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main...
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
17:26 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/interactive'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/groups'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] installing dashboards(PosixPath('/home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/migration/main'), parent_path='/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.fq3i/dashboards') task failed: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 609, in _create_dashboard
    dashboard = Dashboards(self._ws).create_dashboard(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/dashboards.py", line 954, in create_dashboard
    sdk_dashboard = self._ws.lakeview.create(
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/service/dashboards.py", line 714, in create
    res = self._api.do('POST', '/api/2.0/lakeview/dashboards', body=body, headers=headers)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 153, in do
    response = retryable(self._perform)(method,
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 54, in wrapper
    raise err
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 33, in wrapper
    return func(*args, **kwargs)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/core.py", line 264, in _perform
    raise self._make_nicer_error(response=response, **payload) from None
databricks.sdk.errors.platform.InternalError: A database error occurred during import-dashboard-new

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/sdk/retries.py", line 59, in wrapper
    raise TimeoutError(f'Timed out after {timeout}') from last_err
TimeoutError: Timed out after 0:04:00
17:27 CRITICAL [databricks.labs.blueprint.parallel] All 'installing dashboards' tasks failed!!!
17:27 ERROR [databricks.labs.blueprint.parallel] installing components task failed: Detected 6 failures: TimeoutError: Timed out after 0:04:00
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 158, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/install.py", line 516, in _create_database_and_dashboards
    Threads.strict("installing dashboards", list(self._get_create_dashboard_tasks()))
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 63, in strict
    raise ManyError(errs)
databricks.labs.blueprint.parallel.ManyError: Detected 6 failures: TimeoutError: Timed out after 0:04:00
17:27 ERROR [databricks.labs.blueprint.parallel] More than half 'installing components' tasks failed: 0% results available (0/2). Took 0:04:38.564680
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 cluster_policy permissions fixtures
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] removing cluster_policy permissions fixture: 001A5473F85F3A04 [group_name admins CAN_USE] -> [group_name ucx-axgt-ra78a4e79f CAN_USE]
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 cluster policy fixtures
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] removing cluster policy fixture: CreatePolicyResponse(policy_id='001A5473F85F3A04')
17:27 INFO [databricks.labs.ucx.install] Deleting UCX v0.31.1+820240731172231 from https://DATABRICKS_HOST
17:27 INFO [databricks.labs.ucx.install] Deleting inventory database ucx_sb8pj
17:27 INFO [databricks.labs.ucx.install] Deleting jobs
17:27 INFO [databricks.labs.ucx.install] Deleting migrate-groups job_id=977620229008528.
17:27 INFO [databricks.labs.ucx.install] Deleting migrate-tables job_id=956552994696339.
17:27 INFO [databricks.labs.ucx.install] Deleting migrate-data-reconciliation job_id=1050171839784583.
17:27 INFO [databricks.labs.ucx.install] Deleting migrate-external-hiveserde-tables-in-place-experimental job_id=205468612490979.
17:27 INFO [databricks.labs.ucx.install] Deleting migrate-tables-in-mounts-experimental job_id=208425945415802.
17:27 INFO [databricks.labs.ucx.install] Deleting assessment job_id=933502339728544.
17:28 INFO [databricks.labs.ucx.install] Deleting failing job_id=239887211058368.
17:28 INFO [databricks.labs.ucx.install] Deleting migrate-external-tables-ctas job_id=964403412198987.
17:28 INFO [databricks.labs.ucx.install] Deleting migrate-groups-experimental job_id=735363056634726.
17:28 INFO [databricks.labs.ucx.install] Deleting experimental-workflow-linter job_id=428250556780258.
17:28 INFO [databricks.labs.ucx.install] Deleting validate-groups-permissions job_id=469623801081039.
17:28 INFO [databricks.labs.ucx.install] Deleting remove-workspace-local-backup-groups job_id=690403373747846.
17:28 INFO [databricks.labs.ucx.install] Deleting scan-tables-in-mounts-experimental job_id=236136583319382.
17:28 INFO [databricks.labs.ucx.install] Deleting cluster policy
17:28 INFO [databricks.labs.ucx.install] Deleting secret scope
17:28 INFO [databricks.labs.ucx.install] UnInstalling UCX complete
17:28 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace user fixtures
17:28 DEBUG [databricks.labs.ucx.mixins.fixtures] removing workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='8381259091058859', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:28 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 account group fixtures
17:28 DEBUG [databricks.labs.ucx.mixins.fixtures] removing account group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[], external_id=None, groups=[], id='956703125232101', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] ignoring error while account group Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[], external_id=None, groups=[], id='956703125232101', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>]) teardown: None UNAVAILABLE
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace group fixtures
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] removing workspace group fixture: Group(display_name='ucx-axgt-ra78a4e79f', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='502614094477736', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/8381259091058859', type=None, value='8381259091058859')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 0 table fixtures
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 table fixtures
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] removing table fixture: TableInfo(access_point=None, browse_only=None, catalog_name='hive_metastore', columns=None, comment=None, created_at=None, created_by=None, data_access_configuration_id=None, data_source_format=<DataSourceFormat.DELTA: 'DELTA'>, deleted_at=None, delta_runtime_properties_kvpairs=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, encryption_details=None, full_name='hive_metastore.ucx_sitc8.ucx_tgvwy', metastore_id=None, name='ucx_tgvwy', owner=None, pipeline_id=None, properties={'RemoveAfter': '2024073119'}, row_filter=None, schema_name='ucx_sitc8', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_sitc8/ucx_tgvwy', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 2 schema fixtures
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] removing schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sitc8', metastore_id=None, name='ucx_sitc8', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
17:31 DEBUG [databricks.labs.ucx.mixins.fixtures] removing schema fixture: SchemaInfo(browse_only=None, catalog_name='hive_metastore', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='hive_metastore.ucx_sb8pj', metastore_id=None, name='ucx_sb8pj', owner=None, properties=None, schema_id=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw0] linux -- Python 3.10.14 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_make_ucx_group_with_names: TimeoutError: Timed out after 0:05:00 (5m23.639s)
TimeoutError: Timed out after 0:05:00
[gw9] linux -- Python 3.10.14 /home/runner/work/ucx/ucx/.venv/bin/python
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='3745583006504314', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:27 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group foo_PAUc: https://DATABRICKS_HOST#setting/accounts/groups/476224285678089
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='foo_PAUc', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='476224285678089', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:27 INFO [databricks.labs.ucx.mixins.fixtures] Account group bar_wt7o: https://accounts.CLOUD_ENVdatabricks.net/users/groups/840642356184546/members
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='bar_wt7o', entitlements=[], external_id=None, groups=[], id='840642356184546', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
[gw9] linux -- Python 3.10.14 /home/runner/work/ucx/ucx/.venv/bin/python
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='3745583006504314', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:27 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group foo_PAUc: https://DATABRICKS_HOST#setting/accounts/groups/476224285678089
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='foo_PAUc', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='476224285678089', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:27 INFO [databricks.labs.ucx.mixins.fixtures] Account group bar_wt7o: https://accounts.CLOUD_ENVdatabricks.net/users/groups/840642356184546/members
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='bar_wt7o', entitlements=[], external_id=None, groups=[], id='840642356184546', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace user fixtures
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] removing workspace user fixture: User(active=True, display_name='[email protected]', emails=[ComplexValue(display=None, primary=True, ref=None, type='work', value='[email protected]')], entitlements=[], external_id=None, groups=[], id='3745583006504314', name=Name(family_name=None, given_name='[email protected]'), roles=[], schemas=[<UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_USER: 'urn:ietf:params:scim:schemas:core:2.0:User'>, <UserSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_EXTENSION_WORKSPACE_2_0_USER: 'urn:ietf:params:scim:schemas:extension:workspace:2.0:User'>], user_name='[email protected]')
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 account group fixtures
17:27 DEBUG [databricks.labs.ucx.mixins.fixtures] removing account group fixture: Group(display_name='bar_wt7o', entitlements=[], external_id=None, groups=[], id='840642356184546', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
17:33 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace group fixtures
17:33 DEBUG [databricks.labs.ucx.mixins.fixtures] removing workspace group fixture: Group(display_name='foo_PAUc', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='476224285678089', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/3745583006504314', type=None, value='3745583006504314')], meta=ResourceMeta(resource_type='WorkspaceGroup'), roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])

Flaky tests:

  • 🤪 test_compare_remote_local_install_versions (5m14.79s)
  • 🤪 test_installation_stores_install_state_keys (8m7.416s)
  • 🤪 test_installation_with_dependency_upload (5m24.248s)
  • 🤪 test_installation_when_dashboard_is_trashed (8m34.166s)
  • 🤪 test_job_cluster_policy (8m34.795s)
  • 🤪 test_installation_when_dashboard_id_is_invalid[invalid-dashboard-id] (8m38.355s)
  • 🤪 test_repair_run_workflow_job (8m39.491s)
  • 🤪 test_installation_when_dashboard_id_is_invalid[01ef4d7b294112968fa07ffae17dd55f] (4m42.57s)
  • 🤪 test_installation_when_dashboard_id_is_invalid[] (4m42.088s)
  • 🤪 test_installation_deletes_redash_dashboard_when_upgrading_to_lakeview (4m45.777s)
  • 🤪 test_running_real_remove_backup_groups_job (9m53.872s)

Running from acceptance #4992

Prerequisites for group migration are:

- The assessment workflow has completed.
- For each workspace group a corresponding account-level group must exist.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention the name mapping capabilities, suffix/prefix/id

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@FastLee: In #2344 (commit 5627801) I've updated this to mention that there are different strategies, but to keep things brief it's just a reference to the documentation.

Copy link
Copy Markdown
Collaborator

@nfx nfx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@nfx nfx merged commit cdb7709 into main Jul 31, 2024
@nfx nfx deleted the group-migration-dashboard branch July 31, 2024 18:59
nfx pushed a commit that referenced this pull request Aug 2, 2024
## Changes

This PR updates the dashboard for group migration:

 - The documentation widgets have been adjusted.
- The failed-migration widget now displays formatted information about
the failure, and links to the failed job run.
 - Only failures from the latest workflow run (with logs) are displayed.

### Linked issues

Improves upon #2333.
Relates to #1914.

### Functionality

 - Updated dashboard: _UCX Migration (Groups)_

### Tests

 - [x] manually tested
 - [x] verified on staging environment (screenshot attached)
nfx added a commit that referenced this pull request Aug 2, 2024
* Added troubleshooting guide for self-signed SSL cert related error ([#2346](#2346)). In this release, we have added a troubleshooting guide to the README file to address a specific error that may occur when connecting from a local machine to a Databricks Account and Workspace using a web proxy and self-signed SSL certificate. This error, SSLCertVerificationError, can prevent UCX from connecting to the Account and Workspace. To resolve this issue, users can now set the `REQUESTS_CA_BUNDLE` and `CURL_CA_BUNDLE` environment variables to force the requests library to set `verify=False`, and set the `SSL_CERT_DIR` env var pointing to the proxy CA cert for the urllib3 library. This guide will help users understand and resolve this error, making it easier to connect to Databricks Accounts and Workspaces using a web proxy and self-signed SSL certificate.
* Code Compatibility Dashboard: Fix broken links ([#2347](#2347)). In this release, we have addressed and resolved two issues in the Code Compatibility Dashboard of the UCX Migration (Main) project, enhancing its overall usability. Previously, the Markdown panel contained a broken link to the workflow due to an incorrect anchor, and the links in the table widget to the workflow and task definitions did not render correctly. These problems have been rectified, and the dashboard has been manually tested and verified in a staging environment. Additionally, we have updated the `invisibleColumns` section in the SQL file by changing the `fieldName` attribute to 'name', which will now display the `workflow_id` as a link. Before and after screenshots have been provided for visual reference. The corresponding workflow is now referred to as "Jobs Static Code Analysis Workflow".
* Filter out missing import problems for imports within a try-except clause with ImportError ([#2332](#2332)). This release introduces changes to handle missing import problems within a try-except clause that catches ImportError. A new method, `_filter_import_problem_in_try_except`, has been added to filter out import-not-found issues when they occur in such a clause, preventing unnecessary build failures. The `_register_import` method now returns an Iterable[DependencyProblem] instead of yielding problems directly. Supporting classes and methods, including Dependency, DependencyGraph, and DependencyProblem from the databricks.labs.ucx.source_code.graph module, as well as FileLoader and PythonCodeAnalyzer from the databricks.labs.ucx.source_code.notebooks.cells module, have been added. The ImportSource.extract_from_tree method has been updated to accept a DependencyProblem object as an argument. Additionally, a new test case has been included for the scenario where a failing import in a try-except clause goes unreported. Issue [#1705](#1705) has been resolved, and unit tests have been added to ensure proper functionality.
* Fixed `report-account-compatibility` cli command docstring ([#2340](#2340)). In this release, we have updated the `report-account-compatibility` CLI command's docstring to accurately reflect its functionality, addressing a previous issue where it inadvertently duplicated the `sync-workspace-info` command's description. This command now provides a clear and concise explanation of its purpose: "Report compatibility of all workspaces available in the account." Upon execution, it generates a readiness report for the account, specifically focusing on workspaces where ucx is installed. This enhancement improves the clarity of the CLI's functionality for software engineers, enabling them to understand and effectively utilize the `report-account-compatibility` command.
* Fixed broken table migration workflow links in README ([#2286](#2286)). In this release, we have made significant improvements to the README file of our open-source library, including fixing broken links and adding a mermaid flowchart to demonstrate the table migration workflows. The table migration workflow has been renamed to the table migration process, which includes migrating Delta tables, non-Delta tables, external tables, and views. Two optional workflows have been added for migrating HiveSerDe tables in place and for migrating external tables using CTAS. Additionally, the commands related to table migration have been updated, with the table migration workflow being renamed to the table migration process. These changes are aimed at providing a more comprehensive understanding of the table migration process and enhancing the overall user experience.
* Fixed dashboard queries fail when default catalog is not `hive_metastore` ([#2278](#2278)). In this release, we have addressed an issue where dashboard queries fail when the default catalog is not set to `hive_metastore`. This has been achieved by modifying the existing `databricks labs ucx install` command to always include the `hive_metastore` namespace in dashboard queries. Additionally, the code has been updated to add the `hive_metastore` namespace to the `DashboardMetadata` object used in creating a dashboard from SQL queries in a folder, ensuring queries are executed in the correct database. The commit also includes modifications to the `test_install.py` unit test file to ensure the installation process correctly handles specific configurations related to the `ucx` namespace for managing data storage and retrieval. The changes have been manually tested and verified on a staging environment.
* Improve group migration error reporting ([#2344](#2344)). This PR introduces enhancements to the group migration dashboard, focusing on improved error reporting and a more informative user experience. The documentation widgets have been fine-tuned, and the failed-migration widget now provides formatted failure information with a link to the failed job run. The dashboard will display only failures from the latest workflow run, complete with logs. A new link to the job list has been added in the [workflows](/jobs) section of the documentation to assist users in identifying and troubleshooting issues. Additionally, the SQL query for retrieving group migration failure information has been refactored, improving readability and extracting relevant data using regular expressions. The changes have been tested and verified on the staging environment, providing clearer and more actionable insights during group migrations. The PR is related to previous work in [#2333](#2333) and [#1914](#1914), with updates to the UCX Migration (Groups) dashboard, but no new methods have been added.
* Improve type checking in cli command ([#2335](#2335)). This release introduces enhanced type checking in the command line interface (CLI) of our open-source library, specifically in the `lint_local_code` function of the `cli.py` file. By utilizing a newly developed local code linter object, the function now performs more rigorous and accurate type checking for potential issues in the local code. While the functionality remains consistent, this improvement is expected to prevent similar occurrences like issue [#2221](#2221), ensuring more robust and reliable code. This change underscores our commitment to delivering a high-quality, efficient, and developer-friendly library.
* Lint dependencies in context ([#2236](#2236)). The `InheritedContext` class has been introduced to gather code fragments from parent files or notebooks during linting of child files or notebooks, addressing issues [#2155](#2155), [#2156](#2156), and [#2221](#2221). This new feature includes the addition of the `InheritedContext` class, with methods for building instances from a route of dependencies, appending other `InheritedContext` instances, and finalizing them for use with linting. The `DependencyGraph` class has been updated to support the new functionality, and various classes, methods, and functions for handling the linter context have been added or updated. Unit, functional, and integration tests have been added to ensure the correct functioning of the changes, which improve the linting functionality by allowing it to consider the broader context of the codebase.
* Make ucx pylsp plugin configurable ([#2280](#2280)). This commit introduces the ability to configure the ucx pylsp plugin with cluster information, which can be provided either in a file or by a client and is managed by the pylsp infrastructure. The Spark Connect linter is now only applied to UC Shared clusters, as Single-User clusters run in Spark Classic mode. A new entry point `pylsp_ucx` has been added to the pylsp configuration file. The changes affect the pylsp plugin configuration and the application of the Spark Connect linter. Unit tests and manual testing have been conducted, but integration tests and verification on a staging environment are not included in this release.
* New dashboard: group migration, showing groups that failed to migrate ([#2333](#2333)). In this release, we have developed a new dashboard for monitoring group migration in the UCX Migration (Groups) workspace. This dashboard includes a widget displaying messages related to groups that failed to migrate during the `migrate-groups-experimental` workflow, aiding users in identifying and addressing migration issues. The group migration process consists of several steps, including renaming workspace groups, provisioning account-level groups, and replicating permissions. The release features new methods for displaying and monitoring migration-related messages, as well as links to documentation and workflows for assessing, validating, and removing workspace-level groups post-migration. The new dashboard is currently not connected to the existing system, but it has undergone manual testing and verification on the staging environment. The changes include the addition of a new SQL query file to implement the logic for fetching group migration failures and a new Markdown file displaying the Group Migration Failures section.
* Support spaces in run cmd args ([#2330](#2330)). The recent commit resolves an issue where the system had trouble handling spaces in command-line arguments when running subprocesses. The previous implementation only accepted a full command line, which it would split on spaces, causing problems when the command line contained arguments with spaces. The new implementation supports argument lists, which are passed `as is` to `Popen`, allowing for proper handling of command lines with spaces. This change is incorporated in the `run_command` function of the `utils.py` file and the `_install_pip` method of the `PythonLibraryResolver` class. The `shlex.join()` function has been replaced with direct string formatting for increased flexibility. The feature is intended for use with the `PythonLibraryResolver` class and is co-authored by Eric Vergnaud and Andrew Snare. Integration tests have been enabled to ensure the proper functioning of the updated code.
* Updated error messages for SparkConnect linter ([#2348](#2348)). The SparkConnect linter's error messages have been updated to improve clarity and precision. The term `UC Shared clusters` has been replaced with `Unity Catalog clusters in Shared access mode` throughout the codebase, affecting messages related to various unsupported functionalities or practices on these clusters. These changes include warnings about direct Spark log level setting, accessing the Spark Driver JVM or its logger, using `sc`, and employing RDD APIs. This revision enhances user experience by providing more accurate and descriptive error messages, enabling them to better understand and address the issues in their code. The functionality of the linter remains unchanged.
* Updated sqlglot requirement from <25.8,>=25.5.0 to >=25.5.0,<25.9 ([#2279](#2279)). In this update, we have updated the required version range of the `sqlglot` dependency in the 'pyproject.toml' file from 'sqlglot>=25.5.0,<25.8' to 'sqlglot>=25.5.0,<25.9'. This change allows the project to utilize any version of `sqlglot` that is greater than or equal to 25.5.0 and less than 25.9, including the latest version. The update also includes a changelog for the updated version range, sourced from 'sqlglot's official changelog. This changelog includes various bug fixes and new features for several dialects such as BigQuery, DuckDB, and tSQL. Additionally, the parser has undergone some refactors and improvements. The commits section lists the individual commits included in this update.

Dependency updates:

 * Updated sqlglot requirement from <25.8,>=25.5.0 to >=25.5.0,<25.9 ([#2279](#2279)).
@nfx nfx mentioned this pull request Aug 2, 2024
nfx added a commit that referenced this pull request Aug 2, 2024
* Added troubleshooting guide for self-signed SSL cert related error
([#2346](#2346)). In this
release, we have added a troubleshooting guide to the README file to
address a specific error that may occur when connecting from a local
machine to a Databricks Account and Workspace using a web proxy and
self-signed SSL certificate. This error, SSLCertVerificationError, can
prevent UCX from connecting to the Account and Workspace. To resolve
this issue, users can now set the `REQUESTS_CA_BUNDLE` and
`CURL_CA_BUNDLE` environment variables to force the requests library to
set `verify=False`, and set the `SSL_CERT_DIR` env var pointing to the
proxy CA cert for the urllib3 library. This guide will help users
understand and resolve this error, making it easier to connect to
Databricks Accounts and Workspaces using a web proxy and self-signed SSL
certificate.
* Code Compatibility Dashboard: Fix broken links
([#2347](#2347)). In this
release, we have addressed and resolved two issues in the Code
Compatibility Dashboard of the UCX Migration (Main) project, enhancing
its overall usability. Previously, the Markdown panel contained a broken
link to the workflow due to an incorrect anchor, and the links in the
table widget to the workflow and task definitions did not render
correctly. These problems have been rectified, and the dashboard has
been manually tested and verified in a staging environment.
Additionally, we have updated the `invisibleColumns` section in the SQL
file by changing the `fieldName` attribute to 'name', which will now
display the `workflow_id` as a link. Before and after screenshots have
been provided for visual reference. The corresponding workflow is now
referred to as "Jobs Static Code Analysis Workflow".
* Filter out missing import problems for imports within a try-except
clause with ImportError
([#2332](#2332)). This
release introduces changes to handle missing import problems within a
try-except clause that catches ImportError. A new method,
`_filter_import_problem_in_try_except`, has been added to filter out
import-not-found issues when they occur in such a clause, preventing
unnecessary build failures. The `_register_import` method now returns an
Iterable[DependencyProblem] instead of yielding problems directly.
Supporting classes and methods, including Dependency, DependencyGraph,
and DependencyProblem from the databricks.labs.ucx.source_code.graph
module, as well as FileLoader and PythonCodeAnalyzer from the
databricks.labs.ucx.source_code.notebooks.cells module, have been added.
The ImportSource.extract_from_tree method has been updated to accept a
DependencyProblem object as an argument. Additionally, a new test case
has been included for the scenario where a failing import in a
try-except clause goes unreported. Issue
[#1705](#1705) has been
resolved, and unit tests have been added to ensure proper functionality.
* Fixed `report-account-compatibility` cli command docstring
([#2340](#2340)). In this
release, we have updated the `report-account-compatibility` CLI
command's docstring to accurately reflect its functionality, addressing
a previous issue where it inadvertently duplicated the
`sync-workspace-info` command's description. This command now provides a
clear and concise explanation of its purpose: "Report compatibility of
all workspaces available in the account." Upon execution, it generates a
readiness report for the account, specifically focusing on workspaces
where ucx is installed. This enhancement improves the clarity of the
CLI's functionality for software engineers, enabling them to understand
and effectively utilize the `report-account-compatibility` command.
* Fixed broken table migration workflow links in README
([#2286](#2286)). In this
release, we have made significant improvements to the README file of our
open-source library, including fixing broken links and adding a mermaid
flowchart to demonstrate the table migration workflows. The table
migration workflow has been renamed to the table migration process,
which includes migrating Delta tables, non-Delta tables, external
tables, and views. Two optional workflows have been added for migrating
HiveSerDe tables in place and for migrating external tables using CTAS.
Additionally, the commands related to table migration have been updated,
with the table migration workflow being renamed to the table migration
process. These changes are aimed at providing a more comprehensive
understanding of the table migration process and enhancing the overall
user experience.
* Fixed dashboard queries fail when default catalog is not
`hive_metastore`
([#2278](#2278)). In this
release, we have addressed an issue where dashboard queries fail when
the default catalog is not set to `hive_metastore`. This has been
achieved by modifying the existing `databricks labs ucx install` command
to always include the `hive_metastore` namespace in dashboard queries.
Additionally, the code has been updated to add the `hive_metastore`
namespace to the `DashboardMetadata` object used in creating a dashboard
from SQL queries in a folder, ensuring queries are executed in the
correct database. The commit also includes modifications to the
`test_install.py` unit test file to ensure the installation process
correctly handles specific configurations related to the `ucx` namespace
for managing data storage and retrieval. The changes have been manually
tested and verified on a staging environment.
* Improve group migration error reporting
([#2344](#2344)). This PR
introduces enhancements to the group migration dashboard, focusing on
improved error reporting and a more informative user experience. The
documentation widgets have been fine-tuned, and the failed-migration
widget now provides formatted failure information with a link to the
failed job run. The dashboard will display only failures from the latest
workflow run, complete with logs. A new link to the job list has been
added in the [workflows](/jobs) section of the documentation to assist
users in identifying and troubleshooting issues. Additionally, the SQL
query for retrieving group migration failure information has been
refactored, improving readability and extracting relevant data using
regular expressions. The changes have been tested and verified on the
staging environment, providing clearer and more actionable insights
during group migrations. The PR is related to previous work in
[#2333](#2333) and
[#1914](#1914), with updates
to the UCX Migration (Groups) dashboard, but no new methods have been
added.
* Improve type checking in cli command
([#2335](#2335)). This
release introduces enhanced type checking in the command line interface
(CLI) of our open-source library, specifically in the `lint_local_code`
function of the `cli.py` file. By utilizing a newly developed local code
linter object, the function now performs more rigorous and accurate type
checking for potential issues in the local code. While the functionality
remains consistent, this improvement is expected to prevent similar
occurrences like issue
[#2221](#2221), ensuring
more robust and reliable code. This change underscores our commitment to
delivering a high-quality, efficient, and developer-friendly library.
* Lint dependencies in context
([#2236](#2236)). The
`InheritedContext` class has been introduced to gather code fragments
from parent files or notebooks during linting of child files or
notebooks, addressing issues
[#2155](#2155),
[#2156](#2156), and
[#2221](#2221). This new
feature includes the addition of the `InheritedContext` class, with
methods for building instances from a route of dependencies, appending
other `InheritedContext` instances, and finalizing them for use with
linting. The `DependencyGraph` class has been updated to support the new
functionality, and various classes, methods, and functions for handling
the linter context have been added or updated. Unit, functional, and
integration tests have been added to ensure the correct functioning of
the changes, which improve the linting functionality by allowing it to
consider the broader context of the codebase.
* Make ucx pylsp plugin configurable
([#2280](#2280)). This
commit introduces the ability to configure the ucx pylsp plugin with
cluster information, which can be provided either in a file or by a
client and is managed by the pylsp infrastructure. The Spark Connect
linter is now only applied to UC Shared clusters, as Single-User
clusters run in Spark Classic mode. A new entry point `pylsp_ucx` has
been added to the pylsp configuration file. The changes affect the pylsp
plugin configuration and the application of the Spark Connect linter.
Unit tests and manual testing have been conducted, but integration tests
and verification on a staging environment are not included in this
release.
* New dashboard: group migration, showing groups that failed to migrate
([#2333](#2333)). In this
release, we have developed a new dashboard for monitoring group
migration in the UCX Migration (Groups) workspace. This dashboard
includes a widget displaying messages related to groups that failed to
migrate during the `migrate-groups-experimental` workflow, aiding users
in identifying and addressing migration issues. The group migration
process consists of several steps, including renaming workspace groups,
provisioning account-level groups, and replicating permissions. The
release features new methods for displaying and monitoring
migration-related messages, as well as links to documentation and
workflows for assessing, validating, and removing workspace-level groups
post-migration. The new dashboard is currently not connected to the
existing system, but it has undergone manual testing and verification on
the staging environment. The changes include the addition of a new SQL
query file to implement the logic for fetching group migration failures
and a new Markdown file displaying the Group Migration Failures section.
* Support spaces in run cmd args
([#2330](#2330)). The recent
commit resolves an issue where the system had trouble handling spaces in
command-line arguments when running subprocesses. The previous
implementation only accepted a full command line, which it would split
on spaces, causing problems when the command line contained arguments
with spaces. The new implementation supports argument lists, which are
passed `as is` to `Popen`, allowing for proper handling of command lines
with spaces. This change is incorporated in the `run_command` function
of the `utils.py` file and the `_install_pip` method of the
`PythonLibraryResolver` class. The `shlex.join()` function has been
replaced with direct string formatting for increased flexibility. The
feature is intended for use with the `PythonLibraryResolver` class and
is co-authored by Eric Vergnaud and Andrew Snare. Integration tests have
been enabled to ensure the proper functioning of the updated code.
* Updated error messages for SparkConnect linter
([#2348](#2348)). The
SparkConnect linter's error messages have been updated to improve
clarity and precision. The term `UC Shared clusters` has been replaced
with `Unity Catalog clusters in Shared access mode` throughout the
codebase, affecting messages related to various unsupported
functionalities or practices on these clusters. These changes include
warnings about direct Spark log level setting, accessing the Spark
Driver JVM or its logger, using `sc`, and employing RDD APIs. This
revision enhances user experience by providing more accurate and
descriptive error messages, enabling them to better understand and
address the issues in their code. The functionality of the linter
remains unchanged.
* Updated sqlglot requirement from <25.8,>=25.5.0 to >=25.5.0,<25.9
([#2279](#2279)). In this
update, we have updated the required version range of the `sqlglot`
dependency in the 'pyproject.toml' file from 'sqlglot>=25.5.0,<25.8' to
'sqlglot>=25.5.0,<25.9'. This change allows the project to utilize any
version of `sqlglot` that is greater than or equal to 25.5.0 and less
than 25.9, including the latest version. The update also includes a
changelog for the updated version range, sourced from 'sqlglot's
official changelog. This changelog includes various bug fixes and new
features for several dialects such as BigQuery, DuckDB, and tSQL.
Additionally, the parser has undergone some refactors and improvements.
The commits section lists the individual commits included in this
update.

Dependency updates:

* Updated sqlglot requirement from <25.8,>=25.5.0 to >=25.5.0,<25.9
([#2279](#2279)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request migrate/groups Corresponds to Migrate Groups Step of go/uc/upgrade

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Add skipping logic for failed groups in the “apply_permissions” task of the "migrate-groups-experimental" workflow

3 participants