Exemple #1
0
    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
Exemple #2
0
    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)
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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]
Exemple #6
0
    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