diff options
| author | Joel Diaz <jdiaz@redhat.com> | 2015-12-16 15:59:26 -0500 | 
|---|---|---|
| committer | Joel Diaz <jdiaz@redhat.com> | 2015-12-16 15:59:26 -0500 | 
| commit | c607f1ba93be5e9f16723074ff97ffd27b025f8c (patch) | |
| tree | 57d78b69cd526a57ad0258ba468868561626f384 /bin/ohi | |
| parent | 4dfe16e0e567a633cedd8ee56ffaed5110ca1629 (diff) | |
| parent | f826925c8217d5c9f150ef03ca8deb718c37c157 (diff) | |
| download | openshift-c607f1ba93be5e9f16723074ff97ffd27b025f8c.tar.gz openshift-c607f1ba93be5e9f16723074ff97ffd27b025f8c.tar.bz2 openshift-c607f1ba93be5e9f16723074ff97ffd27b025f8c.tar.xz openshift-c607f1ba93be5e9f16723074ff97ffd27b025f8c.zip  | |
Merge pull request #1078 from joelddiaz/master
sync master -> prod
Diffstat (limited to 'bin/ohi')
| -rwxr-xr-x | bin/ohi | 68 | 
1 files changed, 47 insertions, 21 deletions
@@ -1,14 +1,16 @@  #!/usr/bin/env python +''' +Ohi = Openshift Host Inventory + +This script provides an easy way to look at your host inventory. + +This depends on multi_inventory being setup correctly. +'''  # vim: expandtab:tabstop=4:shiftwidth=4  import argparse -import traceback  import sys  import os -import re -import tempfile -import time -import subprocess  import ConfigParser  from openshift_ansible import awsutil @@ -20,6 +22,9 @@ CONFIG_HOST_TYPE_ALIAS_SECTION = 'host_type_aliases'  class Ohi(object): +    ''' +        Class for managing openshift host inventory +    '''      def __init__(self):          self.host_type_aliases = {}          self.file_path = os.path.join(os.path.dirname(os.path.realpath(__file__))) @@ -35,6 +40,10 @@ class Ohi(object):          self.aws = awsutil.AwsUtil(self.host_type_aliases)      def run(self): +        ''' +            Call into awsutil and retrieve the desired hosts and environments +        ''' +          if self.args.list_host_types:              self.aws.print_host_types()              return 0 @@ -43,18 +52,24 @@ class Ohi(object):          if self.args.host_type is not None and \             self.args.env is not None:              # Both env and host-type specified -            hosts = self.aws.get_host_list(host_type=self.args.host_type, \ -                                           envs=self.args.env) +            hosts = self.aws.get_host_list(host_type=self.args.host_type, +                                           envs=self.args.env, +                                           version=self.args.openshift_version, +                                           cached=self.args.cache_only)          if self.args.host_type is None and \             self.args.env is not None:              # Only env specified -            hosts = self.aws.get_host_list(envs=self.args.env) +            hosts = self.aws.get_host_list(envs=self.args.env, +                                           version=self.args.openshift_version, +                                           cached=self.args.cache_only)          if self.args.host_type is not None and \             self.args.env is None:              # Only host-type specified -            hosts = self.aws.get_host_list(host_type=self.args.host_type) +            hosts = self.aws.get_host_list(host_type=self.args.host_type, +                                           version=self.args.openshift_version, +                                           cached=self.args.cache_only)          if hosts is None:              # We weren't able to determine what they wanted to do @@ -69,6 +84,9 @@ class Ohi(object):          return 0      def parse_config_file(self): +        ''' +            Parse the config file for ohi +        '''          if os.path.isfile(self.config_path):              config = ConfigParser.ConfigParser()              config.read(self.config_path) @@ -85,23 +103,27 @@ class Ohi(object):          parser = argparse.ArgumentParser(description='OpenShift Host Inventory') -        parser.add_argument('--list-host-types', default=False, action='store_true', -                       help='List all of the host types') +        parser.add_argument('--list-host-types', default=False, action='store_true', help='List all of the host types') -        parser.add_argument('-e', '--env', action="store", -                       help="Which environment to use") +        parser.add_argument('-e', '--env', action="store", help="Which environment to use") -        parser.add_argument('-t', '--host-type', action="store", -                       help="Which host type to use") +        parser.add_argument('-t', '--host-type', action="store", help="Which host type to use") -        parser.add_argument('-l', '--user', action='store', default=None, -                               help='username') +        parser.add_argument('-l', '--user', action='store', default=None, help='username') +        parser.add_argument('-c', '--cache-only', action='store_true', default=False, +                            help='Retrieve the host inventory by cache only. Default is false.') -        self.args = parser.parse_args() +        parser.add_argument('-o', '--openshift-version', action='store', default='2', +                            help='Specify the openshift version. Default is 2') -if __name__ == '__main__': +        self.args = parser.parse_args() + +def main(): +    ''' +    Ohi will do its work here +    '''      if len(sys.argv) == 1:          print "\nError: No options given. Use --help to see the available options\n"          sys.exit(0) @@ -110,5 +132,9 @@ if __name__ == '__main__':          ohi = Ohi()          exitcode = ohi.run()          sys.exit(exitcode) -    except ArgumentError as e: -        print "\nError: %s\n" % e.message +    except ArgumentError as err: +        print "\nError: %s\n" % err.message + +if __name__ == '__main__': +    main() +  | 
