Skip to content

Commit b3ee5b1

Browse files
mattboentoroMatthew Boentoro
andauthored
[RDBMS] az postgres flexible-server create: Set default sku to be coming from location capability API (#31141)
Co-authored-by: Matthew Boentoro <mboentoro@microsoft.com>
1 parent 357428c commit b3ee5b1

17 files changed

+50589
-36506
lines changed

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

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

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -602,7 +602,7 @@ def _flexible_server_params(command_group):
602602
# Add create mode as a parameter
603603
if command_group == 'postgres':
604604
c.argument('tier', default='GeneralPurpose', arg_type=tier_arg_type)
605-
c.argument('sku_name', default='Standard_D2s_v3', arg_type=sku_name_arg_type)
605+
c.argument('sku_name', arg_type=sku_name_arg_type)
606606
c.argument('storage_gb', default='128', arg_type=storage_gb_arg_type)
607607
c.argument('version', default='17', arg_type=version_arg_type)
608608
c.argument('backup_retention', default=7, arg_type=pg_backup_retention_arg_type)

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

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import os
99
import json
1010
from importlib import import_module
11+
from functools import cmp_to_key
1112
import re
1213
from urllib.parse import quote
1314
from urllib.request import urlretrieve
@@ -33,15 +34,16 @@
3334
cf_postgres_flexible_config, cf_postgres_flexible_admin
3435
from ._flexible_server_util import generate_missing_parameters, resolve_poller, \
3536
generate_password, parse_maintenance_window, get_current_time, build_identity_and_data_encryption, \
36-
_is_resource_name, get_tenant_id, get_case_insensitive_key_value, get_enum_value_true_false
37+
_is_resource_name, get_tenant_id, get_case_insensitive_key_value, get_enum_value_true_false, \
38+
get_postgres_tiers, get_postgres_skus
3739
from ._flexible_server_location_capabilities_util import get_postgres_location_capability_info
3840
from ._util import get_index_tuning_settings_map
3941
from .flexible_server_custom_common import create_firewall_rule
4042
from .flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network
4143
from .validators import pg_arguments_validator, validate_server_name, validate_and_format_restore_point_in_time, \
4244
validate_postgres_replica, validate_georestore_network, pg_byok_validator, validate_migration_runtime_server, \
4345
validate_resource_group, check_resource_group, validate_citus_cluster, cluster_byok_validator, validate_backup_name, \
44-
validate_virtual_endpoint_name_availability, validate_database_name
46+
validate_virtual_endpoint_name_availability, validate_database_name, compare_sku_names
4547

4648
logger = get_logger(__name__)
4749
DEFAULT_DB_NAME = 'flexibleserverdb'
@@ -85,6 +87,18 @@ def flexible_server_create(cmd, client,
8587

8688
server_name = server_name.lower()
8789

90+
if sku_name is None:
91+
# set sku_name from capability API
92+
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))
101+
88102
pg_arguments_validator(db_context,
89103
server_name=server_name,
90104
database_name=database_name,

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

Lines changed: 808 additions & 1168 deletions
Large diffs are not rendered by default.

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

Lines changed: 2537 additions & 1694 deletions
Large diffs are not rendered by default.

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

Lines changed: 609 additions & 311 deletions
Large diffs are not rendered by default.

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

Lines changed: 10034 additions & 7262 deletions
Large diffs are not rendered by default.

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

Lines changed: 6508 additions & 4723 deletions
Large diffs are not rendered by default.

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

Lines changed: 496 additions & 208 deletions
Large diffs are not rendered by default.

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

Lines changed: 9204 additions & 6376 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)