Skip to content
Merged
37 changes: 37 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/_format.py
Original file line number Diff line number Diff line change
Expand Up @@ -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')
12 changes: 7 additions & 5 deletions src/azure-cli/azure/cli/command_modules/sql/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
server_table_format,
usage_table_format,
LongRunningOperationResultTransform,
mi_transform,
mi_list_transform
)

from ._util import (
Expand Down Expand Up @@ -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(
Expand Down