Skip to content

{Compute} az vm/vmss create/update: Support use local file rules parameter - #33894

Open
William (william051200) wants to merge 9 commits into
Azure:devfrom
william051200:local-file-rule
Open

{Compute} az vm/vmss create/update: Support use local file rules parameter#33894
William (william051200) wants to merge 9 commits into
Azure:devfrom
william051200:local-file-rule

Conversation

@william051200

@william051200 William (william051200) commented Aug 14, 2026

Copy link
Copy Markdown
Member

🤖 PR Validation — ❌ Action needed

Breaking Changes Tests
❌ 1 ️✔️ 130/130
❌AzureCLI-BreakingChangeTest
❌appservice
rule cmd_name rule_message suggest_message
1007 - ParaRemove webapp create cmd webapp create removed parameter enriched_errors please add back parameter enriched_errors for cmd webapp create
1012 - SubgroupRemove webapp troubleshoot collect sub group webapp troubleshoot collect removed please confirm sub group webapp troubleshoot collect removed
⚠️ 1010 - ParaPropUpdate appservice list-locations cmd appservice list-locations update parameter sku: updated property choices from ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1MV4', 'I1V2', 'I1V4', 'I2MV2', 'I2MV4', 'I2V2', 'I2V4', 'I3MV2', 'I3MV4', 'I3V2', 'I3V4', 'I4MV2', 'I4MV4', 'I4V2', 'I4V4', 'I5MV2', 'I5MV4', 'I5V2', 'I5V4', 'I6V2', 'I6V4', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3'] to ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1V2', 'I2MV2', 'I2V2', 'I3MV2', 'I3V2', 'I4MV2', 'I4V2', 'I5MV2', 'I5V2', 'I6V2', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3']
⚠️ 1010 - ParaPropUpdate appservice plan create cmd appservice plan create update parameter sku: updated property choices from ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1MV4', 'I1V2', 'I1V4', 'I2MV2', 'I2MV4', 'I2V2', 'I2V4', 'I3MV2', 'I3MV4', 'I3V2', 'I3V4', 'I4MV2', 'I4MV4', 'I4V2', 'I4V4', 'I5MV2', 'I5MV4', 'I5V2', 'I5V4', 'I6V2', 'I6V4', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3'] to ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1V2', 'I2MV2', 'I2V2', 'I3MV2', 'I3V2', 'I4MV2', 'I4V2', 'I5MV2', 'I5V2', 'I6V2', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3']
⚠️ 1010 - ParaPropUpdate appservice plan update cmd appservice plan update update parameter sku: updated property choices from ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1MV4', 'I1V2', 'I1V4', 'I2MV2', 'I2MV4', 'I2V2', 'I2V4', 'I3MV2', 'I3MV4', 'I3V2', 'I3V4', 'I4MV2', 'I4MV4', 'I4V2', 'I4V4', 'I5MV2', 'I5MV4', 'I5V2', 'I5V4', 'I6V2', 'I6V4', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3'] to ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1V2', 'I2MV2', 'I2V2', 'I3MV2', 'I3V2', 'I4MV2', 'I4V2', 'I5MV2', 'I5V2', 'I6V2', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3']
⚠️ 1010 - ParaPropUpdate webapp up cmd webapp up update parameter sku: updated property choices from ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1MV4', 'I1V2', 'I1V4', 'I2MV2', 'I2MV4', 'I2V2', 'I2V4', 'I3MV2', 'I3MV4', 'I3V2', 'I3V4', 'I4MV2', 'I4MV4', 'I4V2', 'I4V4', 'I5MV2', 'I5MV4', 'I5V2', 'I5V4', 'I6V2', 'I6V4', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3'] to ['B1', 'B2', 'B3', 'D1', 'F1', 'FREE', 'I1MV2', 'I1V2', 'I2MV2', 'I2V2', 'I3MV2', 'I3V2', 'I4MV2', 'I4V2', 'I5MV2', 'I5V2', 'I6V2', 'P0V3', 'P0V4', 'P1MV3', 'P1MV4', 'P1V2', 'P1V3', 'P1V4', 'P2MV3', 'P2MV4', 'P2V2', 'P2V3', 'P2V4', 'P3MV3', 'P3MV4', 'P3V2', 'P3V3', 'P3V4', 'P4MV3', 'P4MV4', 'P5MV3', 'P5MV4', 'S1', 'S2', 'S3', 'SHARED', 'WS1', 'WS2', 'WS3']
⚠️vm
rule cmd_name rule_message suggest_message
⚠️ 1006 - ParaAdd vm create cmd vm create added parameter wire_server_use_local_file_rules
⚠️ 1006 - ParaAdd vm update cmd vm update added parameter wire_server_use_local_file_rules
⚠️ 1006 - ParaAdd vmss create cmd vmss create added parameter wire_server_use_local_file_rules
⚠️ 1006 - ParaAdd vmss update cmd vmss update added parameter wire_server_use_local_file_rules

