Skip to content

Added external location validation when creating catalogs with create-catalogs-schemas command#1110

Merged
nfx merged 4 commits intomainfrom
feature/create_catalog_validation_1101
Mar 26, 2024
Merged

Added external location validation when creating catalogs with create-catalogs-schemas command#1110
nfx merged 4 commits intomainfrom
feature/create_catalog_validation_1101

Conversation

@FastLee
Copy link
Copy Markdown
Contributor

@FastLee FastLee commented Mar 25, 2024

In this release, we have updated the "create_catalogs_schemas" function in "cli.py" to create UC catalogs and schemas based on the destinations from "create_table_mapping". This function previously used a "CatalogSchema" object created using the workspace client, installation, and prompts, but has been modified to directly use the installation object and call the "create_all_catalogs_schemas" method. We have also added a new feature for catalog validation with commit message 'Feature/create catalog validation 1101', which includes the addition of the "create_all_catalogs_schemas" method in "catalog_schema.py". The new method generates a list of missing catalogs and schemas and creates them using the "WorkspaceClient". Additionally, we have added new imports, modified the constructor of the "CatalogSchema" class, and added new methods for creating catalogs and schemas, and updated the unit tests for "hive_metastore/catalog_schema.py". Overall, these changes improve the robustness and reliability of the tool for working with catalogs and external locations.

Closes #1101

@nfx nfx added the feat/cli CLI commands label Mar 25, 2024
@FastLee FastLee marked this pull request as ready for review March 25, 2024 18:47
@FastLee FastLee requested review from a team and pritishpai March 25, 2024 18:47
@codecov
Copy link
Copy Markdown

codecov bot commented Mar 25, 2024

Codecov Report

Attention: Patch coverage is 93.87755% with 3 lines in your changes are missing coverage. Please review.

Project coverage is 88.81%. Comparing base (123bf71) to head (5eef78e).
Report is 2 commits behind head on main.

Files Patch % Lines
...tabricks/labs/ucx/hive_metastore/catalog_schema.py 93.61% 3 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1110   +/-   ##
=======================================
  Coverage   88.81%   88.81%           
=======================================
  Files          64       64           
  Lines        7134     7162   +28     
  Branches     1284     1290    +6     
=======================================
+ Hits         6336     6361   +25     
- Misses        531      534    +3     
  Partials      267      267           

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

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 25, 2024

❌ 109/113 passed, 3 flaky, 4 failed, 20 skipped, 1h6m59s total

❌ test_migrate_external_table: databricks.labs.blueprint.parallel.ManyError: Detected 1 failures: BadRequest: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration. (18.373s)
databricks.labs.blueprint.parallel.ManyError: Detected 1 failures: BadRequest: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration.
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sqg6r: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sqg6r
14:38 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_sqg6r', metastore_id=None, name='ucx_sqg6r', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw8] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sqg6r: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sqg6r
14:38 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_sqg6r', metastore_id=None, name='ucx_sqg6r', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_som3h: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_som3h
14:38 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_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_som3h.ucx_tjpq3: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_som3h/ucx_tjpq3
14:38 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.CSV: 'CSV'>, 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_som3h.ucx_tjpq3', metastore_id=None, name='ucx_tjpq3', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_som3h', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711463923107, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_chw0o', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711463923107, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema ucx_chw0o.ucx_som3h: https://DATABRICKS_HOST/explore/data/ucx_chw0o/ucx_som3h
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_chw0o', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o.ucx_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 INFO [tests.integration.hive_metastore.test_migrate] dst_catalog=ucx_chw0o, external_table=hive_metastore.ucx_som3h.ucx_tjpq3
14:38 DEBUG [databricks.labs.ucx.hive_metastore.table_migrate] Migrating external table hive_metastore.ucx_som3h.ucx_tjpq3 to using SQL query: SYNC TABLE ucx_chw0o.ucx_som3h.ucx_tjpq3 FROM hive_metastore.ucx_som3h.ucx_tjpq3;
14:38 ERROR [databricks.labs.blueprint.parallel] migrate tables task failed: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration.
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 135, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/table_migrate.py", line 111, in _migrate_table
    return self._migrate_external_table(src_table, rule, grants)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/table_migrate.py", line 128, in _migrate_external_table
    self._backend.execute(src_table.sql_alter_from(rule.as_uc_table_key, self._ws.get_workspace_id()))
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/backends.py", line 142, in execute
    self._sql.execute(sql)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 238, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 473, in _raise_if_needed
    raise error_class(error_message)
