mirror of
https://github.com/ansible/awx.git
synced 2026-03-04 18:21:03 -03:30
Merge pull request #769 from rbywater/feature/cloudformssuffix
Add ability to append suffix to host names for Cloudforms Inventory
This commit is contained in:
@@ -1763,7 +1763,7 @@ class RunInventoryUpdate(BaseTask):
|
|||||||
cp.set(section, 'ssl_verify', "false")
|
cp.set(section, 'ssl_verify', "false")
|
||||||
|
|
||||||
cloudforms_opts = dict(inventory_update.source_vars_dict.items())
|
cloudforms_opts = dict(inventory_update.source_vars_dict.items())
|
||||||
for opt in ['version', 'purge_actions', 'clean_group_keys', 'nest_tags']:
|
for opt in ['version', 'purge_actions', 'clean_group_keys', 'nest_tags', 'suffix']:
|
||||||
if opt in cloudforms_opts:
|
if opt in cloudforms_opts:
|
||||||
cp.set(section, opt, cloudforms_opts[opt])
|
cp.set(section, opt, cloudforms_opts[opt])
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,10 @@ clean_group_keys = True
|
|||||||
# Explode tags into nested groups / subgroups
|
# Explode tags into nested groups / subgroups
|
||||||
nest_tags = False
|
nest_tags = False
|
||||||
|
|
||||||
|
# If set, ensure host name are suffixed with this value
|
||||||
|
# Note: This suffix *must* include the leading '.' as it is appended to the hostname as is
|
||||||
|
# suffix = .example.org
|
||||||
|
|
||||||
[cache]
|
[cache]
|
||||||
|
|
||||||
# Maximum time to trust the cache in seconds
|
# Maximum time to trust the cache in seconds
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ from time import time
|
|||||||
import requests
|
import requests
|
||||||
from requests.auth import HTTPBasicAuth
|
from requests.auth import HTTPBasicAuth
|
||||||
import warnings
|
import warnings
|
||||||
|
from ansible.errors import AnsibleError
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import json
|
import json
|
||||||
@@ -174,6 +175,13 @@ class CloudFormsInventory(object):
|
|||||||
else:
|
else:
|
||||||
self.cloudforms_nest_tags = False
|
self.cloudforms_nest_tags = False
|
||||||
|
|
||||||
|
if config.has_option('cloudforms', 'suffix'):
|
||||||
|
self.cloudforms_suffix = config.get('cloudforms', 'suffix')
|
||||||
|
if self.cloudforms_suffix[0] != '.':
|
||||||
|
raise AnsibleError('Leading fullstop is required for Cloudforms suffix')
|
||||||
|
else:
|
||||||
|
self.cloudforms_suffix = None
|
||||||
|
|
||||||
# Ansible related
|
# Ansible related
|
||||||
try:
|
try:
|
||||||
group_patterns = config.get('ansible', 'group_patterns')
|
group_patterns = config.get('ansible', 'group_patterns')
|
||||||
@@ -280,6 +288,9 @@ class CloudFormsInventory(object):
|
|||||||
print("Updating cache...")
|
print("Updating cache...")
|
||||||
|
|
||||||
for host in self._get_hosts():
|
for host in self._get_hosts():
|
||||||
|
if self.cloudforms_suffix is not None and not host['name'].endswith(self.cloudforms_suffix):
|
||||||
|
host['name'] = host['name'] + self.cloudforms_suffix
|
||||||
|
|
||||||
# Ignore VMs that are not powered on
|
# Ignore VMs that are not powered on
|
||||||
if host['power_state'] != 'on':
|
if host['power_state'] != 'on':
|
||||||
if self.args.debug:
|
if self.args.debug:
|
||||||
|
|||||||
Reference in New Issue
Block a user