Clean up group name before creation to remove spaces etc .. (#22020)

pull/22132/head
Damien 8 years ago committed by John R Barker
parent 029ccf9aa0
commit 8032c9a715

@ -51,9 +51,9 @@ Version: 0.2.0
""" """
import os import os
import argparse import argparse
import re
from ansible.compat.six.moves import configparser from ansible.compat.six.moves import configparser
import os
try: try:
from apstra.aosom.session import Session from apstra.aosom.session import Session
@ -485,6 +485,7 @@ class AosInventory(object):
except: except:
pass pass
def parse_cli_args(self): def parse_cli_args(self):
""" Command line argument processing """ """ Command line argument processing """
@ -503,13 +504,16 @@ class AosInventory(object):
def add_host_to_group(self, group, host): def add_host_to_group(self, group, host):
# Cleanup group name first
clean_group = self.cleanup_group_name(group)
# Check if the group exist, if not initialize it # Check if the group exist, if not initialize it
if group not in self.inventory.keys(): if clean_group not in self.inventory.keys():
self.inventory[group] = {} self.inventory[clean_group] = {}
self.inventory[group]['hosts'] = [] self.inventory[clean_group]['hosts'] = []
self.inventory[group]['vars'] = {} self.inventory[clean_group]['vars'] = {}
self.inventory[group]['hosts'].append(host) self.inventory[clean_group]['hosts'].append(host)
def add_var_to_host(self, host, var, value): def add_var_to_host(self, host, var, value):
@ -521,13 +525,16 @@ class AosInventory(object):
def add_var_to_group(self, group, var, value): def add_var_to_group(self, group, var, value):
# Cleanup group name first
clean_group = self.cleanup_group_name(group)
# Check if the group exist, if not initialize it # Check if the group exist, if not initialize it
if group not in self.inventory.keys(): if clean_group not in self.inventory.keys():
self.inventory[group] = {} self.inventory[clean_group] = {}
self.inventory[group]['hosts'] = [] self.inventory[clean_group]['hosts'] = []
self.inventory[group]['vars'] = {} self.inventory[clean_group]['vars'] = {}
self.inventory[group]['vars'][var] = value self.inventory[clean_group]['vars'][var] = value
def add_device_facts_to_var(self, device_name, device): def add_device_facts_to_var(self, device_name, device):
@ -545,6 +552,17 @@ class AosInventory(object):
elif key == 'hw_model': elif key == 'hw_model':
self.add_host_to_group(value, device_name) self.add_host_to_group(value, device_name)
def cleanup_group_name(self, group_name):
"""
Clean up group name by :
- Replacing all non-alphanumeric caracter by underscore
- Converting to lowercase
"""
rx = re.compile('\W+')
clean_group = rx.sub('_', group_name).lower()
return clean_group
# Run the script # Run the script
if __name__ == '__main__': if __name__ == '__main__':

Loading…
Cancel
Save