diff options
| author | Paul C. Buetow <paul@buetow.org> | 2014-04-12 09:19:49 +0200 |
|---|---|---|
| committer | Paul C. Buetow <paul@buetow.org> | 2014-04-12 09:19:49 +0200 |
| commit | f443c7064482f493917e16c7d04f6da85974134f (patch) | |
| tree | 3e76ad9ace1288b4ef44e27b1a5630d69cc46505 /fapi.py | |
| parent | ae903b3d1a6b768195b829b19b76975ccb51d1a2 (diff) | |
mv to src
Diffstat (limited to 'fapi.py')
| -rwxr-xr-x | fapi.py | 112 |
1 files changed, 0 insertions, 112 deletions
diff --git a/fapi.py b/fapi.py deleted file mode 100755 index 189bb89..0000000 --- a/fapi.py +++ /dev/null @@ -1,112 +0,0 @@ -#!/usr/bin/env python - -# 2014 (c) Paul C. Buetow - -import argparse -import base64 -import getpass -import sys -import bigsuds - -from os.path import expanduser - -import ConfigParser - -__program__ = 'fapi' -__version__ = 'VERSION_DEVEL' # Replaced by a Makefile target - -class Fapi(object): - ''' The main F5 API Tool Object ''' - - def __init__(self, args): - ''' Initialize the config file, username and password ''' - - if args.v: - print 'Reading configuration' - - config_file = args.C - - config = ConfigParser.ConfigParser() - config.read(config_file) - - self.config = config - self.__args_merge(args) - - if config.has_option('fapi', 'username'): - username = config.get('fapi', 'username') - else: - username = getpass.getuser() - - if config.has_option('fapi', 'password64'): - password = base64.decodestring(config.get('fapi', 'password64')) - else: - prompt = 'Enter API password for user %s: ' % username - password = getpass.getpass(prompt) - - self.__login(username, password) - - try: - self.bigip.Management.Partition.set_active_partition( - config.get('fapi', 'partition')) - - except Exception, e: - print "Exception: %s" % e - - - def __args_merge(self, args): - ''' Merges args to the config object ''' - - if not self.config.has_section('args'): - self.config.add_section('args') - - for k, v in vars(args).items(): - if args.v: print "Set arg %s: %s" % (k, v) - self.config.set('args', k, str(v)) - - def __login(self, username, password): - ''' Logs into the F5 BigIP SOAP API ''' - - if self.config.getboolean('args', 'v'): - print 'Login to BigIP API with user %s' % username - - hostname = self.config.get('fapi', 'hostname') - - try: - self.bigip = bigsuds.BIGIP( - hostname = hostname, - username = username, - password = password, - ) - except Exception, e: - print "Exception: %s" % e - - def run(self): - ''' Do the actual stuff ''' - - if self.config.getboolean('args', 'list'): - print 'Hello' - - else: - print 'No such action' - -if __name__ == '__main__': - ''' The main function, here we will have Popcorn for free! ''' - - parser = argparse.ArgumentParser() - parser.add_argument('-v', action='store_true', help='Verbose') - parser.add_argument('-V', action='store_true', help='Print version') - parser.add_argument('-C', action='store', help='Config file', - default=expanduser('~') + '/.fapi.conf') - parser.add_argument('list', action='store_true', help='List') - parser.add_argument('pool', action='store_true', help='Server pool') - - args = parser.parse_args() - - if args.V: - print 'This is ' + __program__ + ' version ' + __version__ - sys.exit(0) - - fapi = Fapi(args) - fapi.run() - -# vim: tabstop=4 expandtab shiftwidth=4 softtabstop=4 |
