Skip to content

Commit 68b4d77

Browse files
maboja-msfttjprescott
authored andcommitted
Implementation for CLI for Server DNS Aliasing (#4949)
1 parent 6cad351 commit 68b4d77

10 files changed

Lines changed: 5469 additions & 1 deletion

File tree

src/command_modules/azure-cli-sql/HISTORY.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
Release History
44
===============
55

6+
2.0.21
7+
++++++
8+
* Added az sql server dns-alias commands.
9+
610
2.0.20
711
++++++
812
* Added az sql db rename

src/command_modules/azure-cli-sql/azure/cli/command_modules/sql/_help.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,14 @@
300300
type: command
301301
short-summary: Updates a server's secure connection policy.
302302
"""
303+
helps['sql server dns-alias'] = """
304+
type: group
305+
short-summary: Manage a server's DNS aliases.
306+
"""
307+
helps['sql server dns-alias set'] = """
308+
type: command
309+
short-summary: Sets a server to which DNS alias should point
310+
"""
303311
helps['sql server firewall-rule'] = """
304312
type: group
305313
short-summary: Manage a server's firewall rules.

src/command_modules/azure-cli-sql/azure/cli/command_modules/sql/_params.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,17 @@ def _configure_security_policy_storage_params(arg_ctx):
654654
c.argument('connection_type', options_list=['--connection-type', '-t'],
655655
arg_type=get_enum_type(ServerConnectionType))
656656

657+
#####
658+
# sql server dns-alias
659+
#####
660+
with self.argument_context('sql server dns-alias') as c:
661+
c.argument('server_name', arg_type=server_param_type)
662+
c.argument('dns_alias_name', options_list=('--name', '-n'))
663+
c.argument('original_server_name', options_list=('--original-server'),
664+
help='The name of the server to which alias is currently pointing')
665+
c.argument('original_resource_group_name', options_list=('--original-resource-group'))
666+
c.argument('original_subscription_id', options_list=('--original-subscription-id'))
667+
657668
#####
658669
# sql server firewall-rule
659670
#####

src/command_modules/azure-cli-sql/azure/cli/command_modules/sql/_util.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,10 @@ def get_sql_server_connection_policies_operations(cli_ctx, _):
8888
return get_sql_management_client(cli_ctx).server_connection_policies
8989

9090

91+
def get_sql_server_dns_aliases_operations(cli_ctx, _):
92+
return get_sql_management_client(cli_ctx).server_dns_aliases
93+
94+
9195
def get_sql_server_keys_operations(cli_ctx, _):
9296
return get_sql_management_client(cli_ctx).server_keys
9397

src/command_modules/azure-cli-sql/azure/cli/command_modules/sql/commands.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
get_sql_replication_links_operations,
2121
get_sql_restorable_dropped_databases_operations,
2222
get_sql_server_connection_policies_operations,
23+
get_sql_server_dns_aliases_operations,
2324
get_sql_server_keys_operations,
2425
get_sql_servers_operations,
2526
get_sql_server_usages_operations,
@@ -230,3 +231,13 @@ def load_command_table(self, _):
230231
with self.command_group('sql server conn-policy', server_connection_policies_operations, client_factory=get_sql_server_connection_policies_operations) as c:
231232
c.command('show', 'get')
232233
c.generic_update_command('update')
234+
235+
server_dns_aliases_operations = CliCommandType(
236+
operations_tmpl='azure.mgmt.sql.operations.server_dns_aliases_operations#ServerDnsAliasesOperations.{}',
237+
client_factory=get_sql_server_dns_aliases_operations)
238+
with self.command_group('sql server dns-alias', server_dns_aliases_operations, client_factory=get_sql_server_dns_aliases_operations) as c:
239+
c.command('show', 'get')
240+
c.command('list', 'list_by_server')
241+
c.command('create', 'create_or_update')
242+
c.command('delete', 'delete')
243+
c.custom_command('set', 'server_dns_alias_set')

src/command_modules/azure-cli-sql/azure/cli/command_modules/sql/custom.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1214,6 +1214,35 @@ def _get_server_key_name_from_uri(uri):
12141214
return '{}_{}_{}'.format(vault, key, version)
12151215

12161216

1217+
#####
1218+
# sql server dns-alias
1219+
#####
1220+
1221+
1222+
def server_dns_alias_set(
1223+
cmd,
1224+
client,
1225+
resource_group_name,
1226+
server_name,
1227+
dns_alias_name,
1228+
original_server_name,
1229+
original_subscription_id=None,
1230+
original_resource_group_name=None):
1231+
1232+
# Build the old alias id
1233+
old_alias_id = "/subscriptions/{}/resourceGroups/{}/providers/Microsoft.Sql/servers/{}/dnsAliases/{}".format(
1234+
quote(original_subscription_id or get_subscription_id(cmd.cli_ctx)),
1235+
quote(original_resource_group_name or resource_group_name),
1236+
quote(original_server_name),
1237+
quote(dns_alias_name))
1238+
1239+
return client.acquire(
1240+
resource_group_name=resource_group_name,
1241+
server_name=server_name,
1242+
dns_alias_name=dns_alias_name,
1243+
old_server_dns_alias_id=old_alias_id
1244+
)
1245+
12171246
#####
12181247
# sql server encryption-protector
12191248
#####

0 commit comments

Comments
 (0)