Please submit your Breaking Change Pre-announcement ASAP if you haven't already. Please note:

  • Breaking changes can only be merged during the designated breaking change window
  • A pre-announcement must be released at least one month in advance

For more details on how to introduce breaking changes, refer to the documentation: azure-cli/doc/how_to_introduce_breaking_changes.md

Related command

az vm create/ update/ show
az vmss create/ update/ show

Description

Resolve #33771

aaz Azure/aaz#1063

Testing Guide

Refer to azure-cli\src\azure-cli\azure\cli\command_modules\vm\tests\latest\test_vm_commands.py: test_vm_vmss_wire_server_use_local_file_rules

History Notes

[Compute] az vm: Add new parameter wire-server-use-local-file-rules to support use local file rules
[Compute] az vmss: Add new parameter wire-server-use-local-file-rules to support use local file rules


This checklist is used to make sure that common guidelines for a pull request are followed.

Copilot AI lite review requested due to automatic review settings August 14, 2026 01:59
@william051200
William (william051200) requested a review from a team as a code owner August 14, 2026 01:59
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@yonzhan

Copy link
Copy Markdown
Collaborator

Compute

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the vm command module to support configuring WireServer proxy-agent local file rules via a new CLI parameter, aligned with the newer Compute API version required for the feature.

Changes:

  • Add --wire-server-use-local-file-rules for az vm create/update and az vmss create/update, wiring it to securityProfile.proxyAgentSettings.wireServer.useLocalFileRules.
  • Bump VM/VMSS ARM template API versions and AAZ-generated VM/VMSS command schemas to 2026-04-01.
  • Add a scenario test validating create/show/update for VM and VMSS with WireServer local file rules enabled/disabled.

Reviewed changes

Copilot reviewed 14 out of 15 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py Adds scenario coverage for WireServer useLocalFileRules on VM and VMSS.
src/azure-cli/azure/cli/command_modules/vm/operations/vm.py Extends snake_case conversion to include wireServer.useLocalFileRules.
src/azure-cli/azure/cli/command_modules/vm/operations/vmss.py Extends snake_case conversion to include wireServer.useLocalFileRules.
src/azure-cli/azure/cli/command_modules/vm/custom.py Plumbs wire_server_use_local_file_rules through VM/VMSS create/update request shaping.
src/azure-cli/azure/cli/command_modules/vm/_template_builder.py Emits useLocalFileRules into ARM template payloads for VM/VMSS WireServer settings; bumps apiVersion to 2026-04-01.
src/azure-cli/azure/cli/command_modules/vm/_params.py Introduces CLI argument definition for --wire-server-use-local-file-rules.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_create.py Updates AAZ VM create schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_update.py Updates AAZ VM update schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_show.py Updates AAZ VM show schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_wait.py Updates AAZ VM wait schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vmss/_create.py Updates AAZ VMSS create schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vmss/_update.py Updates AAZ VMSS update schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vmss/_show.py Updates AAZ VMSS show schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.
src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vmss/_wait.py Updates AAZ VMSS wait schema/version to 2026-04-01 and includes useLocalFileRules in host endpoint settings schema.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines 1376 to 1380
c.argument('wire_server_mode', arg_type=get_enum_type(ProxyAgentMode), help='Specify the mode that proxy agent will execute on if the feature is enabled.')
c.argument('wire_server_use_local_file_rules', options_list=['--wire-server-use-local-file-rules', '--wire-server-local-rules'], arg_type=get_three_state_flag(), help='When set to true, instructs the GuestProxyAgent inside the VM to load additional access control rules defined in a local file on the VM.')
c.argument('wire_server_access_control_profile_reference_id', options_list=['--wire-server-access-control-profile-reference-id', '--wire-server-profile-id'], help='Specify the access control profile version resource id of wire server.')
c.argument('imds_mode', arg_type=get_enum_type(ProxyAgentMode), help='Specify the mode that proxy agent will execute on if the feature is enabled.')
c.argument('imds_access_control_profile_reference_id', options_list=['--imds-access-control-profile-reference-id', '--imds-profile-id'], help='Specify the access control profile version resource id resource id of imds.')
c.argument('v_cpus_available', type=int, help='Specify the number of vCPUs available')
c.argument('v_cpus_per_core', type=int, help='Specify the ratio of vCPU to physical core. Setting this property to 1 also means that hyper-threading is disabled.')
c.argument('disk_controller_type', disk_controller_type)
c.argument('enable_proxy_agent', arg_type=get_three_state_flag(), help='Specify whether metadata security protoco (proxy agent) feature should be enabled on the virtual machine or virtual machine scale set.')
@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@a0x1ab Aditya Pujara (a0x1ab) added the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 19, 2026
@azure-client-tools-agent

Copy link
Copy Markdown
Contributor

Live test results — azdev test --live --series (changed test files only)

FAIL (exit 1)

Selectors: test_vm_commands (module)
PR head ref: local-file-rule
PR head sha: 0151a1baa6e087378dbbbc374a9806098d6314c8
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/32219624362

Live-test recordings: 1 regenerated — archived in workflow artifact live-test-pr-33894 (recordings/).

