mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
Add support for idle_timeout, version and ipTags, curated in facts module (#48923)
This commit is contained in:
parent
6c7003127f
commit
3e2e67c677
3 changed files with 221 additions and 45 deletions
|
@ -36,9 +36,11 @@ options:
|
||||||
- Control whether the assigned Public IP remains permanently assigned to the object. If not
|
- Control whether the assigned Public IP remains permanently assigned to the object. If not
|
||||||
set to 'Static', the IP address my changed anytime an associated virtual machine is power cycled.
|
set to 'Static', the IP address my changed anytime an associated virtual machine is power cycled.
|
||||||
choices:
|
choices:
|
||||||
- Dynamic
|
- dynamic
|
||||||
|
- static
|
||||||
- Static
|
- Static
|
||||||
default: Dynamic
|
- Dynamic
|
||||||
|
default: dynamic
|
||||||
domain_name:
|
domain_name:
|
||||||
description:
|
description:
|
||||||
- The customizable portion of the FQDN assigned to public IP address. This is an explicit setting. If
|
- The customizable portion of the FQDN assigned to public IP address. This is an explicit setting. If
|
||||||
|
@ -64,9 +66,29 @@ options:
|
||||||
description:
|
description:
|
||||||
- The public IP address SKU.
|
- The public IP address SKU.
|
||||||
choices:
|
choices:
|
||||||
|
- basic
|
||||||
|
- standard
|
||||||
- Basic
|
- Basic
|
||||||
- Standard
|
- Standard
|
||||||
version_added: 2.6
|
version_added: 2.6
|
||||||
|
ip_tags:
|
||||||
|
description:
|
||||||
|
- List of IpTag associated with the public IP address.
|
||||||
|
- Each element should contain type:value pair.
|
||||||
|
version_added: 2.8
|
||||||
|
idle_timeout:
|
||||||
|
description:
|
||||||
|
- Idle timeout in minutes.
|
||||||
|
type: int
|
||||||
|
version_added: 2.8
|
||||||
|
version:
|
||||||
|
description:
|
||||||
|
- The public IP address version.
|
||||||
|
choices:
|
||||||
|
- ipv4
|
||||||
|
- ipv6
|
||||||
|
default: ipv4
|
||||||
|
version_added: 2.8
|
||||||
|
|
||||||
extends_documentation_fragment:
|
extends_documentation_fragment:
|
||||||
- azure
|
- azure
|
||||||
|
@ -82,7 +104,7 @@ EXAMPLES = '''
|
||||||
azure_rm_publicipaddress:
|
azure_rm_publicipaddress:
|
||||||
resource_group: testing
|
resource_group: testing
|
||||||
name: my_public_ip
|
name: my_public_ip
|
||||||
allocation_method: Static
|
allocation_method: static
|
||||||
domain_name: foobar
|
domain_name: foobar
|
||||||
|
|
||||||
- name: Delete public ip
|
- name: Delete public ip
|
||||||
|
@ -105,13 +127,14 @@ state:
|
||||||
"location": "westus",
|
"location": "westus",
|
||||||
"name": "publicip002",
|
"name": "publicip002",
|
||||||
"provisioning_state": "Succeeded",
|
"provisioning_state": "Succeeded",
|
||||||
"public_ip_allocation_method": "Static",
|
"public_ip_allocation_method": "static",
|
||||||
"tags": {},
|
"tags": {},
|
||||||
"type": "Microsoft.Network/publicIPAddresses"
|
"type": "Microsoft.Network/publicIPAddresses"
|
||||||
}
|
}
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible.module_utils.azure_rm_common import AzureRMModuleBase
|
from ansible.module_utils.azure_rm_common import AzureRMModuleBase
|
||||||
|
from ansible.module_utils._text import to_native
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from msrestazure.azure_exceptions import CloudError
|
from msrestazure.azure_exceptions import CloudError
|
||||||
|
@ -126,7 +149,8 @@ def pip_to_dict(pip):
|
||||||
type=pip.type,
|
type=pip.type,
|
||||||
location=pip.location,
|
location=pip.location,
|
||||||
tags=pip.tags,
|
tags=pip.tags,
|
||||||
public_ip_allocation_method=pip.public_ip_allocation_method,
|
public_ip_allocation_method=pip.public_ip_allocation_method.lower(),
|
||||||
|
public_ip_address_version=pip.public_ip_address_version.lower(),
|
||||||
dns_settings=dict(),
|
dns_settings=dict(),
|
||||||
ip_address=pip.ip_address,
|
ip_address=pip.ip_address,
|
||||||
idle_timeout_in_minutes=pip.idle_timeout_in_minutes,
|
idle_timeout_in_minutes=pip.idle_timeout_in_minutes,
|
||||||
|
@ -138,9 +162,17 @@ def pip_to_dict(pip):
|
||||||
result['dns_settings']['domain_name_label'] = pip.dns_settings.domain_name_label
|
result['dns_settings']['domain_name_label'] = pip.dns_settings.domain_name_label
|
||||||
result['dns_settings']['fqdn'] = pip.dns_settings.fqdn
|
result['dns_settings']['fqdn'] = pip.dns_settings.fqdn
|
||||||
result['dns_settings']['reverse_fqdn'] = pip.dns_settings.reverse_fqdn
|
result['dns_settings']['reverse_fqdn'] = pip.dns_settings.reverse_fqdn
|
||||||
|
if pip.ip_tags:
|
||||||
|
result['ip_tags'] = [dict(type=to_native(x.ip_tag_type), value=to_native(x.tag)) for x in pip.ip_tags]
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
|
ip_tag_spec = dict(
|
||||||
|
type=dict(type='str', required=True),
|
||||||
|
value=dict(type='str', required=True)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class AzureRMPublicIPAddress(AzureRMModuleBase):
|
class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
|
@ -150,9 +182,12 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
name=dict(type='str', required=True),
|
name=dict(type='str', required=True),
|
||||||
state=dict(type='str', default='present', choices=['present', 'absent']),
|
state=dict(type='str', default='present', choices=['present', 'absent']),
|
||||||
location=dict(type='str'),
|
location=dict(type='str'),
|
||||||
allocation_method=dict(type='str', default='Dynamic', choices=['Dynamic', 'Static']),
|
version=dict(type='str', default='ipv4', choices=['ipv4', 'ipv6']),
|
||||||
|
allocation_method=dict(type='str', default='dynamic', choices=['Dynamic', 'Static', 'dynamic', 'static']),
|
||||||
domain_name=dict(type='str', aliases=['domain_name_label']),
|
domain_name=dict(type='str', aliases=['domain_name_label']),
|
||||||
sku=dict(type='str', choices=['Basic', 'Standard'])
|
sku=dict(type='str', choices=['Basic', 'Standard', 'basic', 'standard']),
|
||||||
|
ip_tags=dict(type='list', elements='dict', options=ip_tag_spec),
|
||||||
|
idle_timeout=dict(type='int')
|
||||||
)
|
)
|
||||||
|
|
||||||
self.resource_group = None
|
self.resource_group = None
|
||||||
|
@ -163,6 +198,9 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
self.allocation_method = None
|
self.allocation_method = None
|
||||||
self.domain_name = None
|
self.domain_name = None
|
||||||
self.sku = None
|
self.sku = None
|
||||||
|
self.version = None
|
||||||
|
self.ip_tags = None
|
||||||
|
self.idle_timeout = None
|
||||||
|
|
||||||
self.results = dict(
|
self.results = dict(
|
||||||
changed=False,
|
changed=False,
|
||||||
|
@ -181,6 +219,11 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
changed = False
|
changed = False
|
||||||
pip = None
|
pip = None
|
||||||
|
|
||||||
|
# capitalize the sku and allocation_method. basic => Basic, Basic => Basic.
|
||||||
|
self.allocation_method = self.allocation_method.capitalize() if self.allocation_method else None
|
||||||
|
self.sku = self.sku.capitalize() if self.sku else None
|
||||||
|
self.version = 'IPv4' if self.version == 'ipv4' else 'IPv6'
|
||||||
|
|
||||||
resource_group = self.get_resource_group(self.resource_group)
|
resource_group = self.get_resource_group(self.resource_group)
|
||||||
if not self.location:
|
if not self.location:
|
||||||
# Set default location
|
# Set default location
|
||||||
|
@ -198,7 +241,7 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
changed = True
|
changed = True
|
||||||
results['dns_settings']['domain_name_label'] = self.domain_name
|
results['dns_settings']['domain_name_label'] = self.domain_name
|
||||||
|
|
||||||
if self.allocation_method != results['public_ip_allocation_method']:
|
if self.allocation_method.lower() != results['public_ip_allocation_method'].lower():
|
||||||
self.log("CHANGED: allocation_method")
|
self.log("CHANGED: allocation_method")
|
||||||
changed = True
|
changed = True
|
||||||
results['public_ip_allocation_method'] = self.allocation_method
|
results['public_ip_allocation_method'] = self.allocation_method
|
||||||
|
@ -208,6 +251,21 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
changed = True
|
changed = True
|
||||||
results['sku'] = self.sku
|
results['sku'] = self.sku
|
||||||
|
|
||||||
|
if self.version.lower() != results['public_ip_address_version'].lower():
|
||||||
|
self.log("CHANGED: version")
|
||||||
|
changed = True
|
||||||
|
results['public_ip_address_version'] = self.version
|
||||||
|
|
||||||
|
if self.idle_timeout and self.idle_timeout != results['idle_timeout_in_minutes']:
|
||||||
|
self.log("CHANGED: idle_timeout")
|
||||||
|
changed = True
|
||||||
|
results['idle_timeout_in_minutes'] = self.idle_timeout
|
||||||
|
|
||||||
|
if str(self.ip_tags or []) != str(results.get('ip_tags') or []):
|
||||||
|
self.log("CHANGED: ip_tags")
|
||||||
|
changed = True
|
||||||
|
results['ip_tags'] = self.ip_tags
|
||||||
|
|
||||||
update_tags, results['tags'] = self.update_tags(results['tags'])
|
update_tags, results['tags'] = self.update_tags(results['tags'])
|
||||||
if update_tags:
|
if update_tags:
|
||||||
changed = True
|
changed = True
|
||||||
|
@ -233,9 +291,13 @@ class AzureRMPublicIPAddress(AzureRMModuleBase):
|
||||||
self.log("Create new Public IP {0}".format(self.name))
|
self.log("Create new Public IP {0}".format(self.name))
|
||||||
pip = self.network_models.PublicIPAddress(
|
pip = self.network_models.PublicIPAddress(
|
||||||
location=self.location,
|
location=self.location,
|
||||||
public_ip_allocation_method=self.allocation_method,
|
public_ip_address_version=self.version,
|
||||||
sku=self.network_models.PublicIPAddressSku(name=self.sku) if self.sku else None
|
public_ip_allocation_method=self.allocation_method if self.version == 'IPv4' else None,
|
||||||
|
sku=self.network_models.PublicIPAddressSku(name=self.sku) if self.sku else None,
|
||||||
|
idle_timeout_in_minutes=self.idle_timeout if self.idle_timeout and self.idle_timeout > 0 else None
|
||||||
)
|
)
|
||||||
|
if self.ip_tags:
|
||||||
|
pip.ip_tags = [self.network_models.IpTag(ip_tag_type=x.type, tag=x.value) for x in self.ip_tags]
|
||||||
if self.tags:
|
if self.tags:
|
||||||
pip.tags = self.tags
|
pip.tags = self.tags
|
||||||
if self.domain_name:
|
if self.domain_name:
|
||||||
|
|
|
@ -57,7 +57,9 @@ EXAMPLES = '''
|
||||||
|
|
||||||
RETURN = '''
|
RETURN = '''
|
||||||
azure_publicipaddresses:
|
azure_publicipaddresses:
|
||||||
description: List of public IP address dicts.
|
description:
|
||||||
|
- List of public IP address dicts.
|
||||||
|
- Please note that this option will be deprecated in 2.10 when curated format will become the only supported format.
|
||||||
returned: always
|
returned: always
|
||||||
type: list
|
type: list
|
||||||
example: [{
|
example: [{
|
||||||
|
@ -73,6 +75,87 @@ azure_publicipaddresses:
|
||||||
},
|
},
|
||||||
"type": "Microsoft.Network/publicIPAddresses"
|
"type": "Microsoft.Network/publicIPAddresses"
|
||||||
}]
|
}]
|
||||||
|
publicipaddresses:
|
||||||
|
description:
|
||||||
|
- List of publicipaddress
|
||||||
|
- Contains the detail which matches azure_rm_publicipaddress parameters.
|
||||||
|
- Returned when the format parameter set to curated.
|
||||||
|
returned: always
|
||||||
|
type: complex
|
||||||
|
contains:
|
||||||
|
id:
|
||||||
|
description:
|
||||||
|
- Resource ID.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
name:
|
||||||
|
description:
|
||||||
|
- Name of the public ip address.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
type:
|
||||||
|
description:
|
||||||
|
- Resource type.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
location:
|
||||||
|
description:
|
||||||
|
- Resource location.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
tags:
|
||||||
|
description:
|
||||||
|
- Resource tags.
|
||||||
|
returned: always
|
||||||
|
type: complex
|
||||||
|
allocation_method:
|
||||||
|
description:
|
||||||
|
- The public IP allocation method.
|
||||||
|
- Possible values are 'static' and 'dynamic'.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
version:
|
||||||
|
description:
|
||||||
|
- The public IP address version.
|
||||||
|
- Possible values are 'ipv4' and 'ipv6'.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
dns_settings:
|
||||||
|
description:
|
||||||
|
- The FQDN of the DNS record associated with the public IP address.
|
||||||
|
returned: always
|
||||||
|
type: complex
|
||||||
|
ip_tags:
|
||||||
|
description:
|
||||||
|
- The list of tags associated with the public IP address.
|
||||||
|
returned: always
|
||||||
|
type: complex
|
||||||
|
ip_address:
|
||||||
|
description:
|
||||||
|
- The Public IP Prefix this Public IP Address should be allocated from.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
idle_timeout:
|
||||||
|
description:
|
||||||
|
- The idle timeout of the public IP address.
|
||||||
|
returned: always
|
||||||
|
type: int
|
||||||
|
provisioning_state:
|
||||||
|
description:
|
||||||
|
- he provisioning state of the PublicIP resource.
|
||||||
|
- Possible values are 'Updating', 'Deleting', and 'Failed'.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
etag:
|
||||||
|
description:
|
||||||
|
- A unique read-only string that changes whenever the resource is updated.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
|
sku:
|
||||||
|
description:
|
||||||
|
- The public IP address SKU.
|
||||||
|
returned: always
|
||||||
|
type: str
|
||||||
'''
|
'''
|
||||||
try:
|
try:
|
||||||
from msrestazure.azure_exceptions import CloudError
|
from msrestazure.azure_exceptions import CloudError
|
||||||
|
@ -114,35 +197,73 @@ class AzureRMPublicIPFacts(AzureRMModuleBase):
|
||||||
for key in self.module_arg_spec:
|
for key in self.module_arg_spec:
|
||||||
setattr(self, key, kwargs[key])
|
setattr(self, key, kwargs[key])
|
||||||
|
|
||||||
|
result = []
|
||||||
if self.name and not self.resource_group:
|
if self.name and not self.resource_group:
|
||||||
self.fail("Parameter error: resource group required when filtering by name.")
|
self.fail("Parameter error: resource group required when filtering by name.")
|
||||||
|
|
||||||
if self.name:
|
if self.name:
|
||||||
self.results['ansible_facts']['azure_publicipaddresses'] = self.get_item()
|
result = self.get_item()
|
||||||
elif self.resource_group:
|
elif self.resource_group:
|
||||||
self.results['ansible_facts']['azure_publicipaddresses'] = self.list_resource_group()
|
result = self.list_resource_group()
|
||||||
else:
|
else:
|
||||||
self.results['ansible_facts']['azure_publicipaddresses'] = self.list_all()
|
result = self.list_all()
|
||||||
|
|
||||||
|
raw = self.filter(result)
|
||||||
|
|
||||||
|
self.results['ansible_facts']['azure_publicipaddresses'] = self.serialize(raw)
|
||||||
|
self.results['publicipaddresses'] = self.format(raw)
|
||||||
|
|
||||||
return self.results
|
return self.results
|
||||||
|
|
||||||
|
def format(self, raw):
|
||||||
|
return [self.pip_to_dict(item) for item in raw]
|
||||||
|
|
||||||
|
def serialize(self, raw):
|
||||||
|
results = []
|
||||||
|
for item in raw:
|
||||||
|
pip = self.serialize_obj(item, AZURE_OBJECT_CLASS)
|
||||||
|
pip['name'] = item.name
|
||||||
|
pip['type'] = item.type
|
||||||
|
results.append(pip)
|
||||||
|
return results
|
||||||
|
|
||||||
|
def filter(self, response):
|
||||||
|
return [item for item in response if self.has_tags(item.tags, self.tags)]
|
||||||
|
|
||||||
|
# duplicate with azure_rm_publicipaddress
|
||||||
|
def pip_to_dict(self, pip):
|
||||||
|
result = dict(
|
||||||
|
id=pip.id,
|
||||||
|
name=pip.name,
|
||||||
|
type=pip.type,
|
||||||
|
location=pip.location,
|
||||||
|
tags=pip.tags,
|
||||||
|
allocation_method=pip.public_ip_allocation_method.lower(),
|
||||||
|
version=pip.public_ip_address_version.lower(),
|
||||||
|
dns_settings=dict(),
|
||||||
|
ip_tags=dict(),
|
||||||
|
ip_address=pip.ip_address,
|
||||||
|
idle_timeout=pip.idle_timeout_in_minutes,
|
||||||
|
provisioning_state=pip.provisioning_state,
|
||||||
|
etag=pip.etag,
|
||||||
|
sku=pip.sku.name
|
||||||
|
)
|
||||||
|
if pip.dns_settings:
|
||||||
|
result['dns_settings']['domain_name_label'] = pip.dns_settings.domain_name_label
|
||||||
|
result['dns_settings']['fqdn'] = pip.dns_settings.fqdn
|
||||||
|
result['dns_settings']['reverse_fqdn'] = pip.dns_settings.reverse_fqdn
|
||||||
|
if pip.ip_tags:
|
||||||
|
result['ip_tags'] = [dict(type=x.ip_tag_type, value=x.tag) for x in pip.ip_tags]
|
||||||
|
return result
|
||||||
|
|
||||||
def get_item(self):
|
def get_item(self):
|
||||||
self.log('Get properties for {0}'.format(self.name))
|
self.log('Get properties for {0}'.format(self.name))
|
||||||
item = None
|
item = None
|
||||||
result = []
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
item = self.network_client.public_ip_addresses.get(self.resource_group, self.name)
|
item = self.network_client.public_ip_addresses.get(self.resource_group, self.name)
|
||||||
except CloudError:
|
except CloudError:
|
||||||
pass
|
pass
|
||||||
|
return [item] if item else []
|
||||||
if item and self.has_tags(item.tags, self.tags):
|
|
||||||
pip = self.serialize_obj(item, AZURE_OBJECT_CLASS)
|
|
||||||
pip['name'] = item.name
|
|
||||||
pip['type'] = item.type
|
|
||||||
result = [pip]
|
|
||||||
|
|
||||||
return result
|
|
||||||
|
|
||||||
def list_resource_group(self):
|
def list_resource_group(self):
|
||||||
self.log('List items in resource groups')
|
self.log('List items in resource groups')
|
||||||
|
@ -150,15 +271,7 @@ class AzureRMPublicIPFacts(AzureRMModuleBase):
|
||||||
response = self.network_client.public_ip_addresses.list(self.resource_group)
|
response = self.network_client.public_ip_addresses.list(self.resource_group)
|
||||||
except AzureHttpError as exc:
|
except AzureHttpError as exc:
|
||||||
self.fail("Error listing items in resource groups {0} - {1}".format(self.resource_group, str(exc)))
|
self.fail("Error listing items in resource groups {0} - {1}".format(self.resource_group, str(exc)))
|
||||||
|
return response
|
||||||
results = []
|
|
||||||
for item in response:
|
|
||||||
if self.has_tags(item.tags, self.tags):
|
|
||||||
pip = self.serialize_obj(item, AZURE_OBJECT_CLASS)
|
|
||||||
pip['name'] = item.name
|
|
||||||
pip['type'] = item.type
|
|
||||||
results.append(pip)
|
|
||||||
return results
|
|
||||||
|
|
||||||
def list_all(self):
|
def list_all(self):
|
||||||
self.log('List all items')
|
self.log('List all items')
|
||||||
|
@ -166,15 +279,7 @@ class AzureRMPublicIPFacts(AzureRMModuleBase):
|
||||||
response = self.network_client.public_ip_addresses.list_all()
|
response = self.network_client.public_ip_addresses.list_all()
|
||||||
except AzureHttpError as exc:
|
except AzureHttpError as exc:
|
||||||
self.fail("Error listing all items - {0}".format(str(exc)))
|
self.fail("Error listing all items - {0}".format(str(exc)))
|
||||||
|
return response
|
||||||
results = []
|
|
||||||
for item in response:
|
|
||||||
if self.has_tags(item.tags, self.tags):
|
|
||||||
pip = self.serialize_obj(item, AZURE_OBJECT_CLASS)
|
|
||||||
pip['name'] = item.name
|
|
||||||
pip['type'] = item.type
|
|
||||||
results.append(pip)
|
|
||||||
return results
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
- assert:
|
- assert:
|
||||||
that:
|
that:
|
||||||
- output.state.public_ip_allocation_method == 'Static'
|
- output.state.public_ip_allocation_method == 'static'
|
||||||
- output.state.dns_settings.domain_name_label == domain_name
|
- output.state.dns_settings.domain_name_label == domain_name
|
||||||
- output.state.tags | length == 2
|
- output.state.tags | length == 2
|
||||||
- output.state.tags.testing == 'testing'
|
- output.state.tags.testing == 'testing'
|
||||||
|
@ -31,7 +31,7 @@
|
||||||
azure_rm_publicipaddress:
|
azure_rm_publicipaddress:
|
||||||
resource_group: "{{ resource_group }}"
|
resource_group: "{{ resource_group }}"
|
||||||
name: "pip{{ rpfx }}"
|
name: "pip{{ rpfx }}"
|
||||||
allocation_method: Static
|
allocation_method: static
|
||||||
domain_name: "{{ domain_name }}"
|
domain_name: "{{ domain_name }}"
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
|
@ -42,6 +42,8 @@
|
||||||
azure_rm_publicipaddress:
|
azure_rm_publicipaddress:
|
||||||
resource_group: "{{ resource_group }}"
|
resource_group: "{{ resource_group }}"
|
||||||
name: "pip{{ rpfx }}"
|
name: "pip{{ rpfx }}"
|
||||||
|
allocation_method: static
|
||||||
|
domain_name: "{{ domain_name }}"
|
||||||
append_tags: yes
|
append_tags: yes
|
||||||
tags:
|
tags:
|
||||||
delete: never
|
delete: never
|
||||||
|
@ -67,6 +69,8 @@
|
||||||
azure_rm_publicipaddress:
|
azure_rm_publicipaddress:
|
||||||
resource_group: "{{ resource_group }}"
|
resource_group: "{{ resource_group }}"
|
||||||
name: "pip{{ rpfx }}"
|
name: "pip{{ rpfx }}"
|
||||||
|
allocation_method: static
|
||||||
|
domain_name: "{{ domain_name }}"
|
||||||
append_tags: no
|
append_tags: no
|
||||||
register: output
|
register: output
|
||||||
|
|
||||||
|
@ -78,9 +82,14 @@
|
||||||
azure_rm_publicipaddress_facts:
|
azure_rm_publicipaddress_facts:
|
||||||
resource_group: "{{ resource_group }}"
|
resource_group: "{{ resource_group }}"
|
||||||
name: "pip{{ rpfx }}"
|
name: "pip{{ rpfx }}"
|
||||||
|
register: pip
|
||||||
|
|
||||||
- assert:
|
- assert:
|
||||||
that: azure_publicipaddresses | length == 1
|
that:
|
||||||
|
- "pip.publicipaddresses | length == 1"
|
||||||
|
- pip.publicipaddresses[0].name == "pip{{ rpfx }}"
|
||||||
|
- pip.publicipaddresses[0].allocation_method == 'static'
|
||||||
|
- pip.publicipaddresses[0].dns_settings.domain_name_label == domain_name
|
||||||
|
|
||||||
- name: Gather facts for all public ips
|
- name: Gather facts for all public ips
|
||||||
azure_rm_publicipaddress_facts:
|
azure_rm_publicipaddress_facts:
|
||||||
|
|
Loading…
Add table
Reference in a new issue