Skip to content

Commit 2a8d47c

Browse files
{Compute} az vmss: Migrate commands to aaz-based implementation (#32788)
1 parent 2e3d358 commit 2a8d47c

File tree

8 files changed

+45
-30
lines changed

8 files changed

+45
-30
lines changed

src/azure-cli/azure/cli/command_modules/vm/_vm_utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,12 @@ def raise_unsupported_error_for_flex_vmss(vmss, error_message):
619619
raise ArgumentUsageError(error_message)
620620

621621

622+
def raise_unsupported_error_for_flex_vmss_by_aaz(vmss, error_message):
623+
if vmss.get('orchestrationMode', '').lower() == 'flexible':
624+
from azure.cli.core.azclierror import ArgumentUsageError
625+
raise ArgumentUsageError(error_message)
626+
627+
622628
def is_trusted_launch_supported(supported_features):
623629
if not supported_features:
624630
return False

src/azure-cli/azure/cli/command_modules/vm/commands.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,9 @@ def load_command_table(self, _):
404404
g.custom_show_command('identity show', 'show_vmss_identity')
405405
g.custom_command('deallocate', 'deallocate_vmss', supports_no_wait=True)
406406
g.custom_command('reimage', 'reimage_vmss', supports_no_wait=True)
407+
g.custom_command('list-instance-connection-info', 'list_vmss_instance_connection_info')
408+
g.custom_command('list-instance-public-ips', 'list_vmss_instance_public_ips')
409+
g.custom_command('list-instances', 'get_instances_list')
407410

408411
with self.command_group('vmss application', operation_group='virtual_machine_scale_sets') as g:
409412
g.custom_command('set', 'set_vmss_applications', validator=process_set_applications_namespace)
@@ -412,9 +415,6 @@ def load_command_table(self, _):
412415
with self.command_group('vmss', compute_vmss_sdk, operation_group='virtual_machine_scale_sets') as g:
413416
g.custom_command('create', 'create_vmss', transform=DeploymentOutputLongRunningOperation(self.cli_ctx, 'Starting vmss create'), supports_no_wait=True, table_transformer=deployment_validate_table_format, validator=process_vmss_create_namespace, exception_handler=handle_template_based_exception)
414417
g.custom_command('get-instance-view', 'get_vmss_instance_view', table_transformer='{ProvisioningState:statuses[0].displayStatus, PowerState:statuses[1].displayStatus}')
415-
g.custom_command('list-instance-connection-info', 'list_vmss_instance_connection_info')
416-
g.custom_command('list-instance-public-ips', 'list_vmss_instance_public_ips')
417-
g.custom_command('list-instances', 'get_instances_list')
418418
g.custom_command('restart', 'restart_vmss', supports_no_wait=True)
419419
g.custom_command('scale', 'scale_vmss', supports_no_wait=True)
420420
g.custom_show_command('show', 'get_vmss', table_transformer=get_vmss_table_output_transformer(self, False))

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

Lines changed: 24 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4412,31 +4412,36 @@ def get_vmss_instance_view(cmd, resource_group_name, vm_scale_set_name, instance
44124412

44134413
def list_vmss_instance_connection_info(cmd, resource_group_name, vm_scale_set_name):
44144414
from azure.mgmt.core.tools import parse_resource_id
4415+
from .operations.vmss import VMSSShow
44154416

44164417
LBShow = import_aaz_by_profile(cmd.cli_ctx.cloud.profile, "network.lb").Show
44174418
PublicIPAddress = import_aaz_by_profile(cmd.cli_ctx.cloud.profile, "network.public_ip").Show
44184419

4419-
client = _compute_client_factory(cmd.cli_ctx)
4420-
vmss = client.virtual_machine_scale_sets.get(resource_group_name, vm_scale_set_name)
4420+
command_args = {
4421+
'resource_group': resource_group_name,
4422+
'vm_scale_set_name': vm_scale_set_name
4423+
}
4424+
vmss = VMSSShow(cli_ctx=cmd.cli_ctx)(command_args=command_args)
44214425

4422-
from ._vm_utils import raise_unsupported_error_for_flex_vmss
4423-
raise_unsupported_error_for_flex_vmss(
4426+
from ._vm_utils import raise_unsupported_error_for_flex_vmss_by_aaz
4427+
raise_unsupported_error_for_flex_vmss_by_aaz(
44244428
vmss, 'This command is not available for VMSS in Flex mode. '
44254429
'Please use the "az network public-ip list/show" to retrieve networking information.')
44264430

44274431
# find the load balancer
4428-
nic_configs = vmss.virtual_machine_profile.network_profile.network_interface_configurations
4429-
primary_nic_config = next((n for n in nic_configs if n.primary), None)
4432+
nic_configs = \
4433+
vmss.get('virtualMachineProfile', {}).get('networkProfile', {}).get('networkInterfaceConfigurations', [])
4434+
primary_nic_config = next((n for n in nic_configs if n.get('primary')), {})
44304435
if primary_nic_config is None:
44314436
raise CLIError('could not find a primary NIC which is needed to search to load balancer')
44324437

44334438
res_id = None
4434-
for ip in primary_nic_config.ip_configurations:
4435-
if ip.load_balancer_inbound_nat_pools:
4436-
res_id = ip.load_balancer_inbound_nat_pools[0].id
4439+
for ip in primary_nic_config.get('ipConfigurations', []):
4440+
if len(ip.get('loadBalancerInboundNatPools', [])) > 0:
4441+
res_id = ip['loadBalancerInboundNatPools'][0].get('id')
44374442
break
4438-
if ip.load_balancer_backend_address_pools:
4439-
res_id = ip.load_balancer_backend_address_pools[0].id
4443+
if len(ip.get('loadBalancerBackendAddressPools', [])) > 0:
4444+
res_id = ip['loadBalancerBackendAddressPools'][0].get('id')
44404445
break
44414446

44424447
if not res_id:
@@ -4499,12 +4504,16 @@ def list_vmss_instance_connection_info(cmd, resource_group_name, vm_scale_set_na
44994504

45004505

45014506
def list_vmss_instance_public_ips(cmd, resource_group_name, vm_scale_set_name):
4507+
from .operations.vmss import VMSSShow
45024508
ListInstancePublicIps = import_aaz_by_profile(cmd.cli_ctx.cloud.profile, "vmss").ListInstancePublicIps
45034509

4504-
compute_client = _compute_client_factory(cmd.cli_ctx)
4505-
vmss = compute_client.virtual_machine_scale_sets.get(resource_group_name, vm_scale_set_name)
4506-
from ._vm_utils import raise_unsupported_error_for_flex_vmss
4507-
raise_unsupported_error_for_flex_vmss(
4510+
command_args = {
4511+
'resource_group': resource_group_name,
4512+
'vm_scale_set_name': vm_scale_set_name
4513+
}
4514+
vmss = VMSSShow(cli_ctx=cmd.cli_ctx)(command_args=command_args)
4515+
from ._vm_utils import raise_unsupported_error_for_flex_vmss_by_aaz
4516+
raise_unsupported_error_for_flex_vmss_by_aaz(
45084517
vmss, 'This command is not available for VMSS in Flex mode. '
45094518
'Please use the "az network public-ip list/show" to retrieve networking information.')
45104519

src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vmss_create_with_nat_rule_v2.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1009,7 +1009,7 @@ interactions:
10091009
User-Agent:
10101010
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
10111011
method: GET
1012-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000002?api-version=2024-11-01
1012+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000002?api-version=2025-04-01
10131013
response:
10141014
body:
10151015
string: "{\r\n \"name\": \"vmss000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000002\"\
@@ -2296,7 +2296,7 @@ interactions:
22962296
User-Agent:
22972297
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
22982298
method: GET
2299-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000003?api-version=2024-11-01
2299+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000003?api-version=2025-04-01
23002300
response:
23012301
body:
23022302
string: "{\r\n \"name\": \"vmss000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000003\"\
@@ -3607,7 +3607,7 @@ interactions:
36073607
User-Agent:
36083608
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
36093609
method: GET
3610-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000004?api-version=2024-11-01
3610+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000004?api-version=2025-04-01
36113611
response:
36123612
body:
36133613
string: "{\r\n \"name\": \"vmss000004\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000004\"\
@@ -4854,7 +4854,7 @@ interactions:
48544854
User-Agent:
48554855
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
48564856
method: GET
4857-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000005?api-version=2024-11-01
4857+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000005?api-version=2025-04-01
48584858
response:
48594859
body:
48604860
string: "{\r\n \"name\": \"vmss000005\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000005\"\
@@ -6153,7 +6153,7 @@ interactions:
61536153
User-Agent:
61546154
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
61556155
method: GET
6156-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000006?api-version=2024-11-01
6156+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000006?api-version=2025-04-01
61576157
response:
61586158
body:
61596159
string: "{\r\n \"name\": \"vmss000006\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_nat_rule_v2000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss000006\"\

src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vmss_public_ip_per_vm_custom_domain_name.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,7 +1198,7 @@ interactions:
11981198
User-Agent:
11991199
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
12001200
method: GET
1201-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmsswithip000002?api-version=2024-11-01
1201+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmsswithip000002?api-version=2025-04-01
12021202
response:
12031203
body:
12041204
string: "{\r\n \"name\": \"vmsswithip000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmsswithip000002\"\
@@ -1906,7 +1906,7 @@ interactions:
19061906
User-Agent:
19071907
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
19081908
method: GET
1909-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/flexvmsswithip000003?api-version=2024-11-01
1909+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/flexvmsswithip000003?api-version=2025-04-01
19101910
response:
19111911
body:
19121912
string: "{\r\n \"name\": \"flexvmsswithip000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_create_w_ips000001/providers/Microsoft.Compute/virtualMachineScaleSets/flexvmsswithip000003\"\

src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vmss_vms.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,7 @@ interactions:
954954
User-Agent:
955955
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
956956
method: GET
957-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002?api-version=2024-11-01
957+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002?api-version=2025-04-01
958958
response:
959959
body:
960960
string: "{\r\n \"name\": \"clitestvmss000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002\"\
@@ -3356,7 +3356,7 @@ interactions:
33563356
User-Agent:
33573357
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
33583358
method: GET
3359-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003?api-version=2024-11-01
3359+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003?api-version=2025-04-01
33603360
response:
33613361
body:
33623362
string: "{\r\n \"name\": \"clitestflexvms000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003\"\

src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vmss_vms_debian.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -998,7 +998,7 @@ interactions:
998998
User-Agent:
999999
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
10001000
method: GET
1001-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002?api-version=2024-11-01
1001+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002?api-version=2025-04-01
10021002
response:
10031003
body:
10041004
string: "{\r\n \"name\": \"clitestvmss000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestvmss000002\"\
@@ -3392,7 +3392,7 @@ interactions:
33923392
User-Agent:
33933393
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
33943394
method: GET
3395-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003?api-version=2024-11-01
3395+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003?api-version=2025-04-01
33963396
response:
33973397
body:
33983398
string: "{\r\n \"name\": \"clitestflexvms000003\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_vms_debian000001/providers/Microsoft.Compute/virtualMachineScaleSets/clitestflexvms000003\"\

src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vmss_with_ilb.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,7 +595,7 @@ interactions:
595595
User-Agent:
596596
- AZURECLI/2.63.0 azsdk-python-core/1.28.0 Python/3.10.11 (Windows-10-10.0.22631-SP0)
597597
method: GET
598-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_ilb000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1?api-version=2024-11-01
598+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_ilb000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1?api-version=2025-04-01
599599
response:
600600
body:
601601
string: "{\r\n \"name\": \"vmss1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_vmss_ilb000001/providers/Microsoft.Compute/virtualMachineScaleSets/vmss1\"\

0 commit comments

Comments
 (0)