ℹ️ This PR is from a fork, so recordings were not pushed automatically. Download them from the artifact and commit to your branch.

Recording files
src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vm_image_list_by_alias.yaml
Last 80 lines of azdev output

=============
| Run Tests |
=============


=====================
| Discovering Tests |
=====================

/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:13590: SyntaxWarning: invalid escape sequence '\]'
  self.cmd('vmss application set -g {rg} -n {vmss} --app-version-ids {vid1} {vid2} --enable-automatic-upgrade True\]', checks=[
/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/identity/tests/latest/test_identity.py:18: SyntaxWarning: invalid escape sequence '\{'
  'resource_restriction_compute': '\{"providers":\["Microsoft.Compute"\]\}',
/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/identity/tests/latest/test_identity.py:19: SyntaxWarning: invalid escape sequence '\{'
  'resource_restriction_empty': '\{"providers":\[\]\}'

test index updated: /home/runner/.azdev/env_config/home/runner/work/issue-sentinel/issue-sentinel/.venv/test_index/latest.json

Test on modules: test_vm_commands

WARNING: RUNNING TESTS LIVE
The tests are set to run against current profile "latest"
============================= test session starts ==============================
platform linux -- Python 3.12.14, pytest-9.1.1, pluggy-1.6.0 -- /home/runner/work/issue-sentinel/issue-sentinel/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli
plugins: forked-1.7.5, xdist-3.8.0
collecting ... collected 376 items

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMImageListByAliasesScenarioTest::test_vm_image_list_by_alias FAILED [  0%]

=================================== FAILURES ===================================
_________ VMImageListByAliasesScenarioTest.test_vm_image_list_by_alias _________
self = <latest.test_vm_commands.VMImageListByAliasesScenarioTest testMethod=test_vm_image_list_by_alias>

    def test_vm_image_list_by_alias(self):
        result = self.cmd('vm image list --offer ubuntu').get_output_in_json()
        self.assertTrue(len(result) >= 1)
        self.assertEqual(result[-1]['publisher'], 'Canonical')
>       self.assertTrue('lts' in result[-1]['sku'])
E       AssertionError: False is not true

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:58: AssertionError
------------------------------ Captured log call -------------------------------
WARNING  cli.azure.cli.command_modules.vm.custom:custom.py:2734 You are viewing an offline list of images, use --all to retrieve an up-to-date list
- generated xml file: /home/runner/work/issue-sentinel/issue-sentinel/test-output/results.xml -
=========================== short test summary info ============================
FAILED azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMImageListByAliasesScenarioTest::test_vm_image_list_by_alias - self = <latest.test_vm_commands.VMImageListByAliasesScenarioTest testMethod=test_vm_image_list_by_alias>

    def test_vm_image_list_by_alias(self):
        result = self.cmd('vm image list --offer ubuntu').get_output_in_json()
        self.assertTrue(len(result) >= 1)
        self.assertEqual(result[-1]['publisher'], 'Canonical')
>       self.assertTrue('lts' in result[-1]['sku'])
E       AssertionError: False is not true

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:58: AssertionError
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
============================== 1 failed in 4.74s ===============================

Posted by agent-assist live-test workflow.

@azure-client-tools-agent azure-client-tools-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The following CI checks are failing:

  • Azure.azure-cli
  • Azure.azure-cli Full Test
  • Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance1)
  • Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance2)
  • Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance2)
  • Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance7)
  • Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance7)
  • Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance8)
  • Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance1)
  • Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance8)
  • Azure.azure-cli (Check the Format of Pull Request Title and Content)
  • Live test run failed (see the dispatched live-test.yml workflow run for details).

@azure-client-tools-agent azure-client-tools-agent Bot added azure-client-tools-agent Pull request reviewed by Azure Client Tools Agent and removed Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review labels Aug 19, 2026
@a0x1ab Aditya Pujara (a0x1ab) added the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026
@azure-client-tools-agent

Copy link
Copy Markdown
Contributor

Live test results — azdev test --live --series (changed test files only)

FAIL (exit 1)

Selectors: test_vm_commands (module)
PR head ref: local-file-rule
PR head sha: 0151a1baa6e087378dbbbc374a9806098d6314c8
PR base ref: dev
New test files in PR: false

Changed test files run
src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py

Workflow run: https://github.com/Azure/issue-sentinel/actions/runs/32648693821

Live-test recordings: 1 regenerated — archived in workflow artifact live-test-pr-33894 (recordings/).

ℹ️ This PR is from a fork, so recordings were not pushed automatically. Download them from the artifact and commit to your branch.

Recording files
src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vm_image_list_by_alias.yaml
Last 80 lines of azdev output

=============
| Run Tests |
=============


=====================
| Discovering Tests |
=====================

