def query_eachdb(self, sql, exclude=None): """ execure query on each database of the cluster Params: sql (string): query text exclude (list of strings): database names to exclude Out: { dbname: query_result, ... } """ connect_dict = { 'host': self.config.get('host', None), # none = connect via socket 'user': self.config.get('user', 'postgres'), 'password': self.config.get('password', None), 'database': self.config.get('database', 'postgres') } ret = {} if not self.dbs: self.get_dblist() for db in self.dbs: # pylint: disable-msg=C0103 if db in exclude: continue connect_dict['database'] = db pdb = PgConn(connect_dict, self.logger) ret[db] = pdb.query(sql) return ret
def _myinit(self): connect_dict = { 'host': self.config.get('host', None), # none = connect via socket 'user': self.config.get('user', 'postgres'), 'password': self.config.get('password', None), 'database': self.config.get('database', 'postgres') } self.dbconn = PgConn(connect_dict, self.logger)
def get_dblist(self): """ Get list of all databases Returns: list of strings - names of all databases of postgresql cluster """ connect_dict = { 'host': self.config.get('host', None), # none = connect via socket 'user': self.config.get('user', 'postgres'), 'password': self.config.get('password', None), 'database': self.config.get('database', 'postgres') } db = PgConn(connect_dict, self.logger) # pylint: disable-msg=C0103 dbs = db.query("SELECT datname FROM pg_database") self.dbs = [x[0] for x in dbs]