Skip to content

Commit 5dec2ab

Browse files
committed
add 8.4 to upgrade
1 parent e41a787 commit 5dec2ab

File tree

2 files changed

+15
-8
lines changed

2 files changed

+15
-8
lines changed

src/azure-cli/azure/cli/command_modules/mysql/_params.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,7 +216,7 @@ def load_arguments(self, _): # pylint: disable=too-many-statements, too-many-
216216
)
217217

218218
mysql_version_upgrade_arg_type = CLIArgumentType(
219-
arg_type=get_enum_type(['8']),
219+
arg_type=get_enum_type(['8', '8.4']),
220220
options_list=['--version', '-v'],
221221
help='Server major version.'
222222
)

src/azure-cli/azure/cli/command_modules/mysql/custom.py

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -294,23 +294,30 @@ def flexible_server_version_upgrade(cmd, client, resource_group_name, server_nam
294294
if instance.sku.tier == 'Burstable':
295295
raise CLIError("Major version update is not supported for the Burstable pricing tier.")
296296

297-
current_version = int(instance.version.split('.')[0])
298-
if current_version >= int(version):
299-
raise CLIError("The version to upgrade to must be greater than the current version.")
300-
301297
replica_operations_client = cf_mysql_flexible_replica(cmd.cli_ctx, '_')
302298
mysql_version_map = {
303299
'8': '8.0.21',
300+
'8.4': '8.4'
304301
}
305302
version_mapped = mysql_version_map[version]
306303

304+
current_major_version = int(instance.version.split('.')[0])
305+
current_minor_version = int(instance.version.split('.')[1])
306+
307+
target_major_version = int(version_mapped.split('.')[0])
308+
target_minor_version = int(version_mapped.split('.')[1])
309+
310+
if current_major_version > target_major_version or (current_major_version == target_major_version and current_minor_version >= target_minor_version):
311+
raise CLIError("The version to upgrade to must be greater than the current version.")
312+
307313
replicas = replica_operations_client.list_by_server(resource_group_name, server_name)
308314

309315
for replica in replicas:
310-
current_replica_version = int(replica.version.split('.')[0])
311-
if current_replica_version < int(version):
316+
current_replica_major_version = int(replica.version.split('.')[0])
317+
current_replica_minor_version = int(replica.version.split('.')[1])
318+
if current_replica_major_version < target_major_version or (current_replica_major_version == target_major_version and current_replica_minor_version < target_minor_version):
312319
raise CLIError("Primary server version must not be greater than replica server version. "
313-
"First upgrade {} server version to {} and try again.".format(replica.name, version))
320+
"First upgrade {} server version to {} and try again.".format(replica.name, version_mapped))
314321

315322
parameters = {
316323
'version': version_mapped

0 commit comments

Comments
 (0)