From 8acb6417cb0bab6bd46fb8794e0eb82c5c01e4cc Mon Sep 17 00:00:00 2001 From: rafstef Date: Mon, 20 Feb 2017 19:38:41 +0100 Subject: [PATCH] [cloud][inventory] Let ec2.py be renamed and search for a matching .ini file (#21567) With this proposed PR, we want to make the use of many ec2 dynamic inventory files more flexible. We are using multiple AWS accounts. We want to use different ini file (one for every account) and only one ec2.py. --- contrib/inventory/ec2.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/contrib/inventory/ec2.py b/contrib/inventory/ec2.py index 88dd8845aab..c16e770259c 100755 --- a/contrib/inventory/ec2.py +++ b/contrib/inventory/ec2.py @@ -220,12 +220,22 @@ class Ec2Inventory(object): def read_settings(self): ''' Reads the settings from the ec2.ini file ''' + + scriptbasename = __file__ + scriptbasename = os.path.basename(scriptbasename) + scriptbasename = scriptbasename.replace('.py', '') + + defaults = {'ec2': { + 'ini_path': os.path.join(os.path.dirname(__file__), '%s.ini' % scriptbasename) + } + } + if six.PY3: config = configparser.ConfigParser() else: config = configparser.SafeConfigParser() - ec2_default_ini_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'ec2.ini') - ec2_ini_path = os.path.expanduser(os.path.expandvars(os.environ.get('EC2_INI_PATH', ec2_default_ini_path))) + ec2_ini_path = os.environ.get('EC2_INI_PATH', defaults['ec2']['ini_path']) + ec2_ini_path = os.path.expanduser(os.path.expandvars(ec2_ini_path)) config.read(ec2_ini_path) # is eucalyptus?