/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:13590: SyntaxWarning: invalid escape sequence '\]'
  self.cmd('vmss application set -g {rg} -n {vmss} --app-version-ids {vid1} {vid2} --enable-automatic-upgrade True\]', checks=[
/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/identity/tests/latest/test_identity.py:18: SyntaxWarning: invalid escape sequence '\{'
  'resource_restriction_compute': '\{"providers":\["Microsoft.Compute"\]\}',
/home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli/azure/cli/command_modules/identity/tests/latest/test_identity.py:19: SyntaxWarning: invalid escape sequence '\{'
  'resource_restriction_empty': '\{"providers":\[\]\}'

test index updated: /home/runner/.azdev/env_config/home/runner/work/issue-sentinel/issue-sentinel/.venv/test_index/latest.json

Test on modules: test_vm_commands

WARNING: RUNNING TESTS LIVE
The tests are set to run against current profile "latest"
============================= test session starts ==============================
platform linux -- Python 3.12.14, pytest-9.1.1, pluggy-1.6.0 -- /home/runner/work/issue-sentinel/issue-sentinel/.venv/bin/python
cachedir: .pytest_cache
rootdir: /home/runner/work/issue-sentinel/issue-sentinel/azure-cli/src/azure-cli
plugins: forked-1.7.5, xdist-3.8.0
collecting ... collected 376 items

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMImageListByAliasesScenarioTest::test_vm_image_list_by_alias FAILED [  0%]

=================================== FAILURES ===================================
_________ VMImageListByAliasesScenarioTest.test_vm_image_list_by_alias _________
self = <latest.test_vm_commands.VMImageListByAliasesScenarioTest testMethod=test_vm_image_list_by_alias>

    def test_vm_image_list_by_alias(self):
        result = self.cmd('vm image list --offer ubuntu').get_output_in_json()
        self.assertTrue(len(result) >= 1)
        self.assertEqual(result[-1]['publisher'], 'Canonical')
>       self.assertTrue('lts' in result[-1]['sku'])
E       AssertionError: False is not true

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:58: AssertionError
------------------------------ Captured log call -------------------------------
WARNING  cli.azure.cli.command_modules.vm.custom:custom.py:2734 You are viewing an offline list of images, use --all to retrieve an up-to-date list
- generated xml file: /home/runner/work/issue-sentinel/issue-sentinel/test-output/results.xml -
=========================== short test summary info ============================
FAILED azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMImageListByAliasesScenarioTest::test_vm_image_list_by_alias - self = <latest.test_vm_commands.VMImageListByAliasesScenarioTest testMethod=test_vm_image_list_by_alias>

    def test_vm_image_list_by_alias(self):
        result = self.cmd('vm image list --offer ubuntu').get_output_in_json()
        self.assertTrue(len(result) >= 1)
        self.assertEqual(result[-1]['publisher'], 'Canonical')
>       self.assertTrue('lts' in result[-1]['sku'])
E       AssertionError: False is not true

azure-cli/src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py:58: AssertionError
!!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!
============================== 1 failed in 4.65s ===============================

Posted by agent-assist live-test workflow.

@azure-client-tools-agent azure-client-tools-agent Bot changed the title [Compute] az vm/ vmss create/ update: Support use local file rules parameter [VM] az vm/ vmss create/ update: Support use local file rules parameter Aug 23, 2026

@azure-client-tools-agent azure-client-tools-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

William (@william051200), automated review of the current head commit (0151a1b).

Upstream CI

Azure.azure-cli Full Test

  • Result: failure
  • Included checks: Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance1), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance2), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance2), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance7), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance7), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance8), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance1), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance8)
  • Failure details:
    • Automation Full Test Python312 Profile Latest instance2 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMVMSSAddApplicationTestScenario::test_vmss_add_application_with_order_application
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMResizeScenarioTest::test_vm_resize_changes_size
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMRestorePointInstantAccessScenarioTest::test_vm_restore_point_instant_access
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMSSUpdateZonePlacementPolicyTest::test_vmss_update_zone_placement_policy
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMZoneMovementScenarioTest::test_vm_zone_movement_preserved
        ============ 89 failed, 308 passed, 66 skipped in 805.97s (0:13:25) ============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.12_latest_2.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python312 Profile Latest instance2 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python314 Profile Latest instance1 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_network_commands.py::NetworkWatcherScenarioTest::test_network_watcher_vm
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_output
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_output_type_as_workspace
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_v2_creation
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_v2_endpoint
        ============ 7 failed, 292 passed, 78 skipped in 399.39s (0:06:39) =============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.14_latest_1.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python314 Profile Latest instance1 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python312 Profile Latest instance1 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_network_commands.py::NetworkWatcherScenarioTest::test_network_watcher_vm
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_output
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_output_type_as_workspace
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_v2_creation
        FAILED src/azure-cli/azure/cli/command_modules/network/tests/latest/test_nw_connection_monitor.py::NWConnectionMonitorScenarioTest::test_nw_connection_monitor_v2_endpoint
        ============ 7 failed, 292 passed, 78 skipped in 1827.78s (0:30:27) ============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.12_latest_1.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python312 Profile Latest instance1 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python314 Profile Latest instance2 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMVMSSAddApplicationTestScenario::test_vmss_add_application_with_order_application
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMResizeScenarioTest::test_vm_resize_changes_size
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMRestorePointInstantAccessScenarioTest::test_vm_restore_point_instant_access
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMSSUpdateZonePlacementPolicyTest::test_vmss_update_zone_placement_policy
        FAILED src/azure-cli/azure/cli/command_modules/vm/tests/latest/test_vm_commands.py::VMZoneMovementScenarioTest::test_vm_zone_movement_preserved
        ============ 89 failed, 308 passed, 66 skipped in 758.58s (0:12:38) ============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.14_latest_2.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python314 Profile Latest instance2 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python314 Profile Latest instance7 / azdev test (Uncertain)
      • Evidence: 0.10s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_azureusgovernment
        0.10s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_azurechinacloud
        0.10s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_AzureUSGovernment
        0.10s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_azuregermancloud
        0.10s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_AzureCloud
        ============================== 14 passed in 1.95s ==============================
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.14_latest_7.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python314 Profile Latest instance7 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python312 Profile Latest instance7 / azdev test (Uncertain)
      • Evidence: 0.08s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_AzureGermanCloud
        0.07s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_azurebleucloud
        0.07s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_azurechinacloud
        0.07s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_AzureUSGovernment
        0.07s call azure/cli/command_modules/cloud/tests/latest/test_cloud.py::CloudTests::test_cloud_set_AzureCloud
        ============================== 14 passed in 1.67s ==============================
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.12_latest_7.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python312 Profile Latest instance7 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python314 Profile Latest instance8 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_backup_scenario
        FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_backup_softdelete
        FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_vault_soft_delete_with_items
        FAILED src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/test_sqlvm_commands.py::SqlVmScenarioTest::test_sqlvm_mgmt_assessment
        FAILED src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/test_sqlvm_commands.py::SqlVmAndGroupScenarioTest::test_sqlvm_aad_auth_negative
        ============ 16 failed, 192 passed, 63 skipped in 422.65s (0:07:02) ============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.14_latest_8.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python314 Profile Latest instance8 / azdev test and confirm the quoted diagnostic is gone.
    • Automation Full Test Python312 Profile Latest instance8 / azdev test (Uncertain)
      • Evidence: FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_backup_scenario
        FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_backup_softdelete
        FAILED src/azure-cli/azure/cli/command_modules/backup/tests/latest/test_backup_commands.py::BackupTests::test_vault_soft_delete_with_items
        FAILED src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/test_sqlvm_commands.py::SqlVmScenarioTest::test_sqlvm_mgmt_assessment
        FAILED src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/test_sqlvm_commands.py::SqlVmAndGroupScenarioTest::test_sqlvm_aad_auth_negative
        ============ 16 failed, 192 passed, 63 skipped in 332.03s (0:05:32) ============
        save pipeline result to file: /home/cloudtest/.azdev/env_config/mnt/vss/_work/1/s/env/pipeline_result_3.12_latest_8.json
        Bash exited with code '1'.
        ##[section]Finishing: azdev test
      • Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
      • Verify: Re-run Automation Full Test Python312 Profile Latest instance8 / azdev test and confirm the quoted diagnostic is gone.