databricks.sdk.errors.platform.BadRequest: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration.
14:38 CRITICAL [databricks.labs.blueprint.parallel] All 'migrate tables' tasks failed!!!
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sqg6r: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sqg6r
14:38 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_sqg6r', metastore_id=None, name='ucx_sqg6r', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_som3h: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_som3h
14:38 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_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_som3h.ucx_tjpq3: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_som3h/ucx_tjpq3
14:38 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.CSV: 'CSV'>, 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_som3h.ucx_tjpq3', metastore_id=None, name='ucx_tjpq3', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_som3h', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711463923107, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_chw0o', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711463923107, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:38 INFO [databricks.labs.ucx.mixins.fixtures] Schema ucx_chw0o.ucx_som3h: https://DATABRICKS_HOST/explore/data/ucx_chw0o/ucx_som3h
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_chw0o', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o.ucx_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 INFO [tests.integration.hive_metastore.test_migrate] dst_catalog=ucx_chw0o, external_table=hive_metastore.ucx_som3h.ucx_tjpq3
14:38 DEBUG [databricks.labs.ucx.hive_metastore.table_migrate] Migrating external table hive_metastore.ucx_som3h.ucx_tjpq3 to using SQL query: SYNC TABLE ucx_chw0o.ucx_som3h.ucx_tjpq3 FROM hive_metastore.ucx_som3h.ucx_tjpq3;
14:38 ERROR [databricks.labs.blueprint.parallel] migrate tables task failed: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration.
Traceback (most recent call last):
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/blueprint/parallel.py", line 135, in inner
    return func(*args, **kwargs), None
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/table_migrate.py", line 111, in _migrate_table
    return self._migrate_external_table(src_table, rule, grants)
  File "/home/runner/work/ucx/ucx/src/databricks/labs/ucx/hive_metastore/table_migrate.py", line 128, in _migrate_external_table
    self._backend.execute(src_table.sql_alter_from(rule.as_uc_table_key, self._ws.get_workspace_id()))
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/backends.py", line 142, in execute
    self._sql.execute(sql)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 238, in execute
    self._raise_if_needed(status)
  File "/home/runner/work/ucx/ucx/.venv/lib/python3.10/site-packages/databricks/labs/lsql/core.py", line 473, in _raise_if_needed
    raise error_class(error_message)
