12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import re
- from adeireader.adeireader import ADEIReader
- ###
- def x_mysql(host, dbname, dbtable, user='', passwd='', fields=''):
- from gluon.dal import MySQLAdapter
- db_setting = dict(host=host, dbname=dbname, dbtable=dbtable, dbuser=user, dbpass=passwd)
- print db_setting
- # DAL initialize
- db0 = DAL("mysql://%(dbuser)s:%(dbpass)s@%(host)s/%(dbname)s" % db_setting,
- migrate=False,
- lazy_tables=True)
-
- # extract fileds from description
- fields = db0.executesql('show columns from %(dbtable)s;' % db_setting)
- db0._adapter.execute('SELECT * FROM %(dbtable)s LIMIT 1;' % db_setting)
- #print db0.get_instances()
- #print db0._adapter.types
- #print db0._adapter.cursor.description
- #print fields
- # extract fields
- #db0 =
- ###
- server_config = '''
- # name/host/db/table
- fpd katrin.kit.edu/adei fpd katrin_rep
- orca status:status@mysql://127.0.0.1 test_status experiment1
- '''
- config_adei = {}
- config_mysql = {}
- regex_adei = re.compile('[^/]*/(adei)')
- regex_mysql = re.compile('(?P<user>.+):(?P<pass>.+)@mysql://(?P<host>.*)')
- for dbkey, hostname, dbname, dbtable in [ x.strip().split()
- for x in server_config.strip().split('\n') if not x.strip().startswith('#') ]:
- if regex_adei.match(hostname):
- if dbkey not in config_adei.keys():
- config_adei[dbkey] = (hostname, dbname, dbtable)
- continue
- m = regex_mysql.match(hostname)
- if m:
- if dbkey not in config_mysql.keys():
- h, u, p = ( m.group('host'), m.group('user'), m.group('pass') )
- config_mysql[dbkey] = ( h, dbname, dbtable, u, p)
- continue
- # error message
- print 'nothing is matched'
- adei_servers = {}
- for s in config_adei:
- print s
- mysql_servers = {}
- for k, settings in config_mysql.iteritems():
- print k, settings
- #from extractdb import extract_mysql as x_mysql
- mysql_servers[k] = x_mysql(*settings)
- #import pprint
- #print '\n'.join(repr(u) for u in globals() if not u.startswith('__'))
|