Test validation

  • Live test: Failed with conclusion failure. Workflow run
  • Regression coverage: Present for vm: 1 focused test file(s) and 202 recording file(s) changed.

Repository policy findings

Assessment

  • The vm test failures (test_vm_resize_changes_size, test_vm_restore_point_instant_access, test_vmss_update_zone_placement_policy, test_vm_zone_movement_preserved, test_vmss_add_application_with_order_application, and others in test_vm_commands.py) are PR-related — this PR directly changes vm/_params.py, vm/_template_builder.py, vm/custom.py, vm/operations/vm.py, vm/operations/vmss.py, and the generated aaz create/show/update/wait modules for vm and vmss, which are exactly the code paths these tests exercise. Please investigate why these VM/VMSS scenarios now fail against the recorded/live behavior.
  • The failures in network (test_network_watcher_vm, test_nw_connection_monitor_*), backup (test_backup_softdelete, test_vault_soft_delete_with_items, test_backup_scenario), and sqlvm (test_sqlvm_mgmt_assessment, test_sqlvm_aad_auth_negative) are uncertain — none of the changed production files touch those modules, but the PR does modify their test recordings. If those recordings were regenerated unintentionally (e.g. by a broad local azdev test --live run), please revert the unrelated recording changes so the diff matches the stated [VM] scope; if they were intentionally updated, explain why in the PR description.
  • The generated-ownership finding above is blocking: the aaz generated files were hand-edited without a corresponding spec/generation-source change committed in this PR. Please regenerate them from the durable source instead of editing the generated output directly.
  • The live test run also failed; re-run it once the above are addressed.

No source change is requested for the network/backup/sqlvm test failures unless they are confirmed related — please clarify or revert the unrelated recording churn either way. The vm failures and the generated-file finding do need action before merge.

@azure-client-tools-agent azure-client-tools-agent Bot removed the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026
@a0x1ab Aditya Pujara (a0x1ab) added the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026

