Skip to content

Commit 1dcddb3

Browse files
committed
Migrated create_managed_disk
1 parent 2a6319e commit 1dcddb3

File tree

2 files changed

+63
-14
lines changed

2 files changed

+63
-14
lines changed

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

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1981,11 +1981,38 @@ def _validate_gallery_image_reference(cmd, namespace):
19811981
'format, please refer to the help sample'.format(gallery_image_reference))
19821982

19831983

1984+
def _validate_gallery_image_reference_by_aaz(namespace):
1985+
is_validate = 'gallery_image_reference' in namespace and namespace.gallery_image_reference is not None
1986+
1987+
if not is_validate:
1988+
return
1989+
1990+
from azure.cli.command_modules.vm._image_builder import GalleryImageReferenceType
1991+
from ._vm_utils import is_compute_gallery_image_id, is_community_gallery_image_id, \
1992+
is_shared_gallery_image_id
1993+
1994+
gallery_image_reference = namespace.gallery_image_reference
1995+
if is_compute_gallery_image_id(gallery_image_reference):
1996+
namespace.gallery_image_reference_type = GalleryImageReferenceType.COMPUTE.backend_key
1997+
return
1998+
if is_community_gallery_image_id(gallery_image_reference):
1999+
namespace.gallery_image_reference_type = GalleryImageReferenceType.COMMUNITY.backend_key
2000+
return
2001+
if is_shared_gallery_image_id(gallery_image_reference):
2002+
namespace.gallery_image_reference_type = GalleryImageReferenceType.SHARED.backend_key
2003+
return
2004+
2005+
from azure.cli.core.parser import InvalidArgumentValueError
2006+
raise InvalidArgumentValueError('usage error: {} is an invalid gallery image reference, please provide valid '
2007+
'compute, shared or community gallery image version. For details about valid '
2008+
'format, please refer to the help sample'.format(gallery_image_reference))
2009+
2010+
19842011
def process_disk_create_namespace(cmd, namespace):
19852012
from azure.core.exceptions import HttpResponseError
19862013
validate_tags(namespace)
19872014
validate_edge_zone(cmd, namespace)
1988-
_validate_gallery_image_reference(cmd, namespace)
2015+
_validate_gallery_image_reference_by_aaz(namespace)
19892016
_validate_security_data_uri(namespace)
19902017
_validate_upload_type(cmd, namespace)
19912018
_validate_secure_vm_disk_encryption_set(namespace)
@@ -2029,10 +2056,10 @@ def _validate_upload_type(cmd, namespace):
20292056

20302057
if namespace.upload_type == 'UploadWithSecurityData':
20312058

2032-
if not cmd.supported_api_version(min_api='2021-08-01', operation_group='disks'):
2033-
raise ArgumentUsageError(
2034-
"'UploadWithSecurityData' is not supported in the current profile. "
2035-
"Please upgrade your profile with 'az cloud set --profile newerProfile' and try again")
2059+
# if not cmd.supported_api_version(min_api='2021-08-01', operation_group='disks'):
2060+
# raise ArgumentUsageError(
2061+
# "'UploadWithSecurityData' is not supported in the current profile. "
2062+
# "Please upgrade your profile with 'az cloud set --profile newerProfile' and try again")
20362063

20372064
if not namespace.security_type:
20382065
raise RequiredArgumentMissingError(

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

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -550,19 +550,41 @@ def create_managed_disk(cmd, resource_group_name, disk_name, location=None, # p
550550
'usage error: --upload-size-bytes is required to create a disk for upload')
551551

552552
if disk_encryption_set is not None and not is_valid_resource_id(disk_encryption_set):
553-
disk_encryption_set = resource_id(
554-
subscription=get_subscription_id(cmd.cli_ctx), resource_group=resource_group_name,
555-
namespace='Microsoft.Compute', type='diskEncryptionSets', name=disk_encryption_set)
553+
from .aaz.latest.disk_encryption_set import Show as DiskEncryptionSetShow
554+
disk_encryption_set = DiskEncryptionSetShow(cli_ctx=cmd.cli_ctx)(command_args={
555+
'resource_group': resource_group_name,
556+
'disk_encryption_set_name': disk_encryption_set
557+
})
558+
559+
if disk_encryption_set:
560+
disk_encryption_set = disk_encryption_set['id']
561+
else:
562+
disk_encryption_set = None
556563

557564
if disk_access is not None and not is_valid_resource_id(disk_access):
558-
disk_access = resource_id(
559-
subscription=get_subscription_id(cmd.cli_ctx), resource_group=resource_group_name,
560-
namespace='Microsoft.Compute', type='diskAccesses', name=disk_access)
565+
from .aaz.latest.disk_access import Show as DiskAccessShow
566+
disk_access = DiskAccessShow(cli_ctx=cmd.cli_ctx)(command_args={
567+
'resource_group': resource_group_name,
568+
'disk_access_name': disk_access
569+
})
570+
571+
if disk_access:
572+
disk_access = disk_access['id']
573+
else:
574+
disk_access = None
561575

562576
if secure_vm_disk_encryption_set is not None and not is_valid_resource_id(secure_vm_disk_encryption_set):
563-
secure_vm_disk_encryption_set = resource_id(
564-
subscription=get_subscription_id(cmd.cli_ctx), resource_group=resource_group_name,
565-
namespace='Microsoft.Compute', type='diskEncryptionSets', name=secure_vm_disk_encryption_set)
577+
from .aaz.latest.disk_encryption_set import Show as DiskEncryptionSetShow
578+
secure_vm_disk_encryption_set = DiskEncryptionSetShow(cli_ctx=cmd.cli_ctx)(command_args={
579+
'resource_group': resource_group_name,
580+
'disk_encryption_set_name': secure_vm_disk_encryption_set
581+
})
582+
583+
584+
if secure_vm_disk_encryption_set:
585+
secure_vm_disk_encryption_set = secure_vm_disk_encryption_set['id']
586+
else:
587+
secure_vm_disk_encryption_set = None
566588

567589
encryption = None
568590
if disk_encryption_set or encryption_type:

0 commit comments

Comments
 (0)