diff options
Diffstat (limited to 'bin/ohi')
| -rwxr-xr-x | bin/ohi | 147 | 
1 files changed, 0 insertions, 147 deletions
| diff --git a/bin/ohi b/bin/ohi deleted file mode 100755 index 9c2ce8432..000000000 --- a/bin/ohi +++ /dev/null @@ -1,147 +0,0 @@ -#!/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 sys -import os -import ConfigParser - -from openshift_ansible import awsutil -from openshift_ansible import utils -from openshift_ansible.awsutil import ArgumentError - -CONFIG_MAIN_SECTION = 'main' -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__))) - -        # Default the config path to /etc -        self.config_path = os.path.join(os.path.sep, 'etc',  \ -                                        'openshift_ansible', \ -                                        'openshift_ansible.conf') - -        self.args = None -        self.parse_cli_args() -        self.parse_config_file() - -        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 - -        if self.args.v3: -            version = '3' -        elif self.args.all_versions: -            version = 'all' -        else: -            version = '2' - -        hosts = self.aws.get_host_list(clusters=self.args.cluster, -                                       host_type=self.args.host_type, -                                       sub_host_type=self.args.sub_host_type, -                                       envs=self.args.env, -                                       version=version, -                                       cached=self.args.cache_only) - -        if hosts is None: -            # We weren't able to determine what they wanted to do -            raise ArgumentError("Invalid combination of arguments") - -        if self.args.ip: -            hosts = self.aws.convert_to_ip(hosts) - -        for host in sorted(hosts, key=utils.normalize_dnsname): -            if self.args.user: -                print "%s@%s" % (self.args.user, host) -            else: -                print host - -        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) - -            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 -        """ - -        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', default=False, action='store_true', help='List all hosts') - -        parser.add_argument('-c', '--cluster', action="append", help="Which clusterid to use") -        parser.add_argument('-e', '--env', action="append", help="Which environment to use") - -        parser.add_argument('-t', '--host-type', action="store", help="Which host type to use") - -        parser.add_argument('-s', '--sub-host-type', action="store", help="Which sub host type to use") - -        parser.add_argument('-l', '--user', action='store', default=None, help='username') - -        parser.add_argument('--cache-only', action='store_true', default=False, -                            help='Retrieve the host inventory by cache only. Default is false.') - -        parser.add_argument('--v2', action='store_true', default=True, -                            help='Specify the openshift version. Default is 2') - -        parser.add_argument('--v3', action='store_true', default=False, -                            help='Specify the openshift version.') - -        parser.add_argument('--ip', action='store_true', default=False, -                            help='Return ip address only.') - -        parser.add_argument('--all-versions', action='store_true', default=False, -                            help='Specify the openshift version. Return all versions') - -        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) - -    try: -        ohi = Ohi() -        exitcode = ohi.run() -        sys.exit(exitcode) -    except ArgumentError as err: -        print "\nError: %s\n" % err.message - -if __name__ == '__main__': -    main() - | 
