def _get_tables(self, schema): try: engine = FragmentEngine() engine.connect(**self.configuration.to_dict()) for table in engine.describe_all(): schema[table.name] = {'name': table.name, 'columns': table.attrs.keys()} except Exception as e: logging.exception(e) raise sys.exc_info()[1], None, sys.exc_info()[2]
def _connect(self): engine = FragmentEngine() config = self.configuration.to_dict() if not config.get('region'): config['region'] = 'us-east-1' if config.get('host') == '': config['host'] = None engine.connect(**config) return engine
def _connect(self): engine = FragmentEngine() config = self.configuration.to_dict() if not config.get("region"): config["region"] = "us-east-1" if config.get("host") == "": config["host"] = None engine.connect(**config) return engine
def run_query(self, query): connection = None try: engine = FragmentEngine() connection = engine.connect(**self.configuration.to_dict()) res_dict = engine.execute(query if str(query).endswith(';') else str(query)+';') columns = [] rows = [] for item in res_dict: if not columns: for k, v in item.iteritems(): columns.append({ 'name': k, 'friendly_name': k, 'type': types_map.get(str(type(v)).upper(), None) }) rows.append(item) data = {'columns': columns, 'rows': rows} json_data = json.dumps(data, cls=JSONEncoder) error = None except KeyboardInterrupt: connection.cancel() error = "Query cancelled by user." json_data = None except Exception as e: logging.exception(e) raise sys.exc_info()[1], None, sys.exc_info()[2] return json_data, error
def _connect(self): engine = FragmentEngine() config = self.configuration.to_dict() if not config.get("region"): config["region"] = "us-east-1" if config.get("host") == "": config["host"] = None return engine, engine.connect(**config)