From 92cad1a10a6e24edf12d146c8740228a8ff72533 Mon Sep 17 00:00:00 2001 From: Matthew Boentoro Date: Mon, 29 Dec 2025 10:51:48 -0800 Subject: [PATCH 1/5] [RDBMS] az postgres flexible-server create: Change database name field to default to None --- src/azure-cli/azure/cli/command_modules/rdbms/_params.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py index 547652d0fae..ddddb0b1ee1 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py @@ -628,7 +628,7 @@ def _flexible_server_params(command_group): c.argument('cluster_size', default=None, arg_type=create_node_count_arg_type) c.argument('zonal_resiliency', arg_type=zonal_resiliency_arg_type, default="Disabled") c.argument('allow_same_zone', arg_type=allow_same_zone_arg_type, default=False) - c.argument('database_name', arg_type=database_name_create_arg_type) + c.argument('database_name', default=None, arg_type=database_name_arg_type) elif command_group == 'mysql': c.argument('tier', default='Burstable', arg_type=tier_arg_type) c.argument('sku_name', default='Standard_B1ms', arg_type=sku_name_arg_type) From 1530152eb2f16eeabd3a6c8f5dcbf93f92238b23 Mon Sep 17 00:00:00 2001 From: Matthew Boentoro Date: Wed, 31 Dec 2025 10:37:27 -0800 Subject: [PATCH 2/5] add cluster validator --- .../azure/cli/command_modules/rdbms/_params.py | 14 ++++++++++++-- .../azure/cli/command_modules/rdbms/validators.py | 4 ++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py index ddddb0b1ee1..a98438b177a 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py @@ -14,7 +14,7 @@ get_enum_type, file_type, resource_group_name_type, get_three_state_flag) -from azure.cli.command_modules.rdbms.validators import configuration_value_validator, validate_subnet, \ +from azure.cli.command_modules.rdbms.validators import configuration_value_validator, db_renaming_cluster_validator, validate_subnet, \ tls_validator, public_access_validator, maintenance_window_validator, ip_address_validator, \ retention_validator, validate_identity, validate_byok_identity, validate_identities, \ virtual_endpoint_name_validator, node_count_validator, postgres_firewall_rule_name_validator @@ -284,6 +284,16 @@ def _flexible_server_params(command_group): name='database_name', actions=[LocalContextAction.GET, LocalContextAction.SET], scopes=['{} flexible-server'.format(command_group)])) + + database_name_arg_type_cluster = CLIArgumentType( + metavar='NAME', + options_list=['--database-name', '-d'], + help='The name of the database. Only applicable when --cluster-option is set to ElasticCluster.', + local_context_attribute=LocalContextAttribute( + name='database_name', + actions=[LocalContextAction.GET, LocalContextAction.SET], + scopes=['{} flexible-server'.format(command_group)]), + validator=db_renaming_cluster_validator) tier_arg_type = CLIArgumentType( options_list=['--tier'], @@ -628,7 +638,7 @@ def _flexible_server_params(command_group): c.argument('cluster_size', default=None, arg_type=create_node_count_arg_type) c.argument('zonal_resiliency', arg_type=zonal_resiliency_arg_type, default="Disabled") c.argument('allow_same_zone', arg_type=allow_same_zone_arg_type, default=False) - c.argument('database_name', default=None, arg_type=database_name_arg_type) + c.argument('database_name', default=None, arg_type=database_name_arg_type_cluster) elif command_group == 'mysql': c.argument('tier', default='Burstable', arg_type=tier_arg_type) c.argument('sku_name', default='Standard_B1ms', arg_type=sku_name_arg_type) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py index 82ba207dc0f..a9faccbded0 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py @@ -99,6 +99,10 @@ def node_count_validator(ns): val = ns.cluster_size if not 1 <= int(val) <= 10: raise CLIError('incorrect usage: --node-count. Range is 1 to 10 for an elastic cluster.') + +def db_renaming_cluster_validator(ns): + if ns.database_name is not None and ns.create_cluster != 'ElasticCluster': + raise CLIError('incorrect usage: --database-name can only be used when --cluster-option is set to ElasticCluster.') # Validates if a subnet id or name have been given by the user. If subnet id is given, vnet-name should not be provided. From c386ba6669e4ed38b8bdf29e7d2f4d832fd9ebf9 Mon Sep 17 00:00:00 2001 From: Matthew Boentoro Date: Wed, 31 Dec 2025 12:10:09 -0800 Subject: [PATCH 3/5] fix style --- src/azure-cli/azure/cli/command_modules/rdbms/validators.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py index a9faccbded0..1e2f13fb3fb 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py @@ -99,7 +99,8 @@ def node_count_validator(ns): val = ns.cluster_size if not 1 <= int(val) <= 10: raise CLIError('incorrect usage: --node-count. Range is 1 to 10 for an elastic cluster.') - + + def db_renaming_cluster_validator(ns): if ns.database_name is not None and ns.create_cluster != 'ElasticCluster': raise CLIError('incorrect usage: --database-name can only be used when --cluster-option is set to ElasticCluster.') From 1701a2646e6689091f85501628fb4dc8c2d13dd5 Mon Sep 17 00:00:00 2001 From: Matthew Boentoro Date: Wed, 31 Dec 2025 15:31:43 -0800 Subject: [PATCH 4/5] address comment --- src/azure-cli/azure/cli/command_modules/rdbms/_params.py | 4 ++-- src/azure-cli/azure/cli/command_modules/rdbms/validators.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py index a98438b177a..7d96bf694c3 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/_params.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/_params.py @@ -284,11 +284,11 @@ def _flexible_server_params(command_group): name='database_name', actions=[LocalContextAction.GET, LocalContextAction.SET], scopes=['{} flexible-server'.format(command_group)])) - + database_name_arg_type_cluster = CLIArgumentType( metavar='NAME', options_list=['--database-name', '-d'], - help='The name of the database. Only applicable when --cluster-option is set to ElasticCluster.', + help='The default database name for an elastic cluster. Only applicable when --cluster-option is set to ElasticCluster.', local_context_attribute=LocalContextAttribute( name='database_name', actions=[LocalContextAction.GET, LocalContextAction.SET], diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py index 1e2f13fb3fb..9bb0ea62368 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py @@ -103,7 +103,7 @@ def node_count_validator(ns): def db_renaming_cluster_validator(ns): if ns.database_name is not None and ns.create_cluster != 'ElasticCluster': - raise CLIError('incorrect usage: --database-name can only be used when --cluster-option is set to ElasticCluster.') + raise ArgumentUsageError('incorrect usage: --database-name can only be used when --cluster-option is set to ElasticCluster.') # Validates if a subnet id or name have been given by the user. If subnet id is given, vnet-name should not be provided. From 01eb1bc45085660b95aab2f527526221fb514c0e Mon Sep 17 00:00:00 2001 From: Matthew Boentoro Date: Wed, 31 Dec 2025 18:44:50 -0800 Subject: [PATCH 5/5] fix style --- src/azure-cli/azure/cli/command_modules/rdbms/validators.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py index 9bb0ea62368..2ab04cf6870 100644 --- a/src/azure-cli/azure/cli/command_modules/rdbms/validators.py +++ b/src/azure-cli/azure/cli/command_modules/rdbms/validators.py @@ -103,7 +103,8 @@ def node_count_validator(ns): def db_renaming_cluster_validator(ns): if ns.database_name is not None and ns.create_cluster != 'ElasticCluster': - raise ArgumentUsageError('incorrect usage: --database-name can only be used when --cluster-option is set to ElasticCluster.') + raise ArgumentUsageError('incorrect usage: --database-name can only be ' + 'used when --cluster-option is set to ElasticCluster.') # Validates if a subnet id or name have been given by the user. If subnet id is given, vnet-name should not be provided.