Skip to content

Commit

Permalink
create and update skuprofile
Browse files Browse the repository at this point in the history
  • Loading branch information
msdorahu committed Sep 25, 2024
1 parent 550d433 commit 1ad6fa8
Show file tree
Hide file tree
Showing 6 changed files with 1,665 additions and 11 deletions.
2 changes: 2 additions & 0 deletions src/azure-cli/azure/cli/command_modules/vm/_params.py
Original file line number Diff line number Diff line change
Expand Up @@ -840,6 +840,8 @@ def load_arguments(self, _):
c.argument('ephemeral_os_disk', arg_type=get_three_state_flag(), min_api='2024-03-01', help='Allow you to specify the ephemeral disk settings for the operating system disk. Specify it to false to set ephemeral disk setting as empty and migrate it to non ephemeral')
c.argument('ephemeral_os_disk_option', options_list=['--ephemeral-os-disk-option', '--ephemeral-option'], arg_type=get_enum_type(self.get_models('DiffDiskOptions')), min_api='2024-03-01', help='Specify the ephemeral disk settings for operating system disk.')
c.argument('zones', zones_type, min_api='2023-03-01')
c.argument('sku_profile_vmsizes', nargs='+', options_list=['--sku-profile-vmsizes'], min_api='2024-07-01', help='A list of VM sizes in the scale set. Only works with Flexible orchestration_mode. See https://azure.microsoft.com/pricing/details/virtual-machines/ for size info.')
c.argument('sku_profile_allocation_strategy', options_list=['--sku-profile-allocation-strategy'], arg_type=get_enum_type(['LowestPrice', 'CapacityOptimized']), min_api='2024-07-01', help='Allocation strategy for sku_profile_vmsizes: LowestPrice or CapacityOptimized.')

with self.argument_context('vmss update', min_api='2018-10-01', arg_group='Automatic Repairs') as c:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1541,7 +1541,7 @@ def build_vmss_resource(cmd, name, computer_name_prefix, location, tags, overpro
sku_profile = {
'vmSizes': sku_profile_vmsizes_list,
'allocationStrategy': sku_profile_allocation_strategy
}
}
vmss_properties['skuProfile'] = sku_profile

vmss = {
Expand Down
17 changes: 16 additions & 1 deletion src/azure-cli/azure/cli/command_modules/vm/custom.py
Original file line number Diff line number Diff line change
Expand Up @@ -3937,7 +3937,8 @@ def update_vmss(cmd, resource_group_name, name, license_type=None, no_wait=False
max_surge=None, enable_resilient_creation=None, enable_resilient_deletion=None,
ephemeral_os_disk=None, ephemeral_os_disk_option=None, zones=None, additional_scheduled_events=None,
enable_user_reboot_scheduled_events=None, enable_user_redeploy_scheduled_events=None,
upgrade_policy_mode=None, enable_auto_os_upgrade=None, **kwargs):
upgrade_policy_mode=None, enable_auto_os_upgrade=None,
sku_profile_vmsizes=None, sku_profile_allocation_strategy=None, **kwargs):
vmss = kwargs['parameters']
aux_subscriptions = None
# pylint: disable=too-many-boolean-expressions
Expand Down Expand Up @@ -4173,6 +4174,20 @@ def update_vmss(cmd, resource_group_name, name, license_type=None, no_wait=False
else:
vmss.sku.name = vm_sku

sku_profile = dict()
if sku_profile_vmsizes is not None or sku_profile_allocation_strategy is not None:
if sku_profile_vmsizes is not None:
sku_profile_vmsizes_list = []
for vm_size in sku_profile_vmsizes:
vmsize_obj = {
'name': vm_size
}
sku_profile_vmsizes_list.append(vmsize_obj)
sku_profile['vmSizes'] = sku_profile_vmsizes_list
if sku_profile_allocation_strategy is not None:
sku_profile['allocationStrategy'] = sku_profile_allocation_strategy
vmss.skuProfile = sku_profile

if ephemeral_os_disk_placement is not None or ephemeral_os_disk_option is not None:
if vmss.virtual_machine_profile.storage_profile.os_disk.diff_disk_settings is not None:
vmss.virtual_machine_profile.storage_profile.os_disk.diff_disk_settings.placement = \
Expand Down
Loading

0 comments on commit 1ad6fa8

Please sign in to comment.