@azure-client-tools-agent azure-client-tools-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

William (@william051200), here is the review for this PR.

Upstream CI

Azure.azure-cli

  • Result: failure
  • Included checks: Azure.azure-cli (Check the Format of Pull Request Title and Content)
  • Failure details:

This checklist is used to make sure that common guidelines for a pull request are followed.

  • The PR title and description has followed the guideline in Submitting Pull Requests.
  • I adhere to the Command Guidelines.
  • I adhere to the Error Handling Guidelines.
    /mnt/vss/_work/_temp/cfb1170e-a443-46e6-999b-452af53aed9d.sh: line 14: /usr/bin/python: Argument list too long
    Bash exited with code '126'.
    ##[section]Finishing: Bash
    • Next action: Apply the exact title or history-note correction shown in the task log, then re-request the format check.
    • Verify: Re-run Check the Format of Pull Request Title and Content / Bash and confirm the metadata gate passes.

Azure.azure-cli Full Test

  • Result: failure
  • Included checks: Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance1), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance2), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance2), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance7), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance7), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance8), Azure.azure-cli Full Test (Automation Full Test Python314 Profile Latest instance1), Azure.azure-cli Full Test (Automation Full Test Python312 Profile Latest instance8)
  • Failure details:
      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vm_zone_movement_preserved.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus2/operations/23357f74-00ce-4476-8143-b738774ce11c?p=e43cabd7-1a57-490a-9e72-10c3e33d00aa&api-version=2025-11-01&t=639173438497202905&c=MIIHxDCCBqygAwIBAgIRAJbrgketDbWHLEx1EpPCeH4wDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDQwODAwMDQ1MloXDTI2MTAwMzA2MDQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDT3FOWry_6qK0dbuwtMK4T4HuDo_lxyL6jb91_Fr1VWY_VRVB7zp7HCgghkwofjjGAbbdIqDseNKJdMcooubZaRzrViDXEgbnaN8vC-4cZ4fjDUhtZh80l4sEyp_iBCPcY7I-xDOLiz7i1vlpvCL7tA0iKHuk6AAPDQk4fPmFWUwUWR3SajkDmuQjTPVWhQyEOJVGJNf6hvyBKFjGuXqSOk8prQb8yn6q8TftPg2b9zjlfxfHQEZqdePVaY7VeW2ljF2sUmWsNvQikg3g_Zh9I6j0tT0DW51c8CoF8PrVglMgLQVrYCdAeE30Fi0vIiXCT0XOP-0RYInckGEJqDB8JAgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAY
