Skip to content

Commit 301a6ee

Browse files
authored
{Compute} az vm encryption: Migrate to AAZ (#31383)
1 parent d7f35bc commit 301a6ee

13 files changed

Lines changed: 3781 additions & 212 deletions

src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from ._list_sizes import *
1717
from ._list_skus import *
1818
from ._list_vm_resize_options import *
19+
from ._patch import *
1920
from ._perform_maintenance import *
2021
from ._reapply import *
2122
from ._redeploy import *

src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_patch.py

Lines changed: 3358 additions & 0 deletions
Large diffs are not rendered by default.

src/azure-cli/azure/cli/command_modules/vm/aaz/latest/vm/_update.py

Lines changed: 159 additions & 5 deletions
Large diffs are not rendered by default.

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,16 @@ def _is_linux_os(vm):
256256
return False
257257

258258

259+
# separated for aaz implementation
260+
def _is_linux_os_aaz(vm):
261+
if os_type := vm.get('storageProfile', {}).get('osDisk', {}).get('osType', None):
262+
return os_type.lower() == 'linux'
263+
# the os_type could be None for VM scaleset, let us check out os configurations
264+
if linux_config := vm.get('osProfile', {}).get('linuxConfiguration', ''):
265+
return bool(linux_config)
266+
return False
267+
268+
259269
def _merge_secrets(secrets):
260270
"""
261271
Merge a list of secrets. Each secret should be a dict fitting the following JSON structure:

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

Lines changed: 198 additions & 124 deletions
Large diffs are not rendered by default.

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

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,38 @@
66
from knack.log import get_logger
77

88
from azure.cli.core.aaz import AAZStrType
9-
from ..aaz.latest.vm import Show as _VMShow, ListSizes as _VMListSizes
9+
from ..aaz.latest.vm import Show as _VMShow, ListSizes as _VMListSizes, Update as _VMUpdate
1010

1111
logger = get_logger(__name__)
1212

1313

14+
class VMUpdate(_VMUpdate):
15+
class VirtualMachinesGet(_VMUpdate.VirtualMachinesGet):
16+
# Override to solve key conflict of _schema_on_200.resources.Element.properties.type when deserializing
17+
@classmethod
18+
def _build_schema_on_200(cls):
19+
schema = super()._build_schema_on_200()
20+
21+
del schema.resources.Element.properties._fields['type']
22+
schema.resources.Element.properties.type = AAZStrType(
23+
serialized_name="typePropertiesType",
24+
)
25+
return schema
26+
27+
def _output(self, *args, **kwargs):
28+
from azure.cli.core.aaz import AAZUndefined, has_value
29+
30+
# Resolve flatten conflict
31+
# When the type field conflicts, the type in inner layer is ignored and the outer layer is applied
32+
if has_value(self.ctx.vars.instance.resources):
33+
for resource in self.ctx.vars.instance.resources:
34+
if has_value(resource.type):
35+
resource.type = AAZUndefined
36+
37+
result = self.deserialize_output(self.ctx.vars.instance, client_flatten=True)
38+
return result
39+
40+
1441
class VMShow(_VMShow):
1542
class VirtualMachinesGet(_VMShow.VirtualMachinesGet):
1643
# Override to solve key conflict of _schema_on_200.resources.Element.properties.type when deserializing

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4531,7 +4531,7 @@ interactions:
45314531
User-Agent:
45324532
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
45334533
method: GET
4534-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4534+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
45354535
response:
45364536
body:
45374537
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -4629,7 +4629,7 @@ interactions:
46294629
User-Agent:
46304630
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
46314631
method: PUT
4632-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4632+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
46334633
response:
46344634
body:
46354635
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -4995,7 +4995,7 @@ interactions:
49954995
User-Agent:
49964996
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
49974997
method: GET
4998-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4998+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
49994999
response:
50005000
body:
50015001
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4531,7 +4531,7 @@ interactions:
45314531
User-Agent:
45324532
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
45334533
method: GET
4534-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4534+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
45354535
response:
45364536
body:
45374537
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -4627,7 +4627,7 @@ interactions:
46274627
User-Agent:
46284628
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
46294629
method: PUT
4630-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4630+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
46314631
response:
46324632
body:
46334633
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -4709,7 +4709,7 @@ interactions:
47094709
User-Agent:
47104710
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
47114711
method: GET
4712-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4712+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
47134713
response:
47144714
body:
47154715
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4531,7 +4531,7 @@ interactions:
45314531
User-Agent:
45324532
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
45334533
method: GET
4534-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4534+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
45354535
response:
45364536
body:
45374537
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -4630,7 +4630,7 @@ interactions:
46304630
User-Agent:
46314631
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
46324632
method: PUT
4633-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
4633+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
46344634
response:
46354635
body:
46364636
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -5634,7 +5634,7 @@ interactions:
56345634
User-Agent:
56355635
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
56365636
method: GET
5637-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
5637+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
56385638
response:
56395639
body:
56405640
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -5774,7 +5774,7 @@ interactions:
57745774
User-Agent:
57755775
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
57765776
method: GET
5777-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
5777+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
57785778
response:
57795779
body:
57805780
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -5889,7 +5889,7 @@ interactions:
58895889
User-Agent:
58905890
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
58915891
method: PUT
5892-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
5892+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
58935893
response:
58945894
body:
58955895
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n
@@ -6151,7 +6151,7 @@ interactions:
61516151
User-Agent:
61526152
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
61536153
method: GET
6154-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-07-01
6154+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1?api-version=2024-11-01
61556155
response:
61566156
body:
61576157
string: "{\r\n \"name\": \"vm1\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm1\",\r\n

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4531,7 +4531,7 @@ interactions:
45314531
User-Agent:
45324532
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
45334533
method: GET
4534-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-07-01
4534+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-11-01
45354535
response:
45364536
body:
45374537
string: "{\r\n \"name\": \"vm000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002\",\r\n
@@ -4629,7 +4629,7 @@ interactions:
46294629
User-Agent:
46304630
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
46314631
method: PUT
4632-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-07-01
4632+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-11-01
46334633
response:
46344634
body:
46354635
string: "{\r\n \"name\": \"vm000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002\",\r\n
@@ -4943,7 +4943,7 @@ interactions:
49434943
User-Agent:
49444944
- AZURECLI/2.71.0 azsdk-python-core/1.31.0 Python/3.10.11 (Windows-10-10.0.26100-SP0)
49454945
method: GET
4946-
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-07-01
4946+
uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002?api-version=2024-11-01
49474947
response:
49484948
body:
49494949
string: "{\r\n \"name\": \"vm000002\",\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/clitest.rg000001/providers/Microsoft.Compute/virtualMachines/vm000002\",\r\n

0 commit comments

Comments
 (0)