Skip to content

Commit cf053cd

Browse files
authored
[RDBMS] BREAKING CHANGE az postgres flexible-server create: Remove default value to --version and remove arguments --create-default-database and --database-name (#32398)
1 parent 19bddd4 commit cf053cd

File tree

30 files changed

+69186
-52687
lines changed

30 files changed

+69186
-52687
lines changed

src/azure-cli/azure/cli/command_modules/rdbms/_breaking_change.py

Lines changed: 0 additions & 24 deletions
This file was deleted.

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

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -334,12 +334,6 @@ def _flexible_server_params(command_group):
334334
'This value can only be updated if flexible server is using Premium SSD v2 Disks.'
335335
)
336336

337-
create_default_db_arg_type = CLIArgumentType(
338-
arg_type=get_enum_type(['Enabled', 'Disabled']),
339-
options_list=['--create-default-database', '-c'],
340-
help='Enable or disable the creation of default database flexibleserverdb. Default value is Disabled.'
341-
)
342-
343337
cluster_option_arg_type = CLIArgumentType(
344338
arg_type=get_enum_type(['Server', 'ElasticCluster']),
345339
options_list=['--cluster-option'],
@@ -598,7 +592,7 @@ def _flexible_server_params(command_group):
598592
c.argument('tier', default='GeneralPurpose', arg_type=tier_arg_type)
599593
c.argument('sku_name', arg_type=sku_name_arg_type)
600594
c.argument('storage_gb', default='128', arg_type=storage_gb_arg_type)
601-
c.argument('version', default='17', arg_type=version_arg_type)
595+
c.argument('version', arg_type=version_arg_type)
602596
c.argument('backup_retention', default=7, arg_type=pg_backup_retention_arg_type)
603597
c.argument('microsoft_entra_auth', default='Disabled', arg_type=microsoft_entra_auth_arg_type)
604598
c.argument('admin_id', options_list=['--admin-object-id', '-i'], help='The unique ID of the Microsoft Entra administrator.')
@@ -611,7 +605,6 @@ def _flexible_server_params(command_group):
611605
c.argument('iops', default=None, arg_type=iops_v2_arg_type)
612606
c.argument('throughput', default=None, arg_type=throughput_arg_type)
613607
c.argument('performance_tier', default=None, arg_type=performance_tier_arg_type)
614-
c.argument('create_default_db', default='Disabled', arg_type=create_default_db_arg_type)
615608
c.argument('create_cluster', default='Server', arg_type=cluster_option_arg_type)
616609
c.argument('cluster_size', default=None, arg_type=create_node_count_arg_type)
617610
elif command_group == 'mysql':
@@ -641,7 +634,6 @@ def _flexible_server_params(command_group):
641634
c.argument('zone', zone_arg_type)
642635
c.argument('tags', tags_type)
643636
c.argument('standby_availability_zone', arg_type=standby_availability_zone_arg_type)
644-
c.argument('database_name', arg_type=database_name_create_arg_type)
645637
c.argument('yes', arg_type=yes_arg_type)
646638

647639
with self.argument_context('{} flexible-server list'.format(command_group)) as c:

src/azure-cli/azure/cli/command_modules/rdbms/flexible_server_custom_postgres.py

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,12 @@ def flexible_server_create(cmd, client,
6363
storage_gb=None, version=None, microsoft_entra_auth=None,
6464
admin_name=None, admin_id=None, admin_type=None,
6565
password_auth=None, administrator_login=None, administrator_login_password=None,
66-
tags=None, database_name=None,
67-
subnet=None, subnet_address_prefix=None, vnet=None, vnet_address_prefix=None,
66+
tags=None, subnet=None, subnet_address_prefix=None, vnet=None, vnet_address_prefix=None,
6867
private_dns_zone_arguments=None, public_access=None,
6968
high_availability=None, zone=None, standby_availability_zone=None,
7069
geo_redundant_backup=None, byok_identity=None, byok_key=None, backup_byok_identity=None, backup_byok_key=None,
7170
auto_grow=None, performance_tier=None,
72-
storage_type=None, iops=None, throughput=None, create_default_db='Enabled', create_cluster=None, cluster_size=None, yes=False):
71+
storage_type=None, iops=None, throughput=None, create_cluster=None, cluster_size=None, yes=False):
7372