... [truncated, original was 1641 chars]
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python312 Profile Latest instance2 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_nw_connection_monitor_v2_endpoint.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/connection_monitor_v2_test_000001/providers/Microsoft.Compute/virtualMachines/vm1?$expand=instanceView&api-version=2026-04-01>) was found.
E Found 1 recorded request(s) matching (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/connection_monitor_v2_test_000001/providers/Microsoft.Compute/virtualMachines/vm1?$expand=instanceView&api-version=2026-04-01>) but they have already been consumed.
src/azure-cli-testsdk/azure/cli/testsdk/base.py:308: AssertionError
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python314 Profile Latest instance1 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/network/tests/latest/recordings/test_nw_connection_monitor_v2_endpoint.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/connection_monitor_v2_test_000001/providers/Microsoft.Compute/virtualMachines/vm1?$expand=instanceView&api-version=2026-04-01>) was found.
E Found 1 recorded request(s) matching (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/connection_monitor_v2_test_000001/providers/Microsoft.Compute/virtualMachines/vm1?$expand=instanceView&api-version=2026-04-01>) but they have already been consumed.
src/azure-cli-testsdk/azure/cli/testsdk/base.py:308: AssertionError
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python312 Profile Latest instance1 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/vm/tests/latest/recordings/test_vm_zone_movement_preserved.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Compute/locations/eastus2/operations/23357f74-00ce-4476-8143-b738774ce11c?p=e43cabd7-1a57-490a-9e72-10c3e33d00aa&api-version=2025-11-01&t=639173438497202905&c=MIIHxDCCBqygAwIBAgIRAJbrgketDbWHLEx1EpPCeH4wDQYJKoZIhvcNAQELBQAwNTEzMDEGA1UEAxMqQ0NNRSBHMSBUTFMgUlNBIDIwNDggU0hBMjU2IDIwNDkgQ1VTIENBIDAxMB4XDTI2MDQwODAwMDQ1MloXDTI2MTAwMzA2MDQ1MlowQDE-MDwGA1UEAxM1YXN5bmNvcGVyYXRpb25zaWduaW5nY2VydGlmaWNhdGUubWFuYWdlbWVudC5henVyZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDT3FOWry_6qK0dbuwtMK4T4HuDo_lxyL6jb91_Fr1VWY_VRVB7zp7HCgghkwofjjGAbbdIqDseNKJdMcooubZaRzrViDXEgbnaN8vC-4cZ4fjDUhtZh80l4sEyp_iBCPcY7I-xDOLiz7i1vlpvCL7tA0iKHuk6AAPDQk4fPmFWUwUWR3SajkDmuQjTPVWhQyEOJVGJNf6hvyBKFjGuXqSOk8prQb8yn6q8TftPg2b9zjlfxfHQEZqdePVaY7VeW2ljF2sUmWsNvQikg3g_Zh9I6j0tT0DW51c8CoF8PrVglMgLQVrYCdAeE30Fi0vIiXCT0XOP-0RYInckGEJqDB8JAgMBAAGjggTCMIIEvjCBnQYDVR0gBIGVMIGSMAwGCisGAQQBgjd7AQEwZgYKKwYBBAGCN3sCAjBYMFYGCCsGAQUFBwICMEoeSAAzADMAZQAwADEAOQAyADEALQA0AGQANgA0AC0ANABmADgAY
... [truncated, original was 1641 chars]
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python314 Profile Latest instance2 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/resource/tests/latest/recordings/test_invoke_action.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_invoke_action000001/providers/Microsoft.Compute/virtualMachines/cli-test-vm000002?$expand=instanceView&api-version=2026-04-01>) was found.
E Found 1 recorded request(s) matching (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_invoke_action000001/providers/Microsoft.Compute/virtualMachines/cli-test-vm000002?$expand=instanceView&api-version=2026-04-01>) but they have already been consumed.
src/azure-cli-testsdk/azure/cli/testsdk/base.py:308: AssertionError
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python314 Profile Latest instance7 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/resource/tests/latest/recordings/test_invoke_action.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_invoke_action000001/providers/Microsoft.Compute/virtualMachines/cli-test-vm000002?$expand=instanceView&api-version=2026-04-01>) was found.
E Found 1 recorded request(s) matching (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_test_invoke_action000001/providers/Microsoft.Compute/virtualMachines/cli-test-vm000002?$expand=instanceView&api-version=2026-04-01>) but they have already been consumed.
src/azure-cli-testsdk/azure/cli/testsdk/base.py:308: AssertionError
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python312 Profile Latest instance7 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/recordings/test_sqlvm_aad_auth_negative.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sqlvm_cli_test_aad000001/providers/Microsoft.Compute/virtualMachines/clisqlvm000003?api-version=2026-04-01>) was found.
E Found 22 similar requests with 1 different matcher(s) :
E
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python314 Profile Latest instance8 / azdev test and confirm the quoted diagnostic is gone.

      raise AssertionError(ex)

E AssertionError: Can't overwrite existing cassette ('/mnt/vss/_work/1/s/src/azure-cli/azure/cli/command_modules/sqlvm/tests/latest/recordings/test_sqlvm_aad_auth_negative.yaml') in your current record mode (<RecordMode.ONCE: 'once'>).
E No match for the request (<Request (GET) https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sqlvm_cli_test_aad000001/providers/Microsoft.Compute/virtualMachines/clisqlvm000003?api-version=2026-04-01>) was found.
E Found 22 similar requests with 1 different matcher(s) :
E
- Next action: Address the first actionable diagnostic quoted from the task log; do not infer a source-code cause from the aggregate build status.
- Verify: Re-run Automation Full Test Python312 Profile Latest instance8 / azdev test and confirm the quoted diagnostic is gone.

Test validation

Test validation

  • Live test: Failed with conclusion failure. Workflow run
  • Regression coverage: Present for vm: 1 focused test file(s) and 202 recording file(s) changed.

Repository policy findings

Classification and next steps:

  • Check the Format of Pull Request Title and Content — PR-related. The title format check failed against the PR title [VM] \az vm/ vmss create/ update`: Support use local file rules parameter. A title repair was applied this round (corrected title and History Notes, re-triggered the check). Verify the re-triggered format check passes; if it still fails, update the PR title to match the gate-compliant pattern [Component] Fix #N: `az `:

    `.

  • Azure.azure-cli Full Test (all instances) — PR-related. All failing test instances hit CannotOverwriteExistingCassetteException for recordings (e.g. test_vm_zone_movement_preserved.yaml) because the PR introduces an updated compute API version (2025-11-01) but the existing cassettes were recorded against an older version. The new request URL does not match the stored recording. Next action: Re-record the affected test cassettes against the updated API (run azdev test <test_name> --live for each failing test and commit the regenerated .yaml files). Then re-run the full automation test suite.

  • Live test (workflow run) — Uncertain (same cassette mismatch is likely the root cause). Re-run after updating recordings.

  • Generated code ownership (blocking) — PR-related. Files under vm/aaz/latest/ (_create.py, _show.py, _update.py, _wait.py for both vm and vmss) were edited directly. These are auto-generated from Swagger/AutoRest; hand-editing them is not permitted. Next action: Make the change in the Swagger specification or AutoRest configuration and regenerate these files from a clean checkout.

@azure-client-tools-agent azure-client-tools-agent Bot removed the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026
@a0x1ab Aditya Pujara (a0x1ab) added the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026

