summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Coca <brian.coca+git@gmail.com>2015-10-21 13:18:32 -0400
committerBrian Coca <brian.coca+git@gmail.com>2015-10-21 13:18:32 -0400
commit07d584c0a7ffb5927d62ac9ba59e4f6ccea17fb7 (patch)
treecaa456a7af408b52caeef2bbafa896c95261f408
parent04aa7701d11e8b4fa5d27acb374da5fc9207e746 (diff)
downloadansible-07d584c0a7ffb5927d62ac9ba59e4f6ccea17fb7.tar.gz
make - replacement in group names optional
-rw-r--r--contrib/inventory/ec2.ini3
-rwxr-xr-xcontrib/inventory/ec2.py15
2 files changed, 14 insertions, 4 deletions
diff --git a/contrib/inventory/ec2.ini b/contrib/inventory/ec2.ini
index 93be4c8acb..f3b75570f6 100644
--- a/contrib/inventory/ec2.ini
+++ b/contrib/inventory/ec2.ini
@@ -94,6 +94,9 @@ cache_max_age = 300
# Organize groups into a nested/hierarchy instead of a flat namespace.
nested_groups = False
+# Replace - tags when creating groups to avoid issues with ansible
+replace_dash_in_groups = True
+
# The EC2 inventory output can become very large. To manage its size,
# configure which groups should be created.
group_by_instance_id = True
diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py
index 6fc57f6c95..0765861fcc 100755
--- a/contrib/inventory/ec2.py
+++ b/contrib/inventory/ec2.py
@@ -327,6 +327,12 @@ class Ec2Inventory(object):
else:
self.nested_groups = False
+ # Replace dash or not in group names
+ if config.has_option('ec2', 'replace_dash_in_groups'):
+ self.replace_dash_in_groups = config.getboolean('ec2', 'replace_dash_in_groups')
+ else:
+ self.replace_dash_in_groups = True
+
# Configure which groups should be created.
group_by_options = [
'group_by_instance_id',
@@ -1285,10 +1291,11 @@ class Ec2Inventory(object):
return re.sub('([a-z0-9])([A-Z])', r'\1_\2', temp).lower()
def to_safe(self, word):
- ''' Converts 'bad' characters in a string to underscores so they can be
- used as Ansible groups '''
-
- return re.sub("[^A-Za-z0-9\_]", "_", word)
+ ''' Converts 'bad' characters in a string to underscores so they can be used as Ansible groups '''
+ regex = "[^A-Za-z0-9\_"
+ if self.replace_dash_in_groups:
+ regex += "\-"
+ return re.sub(regex + "]", "_", word)
def json_format_dict(self, data, pretty=False):
''' Converts a dict to a JSON object and dumps it as a formatted