cloudstack: cs_facts: add option for custom meta data host (#27290)

pull/26421/head
René Moser 7 years ago committed by GitHub
parent e2d874c744
commit c16b1844a9

@ -35,8 +35,6 @@ options:
filter:
description:
- Filter for a specific fact.
required: false
default: null
choices:
- cloudstack_service_offering
- cloudstack_availability_zone
@ -46,6 +44,11 @@ options:
- cloudstack_local_ipv4
- cloudstack_instance_id
- cloudstack_user_data
meta_data_host:
description:
- Host or IP of the meta data API service.
- If not set, determination by parsing the dhcp lease file.
version_added: "2.4"
requirements: [ 'yaml' ]
'''
@ -57,6 +60,12 @@ EXAMPLES = '''
# Gather specific fact on instances
- name: Gather cloudstack facts
cs_facts: filter=cloudstack_instance_id
# Gather specific fact on instances with a given meta_data_host
- name: Gather cloudstack facts
cs_facts:
filter: cloudstack_instance_id
meta_data_host: 169.254.169.254
'''
RETURN = '''
@ -187,7 +196,9 @@ class CloudStackFacts(object):
def _get_api_ip(self):
"""Return the IP of the DHCP server."""
if not self.api_ip:
if module.params.get('meta_data_host'):
return module.params.get('meta_data_host')
elif not self.api_ip:
dhcp_lease_file = self._get_dhcp_lease_file()
for line in open(dhcp_lease_file):
if 'dhcp-server-identifier' in line:
@ -214,6 +225,7 @@ def main():
'cloudstack_instance_id',
'cloudstack_user_data',
]),
meta_data_host=dict(),
),
supports_check_mode=False
)

Loading…
Cancel
Save