diff --git a/src/azure-cli/azure/cli/command_modules/sql/_format.py b/src/azure-cli/azure/cli/command_modules/sql/_format.py index dd4104c9503..98ecdf82d26 100644 --- a/src/azure-cli/azure/cli/command_modules/sql/_format.py +++ b/src/azure-cli/azure/cli/command_modules/sql/_format.py @@ -355,3 +355,40 @@ def _firewall_rule_table_format(result): ]) return _apply_format(result, _firewall_rule_table_format) + + +############################################### +# sql mi # +############################################### + + +##### +# sql mi transformers for json +##### + +def mi_list_transform(results): + ''' + Transforms the json response for a list of managed instances. + ''' + + return [mi_transform(r) for r in results] + + +def mi_transform(result): + ''' + Transforms the json response for a managed instance. + ''' + + if hasattr(result, 'storage_account_type'): + result.backupStorageRedundancy = _get_external_backup_storage_redundancy(result.storage_account_type) + del result.storage_account_type + + return result + + +def _get_external_backup_storage_redundancy(self): + return { + 'lrs': 'Local', + 'grs': 'Geo', + 'zrs': 'Zone' + }.get(self.lower(), 'Invalid') diff --git a/src/azure-cli/azure/cli/command_modules/sql/commands.py b/src/azure-cli/azure/cli/command_modules/sql/commands.py index 19f2cc4e259..5ade71ed9da 100644 --- a/src/azure-cli/azure/cli/command_modules/sql/commands.py +++ b/src/azure-cli/azure/cli/command_modules/sql/commands.py @@ -19,6 +19,8 @@ server_table_format, usage_table_format, LongRunningOperationResultTransform, + mi_transform, + mi_list_transform ) from ._util import ( @@ -593,11 +595,11 @@ def load_command_table(self, _): managed_instances_operations, client_factory=get_sql_managed_instances_operations) as g: - g.custom_command('create', 'managed_instance_create', supports_no_wait=True) - g.command('delete', 'delete', confirmation=True, supports_no_wait=True) - g.show_command('show', 'get') - g.custom_command('list', 'managed_instance_list') - g.generic_update_command('update', custom_func_name='managed_instance_update', supports_no_wait=True) + g.custom_command('create', 'managed_instance_create', transform=mi_transform, supports_no_wait=True) + g.command('delete', 'delete', transform=mi_transform, confirmation=True, supports_no_wait=True) + g.show_command('show', 'get', transform=mi_transform) + g.custom_command('list', 'managed_instance_list', transform=mi_list_transform) + g.generic_update_command('update', custom_func_name='managed_instance_update', transform=mi_transform, supports_no_wait=True) g.command('failover', 'failover', supports_no_wait=True) managed_instance_keys_operations = CliCommandType(