databricks.sdk.errors.platform.BadRequest: PERMISSION_DENIED: Failed to get credentials: Storage Credential TEST_STORAGE_CREDENTIAL is not configured correctly. Please contact the owner or your account admin to update the configuration.
14:38 CRITICAL [databricks.labs.blueprint.parallel] All 'migrate tables' tasks failed!!!
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 make_dbfs_data_copy fixtures
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] removing make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 table fixtures
14:38 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.CSV: 'CSV'>, 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_som3h.ucx_tjpq3', metastore_id=None, name='ucx_tjpq3', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_som3h', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/YXdg', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 catalog fixtures
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] removing catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711463923107, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_chw0o', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711463923107, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 3 schema fixtures
14:38 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_sqg6r', metastore_id=None, name='ucx_sqg6r', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 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_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:38 DEBUG [databricks.labs.ucx.mixins.fixtures] removing schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_chw0o', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_chw0o.ucx_som3h', metastore_id=None, name='ucx_som3h', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw8] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_table_migration_job_cluster_override: databricks.labs.blueprint.parallel.ManyError: Detected 2 failures: NotFound: The schema `ucx_syauh` cannot be found. Verify the spelling and correctness of the schema and catalog. (2m6.187s)
databricks.labs.blueprint.parallel.ManyError: Detected 2 failures: NotFound: The schema `ucx_syauh` cannot be found. Verify the spelling and correctness of the schema and catalog.
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scuyj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scuyj
14:40 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_scuyj', metastore_id=None, name='ucx_scuyj', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw8] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scuyj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scuyj
14:40 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_scuyj', metastore_id=None, name='ucx_scuyj', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_snqku: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku
14:40 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_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_snqku.ucx_tgcrm: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku/ucx_tgcrm
14:40 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_snqku.ucx_tgcrm', metastore_id=None, name='ucx_tgcrm', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_snqku/ucx_tgcrm', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_snqku.ucx_tfnzg: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku/ucx_tfnzg
14:40 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.CSV: 'CSV'>, 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_snqku.ucx_tfnzg', metastore_id=None, name='ucx_tfnzg', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711464047547, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_crp4b', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711464047547, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema ucx_crp4b.ucx_snqku: https://DATABRICKS_HOST/explore/data/ucx_crp4b/ucx_snqku
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_crp4b', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b.ucx_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.ucx/config.yml) doesn't exist.
14:40 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
14:40 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.
14:40 INFO [databricks.labs.ucx.install] Fetching installations...
14:40 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
14:40 INFO [databricks.labs.ucx.install] Installing UCX v0.19.1+720240326144050
14:40 INFO [databricks.labs.ucx.install] Creating dashboards...
14:40 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
14:40 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Estimates)...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 01_0_group_migration.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 01_0_group_migration.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 00_0_metastore_assignment.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 00_0_metastore_assignment.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 02_0_data_modeling.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 02_0_data_modeling.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 03_0_data_migration.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 03_0_data_migration.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
14:41 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Main)...
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
14:41 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Azure)...
14:41 DEBUG [databricks.labs.ucx.installer.workflows] Creating jobs from tasks in main
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
14:41 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:41 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=099-destroy-schema
14:41 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.ucx/README for the next steps.
14:41 DEBUG [databricks.labs.ucx.installer.workflows] starting migrate-tables job: https://DATABRICKS_HOST#job/743281090947314
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scuyj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scuyj
14:40 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_scuyj', metastore_id=None, name='ucx_scuyj', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_snqku: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku
14:40 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_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_snqku.ucx_tgcrm: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku/ucx_tgcrm
14:40 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_snqku.ucx_tgcrm', metastore_id=None, name='ucx_tgcrm', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_snqku/ucx_tgcrm', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_snqku.ucx_tfnzg: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_snqku/ucx_tfnzg
14:40 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.CSV: 'CSV'>, 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_snqku.ucx_tfnzg', metastore_id=None, name='ucx_tfnzg', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711464047547, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_crp4b', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711464047547, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:40 INFO [databricks.labs.ucx.mixins.fixtures] Schema ucx_crp4b.ucx_snqku: https://DATABRICKS_HOST/explore/data/ucx_crp4b/ucx_snqku
14:40 DEBUG [databricks.labs.ucx.mixins.fixtures] added schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_crp4b', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b.ucx_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:40 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.ucx/config.yml) doesn't exist.
14:40 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
14:40 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.
14:40 INFO [databricks.labs.ucx.install] Fetching installations...
14:40 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
14:40 INFO [databricks.labs.ucx.install] Installing UCX v0.19.1+720240326144050
14:40 INFO [databricks.labs.ucx.install] Creating dashboards...
14:40 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
14:40 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Estimates)...
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 01_0_group_migration.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 01_0_group_migration.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 00_0_metastore_assignment.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 00_0_metastore_assignment.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 02_0_data_modeling.md because it's a text widget
14:40 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 02_0_data_modeling.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 03_0_data_migration.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 03_0_data_migration.md because it's a text widget
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
14:41 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Main)...
14:41 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
14:41 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [UCX] UCX  Assessment (Azure)...
14:41 DEBUG [databricks.labs.ucx.installer.workflows] Creating jobs from tasks in main
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
14:41 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:41 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
14:41 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=099-destroy-schema
14:41 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.ucx/README for the next steps.
14:41 DEBUG [databricks.labs.ucx.installer.workflows] starting migrate-tables job: https://DATABRICKS_HOST#job/743281090947314
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 make_dbfs_data_copy fixtures
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] removing make_dbfs_data_copy fixture: dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 2 table fixtures
14:42 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_snqku.ucx_tgcrm', metastore_id=None, name='ucx_tgcrm', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_snqku/ucx_tgcrm', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:42 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.CSV: 'CSV'>, 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_snqku.ucx_tfnzg', metastore_id=None, name='ucx_tfnzg', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_snqku', sql_path=None, storage_credential_name=None, storage_location='dbfs:/mnt/TEST_MOUNT_NAME/a/b/jRPU', table_constraints=None, table_id=None, table_type=<TableType.EXTERNAL: 'EXTERNAL'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 catalog fixtures
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] removing catalog fixture: CatalogInfo(browse_only=False, catalog_type=<CatalogType.MANAGED_CATALOG: 'MANAGED_CATALOG'>, comment='', connection_name=None, created_at=1711464047547, created_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b', isolation_mode=<IsolationMode.OPEN: 'OPEN'>, metastore_id='8952c1e3-b265-4adf-98c3-6f755e2e1453', name='ucx_crp4b', options=None, owner='0a330eb5-dd51-4d97-b6e4-c474356b1d5d', properties=None, provider_name=None, provisioning_info=None, securable_kind=<CatalogInfoSecurableKind.CATALOG_STANDARD: 'CATALOG_STANDARD'>, securable_type='CATALOG', share_name=None, storage_location=None, storage_root=None, updated_at=1711464047547, updated_by='0a330eb5-dd51-4d97-b6e4-c474356b1d5d')
14:42 INFO [databricks.labs.ucx.install] Deleting UCX v0.19.1+720240326144227 from https://DATABRICKS_HOST
14:42 INFO [databricks.labs.ucx.install] Deleting inventory database ucx_scuyj
14:42 INFO [databricks.labs.ucx.install] Deleting jobs
14:42 INFO [databricks.labs.ucx.install] Deleting remove-workspace-local-backup-groups job_id=303499565608065.
14:42 INFO [databricks.labs.ucx.install] Deleting assessment job_id=1012255866938265.
14:42 INFO [databricks.labs.ucx.install] Deleting migrate-groups job_id=493570168081000.
14:42 INFO [databricks.labs.ucx.install] Deleting migrate-tables job_id=743281090947314.
14:42 INFO [databricks.labs.ucx.install] Deleting validate-groups-permissions job_id=1059172554396967.
14:42 INFO [databricks.labs.ucx.install] Deleting 099-destroy-schema job_id=187908913664339.
14:42 INFO [databricks.labs.ucx.install] Deleting cluster policy
14:42 INFO [databricks.labs.ucx.install] Deleting secret scope
14:42 INFO [databricks.labs.ucx.install] UnInstalling UCX complete
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 3 schema fixtures
14:42 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_scuyj', metastore_id=None, name='ucx_scuyj', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 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_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] removing schema fixture: SchemaInfo(browse_only=None, catalog_name='ucx_crp4b', catalog_type=None, comment=None, created_at=None, created_by=None, effective_predictive_optimization_flag=None, enable_predictive_optimization=None, full_name='ucx_crp4b.ucx_snqku', metastore_id=None, name='ucx_snqku', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw8] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_replace_workspace_groups_with_account_groups: TimeoutError: Timed out after 0:01:00 (1m41.357s)
TimeoutError: Timed out after 0:01:00
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scatc: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scatc
14:42 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_scatc', metastore_id=None, name='ucx_scatc', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw6] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scatc: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scatc
14:42 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_scatc', metastore_id=None, name='ucx_scatc', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 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='7737383704209755', 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]')
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group ucx_7WyQ: https://DATABRICKS_HOST#setting/accounts/groups/453768937023241
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='ucx_7WyQ', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='453768937023241', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], 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'>])
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Account group ucx_7WyQ: https://accounts.CLOUD_ENVdatabricks.net/users/groups/7311474056355/members
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='ucx_7WyQ', entitlements=[], external_id=None, groups=[], id='7311474056355', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Cluster policy: https://DATABRICKS_HOST#setting/clusters/cluster-policies/view/001CD0402AB2B86F
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster policy fixture: CreatePolicyResponse(policy_id='001CD0402AB2B86F')
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster_policy permissions fixture: 001CD0402AB2B86F [group_name admins CAN_USE] -> [group_name ucx_7WyQ CAN_USE]
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_srwwi: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_srwwi
14:42 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_srwwi', metastore_id=None, name='ucx_srwwi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_srwwi.ucx_tsnkj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_srwwi/ucx_tsnkj
14:42 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_srwwi.ucx_tsnkj', metastore_id=None, name='ucx_tsnkj', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_srwwi', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_srwwi/ucx_tsnkj', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:42 DEBUG [databricks.labs.ucx.workspace_access.manager] Crawling permissions
14:42 INFO [databricks.labs.ucx.workspace_access.generic] Listed cluster-policies in 0:00:00.040971
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] fetching grants inventory
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] crawling new batch for grants
14:42 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object DATABASE hive_metastore.ucx_spevl: Database(ucx_spevl,Some(hive_metastore)) does not exist.
14:42 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object DATABASE hive_metastore.ucx_scuyj: Database(ucx_scuyj,Some(hive_metastore)) does not exist.
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] found 12 new records for grants
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Starting to crawl permissions. Total tasks: 25
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Total crawled permissions: 25
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.permissions] found 25 new records for permissions
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Successfully saved the items to inventory table
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Saved 25 to hive_metastore.ucx_scatc.permissions
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Loading inventory table hive_metastore.ucx_scatc.permissions
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] fetching groups inventory
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] crawling new batch for groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=WorkspaceGroup) with id,displayName,meta,externalId,members,roles,entitlements...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 7 WorkspaceGroup
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing account groups with id,displayName,externalId...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 1437 account groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Group listing provided, a subset of all groups will be migrated
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] found 1 new records for groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=Group) with id,displayName,externalId,meta...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 63 Group
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=WorkspaceGroup) with id,displayName,meta,externalId,members,roles,entitlements...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 7 WorkspaceGroup
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] fetching groups inventory
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Renaming: ucx_7WyQ -> ucx-temp-ucx_7WyQ
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_scatc: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_scatc
14:42 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_scatc', metastore_id=None, name='ucx_scatc', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 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='7737383704209755', 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]')
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Workspace group ucx_7WyQ: https://DATABRICKS_HOST#setting/accounts/groups/453768937023241
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added workspace group fixture: Group(display_name='ucx_7WyQ', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='453768937023241', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], 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'>])
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Account group ucx_7WyQ: https://accounts.CLOUD_ENVdatabricks.net/users/groups/7311474056355/members
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added account group fixture: Group(display_name='ucx_7WyQ', entitlements=[], external_id=None, groups=[], id='7311474056355', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Cluster policy: https://DATABRICKS_HOST#setting/clusters/cluster-policies/view/001CD0402AB2B86F
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster policy fixture: CreatePolicyResponse(policy_id='001CD0402AB2B86F')
14:42 DEBUG [databricks.labs.ucx.mixins.fixtures] added cluster_policy permissions fixture: 001CD0402AB2B86F [group_name admins CAN_USE] -> [group_name ucx_7WyQ CAN_USE]
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_srwwi: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_srwwi
14:42 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_srwwi', metastore_id=None, name='ucx_srwwi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:42 INFO [databricks.labs.ucx.mixins.fixtures] Table hive_metastore.ucx_srwwi.ucx_tsnkj: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_srwwi/ucx_tsnkj
14:42 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_srwwi.ucx_tsnkj', metastore_id=None, name='ucx_tsnkj', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_srwwi', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_srwwi/ucx_tsnkj', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:42 DEBUG [databricks.labs.ucx.workspace_access.manager] Crawling permissions
14:42 INFO [databricks.labs.ucx.workspace_access.generic] Listed cluster-policies in 0:00:00.040971
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] fetching grants inventory
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] crawling new batch for grants
14:42 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object DATABASE hive_metastore.ucx_spevl: Database(ucx_spevl,Some(hive_metastore)) does not exist.
14:42 ERROR [databricks.labs.ucx.hive_metastore.grants] Couldn't fetch grants for object DATABASE hive_metastore.ucx_scuyj: Database(ucx_scuyj,Some(hive_metastore)) does not exist.
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.grants] found 12 new records for grants
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Starting to crawl permissions. Total tasks: 25
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Total crawled permissions: 25
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.permissions] found 25 new records for permissions
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Successfully saved the items to inventory table
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Saved 25 to hive_metastore.ucx_scatc.permissions
14:42 INFO [databricks.labs.ucx.workspace_access.manager] Loading inventory table hive_metastore.ucx_scatc.permissions
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] fetching groups inventory
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] crawling new batch for groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=WorkspaceGroup) with id,displayName,meta,externalId,members,roles,entitlements...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 7 WorkspaceGroup
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing account groups with id,displayName,externalId...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 1437 account groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Group listing provided, a subset of all groups will be migrated
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] found 1 new records for groups
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=Group) with id,displayName,externalId,meta...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 63 Group
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Listing workspace groups (resource_type=WorkspaceGroup) with id,displayName,meta,externalId,members,roles,entitlements...
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Found 7 WorkspaceGroup
14:42 DEBUG [databricks.labs.ucx.framework.crawlers] [hive_metastore.ucx_scatc.groups] fetching groups inventory
14:42 INFO [databricks.labs.ucx.workspace_access.groups] Renaming: ucx_7WyQ -> ucx-temp-ucx_7WyQ
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:42 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 INFO [tests.integration.workspace_access.test_groups] check_permissions_for_backup_group()
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 table fixtures
14:43 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_srwwi.ucx_tsnkj', metastore_id=None, name='ucx_tsnkj', owner=None, pipeline_id=None, properties=None, row_filter=None, schema_name='ucx_srwwi', sql_path=None, storage_credential_name=None, storage_location='dbfs:/user/hive/warehouse/ucx_srwwi/ucx_tsnkj', table_constraints=None, table_id=None, table_type=<TableType.MANAGED: 'MANAGED'>, updated_at=None, updated_by=None, view_definition=None, view_dependencies=None)
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 cluster_policy permissions fixtures
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] removing cluster_policy permissions fixture: 001CD0402AB2B86F [group_name admins CAN_USE] -> [group_name ucx_7WyQ CAN_USE]
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 cluster policy fixtures
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] removing cluster policy fixture: CreatePolicyResponse(policy_id='001CD0402AB2B86F')
14:43 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace user fixtures
14:43 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='7737383704209755', 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]')
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 account group fixtures
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] removing account group fixture: Group(display_name='ucx_7WyQ', entitlements=[], external_id=None, groups=[], id='7311474056355', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], meta=None, roles=[], schemas=[<GroupSchema.URN_IETF_PARAMS_SCIM_SCHEMAS_CORE_2_0_GROUP: 'urn:ietf:params:scim:schemas:core:2.0:Group'>])
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 workspace group fixtures
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] removing workspace group fixture: Group(display_name='ucx_7WyQ', entitlements=[ComplexValue(display=None, primary=None, ref=None, type=None, value='allow-cluster-create')], external_id=None, groups=[], id='453768937023241', members=[ComplexValue(display='[email protected]', primary=None, ref='Users/7737383704209755', type=None, value='7737383704209755')], 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'>])
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 2 schema fixtures
14:44 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_scatc', metastore_id=None, name='ucx_scatc', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:44 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_srwwi', metastore_id=None, name='ucx_srwwi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw6] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
❌ test_job_cluster_policy: AssertionError: assert '14.3.x-scala2.12' == '15.0.x-scala2.12' (48.41s)
AssertionError: assert '14.3.x-scala2.12' == '15.0.x-scala2.12'
  
  - 15.0.x-scala2.12
  ?  ^ ^
  + 14.3.x-scala2.12
  ?  ^ ^
14:43 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sazfi: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sazfi
14:43 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_sazfi', metastore_id=None, name='ucx_sazfi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw9] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python
14:43 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sazfi: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sazfi
14:43 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_sazfi', metastore_id=None, name='ucx_sazfi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:43 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.BQ1F/config.yml) doesn't exist.
14:43 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
14:43 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.
14:43 INFO [databricks.labs.ucx.install] Fetching installations...
14:43 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
14:43 INFO [databricks.labs.ucx.install] Installing UCX v0.19.1+720240326144358
14:43 INFO [databricks.labs.ucx.install] Creating dashboards...
14:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
14:43 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Estimates)...
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 01_0_group_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 01_0_group_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 00_0_metastore_assignment.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 00_0_metastore_assignment.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 02_0_data_modeling.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 02_0_data_modeling.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 03_0_data_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 03_0_data_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
14:44 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Main)...
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
14:44 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Azure)...
14:44 DEBUG [databricks.labs.ucx.installer.workflows] Creating jobs from tasks in main
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=099-destroy-schema
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
14:44 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:44 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
14:44 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.BQ1F/README for the next steps.
14:43 INFO [databricks.labs.ucx.mixins.fixtures] Schema hive_metastore.ucx_sazfi: https://DATABRICKS_HOST/explore/data/hive_metastore/ucx_sazfi
14:43 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_sazfi', metastore_id=None, name='ucx_sazfi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
14:43 DEBUG [databricks.labs.ucx.install] Cannot find previous installation: Path (/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.BQ1F/config.yml) doesn't exist.
14:43 INFO [databricks.labs.ucx.install] Please answer a couple of questions to configure Unity Catalog migration
14:43 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.
14:43 INFO [databricks.labs.ucx.install] Fetching installations...
14:43 INFO [databricks.labs.ucx.installer.policy] Creating UCX cluster policy.
14:43 INFO [databricks.labs.ucx.install] Installing UCX v0.19.1+720240326144358
14:43 INFO [databricks.labs.ucx.install] Creating dashboards...
14:43 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/views...
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading step folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment...
14:43 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/estimates...
14:43 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Estimates)...
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 01_0_group_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 01_0_group_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 00_0_metastore_assignment.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 00_0_metastore_assignment.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 02_0_data_modeling.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 02_0_data_modeling.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping query 03_0_data_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Skipping viz 03_0_data_migration.md because it's a text widget
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/main...
14:44 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Main)...
14:44 DEBUG [databricks.labs.ucx.framework.dashboards] Reading dashboard folder /home/runner/work/ucx/ucx/src/databricks/labs/ucx/queries/assessment/CLOUD_ENV...
14:44 INFO [databricks.labs.ucx.framework.dashboards] Creating dashboard [BQ1F] UCX  Assessment (Azure)...
14:44 DEBUG [databricks.labs.ucx.installer.workflows] Creating jobs from tasks in main
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=099-destroy-schema
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-tables
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=remove-workspace-local-backup-groups
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=validate-groups-permissions
14:44 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:44 INFO [databricks.labs.ucx.installer.mixins] Fetching warehouse_id from a config
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=assessment
14:44 INFO [databricks.labs.ucx.installer.workflows] Creating new job configuration for step=migrate-groups
14:44 INFO [databricks.labs.ucx.install] Installation completed successfully! Please refer to the https://DATABRICKS_HOST/#workspace/Users/0a330eb5-dd51-4d97-b6e4-c474356b1d5d/.BQ1F/README for the next steps.
14:44 INFO [databricks.labs.ucx.install] Deleting UCX v0.19.1+720240326144439 from https://DATABRICKS_HOST
14:44 INFO [databricks.labs.ucx.install] Deleting inventory database ucx_sazfi
14:44 INFO [databricks.labs.ucx.install] Deleting jobs
14:44 INFO [databricks.labs.ucx.install] Deleting 099-destroy-schema job_id=562857032429988.
14:44 INFO [databricks.labs.ucx.install] Deleting migrate-tables job_id=19511534519868.
14:44 INFO [databricks.labs.ucx.install] Deleting remove-workspace-local-backup-groups job_id=606098570631830.
14:44 INFO [databricks.labs.ucx.install] Deleting validate-groups-permissions job_id=960638910670797.
14:44 INFO [databricks.labs.ucx.install] Deleting assessment job_id=974415945551825.
14:44 INFO [databricks.labs.ucx.install] Deleting migrate-groups job_id=1123326678349902.
14:44 INFO [databricks.labs.ucx.install] Deleting cluster policy
14:44 INFO [databricks.labs.ucx.install] Deleting secret scope
14:44 INFO [databricks.labs.ucx.install] UnInstalling UCX complete
14:44 DEBUG [databricks.labs.ucx.mixins.fixtures] clearing 1 schema fixtures
14:44 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_sazfi', metastore_id=None, name='ucx_sazfi', owner=None, properties=None, storage_location=None, storage_root=None, updated_at=None, updated_by=None)
[gw9] linux -- Python 3.10.13 /home/runner/work/ucx/ucx/.venv/bin/python

