@@ -106,7 +106,7 @@ def raise_catalog_exists(catalog: str, *_, **__) -> None:
106106 Grant ('user1' , 'MODIFY' , 'catalog2' , 'schema2' , 'table' ),
107107 Grant ('user1' , 'SELECT' , 'catalog2' , 'schema3' , 'table2' ),
108108 Grant ('user1' , 'USAGE' , 'hive_metastore' , 'schema3' ),
109- Grant ('user1' , 'USAGE ' , 'hive_metastore' , 'schema2' ),
109+ Grant ('user1' , 'DENY ' , 'hive_metastore' , 'schema2' ),
110110 ]
111111 hive_grants = [
112112 Grant (principal = "princ1" , catalog = "hive_metastore" , action_type = "USE" ),
@@ -244,7 +244,7 @@ def test_no_catalog_storage():
244244 ws .catalogs .create .assert_has_calls (calls , any_order = True )
245245
246246
247- def test_catalog_schema_acl ():
247+ def test_catalog_schema_acl () -> None :
248248 ws = create_autospec (WorkspaceClient )
249249 backend = MockBackend ()
250250 mock_prompts = MockPrompts ({"Please provide storage location url for catalog: *" : "" })
@@ -260,10 +260,7 @@ def test_catalog_schema_acl():
260260 ws .schemas .create .assert_any_call ("schema2" , "catalog2" , comment = "Created by UCX" )
261261 queries = [
262262 'GRANT USE SCHEMA ON DATABASE `catalog1`.`schema3` TO `user1`' ,
263- 'GRANT USE SCHEMA ON DATABASE `catalog2`.`schema2` TO `user1`' ,
264- 'GRANT USE SCHEMA ON DATABASE `catalog2`.`schema3` TO `user1`' ,
265263 'GRANT USE CATALOG ON CATALOG `catalog1` TO `user1`' ,
266- 'GRANT USE CATALOG ON CATALOG `catalog2` TO `user1`' ,
267264 'GRANT USE CATALOG ON CATALOG `catalog1` TO `princ2`' ,
268265 'GRANT USE SCHEMA ON DATABASE `catalog1`.`schema3` TO `princ2`' ,
269266 'GRANT USE SCHEMA ON DATABASE `catalog2`.`schema2` TO `princ5`' ,
@@ -273,3 +270,21 @@ def test_catalog_schema_acl():
273270 assert len (backend .queries ) == len (queries )
274271 for query in queries :
275272 assert query in backend .queries
273+
274+
275+ def test_create_all_catalogs_schemas_logs_untranslatable_grant (caplog ) -> None :
276+ ws = create_autospec (WorkspaceClient )
277+ backend = MockBackend ()
278+ mock_prompts = MockPrompts ({"Please provide storage location url for catalog: *" : "" })
279+ catalog_schema = prepare_test (ws , backend )
280+
281+ with caplog .at_level (logging .WARNING , logger = "databricks.labs.ucx.hive_metastore.catalog_schema" ):
282+ catalog_schema .create_all_catalogs_schemas (mock_prompts )
283+ assert "Skipping legacy grant that is not supported in UC: DENY on ('CATALOG', 'catalog2')" in caplog .messages
284+ assert (
285+ "Skipping legacy grant that is not supported in UC: DENY on ('DATABASE', 'catalog2.schema2')" in caplog .messages
286+ )
287+ assert (
288+ "Skipping legacy grant that is not supported in UC: DENY on ('DATABASE', 'catalog2.schema3')" in caplog .messages
289+ )
290+ ws .assert_not_called ()
0 commit comments