From 02825266e5324f6644aa0d43dd879c1571c56859 Mon Sep 17 00:00:00 2001 From: william Date: Tue, 29 Sep 2026 09:11:29 +0800 Subject: [PATCH 1/3] Migrate validator --- src/aro/azext_aro/_validators.py | 8 +++--- .../latest/standard/unit/test_validators.py | 27 ++++++++++--------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/src/aro/azext_aro/_validators.py b/src/aro/azext_aro/_validators.py index 796ebb63466..3a9d5a23bc5 100644 --- a/src/aro/azext_aro/_validators.py +++ b/src/aro/azext_aro/_validators.py @@ -97,10 +97,12 @@ def validate_disk_encryption_set(cmd, namespace): f"Invalid --disk-encryption-set '{namespace.disk_encryption_set}', has to be a resource ID.") desid = parse_resource_id(namespace.disk_encryption_set) - compute_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_COMPUTE) + from azure.cli.command_modules.vm.aaz.latest.disk_encryption_set import Show try: - compute_client.disk_encryption_sets.get(resource_group_name=desid['resource_group'], - disk_encryption_set_name=desid['name']) + Show(cli_ctx=cmd.cli_ctx)(command_args={ + 'resource_group': desid['resource_group'], + 'disk_encryption_set_name': desid['name'] + }) except HttpResponseError as err: raise InvalidArgumentValueError( f"Invalid --disk-encryption-set, error when getting '{namespace.disk_encryption_set}':" diff --git a/src/aro/azext_aro/tests/latest/standard/unit/test_validators.py b/src/aro/azext_aro/tests/latest/standard/unit/test_validators.py index ad2553b4390..46cfb4858d3 100644 --- a/src/aro/azext_aro/tests/latest/standard/unit/test_validators.py +++ b/src/aro/azext_aro/tests/latest/standard/unit/test_validators.py @@ -275,41 +275,37 @@ def test_validate_cluster_resource_group(get_mgmt_service_client_mock, test_desc None ), ( - "should not raise any exception when compute_client.disk_encryption_sets.get() not raises CludError exception", + "should not raise any exception when the AAZ disk encryption set show command succeeds", Mock(cli_ctx=None), Mock(disk_encryption_set="something different than None"), True, Mock(), None, - {"resource_group": None, "name": None} + {"resource_group": "des-resource-group", "name": "des-name"} ) ] @pytest.mark.parametrize( - "test_description, cmd_mock, namespace, is_valid_resource_id_return_value, compute_client_mock, expected_exception, parse_resource_id_mock_return_value", + "test_description, cmd_mock, namespace, is_valid_resource_id_return_value, show_mock, expected_exception, parse_resource_id_mock_return_value", test_validate_disk_encryption_set_data, ids=[i[0] for i in test_validate_disk_encryption_set_data] ) -@patch('azext_aro._validators.get_mgmt_service_client') +@patch('azure.cli.command_modules.vm.aaz.latest.disk_encryption_set.Show') @patch('azext_aro._validators.parse_resource_id') @patch('azext_aro._validators.is_valid_resource_id') def test_validate_disk_encryption_set( - # Mocks: is_valid_resource_id_mock, parse_resource_id_mock, - get_mgmt_service_client_mock, - - # Test cases parameters: + aaz_show_mock, test_description, cmd_mock, namespace, is_valid_resource_id_return_value, - compute_client_mock, expected_exception, parse_resource_id_mock_return_value + show_mock, expected_exception, parse_resource_id_mock_return_value ): is_valid_resource_id_mock.return_value = is_valid_resource_id_return_value parse_resource_id_mock.return_value = parse_resource_id_mock_return_value - if compute_client_mock is not None: - compute_client_mock.get.return_value = None - get_mgmt_service_client_mock.return_value = compute_client_mock + if show_mock is not None: + aaz_show_mock.return_value = show_mock if expected_exception is None: validate_disk_encryption_set(cmd_mock, namespace) @@ -317,6 +313,13 @@ def test_validate_disk_encryption_set( with pytest.raises(expected_exception): validate_disk_encryption_set(cmd_mock, namespace) + if show_mock is not None: + aaz_show_mock.assert_called_once_with(cli_ctx=cmd_mock.cli_ctx) + show_mock.assert_called_once_with(command_args={ + 'resource_group': 'des-resource-group', + 'disk_encryption_set_name': 'des-name' + }) + test_validate_domain_data = [ ( From 6d23fb79d5d8e04fcad6410ff8f80a931b4bd4b1 Mon Sep 17 00:00:00 2001 From: william Date: Tue, 29 Sep 2026 09:12:03 +0800 Subject: [PATCH 2/3] Update version --- src/aro/HISTORY.rst | 4 ++++ src/aro/setup.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/aro/HISTORY.rst b/src/aro/HISTORY.rst index 10a49bc2586..fa02882a7bb 100644 --- a/src/aro/HISTORY.rst +++ b/src/aro/HISTORY.rst @@ -3,6 +3,10 @@ Release History =============== +1.0.14 +++++++ +* Migrate Disk Encryption Set validation from the Compute SDK to AAZ. + 1.0.13 ++++++ * Add support for hosted control plane clusters via `az aro hcp` and its subcommands. diff --git a/src/aro/setup.py b/src/aro/setup.py index b278dd5c19e..e96e557ac37 100644 --- a/src/aro/setup.py +++ b/src/aro/setup.py @@ -13,7 +13,7 @@ from distutils import log as logger logger.warn("Wheel is not available, disabling bdist_wheel hook") -VERSION = '1.0.13' +VERSION = '1.0.14' # The full list of classifiers is available at # https://pypi.python.org/pypi?%3Aaction=list_classifiers From 463ae13ecc6167ea4aea861d04354393429c3e41 Mon Sep 17 00:00:00 2001 From: william Date: Tue, 29 Sep 2026 11:48:38 +0800 Subject: [PATCH 3/3] Update metadata --- src/aro/azext_aro/azext_metadata.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/aro/azext_aro/azext_metadata.json b/src/aro/azext_aro/azext_metadata.json index 9f72be59019..000d61b4b2c 100644 --- a/src/aro/azext_aro/azext_metadata.json +++ b/src/aro/azext_aro/azext_metadata.json @@ -1,5 +1,5 @@ { "azext.isPreview": true, "azext.minCliCoreVersion": "2.75.0", - "version": "1.0.13" + "version": "1.0.14" } \ No newline at end of file