diff --git a/azure-mgmt-compute/MANIFEST.in b/azure-mgmt-compute/MANIFEST.in index bb37a2723dae..6ceb27f7a96e 100644 --- a/azure-mgmt-compute/MANIFEST.in +++ b/azure-mgmt-compute/MANIFEST.in @@ -1 +1,4 @@ include *.rst +include azure/__init__.py +include azure/mgmt/__init__.py + diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/__init__.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/__init__.py index 18c28168320c..86670b0bd5ee 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/__init__.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/__init__.py @@ -29,6 +29,7 @@ from .virtual_machine_image_py3 import VirtualMachineImage from .usage_name_py3 import UsageName from .usage_py3 import Usage + from .virtual_machine_reimage_parameters_py3 import VirtualMachineReimageParameters from .virtual_machine_capture_parameters_py3 import VirtualMachineCaptureParameters from .virtual_machine_capture_result_py3 import VirtualMachineCaptureResult from .plan_py3 import Plan @@ -103,6 +104,8 @@ from .virtual_machine_scale_set_vm_profile_py3 import VirtualMachineScaleSetVMProfile from .virtual_machine_scale_set_update_vm_profile_py3 import VirtualMachineScaleSetUpdateVMProfile from .virtual_machine_scale_set_py3 import VirtualMachineScaleSet + from .virtual_machine_scale_set_vm_reimage_parameters_py3 import VirtualMachineScaleSetVMReimageParameters + from .virtual_machine_scale_set_reimage_parameters_py3 import VirtualMachineScaleSetReimageParameters from .virtual_machine_scale_set_update_py3 import VirtualMachineScaleSetUpdate from .virtual_machine_scale_set_vm_instance_ids_py3 import VirtualMachineScaleSetVMInstanceIDs from .virtual_machine_scale_set_vm_instance_required_ids_py3 import VirtualMachineScaleSetVMInstanceRequiredIDs @@ -194,6 +197,7 @@ from .virtual_machine_image import VirtualMachineImage from .usage_name import UsageName from .usage import Usage + from .virtual_machine_reimage_parameters import VirtualMachineReimageParameters from .virtual_machine_capture_parameters import VirtualMachineCaptureParameters from .virtual_machine_capture_result import VirtualMachineCaptureResult from .plan import Plan @@ -268,6 +272,8 @@ from .virtual_machine_scale_set_vm_profile import VirtualMachineScaleSetVMProfile from .virtual_machine_scale_set_update_vm_profile import VirtualMachineScaleSetUpdateVMProfile from .virtual_machine_scale_set import VirtualMachineScaleSet + from .virtual_machine_scale_set_vm_reimage_parameters import VirtualMachineScaleSetVMReimageParameters + from .virtual_machine_scale_set_reimage_parameters import VirtualMachineScaleSetReimageParameters from .virtual_machine_scale_set_update import VirtualMachineScaleSetUpdate from .virtual_machine_scale_set_vm_instance_ids import VirtualMachineScaleSetVMInstanceIDs from .virtual_machine_scale_set_vm_instance_required_ids import VirtualMachineScaleSetVMInstanceRequiredIDs @@ -413,6 +419,7 @@ 'VirtualMachineImage', 'UsageName', 'Usage', + 'VirtualMachineReimageParameters', 'VirtualMachineCaptureParameters', 'VirtualMachineCaptureResult', 'Plan', @@ -487,6 +494,8 @@ 'VirtualMachineScaleSetVMProfile', 'VirtualMachineScaleSetUpdateVMProfile', 'VirtualMachineScaleSet', + 'VirtualMachineScaleSetVMReimageParameters', + 'VirtualMachineScaleSetReimageParameters', 'VirtualMachineScaleSetUpdate', 'VirtualMachineScaleSetVMInstanceIDs', 'VirtualMachineScaleSetVMInstanceRequiredIDs', diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters.py new file mode 100644 index 000000000000..25f718579448 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineReimageParameters(Model): + """Paramaters for Reimaging Virtual Machine. Default value for OSDisk : true. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineReimageParameters, self).__init__(**kwargs) + self.temp_disk = kwargs.get('temp_disk', None) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters_py3.py new file mode 100644 index 000000000000..10d6f284d9be --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_reimage_parameters_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineReimageParameters(Model): + """Paramaters for Reimaging Virtual Machine. Default value for OSDisk : true. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, *, temp_disk: bool=None, **kwargs) -> None: + super(VirtualMachineReimageParameters, self).__init__(**kwargs) + self.temp_disk = temp_disk diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters.py new file mode 100644 index 000000000000..61ce638e53c1 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_scale_set_vm_reimage_parameters import VirtualMachineScaleSetVMReimageParameters + + +class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + :param instance_ids: The virtual machine scale set instance ids. Omitting + the virtual machine scale set instance ids will result in the operation + being performed on all virtual machines in the virtual machine scale set. + :type instance_ids: list[str] + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineScaleSetReimageParameters, self).__init__(**kwargs) + self.instance_ids = kwargs.get('instance_ids', None) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters_py3.py new file mode 100644 index 000000000000..b5602bf695a7 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_reimage_parameters_py3.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_scale_set_vm_reimage_parameters_py3 import VirtualMachineScaleSetVMReimageParameters + + +class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + :param instance_ids: The virtual machine scale set instance ids. Omitting + the virtual machine scale set instance ids will result in the operation + being performed on all virtual machines in the virtual machine scale set. + :type instance_ids: list[str] + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, + } + + def __init__(self, *, temp_disk: bool=None, instance_ids=None, **kwargs) -> None: + super(VirtualMachineScaleSetReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) + self.instance_ids = instance_ids diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters.py new file mode 100644 index 000000000000..93128d8029fe --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_reimage_parameters import VirtualMachineReimageParameters + + +class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineScaleSetVMReimageParameters, self).__init__(**kwargs) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py new file mode 100644 index 000000000000..f844e8555e9d --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_reimage_parameters_py3 import VirtualMachineReimageParameters + + +class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, *, temp_disk: bool=None, **kwargs) -> None: + super(VirtualMachineScaleSetVMReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_set_vms_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_set_vms_operations.py index bccd6e0f8349..d8397bb3459f 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_set_vms_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_set_vms_operations.py @@ -41,7 +41,11 @@ def __init__(self, client, config, serializer, deserializer): def _reimage_initial( - self, resource_group_name, vm_scale_set_name, instance_id, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, vm_scale_set_name, instance_id, temp_disk=None, custom_headers=None, raw=False, **operation_config): + vm_scale_set_vm_reimage_input = None + if temp_disk is not None: + vm_scale_set_vm_reimage_input = models.VirtualMachineScaleSetVMReimageParameters(temp_disk=temp_disk) + # Construct URL url = self.reimage.metadata['url'] path_format_arguments = { @@ -58,6 +62,7 @@ def _reimage_initial( # Construct headers header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -65,8 +70,14 @@ def _reimage_initial( if self.config.accept_language is not None: header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + # Construct body + if vm_scale_set_vm_reimage_input is not None: + body_content = self._serialize.body(vm_scale_set_vm_reimage_input, 'VirtualMachineScaleSetVMReimageParameters') + else: + body_content = None + # Construct and send request - request = self._client.post(url, query_parameters, header_parameters) + request = self._client.post(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 202]: @@ -79,7 +90,7 @@ def _reimage_initial( return client_raw_response def reimage( - self, resource_group_name, vm_scale_set_name, instance_id, custom_headers=None, raw=False, polling=True, **operation_config): + self, resource_group_name, vm_scale_set_name, instance_id, temp_disk=None, custom_headers=None, raw=False, polling=True, **operation_config): """Reimages (upgrade the operating system) a specific virtual machine in a VM scale set. @@ -89,6 +100,9 @@ def reimage( :type vm_scale_set_name: str :param instance_id: The instance ID of the virtual machine. :type instance_id: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -104,6 +118,7 @@ def reimage( resource_group_name=resource_group_name, vm_scale_set_name=vm_scale_set_name, instance_id=instance_id, + temp_disk=temp_disk, custom_headers=custom_headers, raw=True, **operation_config diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_sets_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_sets_operations.py index 7fa76a536bac..dc2df1cd6c43 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_sets_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machine_scale_sets_operations.py @@ -1490,10 +1490,10 @@ def get_long_running_output(response): def _reimage_initial( - self, resource_group_name, vm_scale_set_name, instance_ids=None, custom_headers=None, raw=False, **operation_config): - vm_instance_ids = None - if instance_ids is not None: - vm_instance_ids = models.VirtualMachineScaleSetVMInstanceIDs(instance_ids=instance_ids) + self, resource_group_name, vm_scale_set_name, temp_disk=None, instance_ids=None, custom_headers=None, raw=False, **operation_config): + vm_scale_set_reimage_input = None + if temp_disk is not None or instance_ids is not None: + vm_scale_set_reimage_input = models.VirtualMachineScaleSetReimageParameters(temp_disk=temp_disk, instance_ids=instance_ids) # Construct URL url = self.reimage.metadata['url'] @@ -1519,8 +1519,8 @@ def _reimage_initial( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct body - if vm_instance_ids is not None: - body_content = self._serialize.body(vm_instance_ids, 'VirtualMachineScaleSetVMInstanceIDs') + if vm_scale_set_reimage_input is not None: + body_content = self._serialize.body(vm_scale_set_reimage_input, 'VirtualMachineScaleSetReimageParameters') else: body_content = None @@ -1538,7 +1538,7 @@ def _reimage_initial( return client_raw_response def reimage( - self, resource_group_name, vm_scale_set_name, instance_ids=None, custom_headers=None, raw=False, polling=True, **operation_config): + self, resource_group_name, vm_scale_set_name, temp_disk=None, instance_ids=None, custom_headers=None, raw=False, polling=True, **operation_config): """Reimages (upgrade the operating system) one or more virtual machines in a VM scale set. @@ -1546,6 +1546,9 @@ def reimage( :type resource_group_name: str :param vm_scale_set_name: The name of the VM scale set. :type vm_scale_set_name: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual @@ -1565,6 +1568,7 @@ def reimage( raw_result = self._reimage_initial( resource_group_name=resource_group_name, vm_scale_set_name=vm_scale_set_name, + temp_disk=temp_disk, instance_ids=instance_ids, custom_headers=custom_headers, raw=True, diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machines_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machines_operations.py index fe68c6d10da4..cd817c67fa2a 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machines_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_06_01/operations/virtual_machines_operations.py @@ -1371,6 +1371,101 @@ def get_long_running_output(response): redeploy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy'} + def _reimage_initial( + self, resource_group_name, vm_name, temp_disk=None, custom_headers=None, raw=False, **operation_config): + parameters = None + if temp_disk is not None: + parameters = models.VirtualMachineReimageParameters(temp_disk=temp_disk) + + # Construct URL + url = self.reimage.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'vmName': self._serialize.url("vm_name", vm_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + if parameters is not None: + body_content = self._serialize.body(parameters, 'VirtualMachineReimageParameters') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def reimage( + self, resource_group_name, vm_name, temp_disk=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Reimages (upgrade the operating system) virtual machine. This operation + is only supported for differencing OS disks. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param vm_name: The name of the virtual machine. + :type vm_name: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._reimage_initial( + resource_group_name=resource_group_name, + vm_name=vm_name, + temp_disk=temp_disk, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + reimage.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage'} + + def _perform_maintenance_initial( self, resource_group_name, vm_name, custom_headers=None, raw=False, **operation_config): # Construct URL diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/__init__.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/__init__.py index d9f30207ad02..9d45123d813d 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/__init__.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/__init__.py @@ -30,6 +30,7 @@ from .virtual_machine_image_py3 import VirtualMachineImage from .usage_name_py3 import UsageName from .usage_py3 import Usage + from .virtual_machine_reimage_parameters_py3 import VirtualMachineReimageParameters from .virtual_machine_capture_parameters_py3 import VirtualMachineCaptureParameters from .virtual_machine_capture_result_py3 import VirtualMachineCaptureResult from .plan_py3 import Plan @@ -104,6 +105,8 @@ from .virtual_machine_scale_set_vm_profile_py3 import VirtualMachineScaleSetVMProfile from .virtual_machine_scale_set_update_vm_profile_py3 import VirtualMachineScaleSetUpdateVMProfile from .virtual_machine_scale_set_py3 import VirtualMachineScaleSet + from .virtual_machine_scale_set_vm_reimage_parameters_py3 import VirtualMachineScaleSetVMReimageParameters + from .virtual_machine_scale_set_reimage_parameters_py3 import VirtualMachineScaleSetReimageParameters from .virtual_machine_scale_set_update_py3 import VirtualMachineScaleSetUpdate from .virtual_machine_scale_set_vm_instance_ids_py3 import VirtualMachineScaleSetVMInstanceIDs from .virtual_machine_scale_set_vm_instance_required_ids_py3 import VirtualMachineScaleSetVMInstanceRequiredIDs @@ -162,6 +165,7 @@ from .virtual_machine_image import VirtualMachineImage from .usage_name import UsageName from .usage import Usage + from .virtual_machine_reimage_parameters import VirtualMachineReimageParameters from .virtual_machine_capture_parameters import VirtualMachineCaptureParameters from .virtual_machine_capture_result import VirtualMachineCaptureResult from .plan import Plan @@ -236,6 +240,8 @@ from .virtual_machine_scale_set_vm_profile import VirtualMachineScaleSetVMProfile from .virtual_machine_scale_set_update_vm_profile import VirtualMachineScaleSetUpdateVMProfile from .virtual_machine_scale_set import VirtualMachineScaleSet + from .virtual_machine_scale_set_vm_reimage_parameters import VirtualMachineScaleSetVMReimageParameters + from .virtual_machine_scale_set_reimage_parameters import VirtualMachineScaleSetReimageParameters from .virtual_machine_scale_set_update import VirtualMachineScaleSetUpdate from .virtual_machine_scale_set_vm_instance_ids import VirtualMachineScaleSetVMInstanceIDs from .virtual_machine_scale_set_vm_instance_required_ids import VirtualMachineScaleSetVMInstanceRequiredIDs @@ -335,6 +341,7 @@ 'VirtualMachineImage', 'UsageName', 'Usage', + 'VirtualMachineReimageParameters', 'VirtualMachineCaptureParameters', 'VirtualMachineCaptureResult', 'Plan', @@ -409,6 +416,8 @@ 'VirtualMachineScaleSetVMProfile', 'VirtualMachineScaleSetUpdateVMProfile', 'VirtualMachineScaleSet', + 'VirtualMachineScaleSetVMReimageParameters', + 'VirtualMachineScaleSetReimageParameters', 'VirtualMachineScaleSetUpdate', 'VirtualMachineScaleSetVMInstanceIDs', 'VirtualMachineScaleSetVMInstanceRequiredIDs', diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters.py new file mode 100644 index 000000000000..25f718579448 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineReimageParameters(Model): + """Paramaters for Reimaging Virtual Machine. Default value for OSDisk : true. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineReimageParameters, self).__init__(**kwargs) + self.temp_disk = kwargs.get('temp_disk', None) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters_py3.py new file mode 100644 index 000000000000..10d6f284d9be --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_reimage_parameters_py3.py @@ -0,0 +1,29 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from msrest.serialization import Model + + +class VirtualMachineReimageParameters(Model): + """Paramaters for Reimaging Virtual Machine. Default value for OSDisk : true. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, *, temp_disk: bool=None, **kwargs) -> None: + super(VirtualMachineReimageParameters, self).__init__(**kwargs) + self.temp_disk = temp_disk diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters.py new file mode 100644 index 000000000000..61ce638e53c1 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_scale_set_vm_reimage_parameters import VirtualMachineScaleSetVMReimageParameters + + +class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + :param instance_ids: The virtual machine scale set instance ids. Omitting + the virtual machine scale set instance ids will result in the operation + being performed on all virtual machines in the virtual machine scale set. + :type instance_ids: list[str] + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineScaleSetReimageParameters, self).__init__(**kwargs) + self.instance_ids = kwargs.get('instance_ids', None) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters_py3.py new file mode 100644 index 000000000000..b5602bf695a7 --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_reimage_parameters_py3.py @@ -0,0 +1,34 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_scale_set_vm_reimage_parameters_py3 import VirtualMachineScaleSetVMReimageParameters + + +class VirtualMachineScaleSetReimageParameters(VirtualMachineScaleSetVMReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + :param instance_ids: The virtual machine scale set instance ids. Omitting + the virtual machine scale set instance ids will result in the operation + being performed on all virtual machines in the virtual machine scale set. + :type instance_ids: list[str] + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + 'instance_ids': {'key': 'instanceIds', 'type': '[str]'}, + } + + def __init__(self, *, temp_disk: bool=None, instance_ids=None, **kwargs) -> None: + super(VirtualMachineScaleSetReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) + self.instance_ids = instance_ids diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters.py new file mode 100644 index 000000000000..93128d8029fe --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_reimage_parameters import VirtualMachineReimageParameters + + +class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, **kwargs): + super(VirtualMachineScaleSetVMReimageParameters, self).__init__(**kwargs) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py new file mode 100644 index 000000000000..f844e8555e9d --- /dev/null +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/models/virtual_machine_scale_set_vm_reimage_parameters_py3.py @@ -0,0 +1,28 @@ +# coding=utf-8 +# -------------------------------------------------------------------------- +# Copyright (c) Microsoft Corporation. All rights reserved. +# Licensed under the MIT License. See License.txt in the project root for +# license information. +# +# Code generated by Microsoft (R) AutoRest Code Generator. +# Changes may cause incorrect behavior and will be lost if the code is +# regenerated. +# -------------------------------------------------------------------------- + +from .virtual_machine_reimage_parameters_py3 import VirtualMachineReimageParameters + + +class VirtualMachineScaleSetVMReimageParameters(VirtualMachineReimageParameters): + """Describes a Virtual Machine Scale Set VM Reimage Parameters. + + :param temp_disk: Specified whether to reimage temp disk. Default value: + false. + :type temp_disk: bool + """ + + _attribute_map = { + 'temp_disk': {'key': 'tempDisk', 'type': 'bool'}, + } + + def __init__(self, *, temp_disk: bool=None, **kwargs) -> None: + super(VirtualMachineScaleSetVMReimageParameters, self).__init__(temp_disk=temp_disk, **kwargs) diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_set_vms_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_set_vms_operations.py index d8b6638b82fe..f5b05d0ff52a 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_set_vms_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_set_vms_operations.py @@ -41,7 +41,11 @@ def __init__(self, client, config, serializer, deserializer): def _reimage_initial( - self, resource_group_name, vm_scale_set_name, instance_id, custom_headers=None, raw=False, **operation_config): + self, resource_group_name, vm_scale_set_name, instance_id, temp_disk=None, custom_headers=None, raw=False, **operation_config): + vm_scale_set_vm_reimage_input = None + if temp_disk is not None: + vm_scale_set_vm_reimage_input = models.VirtualMachineScaleSetVMReimageParameters(temp_disk=temp_disk) + # Construct URL url = self.reimage.metadata['url'] path_format_arguments = { @@ -58,6 +62,7 @@ def _reimage_initial( # Construct headers header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' if self.config.generate_client_request_id: header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) if custom_headers: @@ -65,8 +70,14 @@ def _reimage_initial( if self.config.accept_language is not None: header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + # Construct body + if vm_scale_set_vm_reimage_input is not None: + body_content = self._serialize.body(vm_scale_set_vm_reimage_input, 'VirtualMachineScaleSetVMReimageParameters') + else: + body_content = None + # Construct and send request - request = self._client.post(url, query_parameters, header_parameters) + request = self._client.post(url, query_parameters, header_parameters, body_content) response = self._client.send(request, stream=False, **operation_config) if response.status_code not in [200, 202]: @@ -79,7 +90,7 @@ def _reimage_initial( return client_raw_response def reimage( - self, resource_group_name, vm_scale_set_name, instance_id, custom_headers=None, raw=False, polling=True, **operation_config): + self, resource_group_name, vm_scale_set_name, instance_id, temp_disk=None, custom_headers=None, raw=False, polling=True, **operation_config): """Reimages (upgrade the operating system) a specific virtual machine in a VM scale set. @@ -89,6 +100,9 @@ def reimage( :type vm_scale_set_name: str :param instance_id: The instance ID of the virtual machine. :type instance_id: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool :param dict custom_headers: headers that will be added to the request :param bool raw: The poller return type is ClientRawResponse, the direct response alongside the deserialized response @@ -104,6 +118,7 @@ def reimage( resource_group_name=resource_group_name, vm_scale_set_name=vm_scale_set_name, instance_id=instance_id, + temp_disk=temp_disk, custom_headers=custom_headers, raw=True, **operation_config diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_sets_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_sets_operations.py index 904d18441eec..067674b70805 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_sets_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machine_scale_sets_operations.py @@ -1490,10 +1490,10 @@ def get_long_running_output(response): def _reimage_initial( - self, resource_group_name, vm_scale_set_name, instance_ids=None, custom_headers=None, raw=False, **operation_config): - vm_instance_ids = None - if instance_ids is not None: - vm_instance_ids = models.VirtualMachineScaleSetVMInstanceIDs(instance_ids=instance_ids) + self, resource_group_name, vm_scale_set_name, temp_disk=None, instance_ids=None, custom_headers=None, raw=False, **operation_config): + vm_scale_set_reimage_input = None + if temp_disk is not None or instance_ids is not None: + vm_scale_set_reimage_input = models.VirtualMachineScaleSetReimageParameters(temp_disk=temp_disk, instance_ids=instance_ids) # Construct URL url = self.reimage.metadata['url'] @@ -1519,8 +1519,8 @@ def _reimage_initial( header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') # Construct body - if vm_instance_ids is not None: - body_content = self._serialize.body(vm_instance_ids, 'VirtualMachineScaleSetVMInstanceIDs') + if vm_scale_set_reimage_input is not None: + body_content = self._serialize.body(vm_scale_set_reimage_input, 'VirtualMachineScaleSetReimageParameters') else: body_content = None @@ -1538,7 +1538,7 @@ def _reimage_initial( return client_raw_response def reimage( - self, resource_group_name, vm_scale_set_name, instance_ids=None, custom_headers=None, raw=False, polling=True, **operation_config): + self, resource_group_name, vm_scale_set_name, temp_disk=None, instance_ids=None, custom_headers=None, raw=False, polling=True, **operation_config): """Reimages (upgrade the operating system) one or more virtual machines in a VM scale set. @@ -1546,6 +1546,9 @@ def reimage( :type resource_group_name: str :param vm_scale_set_name: The name of the VM scale set. :type vm_scale_set_name: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool :param instance_ids: The virtual machine scale set instance ids. Omitting the virtual machine scale set instance ids will result in the operation being performed on all virtual machines in the virtual @@ -1565,6 +1568,7 @@ def reimage( raw_result = self._reimage_initial( resource_group_name=resource_group_name, vm_scale_set_name=vm_scale_set_name, + temp_disk=temp_disk, instance_ids=instance_ids, custom_headers=custom_headers, raw=True, diff --git a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machines_operations.py b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machines_operations.py index 009c54f350e3..6a7fd347af79 100644 --- a/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machines_operations.py +++ b/azure-mgmt-compute/azure/mgmt/compute/v2018_10_01/operations/virtual_machines_operations.py @@ -1371,6 +1371,101 @@ def get_long_running_output(response): redeploy.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/redeploy'} + def _reimage_initial( + self, resource_group_name, vm_name, temp_disk=None, custom_headers=None, raw=False, **operation_config): + parameters = None + if temp_disk is not None: + parameters = models.VirtualMachineReimageParameters(temp_disk=temp_disk) + + # Construct URL + url = self.reimage.metadata['url'] + path_format_arguments = { + 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), + 'vmName': self._serialize.url("vm_name", vm_name, 'str'), + 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') + } + url = self._client.format_url(url, **path_format_arguments) + + # Construct parameters + query_parameters = {} + query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') + + # Construct headers + header_parameters = {} + header_parameters['Content-Type'] = 'application/json; charset=utf-8' + if self.config.generate_client_request_id: + header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) + if custom_headers: + header_parameters.update(custom_headers) + if self.config.accept_language is not None: + header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') + + # Construct body + if parameters is not None: + body_content = self._serialize.body(parameters, 'VirtualMachineReimageParameters') + else: + body_content = None + + # Construct and send request + request = self._client.post(url, query_parameters, header_parameters, body_content) + response = self._client.send(request, stream=False, **operation_config) + + if response.status_code not in [200, 202]: + exp = CloudError(response) + exp.request_id = response.headers.get('x-ms-request-id') + raise exp + + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + def reimage( + self, resource_group_name, vm_name, temp_disk=None, custom_headers=None, raw=False, polling=True, **operation_config): + """Reimages (upgrade the operating system) virtual machine. This operation + is only supported for differencing OS disks. + + :param resource_group_name: The name of the resource group. + :type resource_group_name: str + :param vm_name: The name of the virtual machine. + :type vm_name: str + :param temp_disk: Specified whether to reimage temp disk. Default + value: false. + :type temp_disk: bool + :param dict custom_headers: headers that will be added to the request + :param bool raw: The poller return type is ClientRawResponse, the + direct response alongside the deserialized response + :param polling: True for ARMPolling, False for no polling, or a + polling object for personal polling strategy + :return: An instance of LROPoller that returns None or + ClientRawResponse if raw==True + :rtype: ~msrestazure.azure_operation.AzureOperationPoller[None] or + ~msrestazure.azure_operation.AzureOperationPoller[~msrest.pipeline.ClientRawResponse[None]] + :raises: :class:`CloudError` + """ + raw_result = self._reimage_initial( + resource_group_name=resource_group_name, + vm_name=vm_name, + temp_disk=temp_disk, + custom_headers=custom_headers, + raw=True, + **operation_config + ) + + def get_long_running_output(response): + if raw: + client_raw_response = ClientRawResponse(None, response) + return client_raw_response + + lro_delay = operation_config.get( + 'long_running_operation_timeout', + self.config.long_running_operation_timeout) + if polling is True: polling_method = ARMPolling(lro_delay, **operation_config) + elif polling is False: polling_method = NoPolling() + else: polling_method = polling + return LROPoller(self._client, raw_result, get_long_running_output, polling_method) + reimage.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/reimage'} + + def _perform_maintenance_initial( self, resource_group_name, vm_name, custom_headers=None, raw=False, **operation_config): # Construct URL