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
39 changes: 39 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 @@ -641,6 +641,45 @@
text: az sql instance-pool wait -n myinstancepool -g mygroup --created
"""

helps['sql stg'] = """
type: group
short-summary: Manage Server Trust Groups.
"""

helps['sql stg create'] = """
type: command
short-summary: Create a Server Trust Group.
examples:
- name: Create a Server Trust Group with specified resource ids of its members.
text: az sql stg create -g resourcegroup -l location -n stg-name --trust-scope GlobalTransactions -m $mi1-id $mi2-id
"""

helps['sql stg show'] = """
type: command
short-summary: Retrieve a Server Trust Group.
examples:
- name: Retrieve a Server Trust Group.
text: az sql stg show -g resourcegroup -l location -n stg-name
"""

helps['sql stg delete'] = """
type: command
short-summary: Delete a Server Trust Group.
examples:
- name: Delete a Server Trust Group.
text: az sql stg delete -g resourcegroup -l location -n stg-name
"""

helps['sql stg list'] = """
type: command
short-summary: Retrieve a list of Server Trust Groups.
examples:
- name: Retrieve a list of Server Trust Groups by instance.
text: az sql stg list -g resourcegroup --instance-name mi1-name
- name: Retrieve a list of Server Trust Groups by location.
text: az sql stg list -g resourcegroup -l location
"""

helps['sql mi'] = """
type: group
short-summary: Manage SQL managed instances.
Expand Down
51 changes: 51 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 @@ -1602,6 +1602,57 @@ def _configure_security_policy_storage_params(arg_ctx):
options_list=['--vnet-name'],
help='The virtual network name')

###############################################
# sql server trust groups #
###############################################

with self.argument_context('sql stg') as c:
c.argument('resource_group_name',
help='The resource group name')

with self.argument_context('sql stg create') as c:
c.argument('name',
options_list=['--name', '-n'],
help='The name of the Server Trust Group.')

c.argument('location',
help='The location name of the Server Trust Group.')

c.argument('group_member',
options_list=['--group-member', '-m'],
help="""Managed Instance that is to be a member of the group.
Specify resource group, subscription id and the name of the instance.""",
nargs='+')

c.argument('trust_scope',
help='The trust scope of the Server Trust Group.',
nargs='+')

with self.argument_context('sql stg show') as c:
c.argument('location',
help='The location of the Server Trust Group.')

c.argument('name',
options_list=['--name', '-n'],
help='The name of the Server Trust Group.')

with self.argument_context('sql stg delete') as c:
c.argument('location',
help='The location of the Server Trust Group.')

c.argument('name',
options_list=['--name', '-n'],
help='The name of the Server Trust Group.')

with self.argument_context('sql stg list') as c:
c.argument('location',
help='The location of the Server Trust Group.',
arg_group='List By Location')

c.argument('instance_name',
help='Managed Instance name.',
arg_group='List By Instance')

###############################################
# sql managed instance #
###############################################
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 @@ -84,6 +84,10 @@ def get_sql_managed_instance_encryption_protectors_operations(cli_ctx, _):
return get_sql_management_client(cli_ctx).managed_instance_encryption_protectors


def get_sql_server_trust_groups_operations(cli_ctx, _):
return get_sql_management_client(cli_ctx).server_trust_groups


def get_sql_failover_groups_operations(cli_ctx, _):
return get_sql_management_client(cli_ctx).failover_groups

Expand Down
15 changes: 15 additions & 0 deletions src/azure-cli/azure/cli/command_modules/sql/commands.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@
get_sql_managed_instance_keys_operations,
get_sql_managed_instance_operations_operations,
get_sql_managed_instances_operations,
get_sql_server_trust_groups_operations,
get_sql_replication_links_operations,
get_sql_restorable_dropped_databases_operations,
get_sql_restorable_dropped_managed_databases_operations,
Expand Down Expand Up @@ -595,6 +596,20 @@ def load_command_table(self, _):
g.custom_command('enable', 'server_aad_only_enable')
g.show_command('get', 'get')

###############################################
# sql server trust groups #
###############################################

server_trust_groups_operations = CliCommandType(
operations_tmpl='azure.mgmt.sql.operations#ServerTrustGroupsOperations.{}',
client_factory=get_sql_server_trust_groups_operations)

with self.command_group('sql stg', server_trust_groups_operations, client_factory=get_sql_server_trust_groups_operations, is_preview=True) as g:
g.custom_command('create', 'server_trust_group_create', supports_no_wait=True)
g.custom_command('delete', 'server_trust_group_delete', confirmation=True, supports_no_wait=True)
g.custom_show_command('show', 'server_trust_group_get')
g.custom_command('list', 'server_trust_group_list')
Copy link
Contributor

Choose a reason for hiding this comment

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

Could you add wait command according to the guidance?
image


###############################################
# sql managed instance #
###############################################
Expand Down
59 changes: 58 additions & 1 deletion src/azure-cli/azure/cli/command_modules/sql/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,8 @@
PartnerRegionInfo,
InstanceFailoverGroupReadOnlyEndpoint,
InstanceFailoverGroupReadWriteEndpoint,
ServerPublicNetworkAccess
ServerPublicNetworkAccess,
ServerInfo
)

from azure.cli.core.profiles import ResourceType
Expand Down Expand Up @@ -3643,6 +3644,62 @@ def server_aad_only_enable(
azure_ad_only_authentication=True
)

###############################################
# sql server trust groups #
###############################################


def server_trust_group_create(
client,
resource_group_name,
name,
location,
group_member,
trust_scope,
no_wait=False):

members = [ServerInfo(server_id=member) for member in group_member]
return sdk_no_wait(no_wait, client.create_or_update,
resource_group_name=resource_group_name,
location_name=location,
server_trust_group_name=name,
group_members=members,
trust_scopes=trust_scope)


def server_trust_group_delete(
client,
resource_group_name,
name,
location,
no_wait=False):

return sdk_no_wait(no_wait, client.delete,
resource_group_name=resource_group_name,
location_name=location,
server_trust_group_name=name)


def server_trust_group_get(
client,
resource_group_name,
name,
location):

return client.get(resource_group_name=resource_group_name,
location_name=location,
server_trust_group_name=name)


def server_trust_group_list(
client,
resource_group_name,
instance_name=None,
location=None):
if instance_name:
return client.list_by_instance(resource_group_name=resource_group_name, managed_instance_name=instance_name)
return client.list_by_location(resource_group_name=resource_group_name, location_name=location)


###############################################
# sql managed instance #
Expand Down
Loading