1616 StorageCredentialInfo ,
1717)
1818from databricks .sdk .service .compute import InstanceProfile , Policy
19+ from databricks .sdk .service .sql import GetWorkspaceWarehouseConfigResponse , EndpointConfPair
1920
2021from databricks .labs .ucx .assessment .aws import (
2122 AWSPolicyAction ,
@@ -218,11 +219,20 @@ def test_create_uber_principal_existing_role(mock_ws, mock_installation, backend
218219 policy_id = "foo" ,
name = "Unity Catalog Migration (ucx) ([email protected] )" ,
definition = json .
dumps ({
"foo" :
"bar" })
219220 )
220221 mock_ws .cluster_policies .get .return_value = cluster_policy
222+ mock_ws .warehouses .get_workspace_warehouse_config .return_value = GetWorkspaceWarehouseConfigResponse (
223+ instance_profile_arn = "arn:aws:iam::12345:instance-profile/existing-role"
224+ )
221225 instance_profile_arn = "arn:aws:iam::12345:instance-profile/role1"
222226 aws = create_autospec (AWSResources )
223227 aws .get_instance_profile .return_value = instance_profile_arn
224228 locations = ExternalLocations (mock_ws , backend , "ucx" )
225- prompts = MockPrompts ({"We have identified existing UCX migration role *" : "yes" })
229+ prompts = MockPrompts (
230+ {
231+ "Do you want to create new migration role *" : "yes" ,
232+ "There is an existing instance profile *" : "yes" ,
233+ "We have identified existing UCX migration role *" : "yes" ,
234+ }
235+ )
226236 aws_resource_permissions = AWSResourcePermissions (
227237 mock_installation ,
228238 mock_ws ,
@@ -234,21 +244,33 @@ def test_create_uber_principal_existing_role(mock_ws, mock_installation, backend
234244 mock_ws .cluster_policies .edit .assert_called_with (
235245 'foo' ,
'Unity Catalog Migration (ucx) ([email protected] )' ,
definition = json .
dumps (
definition )
236246 )
247+ mock_ws .warehouses .set_workspace_warehouse_config .assert_called_with (
248+ data_access_config = None ,
249+ instance_profile_arn = 'arn:aws:iam::12345:instance-profile/role1' ,
250+ sql_configuration_parameters = None ,
251+ )
237252
238253
239254def test_create_uber_principal_no_existing_role (mock_ws , mock_installation , backend , locations ):
240255 cluster_policy = Policy (
241256 policy_id = "foo" ,
name = "Unity Catalog Migration (ucx) ([email protected] )" ,
definition = json .
dumps ({
"foo" :
"bar" })
242257 )
243258 mock_ws .cluster_policies .get .return_value = cluster_policy
259+ mock_ws .warehouses .get_workspace_warehouse_config .return_value = GetWorkspaceWarehouseConfigResponse (
260+ data_access_config = [EndpointConfPair ("jdbc" , "jdbc:sqlserver://localhost:1433;databaseName=master" )]
261+ )
244262 aws = create_autospec (AWSResources )
245263 aws .role_exists .return_value = False
246264 instance_profile_arn = "arn:aws:iam::12345:instance-profile/role1"
247265 aws .create_migration_role .return_value = instance_profile_arn
248266 aws .create_instance_profile .return_value = instance_profile_arn
249267 aws .get_instance_profile .return_value = instance_profile_arn
250268 locations = ExternalLocations (mock_ws , backend , "ucx" )
251- prompts = MockPrompts ({"Do you want to create new migration role *" : "yes" })
269+ prompts = MockPrompts (
270+ {
271+ "Do you want to create new migration role *" : "yes" ,
272+ }
273+ )
252274 aws_resource_permissions = AWSResourcePermissions (
253275 mock_installation ,
254276 mock_ws ,
@@ -261,6 +283,11 @@ def test_create_uber_principal_no_existing_role(mock_ws, mock_installation, back
261283 mock_ws .cluster_policies .edit .assert_called_with (
262284 'foo' ,
'Unity Catalog Migration (ucx) ([email protected] )' ,
definition = json .
dumps (
definition )
263285 )
286+ mock_ws .warehouses .set_workspace_warehouse_config .assert_called_with (
287+ data_access_config = [EndpointConfPair ("jdbc" , "jdbc:sqlserver://localhost:1433;databaseName=master" )],
288+ instance_profile_arn = 'arn:aws:iam::12345:instance-profile/role1' ,
289+ sql_configuration_parameters = None ,
290+ )
264291
265292
266293def test_create_uber_principal_no_storage (mock_ws , mock_installation , locations ):
0 commit comments