Flaky tests:

  • 🤪 test_job_failure_propagates_correct_error_message_and_logs (5m16.246s)
  • 🤪 test_running_real_migrate_groups_job (5m48.615s)
  • 🤪 test_running_real_assessment_job (6m57.92s)

Running from acceptance #1764

@FastLee FastLee force-pushed the feature/create_catalog_validation_1101 branch from 8e3d0b7 to c1d633d Compare March 26, 2024 13:23
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 disabled auto-merge March 26, 2024 20:53
@nfx nfx changed the title Feature/create catalog validation 1101 Added external location validation when creating catalogs with create-catalogs-schemas command Mar 26, 2024
@nfx nfx merged commit 08d1f5b into main Mar 26, 2024
@nfx nfx deleted the feature/create_catalog_validation_1101 branch March 26, 2024 20:56
nkvuong pushed a commit that referenced this pull request Mar 27, 2024
…e-catalogs-schemas` command (#1110)

In this release, we have updated the "create\_catalogs\_schemas"
function in "cli.py" to create UC catalogs and schemas based on the
destinations from "create\_table\_mapping". This function previously
used a "CatalogSchema" object created using the workspace client,
installation, and prompts, but has been modified to directly use the
installation object and call the "create\_all\_catalogs\_schemas"
method. We have also added a new feature for catalog validation with
commit message 'Feature/create catalog validation 1101', which includes
the addition of the "create\_all\_catalogs\_schemas" method in
"catalog\_schema.py". The new method generates a list of missing
catalogs and schemas and creates them using the "WorkspaceClient".
Additionally, we have added new imports, modified the constructor of the
"CatalogSchema" class, and added new methods for creating catalogs and
schemas, and updated the unit tests for
"hive\_metastore/catalog\_schema.py". Overall, these changes improve the
robustness and reliability of the tool for working with catalogs and
external locations.

Closes #1101
nfx added a commit that referenced this pull request Mar 28, 2024
* Added ACL migration to `migrate-tables` workflow ([#1135](#1135)).
* Added AVRO to supported format to be upgraded by SYNC ([#1134](#1134)). In this release, the `hive_metastore` package's `tables.py` file has been updated to add AVRO as a supported format for the SYNC upgrade functionality. This change includes AVRO in the list of supported table formats in the `is_format_supported_for_sync` method, which checks if the table format is not `None` and if the format's uppercase value is one of the supported formats. The addition of AVRO enables it to be upgraded using the SYNC functionality. Moreover, a new format called BINARYFILE has been introduced, which is not supported for SYNC upgrade. This release is part of the implementation of issue [#1134](#1134), improving the compatibility of the SYNC upgrade functionality with various data formats.
* Added `is_partitioned` column ([#1130](#1130)). A new column, `is_partitioned`, has been added to the `ucx.tables` table in the assessment module, indicating whether the table is partitioned or not with values `Yes` or "No". This change addresses issue [#871](#871) and has been manually tested. The commit also includes updated documentation for the modified table. No new methods, CLI commands, workflows, or tests (unit, integration) have been introduced as part of this change.
* Added assessment of interactive cluster usage compared to UC compute limitations ([#1123](#1123)).
* Added external location validation when creating catalogs with `create-catalogs-schemas` command ([#1110](#1110)).
* Added flag to Job to identify Job submitted by jar ([#1088](#1088)). The open-source library has been updated with several new features aimed at enhancing user functionality and convenience. These updates include the addition of a new sorting algorithm, which provides users with an efficient and customizable method for organizing data. Additionally, a new caching mechanism has been implemented, improving the library's performance and reducing the amount of time required to access frequently used data. Furthermore, the library now supports multi-threading, enabling users to perform multiple operations simultaneously and increase overall productivity. Lastly, a new error handling system has been developed, providing users with more informative and actionable feedback when unexpected issues arise. These changes are a significant step forward in improving the library's performance, functionality, and usability for all users.
* Bump databricks-sdk from 0.22.0 to 0.23.0 ([#1121](#1121)). In this version update, `databricks-sdk` is upgraded from 0.22.0 to 0.23.0, introducing significant changes to the handling of AWS and Azure identities. The `AwsIamRole` class is replaced with `AwsIamRoleRequest` in the `databricks.sdk.service.catalog` module, affecting the creation of AWS storage credentials using IAM roles. The `create` function in `src/databricks/labs/ucx/aws/credentials.py` is updated to accommodate this modification. Additionally, the `AwsIamRole` argument in the `create` function of `fixtures.py` in the `databricks/labs/ucx/mixins` directory is replaced with `AwsIamRoleRequest`. The tests in `tests/integration/aws/test_access.py` are also updated to utilize `AwsIamRoleRequest`, and `StorageCredentialInfo` in `tests/unit/azure/test_credentials.py` now uses `AwsIamRoleResponse` instead of `AwsIamRole`. The new classes, `AwsIamRoleRequest` and `AwsIamRoleResponse`, likely include new features or bug fixes for AWS IAM roles. These changes require software engineers to thoroughly assess their codebase and adjust any relevant functions accordingly.
* Deploy static views needed by [#1123](#1123) interactive dashboard ([#1139](#1139)). In this update, we have added two new views, `misc_patterns_vw` and `code_patterns_vw`, to the `install.py` script in the `databricks/labs/ucx` directory. These views were originally intended to be deployed with a previous update ([#1123](#1123)) but were inadvertently overlooked. The addition of these views addresses issues with queries in the `interactive` dashboard. The `deploy_schema` function has been updated with two new lines, `deployer.deploy_view("misc_patterns", "queries/views/misc_patterns.sql")` and `deployer.deploy_view("code_patterns", "queries/views/code_patterns.sql")`, to deploy the new views using their respective SQL files from the `queries/views` directory. No other modifications have been made to the file.
* Fixed Table ACL migration logic ([#1149](#1149)). The open-source library has been updated with several new features, providing enhanced functionality for software engineers. A new utility class has been added to simplify the process of working with collections, offering methods to filter, map, and reduce elements in a performant manner. Additionally, a new configuration system has been implemented, allowing users to easily customize library behavior through a simple JSON format. Finally, we have added support for asynchronous processing, enabling efficient handling of I/O-bound tasks and improving overall application performance. These features have been thoroughly tested and are ready for use in your projects.
* Fixed `AssertionError: assert '14.3.x-scala2.12' == '15.0.x-scala2.12'` from nightly integration tests ([#1120](#1120)). In this release, the open-source library has been updated with several new features to enhance functionality and provide more options to users. The library now supports multi-threading, allowing for more efficient processing of large datasets. Additionally, a new algorithm for data compression has been implemented, resulting in reduced memory usage and faster data transfer. The library API has also been expanded, with new methods for sorting and filtering data, as well as improved error handling. These changes aim to provide a more robust and performant library, making it an even more valuable tool for software engineers.
* Increase code coverage by 1 percent ([#1125](#1125)).
* Skip installation if remote and local version is the same, provide prompt to override ([#1084](#1084)). In this release, the `new_installation` workflow in the open-source library has been enhanced to include a new use case for handling identical remote and local versions of UCX. When the remote and local versions are the same, the user is now prompted and if no override is requested, a RuntimeWarning is raised. Additionally, users are now prompted to update the existing installation and if confirmed, the installation proceeds. These modifications include manual testing and new unit tests to ensure functionality. These changes provide users with more control over their installation process and address a specific use case for handling identical UCX versions.
* Updated databricks-labs-lsql requirement from ~=0.2.2 to >=0.2.2,<0.4.0 ([#1137](#1137)). The open-source library has been updated with several new features to enhance usability and functionality. Firstly, we have added support for asynchronous processing, allowing for more efficient handling of large data sets and improving overall performance. Additionally, a new configuration system has been implemented, which simplifies the setup process for users and increases customization options. We have also included a new error handling mechanism that provides more detailed and actionable information, making it easier to diagnose and resolve issues. Lastly, we have made significant improvements to the library's documentation, including updated examples, guides, and an expanded API reference. These changes are part of our ongoing commitment to improving the library and providing the best possible user experience.
* [Experimental] Add support for permission migration API ([#1080](#1080)).

Dependency updates:

 * Updated databricks-labs-lsql requirement from ~=0.2.2 to >=0.2.2,<0.4.0 ([#1137](#1137)).
@nfx nfx mentioned this pull request Mar 28, 2024
nfx added a commit that referenced this pull request Mar 28, 2024
* Added ACL migration to `migrate-tables` workflow
([#1135](#1135)).
* Added AVRO to supported format to be upgraded by SYNC
([#1134](#1134)). In this
release, the `hive_metastore` package's `tables.py` file has been
updated to add AVRO as a supported format for the SYNC upgrade
functionality. This change includes AVRO in the list of supported table
formats in the `is_format_supported_for_sync` method, which checks if
the table format is not `None` and if the format's uppercase value is
one of the supported formats. The addition of AVRO enables it to be
upgraded using the SYNC functionality. Moreover, a new format called
BINARYFILE has been introduced, which is not supported for SYNC upgrade.
This release is part of the implementation of issue
[#1134](#1134), improving
the compatibility of the SYNC upgrade functionality with various data
formats.
* Added `is_partitioned` column
([#1130](#1130)). A new
column, `is_partitioned`, has been added to the `ucx.tables` table in
the assessment module, indicating whether the table is partitioned or
not with values `Yes` or "No". This change addresses issue
[#871](#871) and has been
manually tested. The commit also includes updated documentation for the
modified table. No new methods, CLI commands, workflows, or tests (unit,
integration) have been introduced as part of this change.
* Added assessment of interactive cluster usage compared to UC compute
limitations
([#1123](#1123)).
* Added external location validation when creating catalogs with
`create-catalogs-schemas` command
([#1110](#1110)).
* Added flag to Job to identify Job submitted by jar
([#1088](#1088)). The
open-source library has been updated with several new features aimed at
enhancing user functionality and convenience. These updates include the
addition of a new sorting algorithm, which provides users with an
efficient and customizable method for organizing data. Additionally, a
new caching mechanism has been implemented, improving the library's
performance and reducing the amount of time required to access
frequently used data. Furthermore, the library now supports
multi-threading, enabling users to perform multiple operations
simultaneously and increase overall productivity. Lastly, a new error
handling system has been developed, providing users with more
informative and actionable feedback when unexpected issues arise. These
changes are a significant step forward in improving the library's
performance, functionality, and usability for all users.
* Bump databricks-sdk from 0.22.0 to 0.23.0
([#1121](#1121)). In this
version update, `databricks-sdk` is upgraded from 0.22.0 to 0.23.0,
introducing significant changes to the handling of AWS and Azure
identities. The `AwsIamRole` class is replaced with `AwsIamRoleRequest`
in the `databricks.sdk.service.catalog` module, affecting the creation
of AWS storage credentials using IAM roles. The `create` function in
`src/databricks/labs/ucx/aws/credentials.py` is updated to accommodate
this modification. Additionally, the `AwsIamRole` argument in the
`create` function of `fixtures.py` in the `databricks/labs/ucx/mixins`
directory is replaced with `AwsIamRoleRequest`. The tests in
`tests/integration/aws/test_access.py` are also updated to utilize
`AwsIamRoleRequest`, and `StorageCredentialInfo` in
`tests/unit/azure/test_credentials.py` now uses `AwsIamRoleResponse`
instead of `AwsIamRole`. The new classes, `AwsIamRoleRequest` and
`AwsIamRoleResponse`, likely include new features or bug fixes for AWS
IAM roles. These changes require software engineers to thoroughly assess
their codebase and adjust any relevant functions accordingly.
* Deploy static views needed by
[#1123](#1123) interactive
dashboard ([#1139](#1139)).
In this update, we have added two new views, `misc_patterns_vw` and
`code_patterns_vw`, to the `install.py` script in the
`databricks/labs/ucx` directory. These views were originally intended to
be deployed with a previous update
([#1123](#1123)) but were
inadvertently overlooked. The addition of these views addresses issues
with queries in the `interactive` dashboard. The `deploy_schema`
function has been updated with two new lines,
`deployer.deploy_view("misc_patterns",
"queries/views/misc_patterns.sql")` and
`deployer.deploy_view("code_patterns",
"queries/views/code_patterns.sql")`, to deploy the new views using their
respective SQL files from the `queries/views` directory. No other
modifications have been made to the file.
* Fixed Table ACL migration logic
([#1149](#1149)). The
open-source library has been updated with several new features,
providing enhanced functionality for software engineers. A new utility
class has been added to simplify the process of working with
collections, offering methods to filter, map, and reduce elements in a
performant manner. Additionally, a new configuration system has been
implemented, allowing users to easily customize library behavior through
a simple JSON format. Finally, we have added support for asynchronous
processing, enabling efficient handling of I/O-bound tasks and improving
overall application performance. These features have been thoroughly
tested and are ready for use in your projects.
* Fixed `AssertionError: assert '14.3.x-scala2.12' ==
'15.0.x-scala2.12'` from nightly integration tests
([#1120](#1120)). In this
release, the open-source library has been updated with several new
features to enhance functionality and provide more options to users. The
library now supports multi-threading, allowing for more efficient
processing of large datasets. Additionally, a new algorithm for data
compression has been implemented, resulting in reduced memory usage and
faster data transfer. The library API has also been expanded, with new
methods for sorting and filtering data, as well as improved error
handling. These changes aim to provide a more robust and performant
library, making it an even more valuable tool for software engineers.
* Increase code coverage by 1 percent
([#1125](#1125)).
* Skip installation if remote and local version is the same, provide
prompt to override
([#1084](#1084)). In this
release, the `new_installation` workflow in the open-source library has
been enhanced to include a new use case for handling identical remote
and local versions of UCX. When the remote and local versions are the
same, the user is now prompted and if no override is requested, a
RuntimeWarning is raised. Additionally, users are now prompted to update
the existing installation and if confirmed, the installation proceeds.
These modifications include manual testing and new unit tests to ensure
functionality. These changes provide users with more control over their
installation process and address a specific use case for handling
identical UCX versions.
* Updated databricks-labs-lsql requirement from ~=0.2.2 to
>=0.2.2,<0.4.0
([#1137](#1137)). The
open-source library has been updated with several new features to
enhance usability and functionality. Firstly, we have added support for
asynchronous processing, allowing for more efficient handling of large
data sets and improving overall performance. Additionally, a new
configuration system has been implemented, which simplifies the setup
process for users and increases customization options. We have also
included a new error handling mechanism that provides more detailed and
actionable information, making it easier to diagnose and resolve issues.
Lastly, we have made significant improvements to the library's
documentation, including updated examples, guides, and an expanded API
reference. These changes are part of our ongoing commitment to improving
the library and providing the best possible user experience.
* [Experimental] Add support for permission migration API
([#1080](#1080)).

Dependency updates:

* Updated databricks-labs-lsql requirement from ~=0.2.2 to
>=0.2.2,<0.4.0
([#1137](#1137)).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat/cli CLI commands

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE]: Create Catalog Schema should validate external location

2 participants