mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
started work datasources admin
This commit is contained in:
parent
f665a30d28
commit
b70a3f0958
1
Godeps/_workspace/src/github.com/go-xorm/core/mapper.go
generated
vendored
1
Godeps/_workspace/src/github.com/go-xorm/core/mapper.go
generated
vendored
@ -151,6 +151,7 @@ func (mapper SnakeMapper) Table2Obj(name string) string {
|
|||||||
func (mapper SnakeMapper) TableName(t string) string {
|
func (mapper SnakeMapper) TableName(t string) string {
|
||||||
return t
|
return t
|
||||||
}
|
}
|
||||||
|
|
||||||
// provide prefix table name support
|
// provide prefix table name support
|
||||||
type PrefixMapper struct {
|
type PrefixMapper struct {
|
||||||
Mapper IMapper
|
Mapper IMapper
|
||||||
|
6
Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_test/sqltest.go
generated
vendored
6
Godeps/_workspace/src/github.com/mattn/go-sqlite3/sqlite3_test/sqltest.go
generated
vendored
@ -318,7 +318,7 @@ func BenchmarkQuery(b *testing.B) {
|
|||||||
var i int
|
var i int
|
||||||
var f float64
|
var f float64
|
||||||
var s string
|
var s string
|
||||||
// var t time.Time
|
// var t time.Time
|
||||||
if err := db.QueryRow("select null, 1, 1.1, 'foo'").Scan(&n, &i, &f, &s); err != nil {
|
if err := db.QueryRow("select null, 1, 1.1, 'foo'").Scan(&n, &i, &f, &s); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -331,7 +331,7 @@ func BenchmarkParams(b *testing.B) {
|
|||||||
var i int
|
var i int
|
||||||
var f float64
|
var f float64
|
||||||
var s string
|
var s string
|
||||||
// var t time.Time
|
// var t time.Time
|
||||||
if err := db.QueryRow("select ?, ?, ?, ?", nil, 1, 1.1, "foo").Scan(&n, &i, &f, &s); err != nil {
|
if err := db.QueryRow("select ?, ?, ?, ?", nil, 1, 1.1, "foo").Scan(&n, &i, &f, &s); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
@ -350,7 +350,7 @@ func BenchmarkStmt(b *testing.B) {
|
|||||||
var i int
|
var i int
|
||||||
var f float64
|
var f float64
|
||||||
var s string
|
var s string
|
||||||
// var t time.Time
|
// var t time.Time
|
||||||
if err := st.QueryRow(nil, 1, 1.1, "foo").Scan(&n, &i, &f, &s); err != nil {
|
if err := st.QueryRow(nil, 1, 1.1, "foo").Scan(&n, &i, &f, &s); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
2
grafana
2
grafana
@ -1 +1 @@
|
|||||||
Subproject commit 373118c5eecc5c3645254cb4b862124b55dae980
|
Subproject commit b3b096e204a8ad6eb2aba6b98802589ab3d1fa28
|
@ -25,6 +25,10 @@ func Register(m *macaron.Macaron) {
|
|||||||
m.Post("/api/account/using/:id", auth, SetUsingAccount)
|
m.Post("/api/account/using/:id", auth, SetUsingAccount)
|
||||||
m.Get("/api/account/others", auth, GetOtherAccounts)
|
m.Get("/api/account/others", auth, GetOtherAccounts)
|
||||||
|
|
||||||
|
// datasources
|
||||||
|
m.Get("/admin/datasources/", auth, Index)
|
||||||
|
m.Get("/api/admin/datasources/", auth, GetDataSources)
|
||||||
|
|
||||||
// user register
|
// user register
|
||||||
m.Get("/register/*_", Index)
|
m.Get("/register/*_", Index)
|
||||||
m.Post("/api/account", CreateAccount)
|
m.Post("/api/account", CreateAccount)
|
||||||
|
17
pkg/api/api_datasources.go
Normal file
17
pkg/api/api_datasources.go
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
package api
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/torkelo/grafana-pro/pkg/bus"
|
||||||
|
"github.com/torkelo/grafana-pro/pkg/middleware"
|
||||||
|
m "github.com/torkelo/grafana-pro/pkg/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
func GetDataSources(c *middleware.Context) {
|
||||||
|
query := m.GetDataSourcesQuery{AccountId: c.Account.Id}
|
||||||
|
err := bus.SendQuery(&query)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
c.JsonApiErr(500, "Failed to query datasources", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
@ -18,6 +18,9 @@ type InProcBus struct {
|
|||||||
handlerIndex map[string]QueryHandler
|
handlerIndex map[string]QueryHandler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// temp stuff, not sure how to handle bus instance, and init yet
|
||||||
|
var globalBus = New()
|
||||||
|
|
||||||
func New() Bus {
|
func New() Bus {
|
||||||
bus := &InProcBus{}
|
bus := &InProcBus{}
|
||||||
bus.handlerIndex = make(map[string]QueryHandler)
|
bus.handlerIndex = make(map[string]QueryHandler)
|
||||||
@ -51,3 +54,12 @@ func (b *InProcBus) AddQueryHandler(handler QueryHandler) {
|
|||||||
fmt.Printf("QueryType %v\n", queryTypeName)
|
fmt.Printf("QueryType %v\n", queryTypeName)
|
||||||
b.handlerIndex[queryTypeName] = handler
|
b.handlerIndex[queryTypeName] = handler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Package level functions
|
||||||
|
func AddQueryHandler(implName string, handler QueryHandler) {
|
||||||
|
globalBus.AddQueryHandler(handler)
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendQuery(query Query) error {
|
||||||
|
return globalBus.SendQuery(query)
|
||||||
|
}
|
||||||
|
@ -20,7 +20,7 @@ func TestHandlerReturnsError(t *testing.T) {
|
|||||||
err := bus.SendQuery(&TestQuery{})
|
err := bus.SendQuery(&TestQuery{})
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
t.Fatal("Send query failed %v", err)
|
t.Fatal("Send query failed " + err.Error())
|
||||||
} else {
|
} else {
|
||||||
t.Log("Handler error received ok")
|
t.Log("Handler error received ok")
|
||||||
}
|
}
|
||||||
@ -38,7 +38,7 @@ func TestHandlerReturn(t *testing.T) {
|
|||||||
err := bus.SendQuery(query)
|
err := bus.SendQuery(query)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("Send query failed %v", err)
|
t.Fatal("Send query failed " + err.Error())
|
||||||
} else if query.Resp != "hello from handler" {
|
} else if query.Resp != "hello from handler" {
|
||||||
t.Fatal("Failed to get response from handler")
|
t.Fatal("Failed to get response from handler")
|
||||||
}
|
}
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
package dto
|
|
||||||
|
|
||||||
type GetDashboardQuery struct {
|
|
||||||
Id int64
|
|
||||||
Resp GetDashboardQueryResp
|
|
||||||
}
|
|
||||||
|
|
||||||
type GetDashboardQueryResp struct {
|
|
||||||
}
|
|
@ -46,8 +46,8 @@ func Logger() macaron.Handler {
|
|||||||
content = fmt.Sprintf("\033[1;32m%s\033[0m", content)
|
content = fmt.Sprintf("\033[1;32m%s\033[0m", content)
|
||||||
return
|
return
|
||||||
case 304:
|
case 304:
|
||||||
|
//content = fmt.Sprintf("\033[1;33m%s\033[0m", content)
|
||||||
return
|
return
|
||||||
content = fmt.Sprintf("\033[1;33m%s\033[0m", content)
|
|
||||||
case 404:
|
case 404:
|
||||||
content = fmt.Sprintf("\033[1;31m%s\033[0m", content)
|
content = fmt.Sprintf("\033[1;31m%s\033[0m", content)
|
||||||
case 500:
|
case 500:
|
||||||
|
@ -9,6 +9,7 @@ import (
|
|||||||
|
|
||||||
"github.com/torkelo/grafana-pro/pkg/log"
|
"github.com/torkelo/grafana-pro/pkg/log"
|
||||||
"github.com/torkelo/grafana-pro/pkg/models"
|
"github.com/torkelo/grafana-pro/pkg/models"
|
||||||
|
"github.com/torkelo/grafana-pro/pkg/setting"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Context struct {
|
type Context struct {
|
||||||
@ -60,8 +61,8 @@ func (ctx *Context) JsonApiErr(status int, message string, err error) {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error(4, "%s: %v", message, err)
|
log.Error(4, "%s: %v", message, err)
|
||||||
if macaron.Env != macaron.PROD {
|
if setting.Env != setting.PROD {
|
||||||
resp["error"] = err
|
resp["error"] = err.Error()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
35
pkg/models/datasource.go
Normal file
35
pkg/models/datasource.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package models
|
||||||
|
|
||||||
|
import "time"
|
||||||
|
|
||||||
|
const (
|
||||||
|
DS_GRAPHITE = "GRAPHITE"
|
||||||
|
DS_INFLUXDB = "INFLUXDB"
|
||||||
|
DS_ES = "ES"
|
||||||
|
DS_ACESSS_DIRECT = "DIRECT"
|
||||||
|
DS_ACESSS_PROXY = "PROXY"
|
||||||
|
)
|
||||||
|
|
||||||
|
type DsType string
|
||||||
|
type DsAccess string
|
||||||
|
|
||||||
|
type DataSource struct {
|
||||||
|
Id int64
|
||||||
|
AccountId int64
|
||||||
|
|
||||||
|
Name string
|
||||||
|
Type DsType
|
||||||
|
Access DsAccess
|
||||||
|
Url string
|
||||||
|
Password string
|
||||||
|
User string
|
||||||
|
BasicAuth bool
|
||||||
|
|
||||||
|
Created time.Time
|
||||||
|
Updated time.Time
|
||||||
|
}
|
||||||
|
|
||||||
|
type GetDataSourcesQuery struct {
|
||||||
|
AccountId int64
|
||||||
|
Resp []*DataSource
|
||||||
|
}
|
@ -25,8 +25,15 @@ const (
|
|||||||
HTTPS Scheme = "https"
|
HTTPS Scheme = "https"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DEV string = "development"
|
||||||
|
PROD string = "production"
|
||||||
|
TEST string = "test"
|
||||||
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// App settings.
|
// App settings.
|
||||||
|
Env string = DEV
|
||||||
AppVer string
|
AppVer string
|
||||||
AppName string
|
AppName string
|
||||||
AppUrl string
|
AppUrl string
|
||||||
|
15
pkg/stores/sqlstore/sqlstore_datasource.go
Normal file
15
pkg/stores/sqlstore/sqlstore_datasource.go
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package sqlstore
|
||||||
|
|
||||||
|
import (
|
||||||
|
"errors"
|
||||||
|
"github.com/torkelo/grafana-pro/pkg/bus"
|
||||||
|
m "github.com/torkelo/grafana-pro/pkg/models"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
bus.AddQueryHandler("sql", GetDataSourcesQuery)
|
||||||
|
}
|
||||||
|
|
||||||
|
func GetDataSourcesQuery(query *m.GetDataSourcesQuery) error {
|
||||||
|
return errors.New("Hello from query handler")
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user