diff options
author | Thomas Wiest <twiest@redhat.com> | 2015-03-30 11:25:03 -0400 |
---|---|---|
committer | Thomas Wiest <twiest@redhat.com> | 2015-03-30 14:40:44 -0400 |
commit | b1b462f4db3ce1a26cfc251895d5f8fe2e15c484 (patch) | |
tree | 4e1dd8346126e37bd79e69e37fcf1f5683a5d002 /bin/opssh | |
parent | 78a45fc50509eca27164452325529cc46a99cc8c (diff) | |
download | openshift-b1b462f4db3ce1a26cfc251895d5f8fe2e15c484.tar.gz openshift-b1b462f4db3ce1a26cfc251895d5f8fe2e15c484.tar.bz2 openshift-b1b462f4db3ce1a26cfc251895d5f8fe2e15c484.tar.xz openshift-b1b462f4db3ce1a26cfc251895d5f8fe2e15c484.zip |
added config file support to opssh, ossh, and oscp
Diffstat (limited to 'bin/opssh')
-rwxr-xr-x | bin/opssh | 32 |
1 files changed, 30 insertions, 2 deletions
@@ -10,16 +10,30 @@ import re import tempfile import time import subprocess +import ConfigParser -DEFAULT_PSSH_PAR=200 +DEFAULT_PSSH_PAR = 200 PSSH = '/usr/bin/pssh' +CONFIG_MAIN_SECTION = 'main' +CONFIG_HOST_TYPE_ALIAS_SECTION = 'host_type_aliases' +CONFIG_INVENTORY_OPTION = 'inventory' + class Opssh(object): def __init__(self): + self.inventory = None + self.host_type_aliases = {} self.file_path = os.path.join(os.path.dirname(os.path.realpath(__file__))) - self.aws = awsutil.AwsUtil() + + # Default the config path to /etc + self.config_path = os.path.join(os.path.sep, 'etc', \ + 'openshift_ansible', \ + 'openshift_ansible.conf') self.parse_cli_args() + self.parse_config_file() + + self.aws = awsutil.AwsUtil(self.inventory, self.host_type_aliases) if self.args.list_host_types: self.aws.print_host_types() @@ -66,6 +80,20 @@ class Opssh(object): return None + def parse_config_file(self): + if os.path.isfile(self.config_path): + config = ConfigParser.ConfigParser() + config.read(self.config_path) + + if config.has_section(CONFIG_MAIN_SECTION) and \ + config.has_option(CONFIG_MAIN_SECTION, CONFIG_INVENTORY_OPTION): + self.inventory = config.get(CONFIG_MAIN_SECTION, CONFIG_INVENTORY_OPTION) + + self.host_type_aliases = {} + if config.has_section(CONFIG_HOST_TYPE_ALIAS_SECTION): + for alias in config.options(CONFIG_HOST_TYPE_ALIAS_SECTION): + value = config.get(CONFIG_HOST_TYPE_ALIAS_SECTION, alias).split(',') + self.host_type_aliases[alias] = value def parse_cli_args(self): """Setup the command line parser with the options we want |