Skip to content

Commit 34c8fc9

Browse files
author
Matthew Boentoro
committed
{RDBMS} az postgres flexible-server virtual-endpoint create: Add the name check to see if virtual endpoint name is available
1 parent 131634d commit 34c8fc9

File tree

2 files changed

+10
-2
lines changed

2 files changed

+10
-2
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@
3838
from .flexible_server_virtual_network import prepare_private_network, prepare_private_dns_zone, prepare_public_network
3939
from .validators import pg_arguments_validator, validate_server_name, validate_and_format_restore_point_in_time, \
4040
validate_postgres_replica, validate_georestore_network, pg_byok_validator, validate_migration_runtime_server, \
41-
validate_resource_group, check_resource_group, validate_citus_cluster, cluster_byok_validator, validate_backup_name
41+
validate_resource_group, check_resource_group, validate_citus_cluster, cluster_byok_validator, validate_backup_name, \
42+
validate_virtual_endpoint_name_availability
4243

4344
logger = get_logger(__name__)
4445
DEFAULT_DB_NAME = 'flexibleserverdb'
@@ -1375,6 +1376,7 @@ def migration_check_name_availability(cmd, client, resource_group_name, server_n
13751376
def virtual_endpoint_create_func(cmd, client, resource_group_name, server_name, virtual_endpoint_name, endpoint_type, members):
13761377
validate_resource_group(resource_group_name)
13771378
validate_citus_cluster(cmd, resource_group_name, server_name)
1379+
validate_virtual_endpoint_name_availability(cmd, virtual_endpoint_name)
13781380

13791381
parameters = {
13801382
'name': virtual_endpoint_name,

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
from azure.core.exceptions import HttpResponseError
2020
from azure.mgmt.rdbms.mysql_flexibleservers.operations._firewall_rules_operations import FirewallRulesOperations \
2121
as MySqlFirewallRulesOperations
22-
from ._client_factory import cf_mysql_flexible_servers, cf_postgres_flexible_servers
22+
from ._client_factory import cf_mysql_flexible_servers, cf_postgres_flexible_servers, cf_postgres_check_resource_availability
2323
from ._flexible_server_util import (get_mysql_versions, get_mysql_skus, get_mysql_storage_size,
2424
get_mysql_backup_retention, get_mysql_tiers, get_mysql_list_skus_info,
2525
get_postgres_skus, get_postgres_storage_sizes, get_postgres_tiers,
@@ -729,6 +729,12 @@ def validate_server_name(db_context, server_name, type_):
729729
if not result.name_available:
730730
raise ValidationError(result.message)
731731

732+
def validate_virtual_endpoint_name_availability(cmd, virtual_endpoint_name):
733+
client = cf_postgres_check_resource_availability(cmd.cli_ctx, '_')
734+
result = client.execute(name_availability_request={'name': virtual_endpoint_name, 'type': 'Microsoft.DBforPostgreSQL/flexibleServers/virtualendpoints'})
735+
if result and result.name_available is False:
736+
raise ValidationError("Virtual endpoints base name is not available.")
737+
732738

733739
def validate_migration_runtime_server(cmd, migrationInstanceResourceId, target_resource_group_name, target_server_name):
734740
id_comps = parse_resource_id(migrationInstanceResourceId)

0 commit comments

Comments
 (0)