diff --git a/files/sha.json b/files/sha.json index a73d75a..4e515ba 100644 --- a/files/sha.json +++ b/files/sha.json @@ -1,6 +1,6 @@ { - "lib/ansible/module_utils/azure_rm_common.py": "52a665e224a82b09cb26436d29a753dc8f7facad", - "lib/ansible/modules/cloud/azure": "dfc023209fc7460c449b2e97feb1b5e6d79d1491", + "lib/ansible/module_utils/azure_rm_common.py": "926e423690162b3bdf3ab255b0d50f0a9ae48e1a", + "lib/ansible/modules/cloud/azure": "8df03a6f6e5eb8696b5a8514535093c53b3f512d", "packaging/requirements/requirements-azure.txt": "68fa03138c719377b754dc1bbd083529297d38b3", - "test/integration/targets": "ff53ca76b83d151fb05ba0c69def6089dc893135" + "test/integration/targets": "2d074f2a31e8ba80643e3f4feef9c31d60919b55" } \ No newline at end of file diff --git a/library/_azure_rm_applicationsecuritygroup_facts.py b/library/_azure_rm_applicationsecuritygroup_facts.py index 97b1e6e..dc99350 100644 --- a/library/_azure_rm_applicationsecuritygroup_facts.py +++ b/library/_azure_rm_applicationsecuritygroup_facts.py @@ -71,7 +71,7 @@ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationSecurityGroups/MyAsg" location: description: - - Loation of the application security group. + - Location of the application security group. type: str returned: always sample: eastus diff --git a/library/_azure_rm_automationaccount_facts.py b/library/_azure_rm_automationaccount_facts.py index e463579..0cf854f 100644 --- a/library/_azure_rm_automationaccount_facts.py +++ b/library/_azure_rm_automationaccount_facts.py @@ -202,7 +202,7 @@ limit: description: - Max limit, C(-1) for unlimited. - type: long + type: int returned: always sample: -1 name: diff --git a/library/_azure_rm_cdnendpoint_facts.py b/library/_azure_rm_cdnendpoint_facts.py index de2d869..bd1527c 100644 --- a/library/_azure_rm_cdnendpoint_facts.py +++ b/library/_azure_rm_cdnendpoint_facts.py @@ -155,7 +155,7 @@ sample: xxxxxxxx.blob.core.windows.net origin_path: description: - - A directory path on the origin that CDN can use to retreive content from. + - A directory path on the origin that CDN can use to retrieve content from. type: str sample: /pic/ tags: diff --git a/library/_azure_rm_containerregistry_facts.py b/library/_azure_rm_containerregistry_facts.py index c1a8334..936fc23 100644 --- a/library/_azure_rm_containerregistry_facts.py +++ b/library/_azure_rm_containerregistry_facts.py @@ -110,7 +110,7 @@ credentials: description: - Credentials, fields will be empty if admin user is not enabled for ACR. - return: when C(retrieve_credentials) is set and C(admin_user_enabled) is set on ACR + returned: when C(retrieve_credentials) is set and C(admin_user_enabled) is set on ACR type: complex contains: username: diff --git a/library/_azure_rm_deployment_facts.py b/library/_azure_rm_deployment_facts.py index 9b6ac71..4c133e6 100644 --- a/library/_azure_rm_deployment_facts.py +++ b/library/_azure_rm_deployment_facts.py @@ -57,8 +57,7 @@ - The identifier of the resource. returned: always type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myD - eployment" + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myDeployment" resource_group: description: - Resource group name. diff --git a/library/_azure_rm_devtestlabvirtualmachine_facts.py b/library/_azure_rm_devtestlabvirtualmachine_facts.py index b41e100..e21b238 100644 --- a/library/_azure_rm_devtestlabvirtualmachine_facts.py +++ b/library/_azure_rm_devtestlabvirtualmachine_facts.py @@ -106,7 +106,7 @@ - Virtual machine expiration date. returned: always type: str - sample: 2029-02-22T01:49:12.117974Z + sample: "2029-02-22T01:49:12.117974Z" image: description: - Gallery image reference. diff --git a/library/_azure_rm_hdinsightcluster_facts.py b/library/_azure_rm_hdinsightcluster_facts.py index 9a703e9..296fdec 100644 --- a/library/_azure_rm_hdinsightcluster_facts.py +++ b/library/_azure_rm_hdinsightcluster_facts.py @@ -114,7 +114,7 @@ description: - The list of roles in the cluster. type: list - suboptions: + contains: name: description: - The name of the role. diff --git a/library/_azure_rm_lock_facts.py b/library/_azure_rm_lock_facts.py index cf8c1d1..d0761d2 100644 --- a/library/_azure_rm_lock_facts.py +++ b/library/_azure_rm_lock_facts.py @@ -30,7 +30,7 @@ description: - ID of the resource where need to manage the lock. - Get this via facts module. - - Cannot be set mutal with I(resource_group). + - Cannot be set mutual with I(resource_group). - Manage subscription if both I(managed_resource_id) and I(resource_group) not defined. - "'/subscriptions/{subscriptionId}' for subscriptions." - "'/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups." @@ -41,7 +41,7 @@ description: - Resource group name where need to manage the lock. - The lock is in the resource group level. - - Cannot be set mutal with I(managed_resource_id). + - Cannot be set mutual with I(managed_resource_id). - Query subscription if both I(managed_resource_id) and I(resource_group) not defined. - Can get all locks with 'child scope' in this resource group, use the I(managed_resource_id) in response for further management. type: str diff --git a/library/_azure_rm_managed_disk.py b/library/_azure_rm_managed_disk.py index e630f1b..5ea2240 100644 --- a/library/_azure_rm_managed_disk.py +++ b/library/_azure_rm_managed_disk.py @@ -158,7 +158,7 @@ disk_size_gb: 4 - name: Delete managed disk - azure_rm_manage_disk: + azure_rm_manageddisk: name: mymanageddisk location: eastus resource_group: myResourceGroup diff --git a/library/_azure_rm_resource_facts.py b/library/_azure_rm_resource_facts.py index 44c6f21..354cd79 100644 --- a/library/_azure_rm_resource_facts.py +++ b/library/_azure_rm_resource_facts.py @@ -164,7 +164,7 @@ allowExtensionOperations: description: - Specifies whether extension operations should be allowed on the virtual machine. - - This may only be set to False when no extentions are present on the virtual machine. + - This may only be set to False when no extensions are present on the virtual machine. type: bool returned: always sample: true @@ -176,7 +176,7 @@ sample: myVM requireGuestProvisionSignale: description: - - Specifies the host require guest provision siganl or not. + - Specifies the host require guest provision signal or not. type: bool returned: always sample: true @@ -188,7 +188,7 @@ sample: [] linuxConfiguration: description: - - Specifies the Linux operatiing system settings on the virtual machine. + - Specifies the Linux operating system settings on the virtual machine. type: dict returned: when OS type is Linux sample: { @@ -203,14 +203,14 @@ sample: Succeeded vmID: description: - - Specifies the VM unique ID whic is a 128-bits identifier that is encoded and stored in all Azure laaS VMs SMBIOS. + - Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure laaS VMs SMBIOS. - It can be read using platform BIOS commands. type: str returned: always sample: "eb86d9bb-6725-4787-a487-2e497d5b340c" storageProfile: description: - - Specifies the storae account type for the managed disk. + - Specifies the storage account type for the managed disk. type: complex returned: always contains: diff --git a/library/_azure_rm_roleassignment_facts.py b/library/_azure_rm_roleassignment_facts.py index e12b0c2..7a9ee39 100644 --- a/library/_azure_rm_roleassignment_facts.py +++ b/library/_azure_rm_roleassignment_facts.py @@ -78,7 +78,7 @@ returned: always sample: myRoleAssignment type: - descripition: + description: - Type of role assignment. type: str returned: always diff --git a/library/_azure_rm_roledefinition_facts.py b/library/_azure_rm_roledefinition_facts.py index e887732..c8fe878 100644 --- a/library/_azure_rm_roledefinition_facts.py +++ b/library/_azure_rm_roledefinition_facts.py @@ -24,7 +24,7 @@ options: scope: description: - - The scope of role defintion. + - The scope of role definition. required: True id: description: diff --git a/library/_azure_rm_securitygroup_facts.py b/library/_azure_rm_securitygroup_facts.py index dfb00bb..e9acb52 100644 --- a/library/_azure_rm_securitygroup_facts.py +++ b/library/_azure_rm_securitygroup_facts.py @@ -209,7 +209,7 @@ "securityRules": [] } tags: - descripition: + description: - Tags to assign to the security group. returned: always type: dict diff --git a/library/_azure_rm_servicebus_facts.py b/library/_azure_rm_servicebus_facts.py index 672edfc..7e91e40 100644 --- a/library/_azure_rm_servicebus_facts.py +++ b/library/_azure_rm_servicebus_facts.py @@ -196,7 +196,7 @@ sample: 1 count_details: description: - - Message count deatils. + - Message count details. returned: always type: complex contains: diff --git a/library/_azure_rm_storageaccount_facts.py b/library/_azure_rm_storageaccount_facts.py index 13fb556..5849e9e 100644 --- a/library/_azure_rm_storageaccount_facts.py +++ b/library/_azure_rm_storageaccount_facts.py @@ -435,7 +435,7 @@ def list_resource_group(self): def list_all(self): self.log('List all items') try: - response = self.storage_client.storage_accounts.list_by_resource_group(self.resource_group) + response = self.storage_client.storage_accounts.list() except Exception as exc: self.fail("Error listing all items - {0}".format(str(exc))) diff --git a/library/_azure_rm_subnet_facts.py b/library/_azure_rm_subnet_facts.py index 697f7a0..6bf4e83 100644 --- a/library/_azure_rm_subnet_facts.py +++ b/library/_azure_rm_subnet_facts.py @@ -118,7 +118,6 @@ - The type of the endpoint service. returned: always type: str - required: True sample: Microsoft.Sql locations: description: diff --git a/library/_azure_rm_virtualmachine_scaleset.py b/library/_azure_rm_virtualmachine_scaleset.py index 24396ec..da27187 100644 --- a/library/_azure_rm_virtualmachine_scaleset.py +++ b/library/_azure_rm_virtualmachine_scaleset.py @@ -733,10 +733,6 @@ def exec_module(self, **kwargs): self.log("Create virtual machine scale set {0}".format(self.name)) self.results['actions'].append('Created VMSS {0}'.format(self.name)) - # Validate parameters - if not self.admin_username: - self.fail("Parameter error: admin_username required when creating a virtual machine scale set.") - if self.os_type == 'Linux': if disable_ssh_password and not self.ssh_public_keys: self.fail("Parameter error: ssh_public_keys required when disabling SSH password.") @@ -762,6 +758,14 @@ def exec_module(self, **kwargs): if nsg: self.security_group = self.network_models.NetworkSecurityGroup(id=nsg.get('id')) + os_profile = None + if self.admin_username or self.custom_data or self.ssh_public_keys: + os_profile = self.compute_models.VirtualMachineScaleSetOSProfile( + admin_username=self.admin_username, + computer_name_prefix=self.short_hostname, + custom_data=self.custom_data + ) + vmss_resource = self.compute_models.VirtualMachineScaleSet( location=self.location, overprovision=self.overprovision, @@ -776,11 +780,7 @@ def exec_module(self, **kwargs): tier=self.tier, ), virtual_machine_profile=self.compute_models.VirtualMachineScaleSetVMProfile( - os_profile=self.compute_models.VirtualMachineScaleSetOSProfile( - admin_username=self.admin_username, - computer_name_prefix=self.short_hostname, - custom_data=self.custom_data - ), + os_profile=os_profile, storage_profile=self.compute_models.VirtualMachineScaleSetStorageProfile( os_disk=self.compute_models.VirtualMachineScaleSetOSDisk( managed_disk=managed_disk, @@ -818,7 +818,7 @@ def exec_module(self, **kwargs): if self.admin_password: vmss_resource.virtual_machine_profile.os_profile.admin_password = self.admin_password - if self.os_type == 'Linux': + if self.os_type == 'Linux' and os_profile: vmss_resource.virtual_machine_profile.os_profile.linux_configuration = self.compute_models.LinuxConfiguration( disable_password_authentication=disable_ssh_password ) diff --git a/library/_azure_rm_virtualmachinescalesetinstance_facts.py b/library/_azure_rm_virtualmachinescalesetinstance_facts.py index 12a8e3e..505d403 100644 --- a/library/_azure_rm_virtualmachinescalesetinstance_facts.py +++ b/library/_azure_rm_virtualmachinescalesetinstance_facts.py @@ -47,7 +47,7 @@ EXAMPLES = ''' - name: List VM instances in Virtual Machine ScaleSet - azure_rm_computevirtualmachinescalesetinstance_info: + azure_rm_virtualmachinescalesetinstance_info: resource_group: myResourceGroup vmss_name: myVMSS ''' @@ -221,7 +221,8 @@ def format_response(self, item): 'name': d.get('name', None), 'provisioning_state': d.get('provisioning_state', None), 'power_state': power_state, - 'vm_id': d.get('vm_id', None) + 'vm_id': d.get('vm_id', None), + 'computer_name': d.get('os_profile').get('computer_name', None) } return d diff --git a/library/azure_rm_aks.py b/library/azure_rm_aks.py index 328c38a..ef49340 100644 --- a/library/azure_rm_aks.py +++ b/library/azure_rm_aks.py @@ -195,7 +195,7 @@ type: bool subnet_resource_id: description: - - Subnet associdated to the cluster. + - Subnet associated to the cluster. version_added: "2.8" extends_documentation_fragment: diff --git a/library/azure_rm_appgateway.py b/library/azure_rm_appgateway.py index aa05b99..3aaada3 100644 --- a/library/azure_rm_appgateway.py +++ b/library/azure_rm_appgateway.py @@ -327,7 +327,7 @@ - Frontend port resource of an application gateway. protocol: description: - - Protocol of the c(http) listener. + - Protocol of the C(http) listener. choices: - 'http' - 'https' diff --git a/library/azure_rm_applicationsecuritygroup_info.py b/library/azure_rm_applicationsecuritygroup_info.py index 97b1e6e..dc99350 100644 --- a/library/azure_rm_applicationsecuritygroup_info.py +++ b/library/azure_rm_applicationsecuritygroup_info.py @@ -71,7 +71,7 @@ "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/applicationSecurityGroups/MyAsg" location: description: - - Loation of the application security group. + - Location of the application security group. type: str returned: always sample: eastus diff --git a/library/azure_rm_automationaccount_info.py b/library/azure_rm_automationaccount_info.py index e463579..0cf854f 100644 --- a/library/azure_rm_automationaccount_info.py +++ b/library/azure_rm_automationaccount_info.py @@ -202,7 +202,7 @@ limit: description: - Max limit, C(-1) for unlimited. - type: long + type: int returned: always sample: -1 name: diff --git a/library/azure_rm_autoscale.py b/library/azure_rm_autoscale.py index 5064571..f9a59bd 100644 --- a/library/azure_rm_autoscale.py +++ b/library/azure_rm_autoscale.py @@ -242,7 +242,7 @@ name: scale resource_group: myResourceGroup -- name: Create an auto scale with compicated profile +- name: Create an auto scale with complicated profile azure_rm_autoscale: target: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/virtualMachineScaleSets /myVmss" diff --git a/library/azure_rm_azurefirewall.py b/library/azure_rm_azurefirewall.py index ec83fb2..51ff7f8 100644 --- a/library/azure_rm_azurefirewall.py +++ b/library/azure_rm_azurefirewall.py @@ -17,207 +17,220 @@ --- module: azure_rm_azurefirewall version_added: '2.9' -short_description: Manage Azure Firewall instance. +short_description: Manage Azure Firewall instance description: - - Create, update and delete instance of Azure Firewall. + - Create, update and delete instance of Azure Firewall. options: - resource_group: - description: - - The name of the resource group. - required: true - name: - description: - - The name of the Azure Firewall. - required: true - location: - description: - - Resource location. - application_rule_collections: - description: - - Collection of application rule collections used by Azure Firewall. - type: list - suboptions: - priority: + resource_group: description: - - Priority of the application rule collection resource. - type: int - action: + - The name of the resource group. + required: true + type: str + name: description: - - The action type of a rule collection - choices: - - allow - - deny - rules: + - The name of the Azure Firewall. + required: true + type: str + location: + description: + - Resource location. + type: str + application_rule_collections: description: - - Collection of rules used by a application rule collection. + - Collection of application rule collections used by Azure Firewall. type: list suboptions: - name: - description: - - Name of the application rule. - description: - description: - - Description of the rule. - source_addresses: - description: - - List of source IP addresses for this rule. - type: list - protocols: - description: - - Array of ApplicationRuleProtocols. - type: list - target_fqdns: - description: - - List of FQDNs for this rule. - type: list - fqdn_tags: - description: - - List of FQDN Tags for this rule. - type: list - name: - description: - - >- - Gets name of the resource that is unique within a resource group. - This name can be used to access the resource. - nat_rule_collections: - description: - - Collection of NAT rule collections used by Azure Firewall. - type: list - suboptions: - priority: - description: - - Priority of the NAT rule collection resource. - type: int - action: - description: - - The action type of a NAT rule collection - choices: - - snat - - dnat - rules: + priority: + description: + - Priority of the application rule collection resource. + type: int + action: + description: + - The action type of a rule collection. + choices: + - allow + - deny + type: str + rules: + description: + - Collection of rules used by a application rule collection. + type: list + suboptions: + name: + description: + - Name of the application rule. + type: str + description: + description: + - Description of the rule. + type: str + source_addresses: + description: + - List of source IP addresses for this rule. + type: list + protocols: + description: + - Array of ApplicationRuleProtocols. + type: list + target_fqdns: + description: + - List of FQDNs for this rule. + type: list + fqdn_tags: + description: + - List of FQDN Tags for this rule. + type: list + name: + description: + - Gets name of the resource that is unique within a resource group. + - This name can be used to access the resource. + type: str + nat_rule_collections: description: - - Collection of rules used by a NAT rule collection. + - Collection of NAT rule collections used by Azure Firewall. type: list suboptions: - name: - description: - - Name of the NAT rule. - description: - description: - - Description of the rule. - source_addresses: - description: - - List of source IP addresses for this rule. - type: list - destination_addresses: - description: - - List of destination IP addresses for this rule. - type: list - destination_ports: - description: - - List of destination ports. - type: list - protocols: - description: - - >- - Array of AzureFirewallNetworkRuleProtocols applicable to this - NAT rule. - type: list - translated_address: - description: - - The translated address for this NAT rule. - translated_port: - description: - - The translated port for this NAT rule. - name: - description: - - >- - Gets name of the resource that is unique within a resource group. - This name can be used to access the resource. - network_rule_collections: - description: - - Collection of network rule collections used by Azure Firewall. - type: list - suboptions: - priority: - description: - - Priority of the network rule collection resource. - type: int - action: - description: - - The action type of a rule collection - choices: - - allow - - deny - rules: + priority: + description: + - Priority of the NAT rule collection resource. + type: int + action: + description: + - The action type of a NAT rule collection + choices: + - snat + - dnat + type: str + rules: + description: + - Collection of rules used by a NAT rule collection. + type: list + suboptions: + name: + description: + - Name of the NAT rule. + type: str + description: + description: + - Description of the rule. + type: str + source_addresses: + description: + - List of source IP addresses for this rule. + type: list + destination_addresses: + description: + - List of destination IP addresses for this rule. + type: list + destination_ports: + description: + - List of destination ports. + type: list + protocols: + description: + - Array of AzureFirewallNetworkRuleProtocols applicable to this NAT rule. + type: list + translated_address: + description: + - The translated address for this NAT rule. + type: str + translated_port: + description: + - The translated port for this NAT rule. + type: str + name: + description: + - Gets name of the resource that is unique within a resource group. + - This name can be used to access the resource. + type: str + network_rule_collections: description: - - Collection of rules used by a network rule collection. + - Collection of network rule collections used by Azure Firewall. type: list suboptions: - name: - description: - - Name of the network rule. - description: - description: - - Description of the rule. - protocols: - description: - - Array of AzureFirewallNetworkRuleProtocols. - type: list - source_addresses: - description: - - List of source IP addresses for this rule. - type: list - destination_addresses: - description: - - List of destination IP addresses. - type: list - destination_ports: - description: - - List of destination ports. - type: list - name: - description: - - >- - Gets name of the resource that is unique within a resource group. - This name can be used to access the resource. - ip_configurations: - description: - - IP configuration of the Azure Firewall resource. - type: list - suboptions: - subnet: - description: - - Existing subnet. - - It can be a string containing subnet resource id. - - It can be a dictionary containing C(name), C(virtual_network_name) and optionally C(resource_group) . - public_ip_address: + priority: + description: + - Priority of the network rule collection resource. + type: int + action: + description: + - The action type of a rule collection. + type: str + choices: + - allow + - deny + rules: + description: + - Collection of rules used by a network rule collection. + type: list + suboptions: + name: + description: + - Name of the network rule. + type: str + description: + description: + - Description of the rule. + type: str + protocols: + description: + - Array of AzureFirewallNetworkRuleProtocols. + type: list + source_addresses: + description: + - List of source IP addresses for this rule. + type: list + destination_addresses: + description: + - List of destination IP addresses. + type: list + destination_ports: + description: + - List of destination ports. + type: list + name: + description: + - Gets name of the resource that is unique within a resource group. + - This name can be used to access the resource. + type: str + ip_configurations: description: - - Existing public IP address - - It can be a string containing resource id. - - It can be a string containing a name in current resource group. - - It can be a dictionary containing C(name) and optionally C(resource_group). - name: + - IP configuration of the Azure Firewall resource. + type: list + suboptions: + subnet: + description: + - Existing subnet. + - It can be a string containing subnet resource ID. + - It can be a dictionary containing I(name), I(virtual_network_name) and optionally I(resource_group) . + type: raw + public_ip_address: + description: + - Existing public IP address. + - It can be a string containing resource ID. + - It can be a string containing a name in current resource group. + - It can be a dictionary containing I(name) and optionally I(resource_group). + type: raw + name: + description: + - Name of the resource that is unique within a resource group. + - This name can be used to access the resource. + type: str + state: description: - - >- - Name of the resource that is unique within a resource group. This - name can be used to access the resource. - state: - description: - - Assert the state of the AzureFirewall. - - >- - Use C(present) to create or update an AzureFirewall and C(absent) to - delete it. - default: present - choices: - - absent - - present + - Assert the state of the AzureFirewall. + - Use C(present) to create or update an AzureFirewall and C(absent) to delete it. + default: present + type: str + choices: + - absent + - present extends_documentation_fragment: - - azure - - azure_tags + - azure + - azure_tags author: - - Zim Kalinowski (@zikalino) - - Jurijs Fadejevs (@needgithubid) + - Zim Kalinowski (@zikalino) + - Jurijs Fadejevs (@needgithubid) ''' @@ -300,11 +313,11 @@ RETURN = ''' id: - description: - - Resource ID. - returned: always - type: str - sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/azureFirewalls/myAzureFirewall + description: + - Resource ID. + returned: always + type: str + sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Network/azureFirewalls/myAzureFirewall ''' import time diff --git a/library/azure_rm_azurefirewall_info.py b/library/azure_rm_azurefirewall_info.py index 3f612c8..d7c959e 100644 --- a/library/azure_rm_azurefirewall_info.py +++ b/library/azure_rm_azurefirewall_info.py @@ -17,22 +17,22 @@ --- module: azure_rm_azurefirewall_info version_added: '2.9' -short_description: Get AzureFirewall info. +short_description: Get AzureFirewall info description: - - Get info of AzureFirewall. + - Get info of AzureFirewall. options: - resource_group: - description: - - The name of the resource group. - type: str - name: - description: - - Resource name. - type: str + resource_group: + description: + - The name of the resource group. + type: str + name: + description: + - Resource name. + type: str extends_documentation_fragment: - - azure + - azure author: - - Liu Qingyi (@smile37773) + - Liu Qingyi (@smile37773) ''' @@ -51,62 +51,59 @@ RETURN = ''' firewalls: - description: >- - A list of dict results where the key is the name of the AzureFirewall and - the values are the facts for that AzureFirewall. - returned: always - type: complex - contains: - id: - description: - - Resource ID. - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ - myResourceGroup/providers/Microsoft.Network/azureFirewalls/myAzureFirewall" - name: - description: - - Resource name. - returned: always - type: str - sample: "myAzureFirewall" - location: - description: - - Resource location. - returned: always - type: str - sample: "eastus" - tags: - description: - - Resource tags. - returned: always - type: dict - sample: { "tag": "value" } - etag: - description: - - >- - Gets a unique read-only string that changes whenever the resource - is updated. - returned: always - type: str - sample: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" - nat_rule_collections: - description: - - Collection of NAT rule collections used by Azure Firewall. - type: list - network_rule_collections: - description: - - Collection of network rule collections used by Azure Firewall. - type: list - ip_configurations: - description: - - IP configuration of the Azure Firewall resource. - type: list - provisioning_state: - description: - - The current state of the gallery. - type: str - sample: "Succeeded" + description: + - A list of dict results where the key is the name of the AzureFirewall and the values are the facts for that AzureFirewall. + returned: always + type: complex + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/ + myResourceGroup/providers/Microsoft.Network/azureFirewalls/myAzureFirewall" + name: + description: + - Resource name. + returned: always + type: str + sample: "myAzureFirewall" + location: + description: + - Resource location. + returned: always + type: str + sample: "eastus" + tags: + description: + - Resource tags. + returned: always + type: dict + sample: { "tag": "value" } + etag: + description: + - Gets a unique read-only string that changes whenever the resource is updated. + returned: always + type: str + sample: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" + nat_rule_collections: + description: + - Collection of NAT rule collections used by Azure Firewall. + type: list + network_rule_collections: + description: + - Collection of network rule collections used by Azure Firewall. + type: list + ip_configurations: + description: + - IP configuration of the Azure Firewall resource. + type: list + provisioning_state: + description: + - The current state of the gallery. + type: str + sample: "Succeeded" ''' diff --git a/library/azure_rm_batchaccount.py b/library/azure_rm_batchaccount.py index 73cc47e..74ab717 100644 --- a/library/azure_rm_batchaccount.py +++ b/library/azure_rm_batchaccount.py @@ -28,58 +28,63 @@ --- module: azure_rm_batchaccount version_added: "2.9" -short_description: Manages a Batch Account on Azure. +short_description: Manages a Batch Account on Azure description: - Create, update and delete instance of Azure Batch Account. options: resource_group: description: - - The name of the resource group in which to create the Batch Account. + - The name of the resource group in which to create the Batch Account. required: true + type: str name: description: - - The name of the Batch Account. + - The name of the Batch Account. required: true + type: str location: description: - - Specifies the supported Azure location where the resource exists. + - Specifies the supported Azure location where the resource exists. + type: str auto_storage_account: description: - - Existing storage account with which to associate the Batch Account. - - It can be the storage account name which is in the same resource group. - - "It can be the storage account ID. e.g., - /subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.Storage/storageAccounts/{name}." - - It can be a dict which contains C(name) and C(resource_group) of the storage account. + - Existing storage account with which to associate the Batch Account. + - It can be the storage account name which is in the same resource group. + - It can be the storage account ID. Fox example "/subscriptions/{subscription_id}/resourceGroups/ + {resource_group}/providers/Microsoft.Storage/storageAccounts/{name}". + - It can be a dict which contains I(name) and I(resource_group) of the storage account. key_vault: description: - - Existing key vault with which to associate the Batch Account. - - It can be the key vault name which is in the same resource group. - - "It can be the key vault ID. e.g., - /subscriptions/{subscription_id}/resourceGroups/{resource_group}/providers/Microsoft.KeyVault/vaults/{name}." - - It can be a dict which contains C(name) and C(resource_group) of the key vault. + - Existing key vault with which to associate the Batch Account. + - It can be the key vault name which is in the same resource group. + - It can be the key vault ID. For example "/subscriptions/{subscription_id}/resourceGroups/ + {resource_group}/providers/Microsoft.KeyVault/vaults/{name}". + - It can be a dict which contains I(name) and I(resource_group) of the key vault. pool_allocation_mode: description: - - The pool acclocation mode of the Batch Account. + - The pool acclocation mode of the Batch Account. default: batch_service choices: - - batch_service - - user_subscription + - batch_service + - user_subscription + type: str state: description: - - Assert the state of the Batch Account. - - Use 'present' to create or update a Batch Account and 'absent' to delete it. + - Assert the state of the Batch Account. + - Use C(present) to create or update a Batch Account and C(absent) to delete it. default: present + type: str choices: - - present - - absent + - present + - absent extends_documentation_fragment: - azure - azure_tags author: - - "Junyi Yi (@JunyiYi)" + - Junyi Yi (@JunyiYi) ''' EXAMPLES = ''' @@ -96,13 +101,13 @@ RETURN = ''' id: description: - - The ID of the Batch account. + - The ID of the Batch account. returned: always type: str sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Batch/batchAccounts/sampleacct" account_endpoint: description: - - The account endpoint used to interact with the Batch service. + - The account endpoint used to interact with the Batch service. returned: always type: str sample: sampleacct.westus.batch.azure.com diff --git a/library/azure_rm_cdnendpoint.py b/library/azure_rm_cdnendpoint.py index 28c7fbe..a2db425 100644 --- a/library/azure_rm_cdnendpoint.py +++ b/library/azure_rm_cdnendpoint.py @@ -371,7 +371,7 @@ def exec_module(self, **kwargs): if not response: if self.started is None: - # If endpoint dosen't exist and no start/stop operation specified, create endpoint. + # If endpoint doesn't exist and no start/stop operation specified, create endpoint. if self.origins is None: self.fail("Origins is not provided when trying to create endpoint") self.log("Need to create the Azure CDN endpoint") diff --git a/library/azure_rm_cdnendpoint_info.py b/library/azure_rm_cdnendpoint_info.py index de2d869..bd1527c 100644 --- a/library/azure_rm_cdnendpoint_info.py +++ b/library/azure_rm_cdnendpoint_info.py @@ -155,7 +155,7 @@ sample: xxxxxxxx.blob.core.windows.net origin_path: description: - - A directory path on the origin that CDN can use to retreive content from. + - A directory path on the origin that CDN can use to retrieve content from. type: str sample: /pic/ tags: diff --git a/library/azure_rm_containerregistry.py b/library/azure_rm_containerregistry.py index 43ded0a..8ae6f8b 100644 --- a/library/azure_rm_containerregistry.py +++ b/library/azure_rm_containerregistry.py @@ -142,7 +142,7 @@ sample: pass2value tags: description: - - Tags assigned to the resource. Dictionary of string:string parirs. + - Tags assigned to the resource. Dictionary of string:string pairs. returned: always type: dict ''' diff --git a/library/azure_rm_containerregistry_info.py b/library/azure_rm_containerregistry_info.py index c1a8334..936fc23 100644 --- a/library/azure_rm_containerregistry_info.py +++ b/library/azure_rm_containerregistry_info.py @@ -110,7 +110,7 @@ credentials: description: - Credentials, fields will be empty if admin user is not enabled for ACR. - return: when C(retrieve_credentials) is set and C(admin_user_enabled) is set on ACR + returned: when C(retrieve_credentials) is set and C(admin_user_enabled) is set on ACR type: complex contains: username: diff --git a/library/azure_rm_cosmosdbaccount.py b/library/azure_rm_cosmosdbaccount.py index dbc1b96..a6bb199 100644 --- a/library/azure_rm_cosmosdbaccount.py +++ b/library/azure_rm_cosmosdbaccount.py @@ -441,7 +441,7 @@ def delete_databaseaccount(self): response = self.mgmt_client.database_accounts.delete(resource_group_name=self.resource_group, account_name=self.name) - # This currently doesnt' work as there is a bug in SDK / Service + # This currently doesn't work as there is a bug in SDK / Service # if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller): # response = self.get_poller_result(response) except CloudError as e: diff --git a/library/azure_rm_deployment.py b/library/azure_rm_deployment.py index f7eb82e..93f4103 100644 --- a/library/azure_rm_deployment.py +++ b/library/azure_rm_deployment.py @@ -327,8 +327,7 @@ - The Azure ID of the deployment. type: str returned: always - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myD - eployment" + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myDeployment" instances: description: - Provides the public IP addresses for each VM instance. diff --git a/library/azure_rm_deployment_info.py b/library/azure_rm_deployment_info.py index 9b6ac71..4c133e6 100644 --- a/library/azure_rm_deployment_info.py +++ b/library/azure_rm_deployment_info.py @@ -57,8 +57,7 @@ - The identifier of the resource. returned: always type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myD - eployment" + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Resources/deployments/myDeployment" resource_group: description: - Resource group name. diff --git a/library/azure_rm_devtestlabenvironment.py b/library/azure_rm_devtestlabenvironment.py index a575a4b..be47f35 100644 --- a/library/azure_rm_devtestlabenvironment.py +++ b/library/azure_rm_devtestlabenvironment.py @@ -242,7 +242,7 @@ def exec_module(self, **kwargs): return self.results self.delete_environment() - # This currently doesnt' work as there is a bug in SDK / Service + # This currently doesn't work as there is a bug in SDK / Service if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller): response = self.get_poller_result(response) else: diff --git a/library/azure_rm_devtestlabschedule.py b/library/azure_rm_devtestlabschedule.py index c7290f8..983e036 100644 --- a/library/azure_rm_devtestlabschedule.py +++ b/library/azure_rm_devtestlabschedule.py @@ -214,7 +214,7 @@ def exec_module(self, **kwargs): return self.results self.delete_schedule() - # This currently doesnt' work as there is a bug in SDK / Service + # This currently doesn't work as there is a bug in SDK / Service if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller): response = self.get_poller_result(response) else: diff --git a/library/azure_rm_devtestlabvirtualmachine_info.py b/library/azure_rm_devtestlabvirtualmachine_info.py index b41e100..e21b238 100644 --- a/library/azure_rm_devtestlabvirtualmachine_info.py +++ b/library/azure_rm_devtestlabvirtualmachine_info.py @@ -106,7 +106,7 @@ - Virtual machine expiration date. returned: always type: str - sample: 2029-02-22T01:49:12.117974Z + sample: "2029-02-22T01:49:12.117974Z" image: description: - Gallery image reference. diff --git a/library/azure_rm_devtestlabvirtualnetwork.py b/library/azure_rm_devtestlabvirtualnetwork.py index 837e2ef..5a2b1ef 100644 --- a/library/azure_rm_devtestlabvirtualnetwork.py +++ b/library/azure_rm_devtestlabvirtualnetwork.py @@ -208,7 +208,7 @@ def exec_module(self, **kwargs): if self.check_mode: return self.results self.delete_virtualnetwork() - # This currently doesnt' work as there is a bug in SDK / Service + # This currently doesn't work as there is a bug in SDK / Service if isinstance(response, LROPoller) or isinstance(response, AzureOperationPoller): response = self.get_poller_result(response) else: diff --git a/library/azure_rm_dnsrecordset.py b/library/azure_rm_dnsrecordset.py index 069284d..c1ae72f 100644 --- a/library/azure_rm_dnsrecordset.py +++ b/library/azure_rm_dnsrecordset.py @@ -187,43 +187,43 @@ fqdn: description: - Fully qualified domain name of the record set. - return: always + returned: always type: str sample: www.b57dc95985712e4523282.com etag: description: - The etag of the record set. - return: always + returned: always type: str sample: 692c3e92-a618-46fc-aecd-8f888807cd6c provisioning_state: description: - The DNS record set state. - return: always + returned: always type: str sample: Succeeded target_resource: description: - The target resource of the record set. - return: always + returned: always type: dict sample: {} ttl: description: - The TTL(time-to-live) of the records in the records set. - return: always + returned: always type: int sample: 3600 type: description: - The type of DNS record in this record set. - return: always + returned: always type: str sample: A arecords: description: - A list of records in the record set. - return: always + returned: always type: list sample: [ { diff --git a/library/azure_rm_gallery.py b/library/azure_rm_gallery.py index a29ee0d..3fee6df 100644 --- a/library/azure_rm_gallery.py +++ b/library/azure_rm_gallery.py @@ -17,48 +17,43 @@ --- module: azure_rm_gallery version_added: '2.9' -short_description: Manage Azure Shared Image Gallery instance. +short_description: Manage Azure Shared Image Gallery instance description: - - 'Create, update and delete instance of Azure Shared Image Gallery (SIG).' + - Create, update and delete instance of Azure Shared Image Gallery (SIG). options: - resource_group: + resource_group: + description: + - The name of the resource group. + required: true + type: str + name: + description: + - The name of the Shared Image Gallery. + - Valid names consist of less than 80 alphanumeric characters, underscores and periods. + required: true + type: str + location: + description: + - Resource location. + type: str description: - - The name of the resource group. - required: true - type: str - name: - description: - - >- - The name of the Shared Image Gallery. - Valid names consist of less than 80 alphanumeric characters, underscores and periods. - required: true - type: str - location: - description: - - Resource location - type: str - description: - description: - - >- - The description of this Shared Image Gallery resource. This property is - updatable. - type: str - state: - description: - - Assert the state of the Gallery. - - >- - Use C(present) to create or update an Gallery and C(absent) to delete - it. - default: present - type: str - choices: - - absent - - present + description: + - The description of this Shared Image Gallery resource. This property is updatable. + type: str + state: + description: + - Assert the state of the Gallery. + - Use C(present) to create or update an Gallery and C(absent) to delete it. + default: present + type: str + choices: + - absent + - present extends_documentation_fragment: - - azure - - azure_tags + - azure + - azure_tags author: - - Zim Kalinowski (@zikalino) + - Zim Kalinowski (@zikalino) ''' @@ -73,11 +68,11 @@ RETURN = ''' id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery1283" + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery1283" ''' import time @@ -141,7 +136,7 @@ def __init__(self): self.body = {} self.query_parameters = {} - self.query_parameters['api-version'] = '2019-03-01' + self.query_parameters['api-version'] = '2019-07-01' self.header_parameters = {} self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' diff --git a/library/azure_rm_gallery_info.py b/library/azure_rm_gallery_info.py index 745e3b2..98e4467 100644 --- a/library/azure_rm_gallery_info.py +++ b/library/azure_rm_gallery_info.py @@ -17,22 +17,22 @@ --- module: azure_rm_gallery_info version_added: '2.9' -short_description: Get Azure Shared Image Gallery info. +short_description: Get Azure Shared Image Gallery info description: - - Get info of Azure Shared Image Gallery. + - Get info of Azure Shared Image Gallery. options: - resource_group: - description: - - The name of the resource group. - type: str - name: - description: - - Resource name - type: str + resource_group: + description: + - The name of the resource group. + type: str + name: + description: + - Resource name + type: str extends_documentation_fragment: - - azure + - azure author: - - Liu Qingyi (@smile37773) + - Liu Qingyi (@smile37773) ''' @@ -51,47 +51,47 @@ RETURN = ''' galleries: - description: >- - A list of dict results where the key is the name of the gallery and the - values are the info for that gallery. - returned: always - type: complex - contains: - id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx - /resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery" - name: - description: - - Resource name - returned: always - type: str - sample: "myGallery" - location: - description: - - Resource location - returned: always - type: str - sample: "eastus" - tags: - description: - - Resource tags - returned: always - type: dict - sample: { "tag": "value" } description: - description: - - This is the gallery description. - type: str - sample: "This is the gallery description." - provisioning_state: + - A list of dict results where the key is the name of the gallery and the values are the info for that gallery. + returned: always + type: complex + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery" + name: + description: + - Resource name. + returned: always + type: str + sample: "myGallery" + location: + description: + - Resource location. + returned: always + type: str + sample: "eastus" + tags: + description: + - Resource tags. + returned: always + type: dict + sample: { "tag": "value" } description: - - The current state of the gallery. - type: str - sample: "Succeeded" + description: + - This is the gallery description. + returned: always + type: str + sample: "This is the gallery description." + provisioning_state: + description: + - The current state of the gallery. + returned: always + type: str + sample: "Succeeded" ''' diff --git a/library/azure_rm_galleryimage.py b/library/azure_rm_galleryimage.py index 6261268..6ef017c 100644 --- a/library/azure_rm_galleryimage.py +++ b/library/azure_rm_galleryimage.py @@ -17,169 +17,160 @@ --- module: azure_rm_galleryimage version_added: '2.9' -short_description: Manage Azure SIG Image instance. +short_description: Manage Azure SIG Image instance description: - - 'Create, update and delete instance of Azure SIG Image.' + - Create, update and delete instance of Azure SIG Image. options: - resource_group: - description: - - The name of the resource group. - required: true - type: str - gallery_name: - description: - - >- - The name of the Shared Image Gallery in which the Image Definition is to - be created. - required: true - type: str - name: - description: - - >- - The name of the gallery Image Definition to be created or updated. The - allowed characters are alphabets and numbers with dots, dashes, and - periods allowed in the middle. The maximum length is 80 characters. - required: true - type: str - location: - description: - - Resource location - type: str - description: - description: - - >- - The description of this gallery Image Definition resource. This property - is updatable. - type: str - eula: - description: - - The Eula agreement for the gallery Image Definition. - type: str - privacy_statement_uri: - description: - - The privacy statement uri. - type: str - release_note_uri: - description: - - The release note uri. - type: str - os_type: - description: - - >- - This property allows you to specify the type of the OS that is included - in the disk when creating a VM from a managed image. - choices: - - windows - - linux - required: true - type: str - os_state: - description: - - The allowed values for OS State are 'Generalized'. - choices: - - generalized - - specialized - required: true - type: str - end_of_life_date: - description: - - >- - The end of life date of the gallery Image Definition. This property can - be used for decommissioning purposes. This property is updatable. - Format should be according to ISO-8601, for instance "2019-06-26". - type: str - identifier: - description: - - Image identifier. - required: true - type: dict - suboptions: - publisher: + resource_group: description: - - The name of the gallery Image Definition publisher. + - The name of the resource group. required: true type: str - offer: + gallery_name: description: - - The name of the gallery Image Definition offer. + - The name of the Shared Image Gallery in which the Image Definition is to be created. required: true type: str - sku: + name: description: - - The name of the gallery Image Definition SKU. + - The name of the gallery Image Definition to be created or updated. + - The allowed characters are alphabets and numbers with dots, dashes, and periods allowed in the middle. + - The maximum length is 80 characters. required: true type: str - recommended: + location: + description: + - Resource location. + type: str description: - - Recommended parameter values. - type: dict - suboptions: - v_cpus: description: - - Number of virtual CPUs. + - The description of this gallery Image Definition resource. This property is updatable. + type: str + eula: + description: + - The Eula agreement for the gallery Image Definition. + type: str + privacy_statement_uri: + description: + - The privacy statement uri. + type: str + release_note_uri: + description: + - The release note uri. + type: str + os_type: + description: + - This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. + choices: + - windows + - linux + required: true + type: str + os_state: + description: + - The allowed values for OS State are C(generalized). + choices: + - generalized + - specialized + required: true + type: str + end_of_life_date: + description: + - The end of life date of the gallery Image Definition. + - This property can be used for decommissioning purposes. + - This property is updatable. + - Format should be according to ISO-8601, for instance "2019-06-26". + type: str + identifier: + description: + - Image identifier. + required: true type: dict suboptions: - min: - description: - - The minimum number of the resource. - type: int - max: - description: - - The maximum number of the resource. - type: int - memory: + publisher: + description: + - The name of the gallery Image Definition publisher. + required: true + type: str + offer: + description: + - The name of the gallery Image Definition offer. + required: true + type: str + sku: + description: + - The name of the gallery Image Definition SKU. + required: true + type: str + recommended: description: - - Memory. + - Recommended parameter values. type: dict suboptions: - min: - description: - - The minimum number of the resource. - type: int - max: - description: - - The maximum number of the resource. - type: int - disallowed: - description: - - Disalloved parameter values. - type: dict - suboptions: - disk_types: - description: - - A list of disallowed disk types. - type: list - purchase_plan: - description: - - Purchase plan. - type: dict - suboptions: - name: + v_cpus: + description: + - Number of virtual CPUs. + type: dict + suboptions: + min: + description: + - The minimum number of the resource. + type: int + max: + description: + - The maximum number of the resource. + type: int + memory: + description: + - Memory. + type: dict + suboptions: + min: + description: + - The minimum number of the resource. + type: int + max: + description: + - The maximum number of the resource. + type: int + disallowed: description: - - The plan ID. - type: str - publisher: + - Disallowed parameter values. + type: dict + suboptions: + disk_types: + description: + - A list of disallowed disk types. + type: list + purchase_plan: description: - - The publisher ID. - type: str - product: + - Purchase plan. + type: dict + suboptions: + name: + description: + - The plan ID. + type: str + publisher: + description: + - The publisher ID. + type: str + product: + description: + - The product ID. + type: str + state: description: - - The product ID. + - Assert the state of the GalleryImage. + - Use C(present) to create or update an GalleryImage and C(absent) to delete it. + default: present + choices: + - absent + - present type: str - state: - description: - - Assert the state of the GalleryImage. - - >- - Use C(present) to create or update an GalleryImage and C(absent) to - delete it. - default: present - choices: - - absent - - present - type: str extends_documentation_fragment: - - azure - - azure_tags + - azure + - azure_tags author: - Zim Kalinowski (@zikalino) @@ -202,11 +193,11 @@ RETURN = ''' id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalle + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalle ry1283/images/myImage" ''' @@ -379,7 +370,7 @@ def __init__(self): self.body = {} self.query_parameters = {} - self.query_parameters['api-version'] = '2019-03-01' + self.query_parameters['api-version'] = '2019-07-01' self.header_parameters = {} self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' diff --git a/library/azure_rm_galleryimage_info.py b/library/azure_rm_galleryimage_info.py index e58a1f4..e1f23c3 100644 --- a/library/azure_rm_galleryimage_info.py +++ b/library/azure_rm_galleryimage_info.py @@ -17,30 +17,28 @@ --- module: azure_rm_galleryimage_info version_added: '2.9' -short_description: Get Azure SIG Image info. +short_description: Get Azure SIG Image info description: - - Get info of Azure SIG Image. + - Get info of Azure SIG Image. options: - resource_group: - description: - - The name of the resource group. - type: str - required: true - gallery_name: - description: - - >- - The name of the shared image gallery from which the image definitions - are to be retrieved. - type: str - required: true - name: - description: - - Resource name - type: str + resource_group: + description: + - The name of the resource group. + type: str + required: true + gallery_name: + description: + - The name of the shared image gallery from which the image definitions are to be retrieved. + type: str + required: true + name: + description: + - Resource name. + type: str extends_documentation_fragment: - - azure + - azure author: - - Liu Qingyi (@smile37773) + - Liu Qingyi (@smile37773) ''' @@ -59,68 +57,66 @@ RETURN = ''' images: - description: >- - A list of dict results where the key is the name of the image and the - values are the info for that image. - returned: always - type: complex - contains: - id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup - /providers/Microsoft.Compute/galleries/myGallery/images/myImage" - name: - description: - - Resource name - returned: always - type: str - sample: myImage - location: - description: - - Resource location - returned: always - type: str - sample: "eastus" - tags: - description: - - Resource tags - returned: always - type: dict - sample: { "tag": "value" } - os_state: - description: - - The allowed values for OS State are 'Generalized'. - type: OperatingSystemStateTypes - sample: "Generalized" - os_type: - description: >- - This property allows you to specify the type of the OS that is included in the disk - when creating a VM from a managed image. - type: OperatingSystemTypes - sample: "linux/windows" - identifier: - description: - - This is the gallery image definition identifier. - type: dict - contains: - offer: - description: - - The name of the gallery image definition offer. - type: str - sample: "myOfferName" - publisher: - description: - - The name of the gallery image definition publisher. - type: str - sample: "myPublisherName" - sku: - description: - - The name of the gallery image definition sku. - type: str - sample: "mySkuName" + description: + - A list of dict results where the key is the name of the image and the values are the info for that image. + returned: always + type: complex + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup + /providers/Microsoft.Compute/galleries/myGallery/images/myImage" + name: + description: + - Resource name. + returned: always + type: str + sample: myImage + location: + description: + - Resource location. + returned: always + type: str + sample: "eastus" + tags: + description: + - Resource tags. + returned: always + type: dict + sample: { "tag": "value" } + os_state: + description: + - The allowed values for OS State are C(generalized). + type: OperatingSystemStateTypes + sample: "Generalized" + os_type: + description: + - This property allows you to specify the type of the OS that is included in the disk when creating a VM from a managed image. + type: OperatingSystemTypes + sample: "linux/windows" + identifier: + description: + - This is the gallery image definition identifier. + type: dict + contains: + offer: + description: + - The name of the gallery image definition offer. + type: str + sample: "myOfferName" + publisher: + description: + - The name of the gallery image definition publisher. + type: str + sample: "myPublisherName" + sku: + description: + - The name of the gallery image definition sku. + type: str + sample: "mySkuName" ''' diff --git a/library/azure_rm_galleryimageversion.py b/library/azure_rm_galleryimageversion.py index 1235b97..76f77f5 100644 --- a/library/azure_rm_galleryimageversion.py +++ b/library/azure_rm_galleryimageversion.py @@ -17,120 +17,103 @@ --- module: azure_rm_galleryimageversion version_added: '2.9' -short_description: Manage Azure SIG Image Version instance. +short_description: Manage Azure SIG Image Version instance description: - - 'Create, update and delete instance of Azure SIG Image Version.' + - Create, update and delete instance of Azure SIG Image Version. options: - resource_group: - description: - - The name of the resource group. - required: true - type: str - gallery_name: - description: - - >- - The name of the Shared Image Gallery in which the Image Definition - resides. - required: true - type: str - gallery_image_name: - description: - - >- - The name of the gallery Image Definition in which the Image Version is - to be created. - required: true - type: str - name: - description: - - >- - The name of the gallery Image Version to be created. Needs to follow - semantic version name pattern: The allowed characters are digit and - period. Digits must be within the range of a 32-bit integer. Format: - .. - required: true - type: str - location: - description: - - Resource location - type: str - publishing_profile: - description: - - Publishing profile. - required: true - type: dict - suboptions: - target_regions: - description: - - >- - The target regions where the Image Version is going to be replicated - to. This property is updatable. - type: list - suboptions: - name: - description: - - Region name. - type: str - regional_replica_count: - description: - - >- - The number of replicas of the Image Version to be created per - region. This property would take effect for a region when - regionalReplicaCount is not specified. This property is updatable. - type: str - storage_account_type: - description: - - Storage account type. - type: str - managed_image: + resource_group: description: - - Managed image reference, could be resource id, or dictionary containing C(resource_group) and C(name) - type: raw - snapshot: + - The name of the resource group. + required: true + type: str + gallery_name: description: - - Source snapshot to be used. - type: raw - replica_count: + - The name of the Shared Image Gallery in which the Image Definition resides. + required: true + type: str + gallery_image_name: description: - - >- - The number of replicas of the Image Version to be created per - region. This property would take effect for a region when - regionalReplicaCount is not specified. This property is updatable. - type: number - exclude_from_latest: + - The name of the gallery Image Definition in which the Image Version is to be created. + required: true + type: str + name: description: - - >- - If set to true, Virtual Machines deployed from the latest version of - the Image Definition won't use this Image Version. - type: bool - end_of_life_date: + - The name of the gallery Image Version to be created. + - Needs to follow semantic version name pattern, The allowed characters are digit and period. + - Digits must be within the range of a 32-bit integer. For example ... + required: true + type: str + location: description: - - >- - The end of life date of the gallery Image Version. This property can - be used for decommissioning purposes. This property is updatable. - Format should be according to ISO-8601, for instance "2019-06-26". + - Resource location. type: str - storage_account_type: + publishing_profile: description: - - >- - Specifies the storage account type to be used to store the image. - This property is not updatable. + - Publishing profile. + required: true + type: dict + suboptions: + target_regions: + description: + - The target regions where the Image Version is going to be replicated to. + - This property is updatable. + type: list + suboptions: + name: + description: + - Region name. + type: str + regional_replica_count: + description: + - The number of replicas of the Image Version to be created per region. + - This property would take effect for a region when regionalReplicaCount is not specified. + - This property is updatable. + type: str + storage_account_type: + description: + - Storage account type. + type: str + managed_image: + description: + - Managed image reference, could be resource ID, or dictionary containing I(resource_group) and I(name). + snapshot: + description: + - Source snapshot to be used. + replica_count: + description: + - The number of replicas of the Image Version to be created per region. + - This property would take effect for a region when regionalReplicaCount is not specified. + - This property is updatable. + type: int + exclude_from_latest: + description: + If I(exclude_from_latest=true), Virtual Machines deployed from the latest version of the Image Definition won't use this Image Version. + type: bool + end_of_life_date: + description: + - The end of life date of the gallery Image Version. + - This property can be used for decommissioning purposes. + - This property is updatable. Format should be according to ISO-8601, for instance "2019-06-26". + type: str + storage_account_type: + description: + - Specifies the storage account type to be used to store the image. + - This property is not updatable. + type: str + state: + description: + - Assert the state of the GalleryImageVersion. + - Use C(present) to create or update an GalleryImageVersion and C(absent) to delete it. + default: present + choices: + - absent + - present type: str - state: - description: - - Assert the state of the GalleryImageVersion. - - >- - Use C(present) to create or update an GalleryImageVersion and C(absent) - to delete it. - default: present - choices: - - absent - - present - type: str extends_documentation_fragment: - - azure - - azure_tags + - azure + - azure_tags author: - - Zim Kalinowski (@zikalino) + - Zim Kalinowski (@zikalino) ''' @@ -160,11 +143,11 @@ RETURN = ''' id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalle + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGalle ry1283/images/myImage/versions/10.1.3" ''' @@ -215,7 +198,8 @@ def __init__(self): location=dict( type='str', updatable=False, - disposition='/' + disposition='/', + comparison='location' ), publishing_profile=dict( type='dict', @@ -227,7 +211,8 @@ def __init__(self): options=dict( name=dict( type='str', - required=True + required=True, + comparison='location' ), regional_replica_count=dict( type='int', @@ -244,14 +229,14 @@ def __init__(self): pattern=('/subscriptions/{subscription_id}/resourceGroups' '/{resource_group}/providers/Microsoft.Compute' '/images/{name}'), - disposition='source/managedImage/id' + comparison='ignore' ), snapshot=dict( type='raw', pattern=('/subscriptions/{subscription_id}/resourceGroups' '/{resource_group}/providers/Microsoft.Compute' '/snapshots/{name}'), - disposition='source/managedImage/id' + comparison='ignore' ), replica_count=dict( type='int', @@ -295,7 +280,7 @@ def __init__(self): self.body = {} self.query_parameters = {} - self.query_parameters['api-version'] = '2019-03-01' + self.query_parameters['api-version'] = '2019-07-01' self.header_parameters = {} self.header_parameters['Content-Type'] = 'application/json; charset=utf-8' @@ -363,9 +348,13 @@ def exec_module(self, **kwargs): if not self.default_compare(modifiers, self.body, old_response, '', self.results): self.to_do = Actions.Update - # fix leftovers (if empty structures were left) - self.body.get('properties', {}).get('publishingProfile', {}).pop('snapshot', None) - self.body.get('properties', {}).get('publishingProfile', {}).pop('managed_image', None) + # fix for differences between version 2019-03-01 and 2019-07-01 + snapshot = self.body.get('properties', {}).get('publishingProfile', {}).pop('snapshot', None) + if snapshot is not None: + self.body['properties'].setdefault('storageProfile', {}).setdefault('osDiskImage', {}).setdefault('source', {})['id'] = snapshot + managed_image = self.body.get('properties', {}).get('publishingProfile', {}).pop('managed_image', None) + if managed_image: + self.body['properties'].setdefault('storageProfile', {}).setdefault('source', {})['id'] = managed_image if (self.to_do == Actions.Create) or (self.to_do == Actions.Update): self.log('Need to Create / Update the GalleryImageVersion instance') @@ -393,7 +382,6 @@ def exec_module(self, **kwargs): if response: self.results["id"] = response["id"] - self.results["old_response"] = response return self.results diff --git a/library/azure_rm_galleryimageversion_info.py b/library/azure_rm_galleryimageversion_info.py index 3e61b48..a5d5339 100644 --- a/library/azure_rm_galleryimageversion_info.py +++ b/library/azure_rm_galleryimageversion_info.py @@ -17,37 +17,33 @@ --- module: azure_rm_galleryimageversion_info version_added: '2.9' -short_description: Get Azure SIG Image Version info. +short_description: Get Azure SIG Image Version info description: - - Get info of Azure SIG Image Version. + - Get info of Azure SIG Image Version. options: - resource_group: - description: - - The name of the resource group. - type: str - required: true - gallery_name: - description: - - >- - The name of the Shared Image Gallery in which the Image Definition - resides. - type: str - required: true - gallery_image_name: - description: - - >- - The name of the gallery Image Definition in which the Image Version - resides. - type: str - required: true - name: - description: - - Resource name - type: str + resource_group: + description: + - The name of the resource group. + type: str + required: true + gallery_name: + description: + - The name of the Shared Image Gallery in which the Image Definition resides. + type: str + required: true + gallery_image_name: + description: + - The name of the gallery Image Definition in which the Image Version resides. + type: str + required: true + name: + description: + - Resource name. + type: str extends_documentation_fragment: - - azure + - azure author: - - Liu Qingyi (@smile37773) + - Liu Qingyi (@smile37773) ''' @@ -68,47 +64,45 @@ RETURN = ''' versions: - description: >- - A list of dict results where the key is the name of the version - and the values are the info for that version. - returned: always - type: complex - contains: - id: - description: - - Resource Id - returned: always - type: str - sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups - /myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/ - images/myImage/versions/myVersion" - name: - description: - - Resource name - returned: always - type: str - sample: "myVersion" - location: - description: - - Resource location - returned: always - type: str - sample: "eastus" - tags: - description: - - Resource tags - returned: always - type: dict - sample: { "tag": "value" } - publishing_profile: - description: - - The publishing profile of a gallery image version. - type: dict - provisioning_state: - description: - - The current state of the gallery. - type: str - sample: "Succeeded" + description: + A list of dict results where the key is the name of the version and the values are the info for that version. + returned: always + type: complex + contains: + id: + description: + - Resource ID. + returned: always + type: str + sample: "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups + /myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/images/myImage/versions/myVersion" + name: + description: + - Resource name. + returned: always + type: str + sample: "myVersion" + location: + description: + - Resource location. + returned: always + type: str + sample: "eastus" + tags: + description: + - Resource tags. + returned: always + type: dict + sample: { "tag": "value" } + publishing_profile: + description: + - The publishing profile of a gallery image version. + type: dict + provisioning_state: + description: + - The current state of the gallery. + type: str + sample: "Succeeded" ''' diff --git a/library/azure_rm_hdinsightcluster_info.py b/library/azure_rm_hdinsightcluster_info.py index 9a703e9..296fdec 100644 --- a/library/azure_rm_hdinsightcluster_info.py +++ b/library/azure_rm_hdinsightcluster_info.py @@ -114,7 +114,7 @@ description: - The list of roles in the cluster. type: list - suboptions: + contains: name: description: - The name of the role. diff --git a/library/azure_rm_iothub.py b/library/azure_rm_iothub.py index 1321c23..56684af 100644 --- a/library/azure_rm_iothub.py +++ b/library/azure_rm_iothub.py @@ -139,7 +139,7 @@ connection_string: description: - Connection string of the custom endpoint. - - The connection string should have send priviledge. + - The connection string should have send privilege. type: str required: yes container: diff --git a/library/azure_rm_keyvaultkey_info.py b/library/azure_rm_keyvaultkey_info.py index 0e7e7e8..14251e8 100644 --- a/library/azure_rm_keyvaultkey_info.py +++ b/library/azure_rm_keyvaultkey_info.py @@ -17,7 +17,7 @@ --- module: azure_rm_keyvaultkey_info version_added: "2.9" -short_description: Get Azure Key Vault key facts. +short_description: Get Azure Key Vault key facts description: - Get facts of Azure Key Vault key. @@ -29,19 +29,19 @@ type: str name: description: - - Key name. If not set, will list all keys in vault_uri. + - Key name. If not set, will list all keys in I(vault_uri). type: str version: description: - Key version. - Set it to C(current) to show latest version of a key. - Set it to C(all) to list all versions of a key. - - Set it to specific version to list specific version of a key. eg. fd2682392a504455b79c90dd04a1bf46 + - Set it to specific version to list specific version of a key. eg. fd2682392a504455b79c90dd04a1bf46. default: current type: str show_deleted_key: description: - - Set to true to show deleted keys. Set to False to show not deleted keys. + - Set to C(true) to show deleted keys. Set to C(false) to show not deleted keys. type: bool default: false tags: @@ -53,7 +53,7 @@ - azure author: - - "Yunge Zhu (@yungezz)" + - Yunge Zhu (@yungezz) ''' @@ -87,52 +87,62 @@ RETURN = ''' keyvaults: - description: List of keys in Azure Key Vault. + description: + - List of keys in Azure Key Vault. returned: always type: complex contains: kid: - description: Key identifier. + description: + - Key identifier. returned: always type: str sample: "https://myVault.vault.azure.net/keys/key1/fd2682392a504455b79c90dd04a1bf46" permitted_operations: description: - - Permitted operations on the key + - Permitted operations on the key. type: list returned: always sample: encrypt type: - description: Key type. + description: + - Key type. type: str returned: always sample: RSA version: - description: Key version. + description: + - Key version. type: str returned: always sample: fd2682392a504455b79c90dd04a1bf46 key: - description: public part of a key. + description: + - public part of a key. contains: n: - description: RSA modules. + description: + - RSA modules. type: str e: - description: RSA public exponent. + description: + - RSA public exponent. type: str crv: - description: Elliptic curve name. + description: + - Elliptic curve name. type: str x: - description: X component of an EC public key. + description: + - X component of an EC public key. type: str y: - description: Y component of an EC public key. + description: + - Y component of an EC public key. type: str managed: description: - - True if the key's lifetime is managed by key vault. + - C(True) if the key's lifetime is managed by key vault. type: bool sample: True tags: @@ -140,7 +150,7 @@ - Tags of the key. returned: always type: list - sample: foo + sample: [foo, ] attributes: description: - Key attributes. @@ -176,7 +186,7 @@ recovery_level: description: - Reflects the deletion recovery level currently in effect for keys in the current vault. - - If it contains 'Purgeable' the key can be permanently deleted by a privileged user, + - If it contains C(Purgeable) the key can be permanently deleted by a privileged user. - Otherwise, only the system can purge the key, at the end of the retention interval. returned: always type: str @@ -387,7 +397,7 @@ def list_keys(self): ''' Lists keys in specific key vault. - :return: deserialized keys, incldues key identifier, attributes and tags. + :return: deserialized keys, includes key identifier, attributes and tags. ''' self.log("Get the key vaults in current subscription") @@ -429,13 +439,13 @@ def list_deleted_keys(self): ''' Lists deleted keys in specific key vault. - :return: deserialized keys, incldues key identifier, attributes and tags. + :return: deserialized keys, includes key identifier, attributes and tags. ''' self.log("Get the key vaults in current subscription") results = [] try: - response = self._client.get_deleted_keys(vault_base_url=self.vault) + response = self._client.get_deleted_keys(vault_base_url=self.vault_uri) self.log("Response : {0}".format(response)) if response: diff --git a/library/azure_rm_lock.py b/library/azure_rm_lock.py index 932a164..88cc5bf 100644 --- a/library/azure_rm_lock.py +++ b/library/azure_rm_lock.py @@ -31,7 +31,7 @@ managed_resource_id: description: - Manage a lock for the specified resource ID. - - Mututally exclusive with I(resource_group). + - Mutually exclusive with I(resource_group). - If neither I(managed_resource_id) or I(resource_group) are specified, manage a lock for the current subscription. - "'/subscriptions/{subscriptionId}' for subscriptions." - "'/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups." diff --git a/library/azure_rm_lock_info.py b/library/azure_rm_lock_info.py index cf8c1d1..d0761d2 100644 --- a/library/azure_rm_lock_info.py +++ b/library/azure_rm_lock_info.py @@ -30,7 +30,7 @@ description: - ID of the resource where need to manage the lock. - Get this via facts module. - - Cannot be set mutal with I(resource_group). + - Cannot be set mutual with I(resource_group). - Manage subscription if both I(managed_resource_id) and I(resource_group) not defined. - "'/subscriptions/{subscriptionId}' for subscriptions." - "'/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}' for resource groups." @@ -41,7 +41,7 @@ description: - Resource group name where need to manage the lock. - The lock is in the resource group level. - - Cannot be set mutal with I(managed_resource_id). + - Cannot be set mutual with I(managed_resource_id). - Query subscription if both I(managed_resource_id) and I(resource_group) not defined. - Can get all locks with 'child scope' in this resource group, use the I(managed_resource_id) in response for further management. type: str diff --git a/library/azure_rm_manageddisk.py b/library/azure_rm_manageddisk.py index e630f1b..5ea2240 100644 --- a/library/azure_rm_manageddisk.py +++ b/library/azure_rm_manageddisk.py @@ -158,7 +158,7 @@ disk_size_gb: 4 - name: Delete managed disk - azure_rm_manage_disk: + azure_rm_manageddisk: name: mymanageddisk location: eastus resource_group: myResourceGroup diff --git a/library/azure_rm_publicipaddress.py b/library/azure_rm_publicipaddress.py index 769f8cc..1a3435a 100644 --- a/library/azure_rm_publicipaddress.py +++ b/library/azure_rm_publicipaddress.py @@ -131,7 +131,7 @@ dns_settings: description: - The FQDN of the DNS record associated with the public IP address. - returns: always + returned: always type: dict sample: { "domain_name_label": "ansible-b57dc95985712e45eb8b9c2e", @@ -141,49 +141,49 @@ etag: description: - A unique read-only string that changes whenever the resource is updated. - returns: always + returned: always type: str sample: "W/'1905ee13-7623-45b1-bc6b-4a12b2fb9d15'" idle_timeout_in_minutes: description: - The idle timeout of the public IP address. - returns: always + returned: always type: int sample: 4 ip_address: description: - The Public IP Prefix this Public IP Address should be allocated from. - returns: always + returned: always type: str sample: 52.160.103.93 location: description: - Resource location. - returns: always + returned: always type: str example: eastus name: description: - Name of the Public IP Address. - returns: always + returned: always type: str example: publicip002 provisioning_state: description: - The provisioning state of the Public IP resource. - returns: always + returned: always type: str example: Succeeded public_ip_allocation_method: description: - The public IP allocation method. - returns: always + returned: always type: str sample: static public_ip_address_version: description: - The public IP address version. - returns: always + returned: always type: str sample: ipv4 sku: @@ -195,7 +195,7 @@ tags: description: - The resource tags. - returns: always + returned: always type: dict sample: { "delete": "on-exit", @@ -204,7 +204,7 @@ type: description: - Type of the resource. - returns: always + returned: always type: str sample: "Microsoft.Network/publicIPAddresses" ''' diff --git a/library/azure_rm_rediscache.py b/library/azure_rm_rediscache.py index 24471cf..b6a095a 100644 --- a/library/azure_rm_rediscache.py +++ b/library/azure_rm_rediscache.py @@ -92,6 +92,7 @@ description: - Allows clients to receive notifications when certain events occur. - Please see U(https://docs.microsoft.com/en-us/azure/redis-cache/cache-configure#advanced-settings) for more detail. + type: str shard_count: description: - The number of shards to be created when I(sku=premium). @@ -353,7 +354,7 @@ def __init__(self): ] ), notify_keyspace_events=dict( - type='int' + type='str' ), shard_count=dict( type='int' diff --git a/library/azure_rm_resource.py b/library/azure_rm_resource.py index 75aa0b3..6ea3e3b 100644 --- a/library/azure_rm_resource.py +++ b/library/azure_rm_resource.py @@ -203,7 +203,7 @@ "tier": "Standard" } tags: - decription: + description: - Resource tags. type: dict returned: always diff --git a/library/azure_rm_resource_info.py b/library/azure_rm_resource_info.py index 44c6f21..354cd79 100644 --- a/library/azure_rm_resource_info.py +++ b/library/azure_rm_resource_info.py @@ -164,7 +164,7 @@ allowExtensionOperations: description: - Specifies whether extension operations should be allowed on the virtual machine. - - This may only be set to False when no extentions are present on the virtual machine. + - This may only be set to False when no extensions are present on the virtual machine. type: bool returned: always sample: true @@ -176,7 +176,7 @@ sample: myVM requireGuestProvisionSignale: description: - - Specifies the host require guest provision siganl or not. + - Specifies the host require guest provision signal or not. type: bool returned: always sample: true @@ -188,7 +188,7 @@ sample: [] linuxConfiguration: description: - - Specifies the Linux operatiing system settings on the virtual machine. + - Specifies the Linux operating system settings on the virtual machine. type: dict returned: when OS type is Linux sample: { @@ -203,14 +203,14 @@ sample: Succeeded vmID: description: - - Specifies the VM unique ID whic is a 128-bits identifier that is encoded and stored in all Azure laaS VMs SMBIOS. + - Specifies the VM unique ID which is a 128-bits identifier that is encoded and stored in all Azure laaS VMs SMBIOS. - It can be read using platform BIOS commands. type: str returned: always sample: "eb86d9bb-6725-4787-a487-2e497d5b340c" storageProfile: description: - - Specifies the storae account type for the managed disk. + - Specifies the storage account type for the managed disk. type: complex returned: always contains: diff --git a/library/azure_rm_roleassignment_info.py b/library/azure_rm_roleassignment_info.py index e12b0c2..7a9ee39 100644 --- a/library/azure_rm_roleassignment_info.py +++ b/library/azure_rm_roleassignment_info.py @@ -78,7 +78,7 @@ returned: always sample: myRoleAssignment type: - descripition: + description: - Type of role assignment. type: str returned: always diff --git a/library/azure_rm_roledefinition.py b/library/azure_rm_roledefinition.py index 719d04d..30308ee 100644 --- a/library/azure_rm_roledefinition.py +++ b/library/azure_rm_roledefinition.py @@ -28,7 +28,7 @@ required: True permissions: description: - - Set of role definition peremissions. + - Set of role definition permissions. - See U(https://docs.microsoft.com/en-us/azure/app-service/app-service-web-overview) for more info. suboptions: actions: @@ -250,7 +250,7 @@ def exec_module(self, **kwargs): elif self.state == 'absent': if old_response: - self.log("Delete role defintion") + self.log("Delete role definition") self.results['changed'] = True if self.check_mode: diff --git a/library/azure_rm_roledefinition_info.py b/library/azure_rm_roledefinition_info.py index e887732..c8fe878 100644 --- a/library/azure_rm_roledefinition_info.py +++ b/library/azure_rm_roledefinition_info.py @@ -24,7 +24,7 @@ options: scope: description: - - The scope of role defintion. + - The scope of role definition. required: True id: description: diff --git a/library/azure_rm_securitygroup.py b/library/azure_rm_securitygroup.py index 3fecdd9..a399d6a 100644 --- a/library/azure_rm_securitygroup.py +++ b/library/azure_rm_securitygroup.py @@ -329,7 +329,7 @@ sample: "westus" name: description: - - Name of the secrurity group. + - Name of the security group. returned: always type: str sample: "mysecgroup" diff --git a/library/azure_rm_securitygroup_info.py b/library/azure_rm_securitygroup_info.py index dfb00bb..e9acb52 100644 --- a/library/azure_rm_securitygroup_info.py +++ b/library/azure_rm_securitygroup_info.py @@ -209,7 +209,7 @@ "securityRules": [] } tags: - descripition: + description: - Tags to assign to the security group. returned: always type: dict diff --git a/library/azure_rm_servicebus_info.py b/library/azure_rm_servicebus_info.py index 672edfc..7e91e40 100644 --- a/library/azure_rm_servicebus_info.py +++ b/library/azure_rm_servicebus_info.py @@ -196,7 +196,7 @@ sample: 1 count_details: description: - - Message count deatils. + - Message count details. returned: always type: complex contains: diff --git a/library/azure_rm_snapshot.py b/library/azure_rm_snapshot.py index 5e87971..759fd2d 100644 --- a/library/azure_rm_snapshot.py +++ b/library/azure_rm_snapshot.py @@ -19,81 +19,80 @@ version_added: '2.9' short_description: Manage Azure Snapshot instance. description: - - 'Create, update and delete instance of Azure Snapshot.' + - Create, update and delete instance of Azure Snapshot. options: - resource_group: - description: - - The name of the resource group. - required: true - type: str - name: - description: - - Resource name - type: str - location: - description: - - Resource location - type: str - sku: - description: - - SKU - type: dict - suboptions: - name: + resource_group: description: - - The sku name. + - The name of the resource group. + required: true type: str - choices: - - Standard_LRS - - Premium_LRS - - Standard_ZRS - tier: + name: description: - - The sku tier. + - Resource name. type: str - os_type: - description: - - The Operating System type. - type: str - choices: - - Linux - - Windows - creation_data: - description: - - >- - Disk source information. CreationData information cannot be changed - after the disk has been created. - type: dict - suboptions: - create_option: + location: description: - - This enumerates the possible sources of a disk's creation. + - Resource location. + type: str + sku: + description: + - The snapshots SKU. + type: dict + suboptions: + name: + description: + - The sku name. + type: str + choices: + - Standard_LRS + - Premium_LRS + - Standard_ZRS + tier: + description: + - The sku tier. + type: str + os_type: + description: + - The Operating System type. type: str - default: Import choices: - - Import - source_uri: + - Linux + - Windows + creation_data: description: - - >- - If createOption is Import, this is the URI of a blob to be imported - into a managed disk. + - Disk source information. + - CreationData information cannot be changed after the disk has been created. + type: dict + suboptions: + create_option: + description: + - This enumerates the possible sources of a disk's creation. + type: str + choices: + - Import + - Copy + source_uri: + description: + - If I(createOption=Import), this is the URI of a blob to be imported into a managed disk. + type: str + source_id: + description: + - If I(createOption=Copy), this is the resource ID of a managed disk to be copied from. + type: str + state: + description: + - Assert the state of the Snapshot. + - Use C(present) to create or update an Snapshot and C(absent) to delete it. + default: present type: str - state: - description: - - Assert the state of the Snapshot. - - >- - Use C(present) to create or update an Snapshot and C(absent) to delete - it. - default: present - type: str - choices: - - absent - - present + choices: + - absent + - present extends_documentation_fragment: - - azure - - azure_tags + - azure + - azure_tags author: - - Zim Kalinowski (@zikalino) + - Zim Kalinowski (@zikalino) ''' @@ -106,23 +105,30 @@ creation_data: create_option: Import source_uri: 'https://mystorageaccount.blob.core.windows.net/osimages/osimage.vhd' + +- name: Create a snapshot by copying an existing managed disk. + azure_rm_snapshot: + resource_group: myResourceGroup + name: mySnapshot + location: eastus + creation_data: + create_option: Copy + source_id: '/subscriptions/sub123/resourceGroups/group123/providers/Microsoft.Compute/disks/disk123' ''' RETURN = ''' id: - description: - - Resource Id - returned: always - type: str - sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot + description: + - Resource ID. + returned: always + type: str + sample: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Compute/snapshots/mySnapshot ''' import time import json -import re from ansible.module_utils.azure_rm_common_ext import AzureRMModuleBaseExt from ansible.module_utils.azure_rm_common_rest import GenericRestClient -from copy import deepcopy try: from msrestazure.azure_exceptions import CloudError except ImportError: @@ -182,12 +188,17 @@ def __init__(self): create_option=dict( type='str', disposition='createOption', - choices=['Import'], - default='Import' + choices=['Import', 'Copy'], ), source_uri=dict( type='str', - disposition='sourceUri' + disposition='sourceUri', + purgeIfNone=True + ), + source_id=dict( + type='str', + disposition='sourceResourceId', + purgeIfNone=True ) ) ), @@ -360,6 +371,7 @@ def get_resource(self): expected_status_codes=self.status_code, polling_timeout=600, polling_interval=30) + response = json.loads(response.text) found = True self.log("Response : {0}".format(response)) # self.log("Snapshot instance : {0} found".format(response.name)) diff --git a/library/azure_rm_storageaccount_info.py b/library/azure_rm_storageaccount_info.py index 13fb556..5849e9e 100644 --- a/library/azure_rm_storageaccount_info.py +++ b/library/azure_rm_storageaccount_info.py @@ -435,7 +435,7 @@ def list_resource_group(self): def list_all(self): self.log('List all items') try: - response = self.storage_client.storage_accounts.list_by_resource_group(self.resource_group) + response = self.storage_client.storage_accounts.list() except Exception as exc: self.fail("Error listing all items - {0}".format(str(exc))) diff --git a/library/azure_rm_subnet_info.py b/library/azure_rm_subnet_info.py index 697f7a0..6bf4e83 100644 --- a/library/azure_rm_subnet_info.py +++ b/library/azure_rm_subnet_info.py @@ -118,7 +118,6 @@ - The type of the endpoint service. returned: always type: str - required: True sample: Microsoft.Sql locations: description: diff --git a/library/azure_rm_virtualmachine.py b/library/azure_rm_virtualmachine.py index 3edd3fb..05c451d 100644 --- a/library/azure_rm_virtualmachine.py +++ b/library/azure_rm_virtualmachine.py @@ -527,7 +527,7 @@ image: id: '{{image_id}}' -- name: Create VM with spcified OS disk size +- name: Create VM with specified OS disk size azure_rm_virtualmachine: resource_group: myResourceGroup name: big-os-disk @@ -790,7 +790,7 @@ def extract_names_from_blob_uri(blob_uri, storage_suffix): # HACK: ditch this once python SDK supports get by URI - m = re.match(r'^https://(?P[^.]+)\.blob\.{0}/' + m = re.match(r'^https?://(?P[^.]+)\.blob\.{0}/' r'(?P[^/]+)/(?P.+)$'.format(storage_suffix), blob_uri) if not m: raise Exception("unable to parse blob uri '%s'" % blob_uri) @@ -1204,10 +1204,6 @@ def exec_module(self, **kwargs): self.log("Create virtual machine {0}".format(self.name)) self.results['actions'].append('Created VM {0}'.format(self.name)) - # Validate parameters - if not self.admin_username: - self.fail("Parameter error: admin_username required when creating a virtual machine.") - if self.os_type == 'Linux': if disable_ssh_password and not self.ssh_public_keys: self.fail("Parameter error: ssh_public_keys required when disabling SSH password.") @@ -1272,13 +1268,16 @@ def exec_module(self, **kwargs): if self.boot_diagnostics_present and self.boot_diagnostics['enabled']: boot_diag_storage_account = self.get_boot_diagnostics_storage_account() + os_profile = None + if self.admin_username: + os_profile = self.compute_models.OSProfile( + admin_username=self.admin_username, + computer_name=self.short_hostname, + ) vm_resource = self.compute_models.VirtualMachine( location=self.location, tags=self.tags, - os_profile=self.compute_models.OSProfile( - admin_username=self.admin_username, - computer_name=self.short_hostname, - ), + os_profile=os_profile, hardware_profile=self.compute_models.HardwareProfile( vm_size=self.vm_size ), @@ -1354,7 +1353,7 @@ def exec_module(self, **kwargs): # Azure SDK (erroneously?) wants native string type for this vm_resource.os_profile.custom_data = to_native(base64.b64encode(to_bytes(self.custom_data))) - if self.os_type == 'Linux': + if self.os_type == 'Linux' and os_profile: vm_resource.os_profile.linux_configuration = self.compute_models.LinuxConfiguration( disable_password_authentication=disable_ssh_password ) @@ -1884,7 +1883,7 @@ def delete_storage_account(self, resource_group, name): return True def delete_vm_storage(self, vhd_uris): - # FUTURE: figure out a cloud_env indepdendent way to delete these + # FUTURE: figure out a cloud_env independent way to delete these for uri in vhd_uris: self.log("Extracting info from blob uri '{0}'".format(uri)) try: diff --git a/library/azure_rm_virtualmachinescaleset.py b/library/azure_rm_virtualmachinescaleset.py index 24396ec..da27187 100644 --- a/library/azure_rm_virtualmachinescaleset.py +++ b/library/azure_rm_virtualmachinescaleset.py @@ -733,10 +733,6 @@ def exec_module(self, **kwargs): self.log("Create virtual machine scale set {0}".format(self.name)) self.results['actions'].append('Created VMSS {0}'.format(self.name)) - # Validate parameters - if not self.admin_username: - self.fail("Parameter error: admin_username required when creating a virtual machine scale set.") - if self.os_type == 'Linux': if disable_ssh_password and not self.ssh_public_keys: self.fail("Parameter error: ssh_public_keys required when disabling SSH password.") @@ -762,6 +758,14 @@ def exec_module(self, **kwargs): if nsg: self.security_group = self.network_models.NetworkSecurityGroup(id=nsg.get('id')) + os_profile = None + if self.admin_username or self.custom_data or self.ssh_public_keys: + os_profile = self.compute_models.VirtualMachineScaleSetOSProfile( + admin_username=self.admin_username, + computer_name_prefix=self.short_hostname, + custom_data=self.custom_data + ) + vmss_resource = self.compute_models.VirtualMachineScaleSet( location=self.location, overprovision=self.overprovision, @@ -776,11 +780,7 @@ def exec_module(self, **kwargs): tier=self.tier, ), virtual_machine_profile=self.compute_models.VirtualMachineScaleSetVMProfile( - os_profile=self.compute_models.VirtualMachineScaleSetOSProfile( - admin_username=self.admin_username, - computer_name_prefix=self.short_hostname, - custom_data=self.custom_data - ), + os_profile=os_profile, storage_profile=self.compute_models.VirtualMachineScaleSetStorageProfile( os_disk=self.compute_models.VirtualMachineScaleSetOSDisk( managed_disk=managed_disk, @@ -818,7 +818,7 @@ def exec_module(self, **kwargs): if self.admin_password: vmss_resource.virtual_machine_profile.os_profile.admin_password = self.admin_password - if self.os_type == 'Linux': + if self.os_type == 'Linux' and os_profile: vmss_resource.virtual_machine_profile.os_profile.linux_configuration = self.compute_models.LinuxConfiguration( disable_password_authentication=disable_ssh_password ) diff --git a/library/azure_rm_virtualmachinescalesetinstance.py b/library/azure_rm_virtualmachinescalesetinstance.py index 2cbacfe..966a88f 100644 --- a/library/azure_rm_virtualmachinescalesetinstance.py +++ b/library/azure_rm_virtualmachinescalesetinstance.py @@ -64,7 +64,7 @@ EXAMPLES = ''' - name: Upgrade instance to the latest image - azure_rm_computevirtualmachinescalesetinstance: + azure_rm_virtualmachinescalesetinstance: resource_group: myResourceGroup vmss_name: myVMSS instance_id: "2" diff --git a/library/azure_rm_virtualmachinescalesetinstance_info.py b/library/azure_rm_virtualmachinescalesetinstance_info.py index 12a8e3e..505d403 100644 --- a/library/azure_rm_virtualmachinescalesetinstance_info.py +++ b/library/azure_rm_virtualmachinescalesetinstance_info.py @@ -47,7 +47,7 @@ EXAMPLES = ''' - name: List VM instances in Virtual Machine ScaleSet - azure_rm_computevirtualmachinescalesetinstance_info: + azure_rm_virtualmachinescalesetinstance_info: resource_group: myResourceGroup vmss_name: myVMSS ''' @@ -221,7 +221,8 @@ def format_response(self, item): 'name': d.get('name', None), 'provisioning_state': d.get('provisioning_state', None), 'power_state': power_state, - 'vm_id': d.get('vm_id', None) + 'vm_id': d.get('vm_id', None), + 'computer_name': d.get('os_profile').get('computer_name', None) } return d diff --git a/library/azure_rm_virtualnetwork.py b/library/azure_rm_virtualnetwork.py index ed21a26..9515b2a 100644 --- a/library/azure_rm_virtualnetwork.py +++ b/library/azure_rm_virtualnetwork.py @@ -160,7 +160,7 @@ type: dict sample: { 'key1':'value1' } type: - descriptioin: + description: - Resource type. returned: always type: str diff --git a/library/azure_rm_webappslot.py b/library/azure_rm_webappslot.py index 544075a..ddba710 100644 --- a/library/azure_rm_webappslot.py +++ b/library/azure_rm_webappslot.py @@ -697,7 +697,7 @@ def is_app_settings_changed(self): return True return False - # comparing deployment source with input, determine wheather it's changed + # comparing deployment source with input, determine whether it's changed def is_deployment_source_changed(self, existing_webapp): if self.deployment_source: if self.deployment_source.get('url') \ diff --git a/module_utils/azure_rm_common.py b/module_utils/azure_rm_common.py index af9908b..129faba 100644 --- a/module_utils/azure_rm_common.py +++ b/module_utils/azure_rm_common.py @@ -52,6 +52,24 @@ adfs_authority_url='AZURE_ADFS_AUTHORITY_URL' ) + +class SDKProfile(object): # pylint: disable=too-few-public-methods + + def __init__(self, default_api_version, profile=None): + """Constructor. + + :param str default_api_version: Default API version if not overridden by a profile. Nullable. + :param profile: A dict operation group name to API version. + :type profile: dict[str, str] + """ + self.profile = profile if profile is not None else {} + self.profile[None] = default_api_version + + @property + def default_api_version(self): + return self.profile[None] + + # FUTURE: this should come from the SDK or an external location. # For now, we have to copy from azure-cli AZURE_API_PROFILES = { @@ -73,12 +91,64 @@ 'MariaDBManagementClient': '2019-03-01', 'ManagementLockClient': '2016-09-01' }, - + '2019-03-01-hybrid': { + 'StorageManagementClient': '2017-10-01', + 'NetworkManagementClient': '2017-10-01', + 'ComputeManagementClient': SDKProfile('2017-12-01', { + 'resource_skus': '2017-09-01', + 'disks': '2017-03-30', + 'snapshots': '2017-03-30' + }), + 'ManagementLinkClient': '2016-09-01', + 'ManagementLockClient': '2016-09-01', + 'PolicyClient': '2016-12-01', + 'ResourceManagementClient': '2018-05-01', + 'SubscriptionClient': '2016-06-01', + 'DnsManagementClient': '2016-04-01', + 'KeyVaultManagementClient': '2016-10-01', + 'AuthorizationManagementClient': SDKProfile('2015-07-01', { + 'classic_administrators': '2015-06-01', + 'policy_assignments': '2016-12-01', + 'policy_definitions': '2016-12-01' + }), + 'KeyVaultClient': '2016-10-01', + 'azure.multiapi.storage': '2017-11-09', + 'azure.multiapi.cosmosdb': '2017-04-17' + }, + '2018-03-01-hybrid': { + 'StorageManagementClient': '2016-01-01', + 'NetworkManagementClient': '2017-10-01', + 'ComputeManagementClient': SDKProfile('2017-03-30'), + 'ManagementLinkClient': '2016-09-01', + 'ManagementLockClient': '2016-09-01', + 'PolicyClient': '2016-12-01', + 'ResourceManagementClient': '2018-02-01', + 'SubscriptionClient': '2016-06-01', + 'DnsManagementClient': '2016-04-01', + 'KeyVaultManagementClient': '2016-10-01', + 'AuthorizationManagementClient': SDKProfile('2015-07-01', { + 'classic_administrators': '2015-06-01' + }), + 'KeyVaultClient': '2016-10-01', + 'azure.multiapi.storage': '2017-04-17', + 'azure.multiapi.cosmosdb': '2017-04-17' + }, '2017-03-09-profile': { - 'ComputeManagementClient': '2016-03-30', + 'StorageManagementClient': '2016-01-01', 'NetworkManagementClient': '2015-06-15', + 'ComputeManagementClient': SDKProfile('2016-03-30'), + 'ManagementLinkClient': '2016-09-01', + 'ManagementLockClient': '2015-01-01', + 'PolicyClient': '2015-10-01-preview', 'ResourceManagementClient': '2016-02-01', - 'StorageManagementClient': '2016-01-01' + 'SubscriptionClient': '2016-06-01', + 'DnsManagementClient': '2016-04-01', + 'KeyVaultManagementClient': '2016-10-01', + 'AuthorizationManagementClient': SDKProfile('2015-07-01', { + 'classic_administrators': '2015-06-01' + }), + 'KeyVaultClient': '2016-10-01', + 'azure.multiapi.storage': '2015-04-05' } } diff --git a/tests/integration/targets/azure_rm_azurefirewall/aliases b/tests/integration/targets/azure_rm_azurefirewall/aliases index 239e365..4b130f3 100644 --- a/tests/integration/targets/azure_rm_azurefirewall/aliases +++ b/tests/integration/targets/azure_rm_azurefirewall/aliases @@ -1,3 +1,4 @@ cloud/azure -shippable/azure/group4 +shippable/azure/group3 destructive +disabled # See: https://github.com/ansible/ansible/issues/62307 diff --git a/tests/integration/targets/azure_rm_gallery/tasks/main.yml b/tests/integration/targets/azure_rm_gallery/tasks/main.yml index 91c1998..4f18cb8 100644 --- a/tests/integration/targets/azure_rm_gallery/tasks/main.yml +++ b/tests/integration/targets/azure_rm_gallery/tasks/main.yml @@ -53,7 +53,7 @@ - name: Create a snapshot by importing an unmanaged blob from the same subscription. azure_rm_snapshot: resource_group: "{{ resource_group }}" - name: mySnapshot + name: "mySnapshot-{{ rpfx }}" location: eastus creation_data: create_option: Import @@ -78,7 +78,7 @@ azure_rm_gallery: resource_group: "{{ resource_group }}" name: myGallery{{ rpfx }} - location: West US + location: eastus description: This is the gallery description. register: output @@ -90,7 +90,7 @@ azure_rm_gallery: resource_group: "{{ resource_group }}" name: myGallery{{ rpfx }} - location: West US + location: eastus description: This is the gallery description. register: output @@ -102,7 +102,7 @@ azure_rm_gallery: resource_group: "{{ resource_group }}" name: myGallery{{ rpfx }} - location: West US + location: eastus description: This is the gallery description - xxx. register: output @@ -130,7 +130,7 @@ resource_group: "{{ resource_group }}" gallery_name: myGallery{{ rpfx }} name: myImage - location: West US + location: eastus os_type: linux os_state: generalized identifier: @@ -149,7 +149,7 @@ resource_group: "{{ resource_group }}" gallery_name: myGallery{{ rpfx }} name: myImage - location: West US + location: eastus os_type: linux os_state: generalized identifier: @@ -168,7 +168,7 @@ resource_group: "{{ resource_group }}" gallery_name: myGallery{{ rpfx }} name: myImage - location: West US + location: eastus os_type: linux os_state: generalized identifier: @@ -205,16 +205,16 @@ gallery_name: myGallery{{ rpfx }} gallery_image_name: myImage name: 10.1.3 - location: West US + location: eastus publishing_profile: end_of_life_date: "2020-10-01t00:00:00+00:00" exclude_from_latest: yes replica_count: 3 storage_account_type: Standard_LRS target_regions: - - name: West US + - name: eastus regional_replica_count: 1 - - name: East US + - name: westus regional_replica_count: 2 storage_account_type: Standard_ZRS managed_image: @@ -232,16 +232,16 @@ gallery_name: myGallery{{ rpfx }} gallery_image_name: myImage name: 10.1.3 - location: West US + location: eastus publishing_profile: end_of_life_date: "2020-10-01t00:00:00+00:00" exclude_from_latest: yes replica_count: 3 storage_account_type: Standard_LRS target_regions: - - name: West US + - name: eastus regional_replica_count: 1 - - name: East US + - name: westus regional_replica_count: 2 storage_account_type: Standard_ZRS managed_image: @@ -259,16 +259,16 @@ gallery_name: myGallery{{ rpfx }} gallery_image_name: myImage name: 10.1.3 - location: West US + location: eastus publishing_profile: end_of_life_date: "2021-10-01t00:00:00+00:00" exclude_from_latest: yes replica_count: 3 storage_account_type: Standard_LRS target_regions: - - name: West US + - name: eastus regional_replica_count: 1 - - name: East US + - name: westus regional_replica_count: 2 storage_account_type: Standard_ZRS managed_image: diff --git a/tests/integration/targets/azure_rm_manageddisk/aliases b/tests/integration/targets/azure_rm_manageddisk/aliases index 8052bd2..bf20c61 100644 --- a/tests/integration/targets/azure_rm_manageddisk/aliases +++ b/tests/integration/targets/azure_rm_manageddisk/aliases @@ -1,4 +1,4 @@ cloud/azure -shippable/azure/group3 +shippable/azure/group4 destructive azure_rm_manageddisk_info