Commit ad10b033 by Joe Blaylock

Merge pull request #107 from edx/jrbl/fixing_ec2_ini

Extend ec2.py to accept an ini file
parents 329334c5 2d3539b8
#!/usr/bin/env python #!/usr/bin/env python
import sys
import os
''' '''
EC2 external inventory script EC2 external inventory script
================================= =================================
...@@ -135,8 +138,8 @@ class Ec2Inventory(object): ...@@ -135,8 +138,8 @@ class Ec2Inventory(object):
self.index = {} self.index = {}
# Read settings and parse CLI arguments # Read settings and parse CLI arguments
self.read_settings()
self.parse_cli_args() self.parse_cli_args()
self.read_settings()
# Cache # Cache
if self.args.refresh_cache: if self.args.refresh_cache:
...@@ -175,7 +178,7 @@ class Ec2Inventory(object): ...@@ -175,7 +178,7 @@ class Ec2Inventory(object):
''' Reads the settings from the ec2.ini file ''' ''' Reads the settings from the ec2.ini file '''
config = ConfigParser.SafeConfigParser() config = ConfigParser.SafeConfigParser()
config.read(os.path.dirname(os.path.realpath(__file__)) + '/ec2.ini') config.read(self.args.inifile)
# is eucalyptus? # is eucalyptus?
self.eucalyptus_host = None self.eucalyptus_host = None
...@@ -219,6 +222,7 @@ class Ec2Inventory(object): ...@@ -219,6 +222,7 @@ class Ec2Inventory(object):
help='Get all the variables about a specific instance') help='Get all the variables about a specific instance')
parser.add_argument('--refresh-cache', action='store_true', default=False, parser.add_argument('--refresh-cache', action='store_true', default=False,
help='Force refresh of cache by making API requests to EC2 (default: False - use cache files)') help='Force refresh of cache by making API requests to EC2 (default: False - use cache files)')
parser.add_argument('--inifile', dest='inifile', help='Path to init script to use', default=os.path.dirname(os.path.realpath(__file__))+'/ec2.ini',)
self.args = parser.parse_args() self.args = parser.parse_args()
...@@ -431,3 +435,4 @@ class Ec2Inventory(object): ...@@ -431,3 +435,4 @@ class Ec2Inventory(object):
# Run the script # Run the script
Ec2Inventory() Ec2Inventory()
[ec2]
regions=us-west-1
destination_variable=public_dns_name
vpc_destination_variable=private_dns_name
cache_path=/tmp
cache_max_age=300
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment