Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/_help.py
Original file line number Diff line number Diff line change
Expand Up @@ -1282,6 +1282,35 @@
text: az sql midb log-replay wait --deleted --resource-group mygroup --managed-instance myinstance --name mymanageddb
"""

helps['sql midb ledger-digest-uploads'] = """
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
helps['sql midb ledger-digest-uploads'] = """
helps['sql midb ledger-digest-upload'] = """

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we use same cmd in azure sql also. So, using the same to maintain the consistency between azure sql and MI.
https://learn.microsoft.com/en-us/cli/azure/sql/db/ledger-digest-uploads?view=azure-cli-latest#az-sql-db-ledger-digest-uploads-enable

type: group
short-summary: Manage ledger digest upload settings.
"""

helps['sql midb ledger-digest-uploads enable'] = """
type: command
short-summary: Enable uploading ledger digests to an Azure Storage account or to Azure Confidential Ledger. If uploading ledger digests is already enabled, the cmdlet resets the digest storage endpoint to a new value.
examples:
- name: Enable uploading ledger digests to an Azure Blob storage.
text: az sql midb ledger-digest-uploads enable --n midb -g MyResourceGroup --mi myinstance --endpoint https://mystorage.blob.core.windows.net
"""

helps['sql midb ledger-digest-uploads disable'] = """
type: command
short-summary: Disable uploading ledger digests.
examples:
- name: Disable uploading ledger digests.
text: az sql midb ledger-digest-uploads disable --n midb -g MyResourceGroup --mi myinstance
"""

helps['sql midb ledger-digest-uploads show'] = """
type: command
short-summary: Show the current ledger digest settings.
examples:
- name: Show the settings for uploading ledger digests.
text: az sql midb ledger-digest-uploads show --n midb -g MyResourceGroup --mi myinstance
"""

helps['sql server'] = """
type: group
short-summary: Manage SQL servers.
Expand Down
14 changes: 14 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -2428,6 +2428,7 @@ class ContainerIdentityType(Enum):
c, 'parameters', ManagedDatabase, [
'collation',
'tags',
'is_ledger_on'
])

c.argument('tags', arg_type=tags_type)
Expand All @@ -2437,6 +2438,10 @@ class ContainerIdentityType(Enum):
help='The collation of the Azure SQL Managed Database collation to use, '
'e.g.: SQL_Latin1_General_CP1_CI_AS or Latin1_General_100_CS_AS_SC')

c.argument('is_ledger_on',
required=False,
arg_type=ledger_on_param_type)

with self.argument_context('sql midb update') as c:
create_args_for_complex_type(
c, 'parameters', ManagedDatabase, [
Expand Down Expand Up @@ -2687,6 +2692,15 @@ class ContainerIdentityType(Enum):
options_list=['--last-backup-name', '--last-bn'],
help='The name of the last backup to restore.')

######
# sql midb ledger-digest-uploads
######
with self.argument_context('sql midb ledger-digest-uploads enable') as c:
c.argument('endpoint',
options_list=['--endpoint'],
help='The endpoint of a digest storage, '
'which can be either an Azure Blob storage or a ledger in Azure Confidential Ledger.')

###############################################
# sql virtual cluster #
###############################################
Expand Down
4 changes: 4 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/_util.py
Original file line number Diff line number Diff line change
Expand Up @@ -250,3 +250,7 @@ def get_sql_database_encryption_protector_operations(cli_ctx, _):

def get_sql_database_recoverable_databases_operations(cli_ctx, _):
return get_sql_management_client(cli_ctx).recoverable_databases


def get_sql_managed_database_ledger_digest_uploads_operations(cli_ctx, _):
return get_sql_management_client(cli_ctx).managed_ledger_digest_uploads
15 changes: 14 additions & 1 deletion src/azure-cli/azure/cli/command_modules/sql/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@
get_sql_virtual_network_rules_operations,
get_sql_instance_failover_groups_operations,
get_sql_database_ledger_digest_uploads_operations,
get_sql_database_encryption_protector_operations
get_sql_database_encryption_protector_operations,
get_sql_managed_database_ledger_digest_uploads_operations
)

from ._validators import (
Expand Down Expand Up @@ -992,6 +993,18 @@ def load_command_table(self, _):

g.custom_show_command('show', 'managed_db_log_replay_get')

managed_ledger_digest_uploads_operations = CliCommandType(
operations_tmpl='azure.mgmt.sql.operations#ManagedLedgerDigestUploadsOperations.{}',
client_factory=get_sql_managed_database_ledger_digest_uploads_operations)

with self.command_group('sql midb ledger-digest-uploads',
managed_ledger_digest_uploads_operations,
client_factory=get_sql_managed_database_ledger_digest_uploads_operations) as g:

g.custom_show_command('show', 'managed_ledger_digest_uploads_show')
g.custom_command('enable', 'managed_ledger_digest_uploads_enable')
g.custom_command('disable', 'managed_ledger_digest_uploads_disable')

###############################################
# sql virtual cluster #
###############################################
Expand Down
54 changes: 54 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -5952,6 +5952,60 @@ def managed_db_log_replay_get(
resource_group_name=resource_group_name,
restore_details_name=RestoreDetailsName.DEFAULT)


def managed_ledger_digest_uploads_show(
client,
resource_group_name,
managed_instance_name,
database_name):
'''
Shows ledger storage target
'''

return client.get(
resource_group_name=resource_group_name,
managed_instance_name=managed_instance_name,
database_name=database_name,
ledger_digest_uploads=LedgerDigestUploadsName.CURRENT)


def managed_ledger_digest_uploads_enable(
client,
resource_group_name,
managed_instance_name,
database_name,
endpoint,
**kwargs):
'''
Enables ledger storage target
'''

kwargs['digest_storage_endpoint'] = endpoint

return client.begin_create_or_update(
resource_group_name=resource_group_name,
managed_instance_name=managed_instance_name,
database_name=database_name,
ledger_digest_uploads=LedgerDigestUploadsName.CURRENT,
parameters=kwargs)


def managed_ledger_digest_uploads_disable(
client,
resource_group_name,
managed_instance_name,
database_name):
'''
Disables ledger storage target
'''

return client.begin_disable(
resource_group_name=resource_group_name,
managed_instance_name=managed_instance_name,
database_name=database_name,
ledger_digest_uploads=LedgerDigestUploadsName.CURRENT)


###############################################
# sql failover-group #
###############################################
Expand Down
Loading