7473
if not check_resource_group(resource_group_name):
7574
resource_group_name = None
@@ -87,21 +86,26 @@ def flexible_server_create(cmd, client,
8786

8887
server_name = server_name.lower()
8988

90-
if sku_name is None:
91-
# set sku_name from capability API
89+
if (sku_name is None) or (version is None):
9290
list_location_capability_info = get_postgres_location_capability_info(cmd, location)
93-
tiers = [item.lower() for item in get_postgres_tiers(list_location_capability_info['sku_info'])]
94-
try:
95-
sku_info = list_location_capability_info['sku_info']
96-
skus = list(get_postgres_skus(sku_info, tier.lower()))
97-
skus = sorted(skus, key=cmp_to_key(compare_sku_names))
98-
sku_name = skus[0]
99-
except:
100-
raise CLIError('Incorrect value for --tier. Allowed values : {}'.format(tiers))
91+
92+
# set sku_name from capability API
93+
if sku_name is None:
94+
tiers = [item.lower() for item in get_postgres_tiers(list_location_capability_info['sku_info'])]
95+
try:
96+
sku_info = list_location_capability_info['sku_info']
97+
skus = list(get_postgres_skus(sku_info, tier.lower()))
98+
skus = sorted(skus, key=cmp_to_key(compare_sku_names))
99+
sku_name = skus[0]
100+
except:
101+
raise CLIError('Incorrect value for --tier. Allowed values : {}'.format(tiers))
102+
# default to the latest version
103+
if version is None:
104+
supported_server_versions = sorted(list_location_capability_info['supported_server_versions'])
105+
version = supported_server_versions[-1]
101106

102107
pg_arguments_validator(db_context,
103108
server_name=server_name,
104-
database_name=database_name,
105109
location=location,
106110
tier=tier, sku_name=sku_name,
107111
storage_gb=storage_gb,
@@ -197,13 +201,6 @@ def flexible_server_create(cmd, client,
197201
if start_ip != -1 and end_ip != -1:
198202
firewall_id = create_firewall_rule(db_context, cmd, resource_group_name, server_name, start_ip, end_ip)
199203

200-
# Create database if it does not exist
201-
if (database_name is not None or (create_default_db and create_default_db.lower() == 'enabled') and create_cluster != 'ElasticCluster'):
202-
db_name = database_name if database_name else DEFAULT_DB_NAME
203-
_create_database(db_context, cmd, resource_group_name, server_name, db_name)
204-
else:
205-
db_name = POSTGRES_DB_NAME
206-
207204
user = server_result.administrator_login if is_password_auth_enabled else '<user>'
208205
password = administrator_login_password if is_password_auth_enabled else '<password>'
209206
admin = quote(admin_name) if admin_name else '<admin>'
@@ -220,12 +217,12 @@ def flexible_server_create(cmd, client,
220217
server_name, resource_group_name)
221218
logger.warning('Try using \'az postgres flexible-server connect\' command to test out connection.')
222219

223-
_update_local_contexts(cmd, server_name, resource_group_name, db_name, location, user)
220+
_update_local_contexts(cmd, server_name, resource_group_name, location, user)
224221

225222
return _form_response(user, sku, loc, server_id, host, version, password,
226-
_create_postgresql_connection_string(host, user, password, db_name),
227-
db_name, firewall_id, subnet_id, is_password_auth_enabled, is_microsoft_entra_auth_enabled, admin_name,
228-
_create_microsoft_entra_connection_string(host, db_name, admin))
223+
_create_postgresql_connection_string(host, user, password),
224+
firewall_id, subnet_id, is_password_auth_enabled, is_microsoft_entra_auth_enabled, admin_name,
225+
_create_microsoft_entra_connection_string(host, POSTGRES_DB_NAME, admin))
229226
# endregion create without args
230227

231228

@@ -1808,7 +1805,7 @@ def _create_postgresql_connection_strings(host, user, password, database, port):
18081805
return result
18091806

18101807

1811-
def _create_postgresql_connection_string(host, user, password, database):
1808+
def _create_postgresql_connection_string(host, user, password, database=POSTGRES_DB_NAME):
18121809
connection_kwargs = {
18131810
'user': user if user is not None else '{user}',
18141811
'host': host,
@@ -1818,7 +1815,7 @@ def _create_postgresql_connection_string(host, user, password, database):
18181815
return 'postgresql://{user}:{password}@{host}/{database}?sslmode=require'.format(**connection_kwargs)
18191816

18201817

1821-
def _create_microsoft_entra_connection_string(host, database, admin='<admin>'):
1818+
def _create_microsoft_entra_connection_string(host, database=POSTGRES_DB_NAME, admin='<admin>'):
18221819
connection_kwargs = {
18231820
'user': admin,
18241821
'host': host,
@@ -1827,7 +1824,7 @@ def _create_microsoft_entra_connection_string(host, database, admin='<admin>'):
18271824
return 'postgresql://{user}:<access-token>@{host}/{database}?sslmode=require'.format(**connection_kwargs)
18281825

18291826

1830-
def _form_response(username, sku, location, server_id, host, version, password, connection_string, database_name, firewall_id=None,
1827+
def _form_response(username, sku, location, server_id, host, version, password, connection_string, firewall_id=None,
18311828
subnet_id=None, is_password_auth=True, is_microsoft_entra_auth_enabled=False, microsoft_admin=None, connection_string_microsoft_entra=None):
18321829

18331830
output = {
@@ -1838,7 +1835,7 @@ def _form_response(username, sku, location, server_id, host, version, password,
18381835
'location': location,
18391836
'id': server_id,
18401837
'version': version,
1841-
'databaseName': database_name,
1838+
'databaseName': POSTGRES_DB_NAME,
18421839
'connectionString': connection_string
18431840
}
18441841
if is_microsoft_entra_auth_enabled:
@@ -1851,7 +1848,7 @@ def _form_response(username, sku, location, server_id, host, version, password,
18511848
return output
18521849

18531850

1854-
def _update_local_contexts(cmd, server_name, resource_group_name, database_name, location, user):
1851+
def _update_local_contexts(cmd, server_name, resource_group_name, location, user):
18551852
validate_resource_group(resource_group_name)
18561853

18571854
if cmd.cli_ctx.local_context.is_on:
@@ -1860,7 +1857,7 @@ def _update_local_contexts(cmd, server_name, resource_group_name, database_name,
18601857
cmd.cli_ctx.local_context.set(['postgres flexible-server'], 'administrator_login',
18611858
user) # Setting the server name in the local context
18621859
cmd.cli_ctx.local_context.set(['postgres flexible-server'], 'database_name',
1863-
database_name) # Setting the server name in the local context
1860+
POSTGRES_DB_NAME) # Setting the server name in the local context
18641861
cmd.cli_ctx.local_context.set([ALL], 'location',
18651862
location) # Setting the location in the local context
18661863
cmd.cli_ctx.local_context.set([ALL], 'resource_group_name', resource_group_name)

src/azure-cli/azure/cli/command_modules/rdbms/tests/latest/recordings/test_flexible_server_ssdv2_mgmt.yaml

Lines changed: 333 additions & 538 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)