diff --git a/src/azure-cli/HISTORY.rst b/src/azure-cli/HISTORY.rst index 3291b5d88c3..38bb2173349 100644 --- a/src/azure-cli/HISTORY.rst +++ b/src/azure-cli/HISTORY.rst @@ -82,6 +82,8 @@ Release History **RDBMS** +* Support storage auto-grow for MySQL, PostgreSQL and MariaDB + * Support replication for MariaDB. **SQL** diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py index f036d5c7ad4..a3824e4dd04 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py @@ -31,6 +31,7 @@ def _complex_params(command_group): c.argument('backup_retention', type=int, options_list=['--backup-retention'], help='The number of days a backup is retained. Range of 7 to 35 days. Default is 7 days.', validator=retention_validator) c.argument('geo_redundant_backup', arg_type=get_enum_type(['Enabled', 'Disabled']), options_list=['--geo-redundant-backup'], help='Enable or disable geo-redundant backups. Default value is Disabled. Not supported in Basic pricing tier.') c.argument('storage_mb', options_list=['--storage-size'], type=int, help='The storage capacity of the server (unit is megabytes). Minimum 5120 and increases in 1024 increments. Default is 51200.') + c.argument('auto_grow', arg_type=get_enum_type(['Enabled', 'Disabled']), options_list=['--auto-grow'], help='Enable or disable autogrow of the storage. Default value is Enabled.') c.argument('location', arg_type=get_location_type(self.cli_ctx), validator=get_default_location_from_resource_group) c.argument('version', help='Server major version.') @@ -84,6 +85,7 @@ def _complex_params(command_group): c.argument('family', options_list=['--family'], arg_type=get_enum_type(['Gen4', 'Gen5']), help='Hardware generation.') c.argument('storage_mb', options_list=['--storage-size'], type=int, help='The storage capacity of the server (unit is megabytes). Minimum 5120 and increases in 1024 increments. Default is 51200.') c.argument('backup_retention', options_list=['--backup-retention'], type=int, help='The number of days a backup is retained. Range of 7 to 35 days. Default is 7 days.', validator=retention_validator) + c.argument('auto_grow', arg_type=get_enum_type(['Enabled', 'Disabled']), options_list=['--auto-grow'], help='Enable or disable autogrow of the storage. Default value is Enabled.') c.argument('tags', tags_type) for scope in ['mariadb server-logs', 'mysql server-logs', 'postgres server-logs']: diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/custom.py b/src/azure-cli/azure/cli/command_modules/rdbms/custom.py index ddb4aa43918..73ae72333ea 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/custom.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/custom.py @@ -18,7 +18,7 @@ def _server_create(cmd, client, resource_group_name, server_name, sku_name, no_wait=False, location=None, administrator_login=None, administrator_login_password=None, backup_retention=None, - geo_redundant_backup=None, ssl_enforcement=None, storage_mb=None, tags=None, version=None): + geo_redundant_backup=None, ssl_enforcement=None, storage_mb=None, tags=None, version=None, auto_grow='Enabled'): provider = 'Microsoft.DBforPostgreSQL' if isinstance(client, MySqlServersOperations): provider = 'Microsoft.DBforMySQL' @@ -38,7 +38,8 @@ def _server_create(cmd, client, resource_group_name, server_name, sku_name, no_w storage_profile=mysql.models.StorageProfile( backup_retention_days=backup_retention, geo_redundant_backup=geo_redundant_backup, - storage_mb=storage_mb)), + storage_mb=storage_mb, + storage_autogrow=auto_grow)), location=location, tags=tags) elif provider == 'Microsoft.DBforPostgreSQL': @@ -53,7 +54,8 @@ def _server_create(cmd, client, resource_group_name, server_name, sku_name, no_w storage_profile=postgresql.models.StorageProfile( backup_retention_days=backup_retention, geo_redundant_backup=geo_redundant_backup, - storage_mb=storage_mb)), + storage_mb=storage_mb, + storage_autogrow=auto_grow)), location=location, tags=tags) elif provider == 'Microsoft.DBforMariaDB': @@ -68,7 +70,8 @@ def _server_create(cmd, client, resource_group_name, server_name, sku_name, no_w storage_profile=mariadb.models.StorageProfile( backup_retention_days=backup_retention, geo_redundant_backup=geo_redundant_backup, - storage_mb=storage_mb)), + storage_mb=storage_mb, + storage_autogrow=auto_grow)), location=location, tags=tags) @@ -279,7 +282,8 @@ def _server_update_custom_func(instance, backup_retention=None, administrator_login_password=None, ssl_enforcement=None, - tags=None): + tags=None, + auto_grow=None): from importlib import import_module server_module_path = instance.__module__ module = import_module(server_module_path.replace('server', 'server_update_parameters')) @@ -299,6 +303,9 @@ def _server_update_custom_func(instance, if backup_retention: instance.storage_profile.backup_retention_days = backup_retention + if auto_grow: + instance.storage_profile.storage_autogrow = auto_grow + params = ServerUpdateParameters(sku=instance.sku, storage_profile=instance.storage_profile, administrator_login_password=administrator_login_password,