@azure-client-tools-agent azure-client-tools-agent Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI / live-test / review-skill failures

Upstream CI

Azure.azure-cli

  • Result: failure
  • Included checks: Azure.azure-cli (Check the Format of Pull Request Title and Content)
  • Failure details:
    • Check the Format of Pull Request Title and Content / Bash (PR-related)
      • Evidence: /usr/bin/python: Argument list too long — the title-check script failed because the AZURE_CLI_HISTORY_NOTES environment variable is too large (the PR changes 261 files, exceeding the OS argument-length limit). The History Notes entry in the PR description must be trimmed to a single concise bullet summarising only the user-visible change.
      • Next action: Shorten the Azure CLI History Notes section in the PR description to a single brief bullet, e.g.:
        [VM] `az vm create`/`az vmss create`: add `--wire-server-use-local-file-rules` parameter
        
        Then re-request the format check.
      • Verify: Re-run Check the Format of Pull Request Title and Content / Bash and confirm the gate passes.

Azure.azure-cli Full Test

  • Result: failure

  • Included checks: Automation Full Test Python312 Profile Latest instance1, instance2, instance7, instance8; Python314 Profile Latest instance1, instance2, instance7, instance8

  • Failure details:

    • Automation Full Test Python312 Profile Latest instance2 / azdev test (PR-related — stale recording)
      • Evidence: AssertionError: Can't overwrite existing cassette ('…/vm/tests/latest/recordings/test_vm_zone_movement_preserved.yaml') … No match for the request (GET …/providers/Microsoft.Compute/locations/eastus2/operations/…?api-version=2025-11-01…). The PR updated the Compute API version but the cassette was recorded with the previous API version and cannot match the new requests.
      • Next action: Re-record test_vm_zone_movement_preserved with azdev test test_vm_zone_movement_preserved --live (or update its cassette to match api-version=2025-11-01). Apply the same fix to every cassette listed below.
    • Automation Full Test Python314 Profile Latest instance1 / azdev test (PR-related — stale recording)
      • Evidence: AssertionError: Can't overwrite existing cassette ('…/network/tests/latest/recordings/test_nw_connection_monitor_v2_endpoint.yaml') … No match for the request (GET …/providers/Microsoft.Compute/virtualMachines/vm1?$expand=instanceView&api-version=2026-04-01). The network connection-monitor test uses a Compute VM resource; the PR's API version bump caused a cassette mismatch.
      • Next action: Re-record test_nw_connection_monitor_v2_endpoint.
    • Automation Full Test Python314 Profile Latest instance7 / azdev test (PR-related — stale recording)
      • Evidence: AssertionError: Can't overwrite existing cassette ('…/resource/tests/latest/recordings/test_invoke_action.yaml') … No match for the request (GET …/providers/Microsoft.Compute/virtualMachines/cli-test-vm000002?$expand=instanceView&api-version=2026-04-01).
      • Next action: Re-record test_invoke_action.
    • Automation Full Test Python314 Profile Latest instance8 / azdev test (PR-related — stale recording)
      • Evidence: AssertionError: Can't overwrite existing cassette ('…/sqlvm/tests/latest/recordings/test_sqlvm_aad_auth_negative.yaml') … No match for the request (GET …/providers/Microsoft.Compute/virtualMachines/clisqlvm000003?api-version=2026-04-01).
      • Next action: Re-record test_sqlvm_aad_auth_negative.

    All stale cassettes should be updated to match the new Compute API version (2026-04-01) introduced by this PR.

Test validation

  • Live test: Failed with conclusion failure. Workflow run
  • Regression coverage: Present for vm: 1 focused test file(s) and 202 recording file(s) changed.

Repository policy findings

@azure-client-tools-agent azure-client-tools-agent Bot removed the Azure Client Tools Agent Requested Request Azure Client Tools Agent testing and review label Aug 23, 2026
@azure-client-tools-agent

Copy link
Copy Markdown
Contributor

Started a Copilot task using claude-sonnet-4.6 for the automated review at #33894 (review): https://github.com/Azure/azure-cli/tasks/ab257e76-ab0a-4ae4-945b-53c3315d2214

@william051200 William (william051200) changed the title [VM] az vm/ vmss create/ update: Support use local file rules parameter [Compute] az vm/ vmss create/ update: Support use local file rules parameter Aug 24, 2026
@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines will not run the associated pipelines, because the pull request was updated after the run command was issued. Review the pull request again and issue a new run command.

@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@william051200

Copy link
Copy Markdown
Member Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@william051200 William (william051200) changed the title [Compute] az vm/ vmss create/ update: Support use local file rules parameter [Compute] az vm/vmss create/update: Support use local file rules parameter Aug 25, 2026
@william051200 William (william051200) changed the title [Compute] az vm/vmss create/update: Support use local file rules parameter {Compute} az vm/vmss create/update: Support use local file rules parameter Aug 25, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

azure-client-tools-agent Pull request reviewed by Azure Client Tools Agent

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Vm/VMSS Support UseLocalFileRules Parameter

4 participants