From f79f6d649a4c8599121d9cad5492afc579f0425a Mon Sep 17 00:00:00 2001
From: Thomas Wiest <twiest@redhat.com>
Date: Wed, 25 Mar 2015 16:45:50 -0400
Subject: added the ability to have a config file in /etc/openshift_ansible to
 multi_ec2.py.

---
 inventory/multi_ec2.py                     | 17 +++++++++++++++--
 inventory/openshift-ansible-inventory.spec |  6 ++++--
 2 files changed, 19 insertions(+), 4 deletions(-)

(limited to 'inventory')

diff --git a/inventory/multi_ec2.py b/inventory/multi_ec2.py
index 5dee7972b..26c09d712 100755
--- a/inventory/multi_ec2.py
+++ b/inventory/multi_ec2.py
@@ -12,6 +12,8 @@ import json
 import pprint
 
 
+CONFIG_FILE_NAME = 'multi_ec2.yaml'
+
 class MultiEc2(object):
 
     def __init__(self):
@@ -20,11 +22,22 @@ class MultiEc2(object):
         self.result = {}
         self.cache_path = os.path.expanduser('~/.ansible/tmp/multi_ec2_inventory.cache')
         self.file_path = os.path.join(os.path.dirname(os.path.realpath(__file__)))
-        self.config_file = os.path.join(self.file_path,"multi_ec2.yaml")
+
+        same_dir_config_file = os.path.join(self.file_path, CONFIG_FILE_NAME)
+        etc_dir_config_file = os.path.join(os.path.sep, 'etc','ansible', CONFIG_FILE_NAME)
+
+        # Prefer a file in the same directory, fall back to a file in etc
+        if os.path.isfile(same_dir_config_file):
+            self.config_file = same_dir_config_file
+        elif os.path.isfile(etc_dir_config_file):
+            self.config_file = etc_dir_config_file
+        else:
+            self.config_file = None # expect env vars
+
         self.parse_cli_args()
 
         # load yaml
-        if os.path.isfile(self.config_file):
+        if self.config_file and os.path.isfile(self.config_file):
             self.config = self.load_yaml_config()
         elif os.environ.has_key("AWS_ACCESS_KEY_ID") and os.environ.has_key("AWS_SECRET_ACCESS_KEY"):
             self.config = {}
diff --git a/inventory/openshift-ansible-inventory.spec b/inventory/openshift-ansible-inventory.spec
index e847df189..9b721818e 100644
--- a/inventory/openshift-ansible-inventory.spec
+++ b/inventory/openshift-ansible-inventory.spec
@@ -18,18 +18,20 @@ Ansible Inventories used with the openshift-ansible scripts and playbooks.
 %build
 
 %install
+mkdir -p %{buildroot}/etc/ansible
 mkdir -p %{buildroot}/usr/share/ansible/inventory
 mkdir -p %{buildroot}/usr/share/ansible/inventory/aws
 mkdir -p %{buildroot}/usr/share/ansible/inventory/gce
 
-cp -p multi_ec2.py multi_ec2.yaml.example %{buildroot}/usr/share/ansible/inventory
+cp -p multi_ec2.py %{buildroot}/usr/share/ansible/inventory
+cp -p multi_ec2.yaml.example %{buildroot}/etc/ansible/multi_ec2.yaml
 cp -p aws/ec2.py aws/ec2.ini %{buildroot}/usr/share/ansible/inventory/aws
 cp -p gce/gce.py %{buildroot}/usr/share/ansible/inventory/gce
 
 %files
+%config(noreplace) /etc/ansible/*
 %dir /usr/share/ansible/inventory
 /usr/share/ansible/inventory/multi_ec2.py*
-/usr/share/ansible/inventory/multi_ec2.yaml.example
 /usr/share/ansible/inventory/aws/ec2.py*
 %config(noreplace) /usr/share/ansible/inventory/aws/ec2.ini
 /usr/share/ansible/inventory/gce/gce.py*
-- 
cgit v1.2.3