3636from .flexible_server_virtual_network import prepare_private_network , prepare_private_dns_zone , prepare_public_network
3737from .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
39+ validate_resource_group , check_resource_group , validate_citus_cluster
4040
4141logger = get_logger (__name__ )
4242DEFAULT_DB_NAME = 'flexibleserverdb'
@@ -426,6 +426,7 @@ def flexible_server_restart(cmd, client, resource_group_name, server_name, fail_
426426 raise ArgumentUsageError ("Failing over can only be triggered for zone redundant or same zone servers." )
427427
428428 if fail_over is not None :
429+ validate_citus_cluster (cmd , resource_group_name , server_name )
429430 if fail_over .lower () not in ['planned' , 'forced' ]:
430431 raise InvalidArgumentValueError ("Allowed failover parameters are 'Planned' and 'Forced'." )
431432 if fail_over .lower () == 'planned' :
@@ -498,6 +499,12 @@ def flexible_list_skus(cmd, client, location):
498499 return result
499500
500501
502+ def flexible_replica_list_by_server (cmd , client , resource_group_name , server_name ):
503+ validate_resource_group (resource_group_name )
504+ validate_citus_cluster (cmd , resource_group_name , server_name )
505+ return client .list_by_server (resource_group_name , server_name )
506+
507+
501508def flexible_replica_create (cmd , client , resource_group_name , source_server , replica_name , zone = None ,
502509 location = None , vnet = None , vnet_address_prefix = None , subnet = None ,
503510 subnet_address_prefix = None , private_dns_zone_arguments = None , no_wait = False ,
@@ -520,6 +527,7 @@ def flexible_replica_create(cmd, client, resource_group_name, source_server, rep
520527 source_server_id = source_server
521528
522529 source_server_id_parts = parse_resource_id (source_server_id )
530+ validate_citus_cluster (cmd , resource_group_name , source_server_id_parts ['name' ])
523531 try :
524532 source_server_object = client .get (source_server_id_parts ['resource_group' ], source_server_id_parts ['name' ])
525533 except Exception as e :
@@ -614,6 +622,7 @@ def flexible_server_georestore(cmd, client, resource_group_name, server_name, so
614622
615623 try :
616624 id_parts = parse_resource_id (source_server_id )
625+ validate_citus_cluster (cmd , id_parts ['resource_group' ], id_parts ['name' ])
617626 source_subscription_id = id_parts ['subscription' ]
618627 postgres_source_client = get_postgresql_flexible_management_client (cmd .cli_ctx , source_subscription_id )
619628 source_server_object = postgres_source_client .servers .get (id_parts ['resource_group' ], id_parts ['name' ])
@@ -739,8 +748,9 @@ def flexible_server_revivedropped(cmd, client, resource_group_name, server_name,
739748 return sdk_no_wait (no_wait , client .begin_create , resource_group_name , server_name , parameters )
740749
741750
742- def flexible_replica_stop (client , resource_group_name , server_name ):
751+ def flexible_replica_stop (cmd , client , resource_group_name , server_name ):
743752 validate_resource_group (resource_group_name )
753+ validate_citus_cluster (cmd , resource_group_name , server_name )
744754
745755 try :
746756 server_object = client .get (resource_group_name , server_name )
@@ -761,8 +771,9 @@ def flexible_replica_stop(client, resource_group_name, server_name):
761771 return client .begin_update (resource_group_name , server_name , params )
762772
763773
764- def flexible_replica_promote (client , resource_group_name , server_name , promote_mode = 'standalone' , promote_option = 'planned' ):
774+ def flexible_replica_promote (cmd , client , resource_group_name , server_name , promote_mode = 'standalone' , promote_option = 'planned' ):
765775 validate_resource_group (resource_group_name )
776+ validate_citus_cluster (cmd , resource_group_name , server_name )
766777
767778 try :
768779 server_object = client .get (resource_group_name , server_name )
@@ -828,6 +839,7 @@ def _create_server(db_context, cmd, resource_group_name, server_name, tags, loca
828839
829840def _create_database (db_context , cmd , resource_group_name , server_name , database_name ):
830841 validate_resource_group (resource_group_name )
842+ validate_citus_cluster (cmd , resource_group_name , server_name )
831843
832844 # check for existing database, create if not
833845 cf_db , logging_name = db_context .cf_db , db_context .logging_name
@@ -887,6 +899,7 @@ def flexible_server_connection_string(
887899# Custom functions for identity
888900def flexible_server_identity_assign (cmd , client , resource_group_name , server_name , identities ):
889901 validate_resource_group (resource_group_name )
902+ validate_citus_cluster (cmd , resource_group_name , server_name )
890903
891904 identities_map = {}
892905 for identity in identities :
@@ -910,6 +923,7 @@ def flexible_server_identity_assign(cmd, client, resource_group_name, server_nam
910923
911924def flexible_server_identity_remove (cmd , client , resource_group_name , server_name , identities ):
912925 validate_resource_group (resource_group_name )
926+ validate_citus_cluster (cmd , resource_group_name , server_name )
913927
914928 instance = client .get (resource_group_name , server_name )
915929
@@ -945,15 +959,17 @@ def flexible_server_identity_remove(cmd, client, resource_group_name, server_nam
945959 return result .identity or postgresql_flexibleservers .models .UserAssignedIdentity (type = "SystemAssigned" )
946960
947961
948- def flexible_server_identity_list (client , resource_group_name , server_name ):
962+ def flexible_server_identity_list (cmd , client , resource_group_name , server_name ):
949963 validate_resource_group (resource_group_name )
964+ validate_citus_cluster (cmd , resource_group_name , server_name )
950965
951966 server = client .get (resource_group_name , server_name )
952967 return server .identity or postgresql_flexibleservers .models .UserAssignedIdentity (type = "SystemAssigned" )
953968
954969
955- def flexible_server_identity_show (client , resource_group_name , server_name , identity ):
970+ def flexible_server_identity_show (cmd , client , resource_group_name , server_name , identity ):
956971 validate_resource_group (resource_group_name )
972+ validate_citus_cluster (cmd , resource_group_name , server_name )
957973
958974 server = client .get (resource_group_name , server_name )
959975
@@ -1160,6 +1176,7 @@ def flexible_server_list_log_files_with_filter(client, resource_group_name, serv
11601176def migration_create_func (cmd , client , resource_group_name , server_name , properties , migration_mode = "offline" ,
11611177 migration_name = None , migration_option = None , tags = None , location = None ):
11621178 validate_resource_group (resource_group_name )
1179+ validate_citus_cluster (cmd , resource_group_name , server_name )
11631180
11641181 logging_name = 'PostgreSQL'
11651182 subscription_id = get_subscription_id (cmd .cli_ctx )
@@ -1193,13 +1210,15 @@ def migration_create_func(cmd, client, resource_group_name, server_name, propert
11931210
11941211def migration_show_func (cmd , client , resource_group_name , server_name , migration_name ):
11951212 validate_resource_group (resource_group_name )
1213+ validate_citus_cluster (cmd , resource_group_name , server_name )
11961214
11971215 subscription_id = get_subscription_id (cmd .cli_ctx )
11981216 return client .get (subscription_id , resource_group_name , server_name , migration_name )
11991217
12001218
12011219def migration_list_func (cmd , client , resource_group_name , server_name , migration_filter = "Active" ):
12021220 validate_resource_group (resource_group_name )
1221+ validate_citus_cluster (cmd , resource_group_name , server_name )
12031222
12041223 subscription_id = get_subscription_id (cmd .cli_ctx )
12051224 return client .list_by_target_server (subscription_id , resource_group_name , server_name , migration_filter )
@@ -1214,6 +1233,7 @@ def migration_delete_func(cmd, client, resource_group_name, server_name, migrati
12141233
12151234def migration_update_func (cmd , client , resource_group_name , server_name , migration_name , setup_logical_replication = None , cutover = None , cancel = None ):
12161235 validate_resource_group (resource_group_name )
1236+ validate_citus_cluster (cmd , resource_group_name , server_name )
12171237
12181238 subscription_id = get_subscription_id (cmd .cli_ctx )
12191239
@@ -1246,14 +1266,16 @@ def migration_update_func(cmd, client, resource_group_name, server_name, migrati
12461266
12471267def migration_check_name_availability (cmd , client , resource_group_name , server_name , migration_name ):
12481268 validate_resource_group (resource_group_name )
1269+ validate_citus_cluster (cmd , resource_group_name , server_name )
12491270
12501271 subscription_id = get_subscription_id (cmd .cli_ctx )
12511272 migration_name_availability_parammeters = {"name" : "%s" % migration_name , "type" : "Microsoft.DBforPostgreSQL/flexibleServers/migrations" }
12521273 return get_postgresql_flexible_management_client (cmd .cli_ctx ).check_migration_name_availability (subscription_id , resource_group_name , server_name , migration_name_availability_parammeters )
12531274
12541275
1255- def virtual_endpoint_create_func (client , resource_group_name , server_name , virtual_endpoint_name , endpoint_type , members ):
1276+ def virtual_endpoint_create_func (cmd , client , resource_group_name , server_name , virtual_endpoint_name , endpoint_type , members ):
12561277 validate_resource_group (resource_group_name )
1278+ validate_citus_cluster (cmd , resource_group_name , server_name )
12571279
12581280 parameters = {
12591281 'name' : virtual_endpoint_name ,
@@ -1268,25 +1290,28 @@ def virtual_endpoint_create_func(client, resource_group_name, server_name, virtu
12681290 parameters )
12691291
12701292
1271- def virtual_endpoint_show_func (client , resource_group_name , server_name , virtual_endpoint_name ):
1293+ def virtual_endpoint_show_func (cmd , client , resource_group_name , server_name , virtual_endpoint_name ):
12721294 validate_resource_group (resource_group_name )
1295+ validate_citus_cluster (cmd , resource_group_name , server_name )
12731296
12741297 return client .get (
12751298 resource_group_name ,
12761299 server_name ,
12771300 virtual_endpoint_name )
12781301
12791302
1280- def virtual_endpoint_list_func (client , resource_group_name , server_name ):
1303+ def virtual_endpoint_list_func (cmd , client , resource_group_name , server_name ):
12811304 validate_resource_group (resource_group_name )
1305+ validate_citus_cluster (cmd , resource_group_name , server_name )
12821306
12831307 return client .list_by_server (
12841308 resource_group_name ,
12851309 server_name )
12861310
12871311
1288- def virtual_endpoint_delete_func (client , resource_group_name , server_name , virtual_endpoint_name , yes = False ):
1312+ def virtual_endpoint_delete_func (cmd , client , resource_group_name , server_name , virtual_endpoint_name , yes = False ):
12891313 validate_resource_group (resource_group_name )
1314+ validate_citus_cluster (cmd , resource_group_name , server_name )
12901315
12911316 if not yes :
12921317 user_confirmation (
@@ -1299,8 +1324,9 @@ def virtual_endpoint_delete_func(client, resource_group_name, server_name, virtu
12991324 virtual_endpoint_name )
13001325
13011326
1302- def virtual_endpoint_update_func (client , resource_group_name , server_name , virtual_endpoint_name , endpoint_type , members ):
1327+ def virtual_endpoint_update_func (cmd , client , resource_group_name , server_name , virtual_endpoint_name , endpoint_type , members ):
13031328 validate_resource_group (resource_group_name )
1329+ validate_citus_cluster (cmd , resource_group_name , server_name )
13041330
13051331 parameters = {
13061332 'name' : virtual_endpoint_name ,
0 commit comments