From eead43346b8cda8930eea206cd056e680f5591c6 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 05:59:45 +0000 Subject: [PATCH 01/14] Initial plan From 5de2ed8e9a3c25297571758332763c496c846994 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 06:19:13 +0000 Subject: [PATCH 02/14] [MySQL] Fix `az mysql flexible-server list-skus` returning empty list (#31568) --- src/azure-cli/HISTORY.rst | 1 + src/azure-cli/azure/cli/command_modules/mysql/_transformers.py | 2 +- .../command_modules/mysql/tests/latest/test_mysql_scenario.py | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/HISTORY.rst b/src/azure-cli/HISTORY.rst index 7bbafa33310..b804b945582 100644 --- a/src/azure-cli/HISTORY.rst +++ b/src/azure-cli/HISTORY.rst @@ -172,6 +172,7 @@ Release History **MySQL** * [BREAKING CHANGE] `az mysql flexible-server backup create/restore/geo-restore/replica`: Remove `--storage-redundancy` (#33428) +* Fix #31568: `az mysql flexible-server list-skus`: Fix command returning empty list for all regions by upgrading to `azure-mgmt-mysqlflexibleservers==1.1.0b2` which uses the updated API version **NetAppFiles** diff --git a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py index c1c03b7fbc5..6e42cf5a020 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py @@ -47,7 +47,7 @@ def table_transform_output_list_servers(result): def mysql_table_transform_output_list_skus(result): table_result = [] - if len(result) > 1: + if len(result) >= 1: skus_tiers = result[0]["supportedFlexibleServerEditions"] for skus in skus_tiers: tier_name = skus["name"] diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 312690af6ff..0343fe73da5 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -224,7 +224,8 @@ def _test_flexible_server_mgmt(self, database_engine, resource_group): self.assertIn('ado.net', connection_string['connectionStrings']) self.cmd('{} flexible-server list-skus -l {}'.format(database_engine, location), - checks=[JMESPathCheck('type(@)', 'array')]) + checks=[JMESPathCheck('type(@)', 'array'), + JMESPathCheck('length(@) > `0`', True)]) self.cmd('{} flexible-server delete -g {} -n {} --yes'.format(database_engine, resource_group, server_name), checks=NoneCheck()) From 315158f01e0942f66f1db3a5300e4f2a09dbc695 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 07:29:58 +0000 Subject: [PATCH 03/14] fix: BYOK test - fall back to SP object ID when Graph /me unavailable under SP auth --- .../mysql/tests/latest/test_mysql_scenario.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 0343fe73da5..79a636dc628 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -738,9 +738,18 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault backup_location = DEFAULT_PAIRED_LOCATION replication_role = 'Replica' - user = self.cmd('ad signed-in-user show').get_output_in_json() - - self.cmd('keyvault set-policy --name {} --object-id {} --key-permissions all'.format(vault_name, user['id'])) + try: + user = self.cmd('ad signed-in-user show').get_output_in_json() + caller_object_id = user['id'] + except Exception: # pylint: disable=broad-except + # az ad signed-in-user show calls Graph /me which is only valid with delegated + # (interactive user) auth. Under service-principal auth (e.g. CI/OIDC), fall back + # to looking up the SP's own object ID. + account = self.cmd('account show').get_output_in_json() + sp_client_id = account['user']['name'] + caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] + + self.cmd('keyvault set-policy --name {} --object-id {} --key-permissions all'.format(vault_name, caller_object_id)) key = self.cmd('keyvault key create --name {} -p software --vault-name {}' .format(key_name, vault_name)).get_output_in_json() From 20780c29c9f17d21d5f1bbfec13c66d168febbfb Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 07:31:08 +0000 Subject: [PATCH 04/14] fix: narrow exception type to CliExecutionError for Graph /me SP auth fallback --- .../mysql/tests/latest/test_mysql_scenario.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 79a636dc628..d3bd35ec20a 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -15,6 +15,7 @@ from azure.cli.testsdk.base import execute from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer +from azure.cli.testsdk.exceptions import CliExecutionError from azure.core.exceptions import HttpResponseError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone @@ -741,10 +742,7 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault try: user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except Exception: # pylint: disable=broad-except - # az ad signed-in-user show calls Graph /me which is only valid with delegated - # (interactive user) auth. Under service-principal auth (e.g. CI/OIDC), fall back - # to looking up the SP's own object ID. + except CliExecutionError: # Graph /me not available under service-principal auth account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] From 4aea9bace9725f52e19003da001ced71c9418de1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 07:31:40 +0000 Subject: [PATCH 05/14] fix: expand exception comment for SP auth fallback in BYOK test --- .../command_modules/mysql/tests/latest/test_mysql_scenario.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index d3bd35ec20a..17626f4655b 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -742,7 +742,7 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault try: user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except CliExecutionError: # Graph /me not available under service-principal auth + except CliExecutionError: # Graph /me is delegated-only; fall back to SP object ID in CI account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] From 70e85af8f3acd163e0838fafec2e529240133d84 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 07:44:52 +0000 Subject: [PATCH 06/14] fix: catch Exception instead of CliExecutionError for Graph /me SP auth fallback in BYOK test --- .../command_modules/mysql/tests/latest/test_mysql_scenario.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 17626f4655b..65650e846cd 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -15,7 +15,6 @@ from azure.cli.testsdk.base import execute from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer -from azure.cli.testsdk.exceptions import CliExecutionError from azure.core.exceptions import HttpResponseError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone @@ -742,7 +741,7 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault try: user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except CliExecutionError: # Graph /me is delegated-only; fall back to SP object ID in CI + except Exception: # Graph /me is delegated-only; fall back to SP object ID under service-principal auth account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] From 31e1ba367c75ffd59b8d4a30a530c3d6dd1cc421 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 17 Jul 2026 07:46:02 +0000 Subject: [PATCH 07/14] fix: catch CLIError specifically instead of bare Exception for Graph /me SP auth fallback --- .../command_modules/mysql/tests/latest/test_mysql_scenario.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 65650e846cd..b1b9a3e8cc8 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -16,6 +16,7 @@ from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer from azure.core.exceptions import HttpResponseError +from knack.util import CLIError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone from ...custom import DbContext as MysqlDbContext, _determine_iops @@ -741,7 +742,7 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault try: user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except Exception: # Graph /me is delegated-only; fall back to SP object ID under service-principal auth + except CLIError: # Graph /me is delegated-only; fall back to SP object ID under service-principal auth account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] From 89516b75b5ace1cdc2b6bd26fcc9675f4fab7247 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 00:38:27 +0000 Subject: [PATCH 08/14] docs: clarify BYOK test SP auth fallback comments --- .../mysql/tests/latest/test_mysql_scenario.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index b1b9a3e8cc8..f2e7570e8f3 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -740,9 +740,13 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault replication_role = 'Replica' try: + # In interactive/delegated auth, `az ad signed-in-user show` returns the signed-in user. user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except CLIError: # Graph /me is delegated-only; fall back to SP object ID under service-principal auth + except CLIError: + # `az ad signed-in-user show` uses the Graph /me endpoint, which only works with delegated + # (interactive) auth, not service-principal/OIDC auth (as used in live-test CI pipelines). + # Fall back to resolving the caller's object ID via `az ad sp show`. account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] caller_object_id = self.cmd('ad sp show --id {}'.format(sp_client_id)).get_output_in_json()['id'] From 7b91a4c2b71bec712b76c3305c79c3902d3c0cee Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 02:07:50 +0000 Subject: [PATCH 09/14] fix: use broad Exception catch to handle GraphError in BYOK test SP auth fallback --- .../mysql/tests/latest/test_mysql_scenario.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index f2e7570e8f3..a8a8e6c0a3e 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -16,7 +16,6 @@ from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer from azure.core.exceptions import HttpResponseError -from knack.util import CLIError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone from ...custom import DbContext as MysqlDbContext, _determine_iops @@ -743,9 +742,9 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault # In interactive/delegated auth, `az ad signed-in-user show` returns the signed-in user. user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except CLIError: - # `az ad signed-in-user show` uses the Graph /me endpoint, which only works with delegated - # (interactive) auth, not service-principal/OIDC auth (as used in live-test CI pipelines). + except Exception: # pylint: disable=broad-except + # `az ad signed-in-user show` calls Graph /me, which is delegated-only and raises GraphError + # (not CLIError) under service-principal/OIDC auth (as used in live-test CI pipelines). # Fall back to resolving the caller's object ID via `az ad sp show`. account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] From fcf8b7459089e862d6b8d72f10907d709f8a287c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 02:10:09 +0000 Subject: [PATCH 10/14] fix: catch GraphError specifically instead of broad Exception in BYOK test --- .../mysql/tests/latest/test_mysql_scenario.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index a8a8e6c0a3e..6db1eaffcd7 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -16,6 +16,7 @@ from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer from azure.core.exceptions import HttpResponseError +from azure.cli.command_modules.role._msgrpah._graph_client import GraphError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone from ...custom import DbContext as MysqlDbContext, _determine_iops @@ -742,9 +743,10 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault # In interactive/delegated auth, `az ad signed-in-user show` returns the signed-in user. user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except Exception: # pylint: disable=broad-except - # `az ad signed-in-user show` calls Graph /me, which is delegated-only and raises GraphError - # (not CLIError) under service-principal/OIDC auth (as used in live-test CI pipelines). + except GraphError: + # `az ad signed-in-user show` calls Graph /me which is delegated-only. Under + # service-principal/OIDC auth (as used in live-test CI pipelines), the Graph API + # returns an HTTP 400, which the role module surfaces as GraphError. # Fall back to resolving the caller's object ID via `az ad sp show`. account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] From 3520d69226fd6b08e68bbc98f08a337872c72aec Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 03:05:23 +0000 Subject: [PATCH 11/14] fix: catch CLIError (not GraphError) in BYOK test SP auth fallback --- .../mysql/tests/latest/test_mysql_scenario.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py index 6db1eaffcd7..08f921c9e4f 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/tests/latest/test_mysql_scenario.py @@ -16,7 +16,7 @@ from azure.cli.testsdk.scenario_tests.const import ENV_LIVE_TEST from azure.cli.testsdk.preparers import AbstractPreparer, SingleValueReplacer, StorageAccountPreparer from azure.core.exceptions import HttpResponseError -from azure.cli.command_modules.role._msgrpah._graph_client import GraphError +from knack.util import CLIError from ..._client_factory import cf_mysql_flexible_private_dns_zone_suffix_operations from ..._network import prepare_private_dns_zone from ...custom import DbContext as MysqlDbContext, _determine_iops @@ -743,10 +743,11 @@ def _test_flexible_server_byok_mgmt(self, database_engine, resource_group, vault # In interactive/delegated auth, `az ad signed-in-user show` returns the signed-in user. user = self.cmd('ad signed-in-user show').get_output_in_json() caller_object_id = user['id'] - except GraphError: + except CLIError: # `az ad signed-in-user show` calls Graph /me which is delegated-only. Under # service-principal/OIDC auth (as used in live-test CI pipelines), the Graph API - # returns an HTTP 400, which the role module surfaces as GraphError. + # returns an HTTP 400. The role module's graph_err_handler converts the raw + # GraphError into a CLIError, which is what the test SDK re-raises here. # Fall back to resolving the caller's object ID via `az ad sp show`. account = self.cmd('account show').get_output_in_json() sp_client_id = account['user']['name'] From 6b8efba4f27212a3353c7a303943cb0c75ab68f9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 04:44:18 +0000 Subject: [PATCH 12/14] refactor: use `if result:` and narrow bare except in list-skus transformer --- .../azure/cli/command_modules/mysql/_transformers.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py index 6e42cf5a020..1a4d81c2af0 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py @@ -47,7 +47,7 @@ def table_transform_output_list_servers(result): def mysql_table_transform_output_list_skus(result): table_result = [] - if len(result) >= 1: + if result: skus_tiers = result[0]["supportedFlexibleServerEditions"] for skus in skus_tiers: tier_name = skus["name"] @@ -61,7 +61,7 @@ def mysql_table_transform_output_list_skus(result): new_entry['Memory'] = str(int(key['supportedMemoryPerVCoreMb']) * int(key['vCores']) // 1024) + " GiB" new_entry['Max Disk IOPS'] = key['supportedIops'] table_result.append(new_entry) - except: + except (KeyError, IndexError, TypeError): raise CLIError("There is no sku available for this location.") return table_result From d7197db8e306372d95bc237e74e5c0b2b3fbbddd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 04:45:18 +0000 Subject: [PATCH 13/14] refactor: guard list-skus transformer with isinstance check --- src/azure-cli/azure/cli/command_modules/mysql/_transformers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py index 1a4d81c2af0..7b6c485c2be 100644 --- a/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py +++ b/src/azure-cli/azure/cli/command_modules/mysql/_transformers.py @@ -47,7 +47,7 @@ def table_transform_output_list_servers(result): def mysql_table_transform_output_list_skus(result): table_result = [] - if result: + if isinstance(result, list) and result: skus_tiers = result[0]["supportedFlexibleServerEditions"] for skus in skus_tiers: tier_name = skus["name"] From c3887f93bd68ff884049f6dbae16e1502a3b3fa9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 20 Jul 2026 07:07:07 +0000 Subject: [PATCH 14/14] docs: simplify HISTORY.rst entry for list-skus fix --- src/azure-cli/HISTORY.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/azure-cli/HISTORY.rst b/src/azure-cli/HISTORY.rst index b804b945582..3253f98884c 100644 --- a/src/azure-cli/HISTORY.rst +++ b/src/azure-cli/HISTORY.rst @@ -172,7 +172,7 @@ Release History **MySQL** * [BREAKING CHANGE] `az mysql flexible-server backup create/restore/geo-restore/replica`: Remove `--storage-redundancy` (#33428) -* Fix #31568: `az mysql flexible-server list-skus`: Fix command returning empty list for all regions by upgrading to `azure-mgmt-mysqlflexibleservers==1.1.0b2` which uses the updated API version +* Fix #31568: `az mysql flexible-server list-skus`: Fix command returning empty list for all regions **NetAppFiles**