From 105e5e50fe7cf70b438e0b62dc4d11619c870d4f Mon Sep 17 00:00:00 2001 From: william051200 Date: Tue, 10 Mar 2026 14:54:23 +0800 Subject: [PATCH 1/3] Migrate network module --- .../azure/cli/command_modules/network/custom.py | 16 ++++++++++++++++ .../network/operations/watcher.py | 14 +++++++------- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/network/custom.py b/src/azure-cli/azure/cli/command_modules/network/custom.py index 2813ad8cd04..6f57364cffc 100644 --- a/src/azure-cli/azure/cli/command_modules/network/custom.py +++ b/src/azure-cli/azure/cli/command_modules/network/custom.py @@ -6756,3 +6756,19 @@ def create_ddos_custom_policy(cmd, ddos_custom_policy_name, resource_group_name, policy['no_wait'] = no_wait return DdosCustomPolicyCreate(cli_ctx=cmd.cli_ctx)(command_args=policy) + + +def get_vm(cli_ctx, resource_group_name, vm_name): + from ..vm.operations.vm import VMShow + return VMShow(cli_ctx=cli_ctx)(command_args={ + 'resource_group': resource_group_name, + 'vm_name': vm_name + }) + + +def get_vmss(cli_ctx, resource_group_name, vmss_name): + from ..vm.operations.vmss import VMSSShow + return VMSSShow(cli_ctx=cli_ctx)(command_args={ + 'resource_group': resource_group_name, + 'vm_scale_set_name': vmss_name + }) diff --git a/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py b/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py index d30644852ca..851af3346d7 100644 --- a/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py +++ b/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py @@ -72,10 +72,10 @@ def get_network_watcher_from_location(cmd, watcher_name="watcher_name", rg_name= def get_network_watcher_from_vm(cmd): + from ..custom import get_vm args = cmd.ctx.args - compute_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_COMPUTE).virtual_machines vm_name = parse_resource_id(args.vm.to_serialized_data())["name"] - vm = compute_client.get(args.resource_group_name, vm_name) + vm = get_vm(cmd.cli_ctx, args.resource_group_name, vm_name) args.location = vm.location get_network_watcher_from_location(cmd) @@ -88,10 +88,10 @@ def get_network_watcher_from_resource(cmd): def get_network_watcher_from_vmss(cmd): + from ..custom import get_vmss args = cmd.ctx.args - compute_client = get_mgmt_service_client(cmd.cli_ctx, ResourceType.MGMT_COMPUTE).virtual_machine_scale_sets vmss_name = parse_resource_id(args.target.to_serialized_data())["name"] - vmss = compute_client.get(args.resource_group_name, vmss_name) + vmss = get_vmss(cmd.cli_ctx, args.resource_group_name, vmss_name) args.location = vmss.location get_network_watcher_from_location(cmd) @@ -387,16 +387,16 @@ def _build_arguments_schema(cls, *args, **kwargs): return args_schema def pre_operations(self): + from ..custom import get_vm args = self.ctx.args - compute_client = get_mgmt_service_client(self.cli_ctx, ResourceType.MGMT_COMPUTE).virtual_machines id_parts = parse_resource_id(args.source_resource.to_serialized_data()) vm_name = id_parts["name"] rg = args.resource_group_name or id_parts.get("resource_group", None) if not rg: raise ValidationError("usage error: --source-resource ID | --source-resource NAME --resource-group NAME") - vm = compute_client.get(rg, vm_name) - args.location = vm.location + vm = get_vm(self.cli_ctx, rg, vm_name) + args.location = vm.get('location') get_network_watcher_from_location(self) if has_value(args.source_resource) and not is_valid_resource_id(args.source_resource.to_serialized_data()): From 437dcc957459c56b5b9f225774895cac2c47600a Mon Sep 17 00:00:00 2001 From: william051200 Date: Thu, 12 Mar 2026 09:19:19 +0800 Subject: [PATCH 2/3] Update code --- .../azure/cli/command_modules/network/operations/watcher.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py b/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py index 851af3346d7..1b425687f7b 100644 --- a/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py +++ b/src/azure-cli/azure/cli/command_modules/network/operations/watcher.py @@ -76,7 +76,7 @@ def get_network_watcher_from_vm(cmd): args = cmd.ctx.args vm_name = parse_resource_id(args.vm.to_serialized_data())["name"] vm = get_vm(cmd.cli_ctx, args.resource_group_name, vm_name) - args.location = vm.location + args.location = vm.get('location') get_network_watcher_from_location(cmd) @@ -92,7 +92,7 @@ def get_network_watcher_from_vmss(cmd): args = cmd.ctx.args vmss_name = parse_resource_id(args.target.to_serialized_data())["name"] vmss = get_vmss(cmd.cli_ctx, args.resource_group_name, vmss_name) - args.location = vmss.location + args.location = vmss.get('location') get_network_watcher_from_location(cmd) From c12a8cbf7c71370fe3fe2eabb3c7ab5e7435f9ce Mon Sep 17 00:00:00 2001 From: william051200 Date: Fri, 13 Mar 2026 11:53:59 +0800 Subject: [PATCH 3/3] Update test case recording --- .../test_network_watcher_packet_capture.yaml | 4 ++-- ..._network_watcher_packet_capture_vmss_as_target.yaml | 6 +++--- .../latest/recordings/test_network_watcher_vm.yaml | 10 +++++----- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture.yaml b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture.yaml index 7545f3aebe0..8a3832b2837 100644 --- a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture.yaml +++ b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture.yaml @@ -10951,7 +10951,7 @@ interactions: User-Agent: - AZURECLI/2.74.0 azsdk-python-core/1.31.0 Python/3.12.10 (Windows-11-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n @@ -11301,7 +11301,7 @@ interactions: User-Agent: - AZURECLI/2.74.0 azsdk-python-core/1.31.0 Python/3.12.10 (Windows-11-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n diff --git a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture_vmss_as_target.yaml b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture_vmss_as_target.yaml index 60fd3dd710d..026a88546a1 100644 --- a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture_vmss_as_target.yaml +++ b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_packet_capture_vmss_as_target.yaml @@ -5525,7 +5525,7 @@ interactions: - AZURECLI/2.53.0 azsdk-python-azure-mgmt-compute/30.2.0 Python/3.10.13 (Linux-5.15.0-1046-azure-x86_64-with-glibc2.31) VSTS_7b238909-6802-4b65-b90d-184bca47f458_build_220_0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vmssForPcap\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap\",\r\n @@ -5883,7 +5883,7 @@ interactions: - AZURECLI/2.53.0 azsdk-python-azure-mgmt-compute/30.2.0 Python/3.10.13 (Linux-5.15.0-1046-azure-x86_64-with-glibc2.31) VSTS_7b238909-6802-4b65-b90d-184bca47f458_build_220_0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vmssForPcap\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap\",\r\n @@ -6243,7 +6243,7 @@ interactions: - AZURECLI/2.53.0 azsdk-python-azure-mgmt-compute/30.2.0 Python/3.10.13 (Linux-5.15.0-1046-azure-x86_64-with-glibc2.31) VSTS_7b238909-6802-4b65-b90d-184bca47f458_build_220_0 method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vmssForPcap\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_packet_capture_vmss_as_target000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmssForPcap\",\r\n diff --git a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_vm.yaml b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_vm.yaml index d015a7a5986..0477032843d 100644 --- a/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_vm.yaml +++ b/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_network_watcher_vm.yaml @@ -10965,7 +10965,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n @@ -12888,7 +12888,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n @@ -13209,7 +13209,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n @@ -13530,7 +13530,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n @@ -13855,7 +13855,7 @@ interactions: User-Agent: - AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0) method: GET - uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01 + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2025-04-01 response: body: string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_nw_vm000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n