@@ -339,7 +339,7 @@ def flexible_server_create(cmd, client,
339339 high_availability = None , zone = None , standby_availability_zone = None ,
340340 iops = None , auto_grow = None , auto_scale_iops = None , accelerated_logs = None , storage_redundancy = None ,
341341 geo_redundant_backup = None , byok_identity = None , backup_byok_identity = None , byok_key = None , backup_byok_key = None ,
342- maintenance_policy_patch_strategy = None , yes = False ):
342+ backup_interval = None , maintenance_policy_patch_strategy = None , yes = False ):
343343 # Generate missing parameters
344344 location , resource_group_name , server_name = generate_missing_parameters (cmd , location , resource_group_name , server_name )
345345 db_context = DbContext (
@@ -371,6 +371,7 @@ def flexible_server_create(cmd, client,
371371 version = version ,
372372 geo_redundant_backup = geo_redundant_backup ,
373373 byok_identity = byok_identity ,
374+ backup_interval = backup_interval ,
374375 backup_byok_identity = backup_byok_identity ,
375376 byok_key = byok_key ,
376377 backup_byok_key = backup_byok_key ,
@@ -414,7 +415,7 @@ def flexible_server_create(cmd, client,
414415 log_on_disk = accelerated_logs ,
415416 storage_redundancy = storage_redundancy )
416417
417- backup = models .Backup (backup_retention_days = backup_retention , geo_redundant_backup = geo_redundant_backup )
418+ backup = models .Backup (backup_retention_days = backup_retention , backup_interval_hours = backup_interval , geo_redundant_backup = geo_redundant_backup )
418419
419420 sku = models .MySQLServerSku (name = sku_name , tier = tier )
420421
@@ -707,8 +708,8 @@ def flexible_server_import_replica_stop(client, resource_group_name, server_name
707708def flexible_server_restore (cmd , client , resource_group_name , server_name , source_server , restore_point_in_time = None , zone = None ,
708709 no_wait = False , subnet = None , subnet_address_prefix = None , vnet = None , vnet_address_prefix = None ,
709710 private_dns_zone_arguments = None , public_access = None , yes = False , sku_name = None , tier = None , database_port = None ,
710- storage_gb = None , auto_grow = None , accelerated_logs = None , storage_redundancy = None , backup_retention = None ,
711- geo_redundant_backup = None , tags = None ):
711+ storage_gb = None , auto_grow = None , accelerated_logs = None , faster_restore = None , storage_redundancy = None ,
712+ backup_retention = None , geo_redundant_backup = None , tags = None ):
712713 provider = 'Microsoft.DBforMySQL'
713714 server_name = server_name .lower ()
714715
@@ -761,6 +762,11 @@ def flexible_server_restore(cmd, client, resource_group_name, server_name, sourc
761762 else :
762763 mysql_accelerated_logs_validator (accelerated_logs , tier )
763764
765+ if not faster_restore :
766+ auto_io_scaling = source_server_object .storage .auto_io_scaling
767+ else :
768+ auto_io_scaling = _determine_auto_io_scaling_by_faster_restore (faster_restore )
769+
764770 if not storage_redundancy :
765771 storage_redundancy = source_server_object .storage .storage_redundancy
766772 else :
@@ -788,7 +794,7 @@ def flexible_server_restore(cmd, client, resource_group_name, server_name, sourc
788794 iops_input = source_server_object .storage .iops , tier = tier , sku_name = sku_name )
789795
790796 storage = models .Storage (storage_size_gb = storage_gb , iops = iops , auto_grow = auto_grow ,
791- auto_io_scaling = source_server_object . storage . auto_io_scaling ,
797+ auto_io_scaling = auto_io_scaling ,
792798 log_on_disk = accelerated_logs , storage_redundancy = storage_redundancy )
793799
794800 backup = models .Backup (backup_retention_days = backup_retention , geo_redundant_backup = geo_redundant_backup )
@@ -1323,8 +1329,8 @@ def flexible_parameter_update_batch(client, server_name, resource_group_name, so
13231329# Custom functions for server replica, will add MySQL part after backend ready in future
13241330def flexible_replica_create (cmd , client , resource_group_name , source_server , replica_name , location = None , tags = None , sku_name = None ,
13251331 private_dns_zone_arguments = None , vnet = None , subnet = None , zone = None , public_access = None , no_wait = False ,
1326- storage_gb = None , iops = None , storage_redundancy = None , geo_redundant_backup = None , backup_retention = None ,
1327- tier = None , database_port = None ):
1332+ storage_gb = None , iops = None , storage_redundancy = None , faster_provisioning = None , geo_redundant_backup = None ,
1333+ backup_retention = None , tier = None , database_port = None ):
13281334 provider = 'Microsoft.DBforMySQL'
13291335 replica_name = replica_name .lower ()
13301336
@@ -1369,6 +1375,11 @@ def flexible_replica_create(cmd, client, resource_group_name, source_server, rep
13691375 if not iops :
13701376 iops = source_server_object .storage .iops
13711377
1378+ if not faster_provisioning :
1379+ auto_io_scaling = source_server_object .storage .auto_io_scaling
1380+ else :
1381+ auto_io_scaling = _determine_auto_io_scaling_by_faster_provisioning (faster_provisioning )
1382+
13721383 if not storage_redundancy :
13731384 storage_redundancy = source_server_object .storage .storage_redundancy
13741385 else :
@@ -1379,7 +1390,7 @@ def flexible_replica_create(cmd, client, resource_group_name, source_server, rep
13791390 storage = models .Storage (storage_size_gb = storage_gb ,
13801391 iops = iops ,
13811392 auto_grow = "Enabled" ,
1382- auto_io_scaling = source_server_object . storage . auto_io_scaling ,
1393+ auto_io_scaling = auto_io_scaling ,
13831394 storage_redundancy = storage_redundancy )
13841395
13851396 backup = models .Backup (backup_retention_days = backup_retention , geo_redundant_backup = geo_redundant_backup )
@@ -1657,6 +1668,22 @@ def _determine_iops(storage_gb, iops_info, iops_input, tier, sku_name):
16571668 return iops
16581669
16591670
1671+ def _determine_auto_io_scaling_by_faster_restore (faster_restore ):
1672+ if faster_restore .lower () == 'enabled' :
1673+ logger .info ("You have selected Faster Restore as Enabled. This will activate Auto scale IOPS configuration "
1674+ "for both the source and the newly restored server to enable faster restore. "
1675+ "You can disable the Auto scale IOPS settings later, if needed." )
1676+ return faster_restore
1677+
1678+
1679+ def _determine_auto_io_scaling_by_faster_provisioning (faster_restore ):
1680+ if faster_restore .lower () == 'enabled' :
1681+ logger .info ("You have selected Faster Provisioning as Enabled. This will activate Auto scale IOPS configuration "
1682+ "for both the source and the newly provisioned replica server to enable faster provisioning. "
1683+ "You can disable the Auto scale IOPS settings later, if needed." )
1684+ return faster_restore
1685+
1686+
16601687def _determine_acceleratedLogs (accelerated_logs , tier ):
16611688 if accelerated_logs is None :
16621689 if tier == "MemoryOptimized" :
0 commit comments