Skip to content

Commit 03c0fec

Browse files
author
Matthew Boentoro
committed
{RDBMS} az postgres flexible-server backup create: add backup name validator
1 parent fc511f6 commit 03c0fec

File tree

2 files changed

+20
-1
lines changed

2 files changed

+20
-1
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
from .flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network
3737
from .validators import pg_arguments_validator, validate_server_name, validate_and_format_restore_point_in_time, \
3838
validate_postgres_replica, validate_georestore_network, pg_byok_validator, validate_migration_runtime_server, \
39-
validate_resource_group, check_resource_group, validate_citus_cluster, cluster_byok_validator
39+
validate_resource_group, check_resource_group, validate_citus_cluster, cluster_byok_validator, validate_backup_name
4040

4141
logger = get_logger(__name__)
4242
DEFAULT_DB_NAME = 'flexibleserverdb'
@@ -1422,6 +1422,7 @@ def virtual_endpoint_update_func(cmd, client, resource_group_name, server_name,
14221422

14231423
def backup_create_func(client, resource_group_name, server_name, backup_name):
14241424
validate_resource_group(resource_group_name)
1425+
validate_backup_name(backup_name)
14251426

14261427
return client.begin_create(
14271428
resource_group_name,

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

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -915,3 +915,21 @@ def check_resource_group(resource_group_name):
915915
def validate_resource_group(resource_group_name):
916916
if not check_resource_group(resource_group_name):
917917
raise CLIError('Resource group name cannot be empty.')
918+
919+
920+
def validate_backup_name(backup_name):
921+
# check if backup_name is already null originally
922+
if not backup_name:
923+
raise CLIError('Backup name cannot be empty.')
924+
925+
# replace single and double quotes with empty string
926+
backup_name = backup_name.replace("'", '')
927+
backup_name = backup_name.replace('"', '')
928+
929+
# check if backup_name is empty or contains only whitespace after removing the quote
930+
if not backup_name or backup_name.isspace():
931+
raise CLIError('Backup name cannot be empty or contain only whitespaces.')
932+
933+
# check if backup_name exceeds 128 characters
934+
if len(backup_name) > 128:
935+
raise CLIError('Backup name cannot exceed 128 characters.')

0 commit comments

Comments
 (0)