@@ -1248,7 +1248,9 @@ def _migrate_site_properties(cmd, source, resource_group, name):
12481248 functionapp .client_cert_mode = source .client_cert_mode
12491249 functionapp .client_cert_exclusion_paths = source .client_cert_exclusion_paths
12501250
1251- set_functionapp (cmd , resource_group , name , parameters = functionapp )
1251+ poller = set_functionapp (cmd , resource_group , name , parameters = functionapp )
1252+ LongRunningOperation (cmd .cli_ctx )(poller )
1253+
12521254 logger .warning ("Successfully updated the following properties for function app '%s': "
12531255 "https_only, client_cert_enabled, client_cert_mode, client_cert_exclusion_paths" , name )
12541256 except Exception as e : # pylint: disable=broad-except
@@ -1286,10 +1288,10 @@ def _migrate_cors_settings(cmd, source_site_configs, source_name, resource_group
12861288 source_name , name )
12871289 try :
12881290 source_cors_settings = source_site_configs .cors
1289- if source_cors_settings and source_cors_settings .allowed_origins :
1290- add_cors ( cmd , resource_group , name , source_cors_settings .allowed_origins )
1291- logger .warning ("Successfully migrated CORS allowed origins" )
1292- if source_cors_settings and source_cors_settings .support_credentials :
1291+ add_cors ( cmd , resource_group , name , source_cors_settings .allowed_origins )
1292+ cors_allowed_origins = ', ' . join ( source_cors_settings .allowed_origins )
1293+ logger .warning ("Successfully migrated CORS allowed origins: %s" , cors_allowed_origins )
1294+ if source_cors_settings .support_credentials :
12931295 enable_credentials (cmd , resource_group , name , enable = True )
12941296 logger .warning ("Enabled Access-Control-Allow-Credentials" )
12951297 except Exception as e : # pylint: disable=broad-except
@@ -1385,8 +1387,7 @@ def _migrate_access_restrictions(cmd, source_resource_group, source_name, resour
13851387 default_action = source_restrictions .get ('ipSecurityRestrictionsDefaultAction' )
13861388 scm_default_action = source_restrictions .get ('scmIpSecurityRestrictionsDefaultAction' )
13871389
1388- # validated
1389- if scm_use_main is not None or default_action or scm_default_action :
1390+ if scm_use_main or default_action or scm_default_action :
13901391 try :
13911392 access_restrictions .set_webapp_access_restriction (
13921393 cmd , resource_group , name ,
@@ -1445,7 +1446,7 @@ def _add_single_access_restriction(cmd, resource_group, name, restriction, scm_s
14451446 description = description ,
14461447 scm_site = scm_site ,
14471448 ignore_missing_vnet_service_endpoint = True ,
1448- http_headers = _format_headers_for_add (headers ) if headers else None
1449+ http_headers = _format_headers (headers ) if headers else None
14491450 )
14501451 logger .warning ("Migrated %s subnet restriction: %s (Priority: %d)" ,
14511452 "SCM" if scm_site else "main" , rule_name or subnet_id , priority )
@@ -1462,7 +1463,7 @@ def _add_single_access_restriction(cmd, resource_group, name, restriction, scm_s
14621463 service_tag = ip_address ,
14631464 description = description ,
14641465 scm_site = scm_site ,
1465- http_headers = _format_headers_for_add (headers ) if headers else None
1466+ http_headers = _format_headers (headers ) if headers else None
14661467 )
14671468 logger .warning ("Migrated %s service tag restriction: %s (Priority: %d)" ,
14681469 "SCM" if scm_site else "main" , rule_name or ip_address , priority )
@@ -1477,7 +1478,7 @@ def _add_single_access_restriction(cmd, resource_group, name, restriction, scm_s
14771478 ip_address = ip_address ,
14781479 description = description ,
14791480 scm_site = scm_site ,
1480- http_headers = _format_headers_for_add (headers ) if headers else None
1481+ http_headers = _format_headers (headers ) if headers else None
14811482 )
14821483 logger .warning ("Migrated %s IP restriction: %s (Priority: %d)" ,
14831484 "SCM" if scm_site else "main" , rule_name or ip_address , priority )
@@ -1487,7 +1488,7 @@ def _add_single_access_restriction(cmd, resource_group, name, restriction, scm_s
14871488 "SCM" if scm_site else "main" , rule_name or 'unnamed' , str (e ))
14881489
14891490
1490- def _format_headers_for_add (headers_dict ):
1491+ def _format_headers (headers_dict ):
14911492 if not headers_dict :
14921493 return None
14931494
@@ -1508,24 +1509,29 @@ def _migrate_managed_identities_and_roles(cmd, source, resource_group, name):
15081509
15091510 source_identity = source .identity
15101511
1511- if source_identity and 'SystemAssigned' in source_identity .type :
1512- system_role_assignments = list_role_assignments (cmd ,
1513- assignee_object_id = source_identity .principal_id ,
1514- show_all = True )
1512+ if source_identity :
1513+ if 'SystemAssigned' in source_identity .type :
1514+ system_role_assignments = list_role_assignments (cmd ,
1515+ assignee_object_id = source_identity .principal_id ,
1516+ show_all = True )
1517+
1518+ assign_identity (cmd , resource_group , name , assign_identities = ['[system]' ])
1519+ target_identity = show_identity (cmd , resource_group , name )
1520+ logger .warning ("Assigned system-assigned identity to target function app '%s' with principal ID '%s'" ,
1521+ name , target_identity .principal_id )
1522+ _migrate_role_assignments (cmd , system_role_assignments , target_identity .principal_id )
15151523
1516- assign_identity ( cmd , resource_group , name , assign_identities = [ '[system]' ])
1517- target_identity = show_identity ( cmd , resource_group , name )
1518- logger . warning ( "Assigned system-assigned identity to target function app '%s' with principal ID '%s'" ,
1519- name , target_identity . principal_id )
1520- _migrate_role_assignments ( cmd , system_role_assignments , target_identity . principal_id )
1524+ if source_identity . user_assigned_identities :
1525+ user_identity_ids = list ( source_identity . user_assigned_identities . keys () )
1526+ assign_identity ( cmd , resource_group , name , assign_identities = user_identity_ids )
1527+ logger . warning ( "Assigned user-assigned identities to target function app '%s': %s" ,
1528+ name , ', ' . join ( user_identity_ids ) )
15211529
1522- if source_identity and source_identity .user_assigned_identities :
1523- user_identity_ids = list (source_identity .user_assigned_identities .keys ())
1524- assign_identity (cmd , resource_group , name , assign_identities = user_identity_ids )
1525- logger .warning ("Assigned user-assigned identities to target function app '%s': %s" ,
1526- name , ', ' .join (user_identity_ids ))
1530+ logger .warning ("Successfully migrated managed identities and role assignments" )
15271531
1528- logger .warning ("Successfully migrated managed identities and role assignments" )
1532+ else :
1533+ logger .warning ("No managed identities found in source function app '%s'. No action needed." ,
1534+ source .name )
15291535
15301536 except Exception as e : # pylint: disable=broad-except
15311537 logger .warning ("Failed to migrate managed identities and role assignments with error %s. Run "
0 commit comments