Alerting: improve alerting default datasource search when extracting alerts (#29993)

* improve alerting search datasource

* correct the xorm get usage

* adding default datasource unittest
This commit is contained in:
ying-jeanne
2021-01-07 21:33:17 +01:00
committed by GitHub
parent bf0d940e6d
commit 2a9c625c9f
7 changed files with 290 additions and 16 deletions
+15
View File
@@ -24,6 +24,7 @@ func init() {
bus.AddHandler("sql", UpdateDataSource)
bus.AddHandler("sql", GetDataSourceById)
bus.AddHandler("sql", GetDataSourceByName)
bus.AddHandler("sql", GetDefaultDataSource)
}
func getDataSourceByID(id, orgID int64, engine *xorm.Engine) (*models.DataSource, error) {
@@ -77,6 +78,20 @@ func GetDataSources(query *models.GetDataSourcesQuery) error {
return sess.Find(&query.Result)
}
// GetDefaultDataSource is used to get the default datasource of organization
func GetDefaultDataSource(query *models.GetDefaultDataSourceQuery) error {
datasource := models.DataSource{}
exists, err := x.Where("org_id=? AND is_default=?", query.OrgId, true).Get(&datasource)
if !exists {
return models.ErrDataSourceNotFound
}
query.Result = &datasource
return err
}
func DeleteDataSourceById(cmd *models.DeleteDataSourceByIdCommand) error {
return inTransaction(func(sess *DBSession) error {
var rawSQL = "DELETE FROM data_source WHERE id=? and org_id=?"