@@ -203,12 +203,12 @@ def revert_migrated_tables(w: WorkspaceClient, schema: str, table: str, *, delet
203203
204204@ucx .command
205205def move (
206- w : WorkspaceClient ,
207- from_catalog : str ,
208- from_schema : str ,
209- from_table : str ,
210- to_catalog : str ,
211- to_schema : str ,
206+ w : WorkspaceClient ,
207+ from_catalog : str ,
208+ from_schema : str ,
209+ from_table : str ,
210+ to_catalog : str ,
211+ to_schema : str ,
212212):
213213 """move a uc table/tables from one schema to another schema in same or different catalog"""
214214 logger .info ("Running move command" )
@@ -230,12 +230,12 @@ def move(
230230
231231@ucx .command
232232def alias (
233- w : WorkspaceClient ,
234- from_catalog : str ,
235- from_schema : str ,
236- from_table : str ,
237- to_catalog : str ,
238- to_schema : str ,
233+ w : WorkspaceClient ,
234+ from_catalog : str ,
235+ from_schema : str ,
236+ from_table : str ,
237+ to_catalog : str ,
238+ to_schema : str ,
239239):
240240 """move a uc table/tables from one schema to another schema in same or different catalog"""
241241 if from_catalog == "" or to_catalog == "" :
@@ -253,13 +253,13 @@ def alias(
253253
254254
255255def _execute_for_cloud (
256- w : WorkspaceClient ,
257- func_azure : Callable ,
258- func_aws : Callable ,
259- azure_resource_permissions : AzureResourcePermissions | None = None ,
260- subscription_id : str | None = None ,
261- aws_permissions : AWSResourcePermissions = None ,
262- aws_profile : str | None = None ,
256+ w : WorkspaceClient ,
257+ func_azure : Callable ,
258+ func_aws : Callable ,
259+ azure_resource_permissions : AzureResourcePermissions | None = None ,
260+ subscription_id : str | None = None ,
261+ aws_permissions : AWSResourcePermissions | None = None ,
262+ aws_profile : str | None = None ,
263263):
264264 if w .config .is_azure :
265265 if w .config .auth_type != "azure-cli" :
@@ -287,66 +287,85 @@ def _execute_for_cloud(
287287
288288
289289@ucx .command
290- def create_uber_principal (w : WorkspaceClient , subscription_id : str | None = None ,
291- azure_resource_permissions : AzureResourcePermissions | None = None ,
292- aws_profile : str | None = None ,
293- aws_resource_permissions : AWSResourcePermissions | None = None ):
290+ def create_uber_principal (
291+ w : WorkspaceClient ,
292+ subscription_id : str | None = None ,
293+ azure_resource_permissions : AzureResourcePermissions | None = None ,
294+ aws_profile : str | None = None ,
295+ aws_resource_permissions : AWSResourcePermissions | None = None ,
296+ ):
294297 """For azure cloud, creates a service principal and gives STORAGE BLOB READER access on all the storage account
295298 used by tables in the workspace and stores the spn info in the UCX cluster policy. For aws,
296299 it identifies all s3 buckets used by the Instance Profiles configured in the workspace.
297300 Pass subscription_id for azure and aws_profile for aws."""
298- return _execute_for_cloud (w , _azure_setup_uber_principal , _aws_setup_uber_principal ,
299- azure_resource_permissions , subscription_id ,
300- aws_resource_permissions , aws_profile )
301+ return _execute_for_cloud (
302+ w ,
303+ _azure_setup_uber_principal ,
304+ _aws_setup_uber_principal ,
305+ azure_resource_permissions ,
306+ subscription_id ,
307+ aws_resource_permissions ,
308+ aws_profile ,
309+ )
301310
302311
303- def _azure_setup_uber_principal (w : WorkspaceClient , subscription_id : str ,
304- azure_resource_permissions : AzureResourcePermissions = None ):
312+ def _azure_setup_uber_principal (
313+ w : WorkspaceClient , subscription_id : str , azure_resource_permissions : AzureResourcePermissions | None = None
314+ ):
305315 prompts = Prompts ()
306316 include_subscriptions = [subscription_id ] if subscription_id else None
307- if not azure_resource_permissions :
317+ if azure_resource_permissions is None :
308318 azure_resource_permissions = AzureResourcePermissions .for_cli (w , include_subscriptions = include_subscriptions )
309319 azure_resource_permissions .create_uber_principal (prompts )
310320
311321
312- def _aws_setup_uber_principal (w : WorkspaceClient , aws_profile : str ,
313- aws_resource_permissions : AWSResourcePermissions = None ):
322+ def _aws_setup_uber_principal (
323+ w : WorkspaceClient , aws_profile : str , aws_resource_permissions : AWSResourcePermissions | None = None
324+ ):
314325 prompts = Prompts ()
315326 installation = Installation .current (w , 'ucx' )
316327 config = installation .load (WorkspaceConfig )
317328 sql_backend = StatementExecutionBackend (w , config .warehouse_id )
318329 aws = AWSResources (aws_profile )
319- aws_resource_permissions = AWSResourcePermissions .for_cli (
320- w , installation , sql_backend , aws , config .inventory_database
321- )
330+ if aws_resource_permissions is None :
331+ aws_resource_permissions = AWSResourcePermissions .for_cli (
332+ w , installation , sql_backend , aws , config .inventory_database
333+ )
322334 aws_resource_permissions .create_uber_principal (prompts )
323335
324336
325337@ucx .command
326- def principal_prefix_access (w : WorkspaceClient ,
327- subscription_id : str | None = None ,
328- azure_resource_permissions : AzureResourcePermissions | None = None ,
329- aws_profile : str | None = None ,
330- aws_resource_permissions : AWSResourcePermissions | None = None
331- ):
338+ def principal_prefix_access (
339+ w : WorkspaceClient ,
340+ subscription_id : str | None = None ,
341+ azure_resource_permissions : AzureResourcePermissions | None = None ,
342+ aws_profile : str | None = None ,
343+ aws_resource_permissions : AWSResourcePermissions | None = None ,
344+ ):
332345 """For azure cloud, identifies all storage accounts used by tables in the workspace, identify spn and its
333346 permission on each storage accounts. For aws, identifies all the Instance Profiles configured in the workspace and
334347 its access to all the S3 buckets, along with AWS roles that are set with UC access and its access to S3 buckets.
335348 The output is stored in the workspace install folder.
336349 Pass subscription_id for azure and aws_profile for aws."""
337350 return _execute_for_cloud (
338- w , _azure_principal_prefix_access , _aws_principal_prefix_access , azure_resource_permissions ,
339- subscription_id , aws_resource_permissions , aws_profile
351+ w ,
352+ _azure_principal_prefix_access ,
353+ _aws_principal_prefix_access ,
354+ azure_resource_permissions ,
355+ subscription_id ,
356+ aws_resource_permissions ,
357+ aws_profile ,
340358 )
341359
342360
343- def _azure_principal_prefix_access (w : WorkspaceClient , subscription_id : str ,
344- azure_resource_permissions : AzureResourcePermissions = None ):
361+ def _azure_principal_prefix_access (
362+ w : WorkspaceClient , subscription_id : str , azure_resource_permissions : AzureResourcePermissions | None = None
363+ ):
345364 if w .config .auth_type != "azure-cli" :
346365 logger .error ("In order to obtain AAD token, Please run azure cli to authenticate." )
347366 return
348367 include_subscriptions = [subscription_id ] if subscription_id else None
349- if not azure_resource_permissions :
368+ if azure_resource_permissions is None :
350369 azure_resource_permissions = AzureResourcePermissions .for_cli (w , include_subscriptions = include_subscriptions )
351370 logger .info ("Generating azure storage accounts and service principal permission info" )
352371 path = azure_resource_permissions .save_spn_permissions ()
@@ -355,8 +374,9 @@ def _azure_principal_prefix_access(w: WorkspaceClient, subscription_id: str,
355374 return
356375
357376
358- def _aws_principal_prefix_access (w : WorkspaceClient , aws_profile : str ,
359- aws_resource_permissions : AWSResourcePermissions = None ):
377+ def _aws_principal_prefix_access (
378+ w : WorkspaceClient , aws_profile : str , aws_resource_permissions : AWSResourcePermissions | None = None
379+ ):
360380 if not shutil .which ("aws" ):
361381 logger .error ("Couldn't find AWS CLI in path. Please install the CLI from https://aws.amazon.com/cli/" )
362382 return
@@ -365,9 +385,10 @@ def _aws_principal_prefix_access(w: WorkspaceClient, aws_profile: str,
365385 config = installation .load (WorkspaceConfig )
366386 sql_backend = StatementExecutionBackend (w , config .warehouse_id )
367387 aws = AWSResources (aws_profile )
368- if not aws_resource_permissions :
369- aws_resource_permissions = AWSResourcePermissions .for_cli (w , installation , sql_backend , aws ,
370- config .inventory_database )
388+ if aws_resource_permissions is None :
389+ aws_resource_permissions = AWSResourcePermissions .for_cli (
390+ w , installation , sql_backend , aws , config .inventory_database
391+ )
371392 instance_role_path = aws_resource_permissions .save_instance_profile_permissions ()
372393 logger .info (f"Instance profile and bucket info saved { instance_role_path } " )
373394 logger .info ("Generating UC roles and bucket permission info" )
@@ -376,8 +397,7 @@ def _aws_principal_prefix_access(w: WorkspaceClient, aws_profile: str,
376397
377398
378399@ucx .command
379- def migrate_credentials (w : WorkspaceClient , aws_profile : str | None = None ,
380- aws_resources : AWSResources | None = None ):
400+ def migrate_credentials (w : WorkspaceClient , aws_profile : str | None = None , aws_resources : AWSResources | None = None ):
381401 """For Azure, this command migrates Azure Service Principals, which have Storage Blob Data Contributor,
382402 Storage Blob Data Reader, Storage Blob Data Owner roles on ADLS Gen2 locations that are being used in
383403 Databricks, to UC storage credentials.
0 commit comments