def datasource_to_dbpool(ds, ip, dbpool_cache={}): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] connection_key = (ip, server['user'], server['port'], server['passwd']) if not((connection_key in dbpool_cache) and dbpool_cache[connection_key].running): dbpool_cache[connection_key] = connection_pool(ds, ip) return dbpool_cache[connection_key]
def datasource_to_dbpool(ds, ip, dbpool_cache={}): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] connection_key = (ip, server['user'], server['port'], server['passwd']) if not ((connection_key in dbpool_cache) and dbpool_cache[connection_key].running): dbpool_cache[connection_key] = connection_pool(ds, ip) return dbpool_cache[connection_key]
def connection_pool(ds, ip): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] return adbapi.ConnectionPool("MySQLdb", cp_reconnect=True, host=ip, user=server['user'], port=server['port'], passwd=server['passwd'])
def connection_cursor(ds, ip): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] db = MySQLdb.connect(host=ip, user=server['user'], port=server['port'], passwd=server['passwd'], connect_timeout=ds.zMySqlTimeout) db.ping(True) return db.cursor()
def connection_pool(ds, ip): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] return adbapi.ConnectionPool( "MySQLdb", cp_reconnect=True, host=ip, user=server['user'], port=server['port'], passwd=server['passwd'] )
def connection_cursor(ds, ip): servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server = servers[ds.component.split(NAME_SPLITTER)[0]] db = MySQLdb.connect( host=ip, user=server['user'], port=server['port'], passwd=server['passwd'], connect_timeout=ds.zMySqlTimeout ) db.ping(True) return db.cursor()
def connection_cursor(ds, ip): if not ds.zMySQLConnectionString: raise Exception('MySQL Connection String not configured') servers = parse_mysql_connection_string(ds.zMySQLConnectionString) server_id = ds.component.split(NAME_SPLITTER)[0] server = servers.get(server_id) if not server: raise Exception( 'MySQL Connection String not configured for {}'.format(server_id)) db = MySQLdb.connect(host=ip, user=server['user'], port=server['port'], passwd=server['passwd'], connect_timeout=getattr(ds, 'zMySqlTimeout', 30)) db.ping(True) return db.cursor()
def tcase(self, input, output): self.assertEquals(parse_mysql_connection_string(input), output)
def test_no_port(self): self.assertRaises(ValueError, lambda: parse_mysql_connection_string( ['{"user":"******","passwd":"password"']))