From 57851f9618c05c4cfdc3b15ae7b4052ed9026150 Mon Sep 17 00:00:00 2001 From: Bo Blanton Date: Mon, 27 Mar 2017 22:53:49 -0700 Subject: [PATCH 1/2] forgotten query_datasources_by_name function --- superset/connectors/connector_registry.py | 7 +++++++ superset/connectors/druid/models.py | 10 ++++++++++ superset/connectors/sqla/models.py | 13 +++++++++++++ 3 files changed, 30 insertions(+) diff --git a/superset/connectors/connector_registry.py b/superset/connectors/connector_registry.py index c3662ef14e009..9c58f48076467 100644 --- a/superset/connectors/connector_registry.py +++ b/superset/connectors/connector_registry.py @@ -66,3 +66,10 @@ def get_eager_datasource(cls, session, datasource_type, datasource_id): .filter_by(id=datasource_id) .one() ) + + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + datasource_class = ConnectorRegistry.sources[database.type] + return datasource_class.query_datasources_by_name( + session, database, datasource_name, schema=None) diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py index 645c12cf4aa44..af87475fd853d 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -1062,5 +1062,15 @@ def get_having_filters(self, raw_filters): filters = cond return filters + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + + return session.query(cls).filter_by( + cluster_name=database.id + ).filter_by( + datasource_name=datasource_name + ).all() + sa.event.listen(DruidDatasource, 'after_insert', set_perm) sa.event.listen(DruidDatasource, 'after_update', set_perm) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index 1196b42bc2189..e8d680443319d 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -680,5 +680,18 @@ def lookup_database(table): db.session, i_datasource, lookup_database, lookup_sqlatable, import_time) + @classmethod + def query_datasources_by_name( + cls, session, database, datasource_name, schema=None): + + query = session.query(cls).filter_by( + database_id=database.id + ).filter_by( + table_name=datasource_name + ) + if schema: + query = query.filter_by(schema=schema) + return query.all() + sa.event.listen(SqlaTable, 'after_insert', set_perm) sa.event.listen(SqlaTable, 'after_update', set_perm) From 734fd681f9dadcd7601f0c1b5a03ce7310f9f610 Mon Sep 17 00:00:00 2001 From: Bo Blanton Date: Wed, 29 Mar 2017 08:28:33 -0700 Subject: [PATCH 2/2] use normal formats --- superset/connectors/druid/models.py | 12 ++++++------ superset/connectors/sqla/models.py | 11 +++++------ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/superset/connectors/druid/models.py b/superset/connectors/druid/models.py index af87475fd853d..33aeabe5cc74e 100644 --- a/superset/connectors/druid/models.py +++ b/superset/connectors/druid/models.py @@ -1065,12 +1065,12 @@ def get_having_filters(self, raw_filters): @classmethod def query_datasources_by_name( cls, session, database, datasource_name, schema=None): - - return session.query(cls).filter_by( - cluster_name=database.id - ).filter_by( - datasource_name=datasource_name - ).all() + return ( + session.query(cls) + .filter_by(cluster_name=database.id) + .filter_by(datasource_name=datasource_name) + .all() + ) sa.event.listen(DruidDatasource, 'after_insert', set_perm) sa.event.listen(DruidDatasource, 'after_update', set_perm) diff --git a/superset/connectors/sqla/models.py b/superset/connectors/sqla/models.py index e8d680443319d..6cc55d3f55631 100644 --- a/superset/connectors/sqla/models.py +++ b/superset/connectors/sqla/models.py @@ -683,12 +683,11 @@ def lookup_database(table): @classmethod def query_datasources_by_name( cls, session, database, datasource_name, schema=None): - - query = session.query(cls).filter_by( - database_id=database.id - ).filter_by( - table_name=datasource_name - ) + query = ( + session.query(cls) + .filter_by(database_id=database.id) + .filter_by(table_name=datasource_name) + ) if schema: query = query.filter_by(schema=schema) return query.all()