def pre_add(self, item: "DruidDatasourceModelView") -> None: with db.session.no_autoflush: query = db.session.query(models.DruidDatasource).filter( models.DruidDatasource.datasource_name == item.datasource_name, models.DruidDatasource.cluster_id == item.cluster_id, ) if db.session.query(query.exists()).scalar(): raise Exception(get_datasource_exist_error_msg(item.full_name))
def pre_add(self, datasource): with db.session.no_autoflush: query = db.session.query(models.DruidDatasource).filter( models.DruidDatasource.datasource_name == datasource.datasource_name, models.DruidDatasource.cluster_name == datasource.cluster.id, ) if db.session.query(query.exists()).scalar(): raise Exception(get_datasource_exist_error_msg(datasource.full_name))
def pre_add(self, datasource): with db.session.no_autoflush: query = ( db.session.query(models.DruidDatasource) .filter(models.DruidDatasource.datasource_name == datasource.datasource_name, models.DruidDatasource.cluster_name == datasource.cluster.id) ) if db.session.query(query.exists()).scalar(): raise Exception(get_datasource_exist_error_msg( datasource.full_name))
def pre_add(self, datasource): number_of_existing_datasources = db.session.query( sqla.func.count('*')).filter( models.ElasticDatasource.datasource_name == datasource.datasource_name, models.ElasticDatasource.cluster_name == datasource.cluster.id, ).scalar() # table object is already added to the session if number_of_existing_datasources > 1: raise Exception(get_datasource_exist_error_msg( datasource.full_name))
def pre_add(self, datasource): number_of_existing_datasources = (db.session.query( sa.func.count('*')).filter( PandasDatasource.source_url == datasource.source_url).scalar()) # datasource object is already added to the session if number_of_existing_datasources > 1: raise Exception( get_datasource_exist_error_msg(datasource.full_name)) # Fail before adding if the datasource can't be found try: datasource.get_dataframe() except Exception as e: logging.exception(e) raise Exception( _('File [{}] could not be read, ' 'please double check the ' 'Source URL and Read Method').format(datasource.name))
def pre_add(self, table): with db.session.no_autoflush: table_query = db.session.query(models.SqlaTable).filter( models.SqlaTable.table_name == table.table_name, models.SqlaTable.schema == table.schema, models.SqlaTable.database_id == table.database.id) if db.session.query(table_query.exists()).scalar(): raise Exception( get_datasource_exist_error_msg(table.full_name)) # Fail before adding if the table can't be found try: table.get_sqla_table_object() except Exception: raise Exception(_( 'Table [{}] could not be found, ' 'please double check your ' 'database connection, schema, and ' 'table name').format(table.name))
def pre_add(self, table): with db.session.no_autoflush: table_query = db.session.query(models.SqlaTable).filter( models.SqlaTable.table_name == table.table_name, models.SqlaTable.schema == table.schema, models.SqlaTable.database_id == table.database.id, ) if db.session.query(table_query.exists()).scalar(): raise Exception(get_datasource_exist_error_msg( table.full_name)) # Fail before adding if the table can't be found try: table.get_sqla_table_object() except Exception as e: logger.exception(f"Got an error in pre_add for {table.name}") raise Exception( _("Table [{}] could not be found, " "please double check your " "database connection, schema, and " "table name, error: {}").format(table.name, str(e)))
def __init__(self, table_name: str) -> None: super().__init__(get_datasource_exist_error_msg(table_name), field_names=["table_name"])