@@ -63,13 +63,12 @@ def flexible_server_create(cmd, client,
6363 storage_gb = None , version = None , microsoft_entra_auth = None ,
6464 admin_name = None , admin_id = None , admin_type = None ,
6565 password_auth = None , administrator_login = None , administrator_login_password = None ,
66- tags = None , database_name = None ,
67- subnet = None , subnet_address_prefix = None , vnet = None , vnet_address_prefix = None ,
66+ tags = None , subnet = None , subnet_address_prefix = None , vnet = None , vnet_address_prefix = None ,
6867 private_dns_zone_arguments = None , public_access = None ,
6968 high_availability = None , zone = None , standby_availability_zone = None ,
7069 geo_redundant_backup = None , byok_identity = None , byok_key = None , backup_byok_identity = None , backup_byok_key = None ,
7170 auto_grow = None , performance_tier = None ,
72- storage_type = None , iops = None , throughput = None , create_default_db = 'Enabled' , create_cluster = None , cluster_size = None , yes = False ):
71+ storage_type = None , iops = None , throughput = None , create_cluster = None , cluster_size = None , yes = False ):
7372
7473 if not check_resource_group (resource_group_name ):
7574 resource_group_name = None
@@ -87,21 +86,26 @@ def flexible_server_create(cmd, client,
8786
8887 server_name = server_name .lower ()
8988
90- if sku_name is None :
91- # set sku_name from capability API
89+ if (sku_name is None ) or (version is None ):
9290 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 ))
91+
92+ # set sku_name from capability API
93+ if sku_name is None :
94+ tiers = [item .lower () for item in get_postgres_tiers (list_location_capability_info ['sku_info' ])]
95+ try :
96+ sku_info = list_location_capability_info ['sku_info' ]
97+ skus = list (get_postgres_skus (sku_info , tier .lower ()))
98+ skus = sorted (skus , key = cmp_to_key (compare_sku_names ))
99+ sku_name = skus [0 ]
100+ except :
101+ raise CLIError ('Incorrect value for --tier. Allowed values : {}' .format (tiers ))
102+ # default to the latest version
103+ if version is None :
104+ supported_server_versions = sorted (list_location_capability_info ['supported_server_versions' ])
105+ version = supported_server_versions [- 1 ]
101106
102107 pg_arguments_validator (db_context ,
103108 server_name = server_name ,
104- database_name = database_name ,
105109 location = location ,
106110 tier = tier , sku_name = sku_name ,
107111 storage_gb = storage_gb ,
@@ -197,13 +201,6 @@ def flexible_server_create(cmd, client,
197201 if start_ip != - 1 and end_ip != - 1 :
198202 firewall_id = create_firewall_rule (db_context , cmd , resource_group_name , server_name , start_ip , end_ip )
199203
200- # Create database if it does not exist
201- if (database_name is not None or (create_default_db and create_default_db .lower () == 'enabled' ) and create_cluster != 'ElasticCluster' ):
202- db_name = database_name if database_name else DEFAULT_DB_NAME
203- _create_database (db_context , cmd , resource_group_name , server_name , db_name )
204- else :
205- db_name = POSTGRES_DB_NAME
206-
207204 user = server_result .administrator_login if is_password_auth_enabled else '<user>'
208205 password = administrator_login_password if is_password_auth_enabled else '<password>'
209206 admin = quote (admin_name ) if admin_name else '<admin>'
@@ -220,12 +217,12 @@ def flexible_server_create(cmd, client,
220217 server_name , resource_group_name )
221218 logger .warning ('Try using \' az postgres flexible-server connect\' command to test out connection.' )
222219
223- _update_local_contexts (cmd , server_name , resource_group_name , db_name , location , user )
220+ _update_local_contexts (cmd , server_name , resource_group_name , location , user )
224221
225222 return _form_response (user , sku , loc , server_id , host , version , password ,
226- _create_postgresql_connection_string (host , user , password , db_name ),
227- db_name , firewall_id , subnet_id , is_password_auth_enabled , is_microsoft_entra_auth_enabled , admin_name ,
228- _create_microsoft_entra_connection_string (host , db_name , admin ))
223+ _create_postgresql_connection_string (host , user , password ),
224+ firewall_id , subnet_id , is_password_auth_enabled , is_microsoft_entra_auth_enabled , admin_name ,
225+ _create_microsoft_entra_connection_string (host , POSTGRES_DB_NAME , admin ))
229226# endregion create without args
230227
231228
@@ -1808,7 +1805,7 @@ def _create_postgresql_connection_strings(host, user, password, database, port):
18081805 return result
18091806
18101807
1811- def _create_postgresql_connection_string (host , user , password , database ):
1808+ def _create_postgresql_connection_string (host , user , password , database = POSTGRES_DB_NAME ):
18121809 connection_kwargs = {
18131810 'user' : user if user is not None else '{user}' ,
18141811 'host' : host ,
@@ -1818,7 +1815,7 @@ def _create_postgresql_connection_string(host, user, password, database):
18181815 return 'postgresql://{user}:{password}@{host}/{database}?sslmode=require' .format (** connection_kwargs )
18191816
18201817
1821- def _create_microsoft_entra_connection_string (host , database , admin = '<admin>' ):
1818+ def _create_microsoft_entra_connection_string (host , database = POSTGRES_DB_NAME , admin = '<admin>' ):
18221819 connection_kwargs = {
18231820 'user' : admin ,
18241821 'host' : host ,
@@ -1827,7 +1824,7 @@ def _create_microsoft_entra_connection_string(host, database, admin='<admin>'):
18271824 return 'postgresql://{user}:<access-token>@{host}/{database}?sslmode=require' .format (** connection_kwargs )
18281825
18291826
1830- def _form_response (username , sku , location , server_id , host , version , password , connection_string , database_name , firewall_id = None ,
1827+ def _form_response (username , sku , location , server_id , host , version , password , connection_string , firewall_id = None ,
18311828 subnet_id = None , is_password_auth = True , is_microsoft_entra_auth_enabled = False , microsoft_admin = None , connection_string_microsoft_entra = None ):
18321829
18331830 output = {
@@ -1838,7 +1835,7 @@ def _form_response(username, sku, location, server_id, host, version, password,
18381835 'location' : location ,
18391836 'id' : server_id ,
18401837 'version' : version ,
1841- 'databaseName' : database_name ,
1838+ 'databaseName' : POSTGRES_DB_NAME ,
18421839 'connectionString' : connection_string
18431840 }
18441841 if is_microsoft_entra_auth_enabled :
@@ -1851,7 +1848,7 @@ def _form_response(username, sku, location, server_id, host, version, password,
18511848 return output
18521849
18531850
1854- def _update_local_contexts (cmd , server_name , resource_group_name , database_name , location , user ):
1851+ def _update_local_contexts (cmd , server_name , resource_group_name , location , user ):
18551852 validate_resource_group (resource_group_name )
18561853
18571854 if cmd .cli_ctx .local_context .is_on :
@@ -1860,7 +1857,7 @@ def _update_local_contexts(cmd, server_name, resource_group_name, database_name,
18601857 cmd .cli_ctx .local_context .set (['postgres flexible-server' ], 'administrator_login' ,
18611858 user ) # Setting the server name in the local context
18621859 cmd .cli_ctx .local_context .set (['postgres flexible-server' ], 'database_name' ,
1863- database_name ) # Setting the server name in the local context
1860+ POSTGRES_DB_NAME ) # Setting the server name in the local context
18641861 cmd .cli_ctx .local_context .set ([ALL ], 'location' ,
18651862 location ) # Setting the location in the local context
18661863 cmd .cli_ctx .local_context .set ([ALL ], 'resource_group_name' , resource_group_name )
0 commit comments