diff options
author | jctanner <tanner.jc@gmail.com> | 2018-10-15 21:40:51 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-15 21:40:51 -0400 |
commit | 1ded3f9890148b974d2f65c6f3df1bbdbfbaed43 (patch) | |
tree | 3ba65fb6894fd161250515b4718355c86f713466 /contrib | |
parent | 96db9a55e25024078c6fd3a782af3513cd4c015b (diff) | |
download | ansible-1ded3f9890148b974d2f65c6f3df1bbdbfbaed43.tar.gz |
Handle non-ascii characters in foreman.py (#46779)
* Handle non-ascii characters in foreman.py
* Add test to validate non-ascii results
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/inventory/foreman.py | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/contrib/inventory/foreman.py b/contrib/inventory/foreman.py index 99200168f6..7c431933e0 100755 --- a/contrib/inventory/foreman.py +++ b/contrib/inventory/foreman.py @@ -46,6 +46,8 @@ if LooseVersion(requests.__version__) < LooseVersion('1.1.0'): from requests.auth import HTTPBasicAuth +from ansible.module_utils._text import to_text + def json_format_dict(data, pretty=False): """Converts a dict to a JSON object and dumps it as a formatted string""" @@ -285,20 +287,32 @@ class ForemanInventory(object): group = 'hostgroup' val = host.get('%s_title' % group) or host.get('%s_name' % group) if val: - safe_key = self.to_safe('%s%s_%s' % (self.group_prefix, group, val.lower())) + safe_key = self.to_safe('%s%s_%s' % ( + to_text(self.group_prefix), + group, + to_text(val).lower() + )) self.inventory[safe_key].append(dns_name) # Create ansible groups for environment, location and organization for group in ['environment', 'location', 'organization']: val = host.get('%s_name' % group) if val: - safe_key = self.to_safe('%s%s_%s' % (self.group_prefix, group, val.lower())) + safe_key = self.to_safe('%s%s_%s' % ( + to_text(self.group_prefix), + group, + to_text(val).lower() + )) self.inventory[safe_key].append(dns_name) for group in ['lifecycle_environment', 'content_view']: val = host.get('content_facet_attributes', {}).get('%s_name' % group) if val: - safe_key = self.to_safe('%s%s_%s' % (self.group_prefix, group, val.lower())) + safe_key = self.to_safe('%s%s_%s' % ( + to_text(self.group_prefix), + group, + to_text(val).lower() + )) self.inventory[safe_key].append(dns_name) params = self._resolve_params(host_params) @@ -307,7 +321,7 @@ class ForemanInventory(object): # attributes. groupby = dict() for k, v in params.items(): - groupby[k] = self.to_safe(str(v)) + groupby[k] = self.to_safe(to_text(v)) # The name of the ansible groups is given by group_patterns: for pattern in self.group_patterns: |